oracle11g数据库升级
Oracle支持周期
Oracle对自己产品也一样,对于自己的产品在不同的时期,支持的强度是不一样的。
大体分来,支持的强度分为三个级别:Premier Support(最高优先级的支持),Extended Support(中等优先级的支持),Sustaining Support(最低优先级的支持)
1.从产品发布为期5年的标准支持服务期-Premier support
2.随后为期3年的延展支持服务期---------extended support
3.接下来进入持久支持服务期--------------sustaining support
不过根据不同的周期划分,Oracle的支持费用将会不同,在延展服务器内,第一年将会加收10%的费用提供支持,第二年加收20%的费用提供支持,第三年也是加收20%的费用提供支持。
Oracle11g数据库的推出,oracle数据库的升级成为必然。升级包括数据库软件的升级和数据库的升级两部分。
升级路线图
大概的升级步骤:
(1) 备份数据库
(2) 运行patchset,升级oracle 软件
(3) 准备新的ORACLE_HOME
(4) 运行dbua 或者脚本升级实例
(5) 检查升级后的版本信息和无效对象
升级补丁包选择
Metalink文档id:1922396.1会更新需要的补丁号
升级方法选择
关于方法有很多,每种有各自的特点,根据特点选择合适的升级方式。
可以选择参考文档id 1674333.1和1602485.1分别是9i和11g升级到最新的11gR2
第 1 步
======
下载 11.2.0.2 或更高版本的 RDBMS 软件。
第 2 步
======
将最新的 11.2 RDBMS 软件安装到新的 ORACLE_HOME 中。
运行Patchset 的runInstaller。
./runInstaller
这里要注意,我们之前讲过11gR2的Patchset 可以直接用来安装。在这个界面就可以选择操作类型,这个功能比较方便,从而也导致patchset 越来越大,我们这里选择upgrade an existing database。
注意这里的安装位置,我之前的安装目录是11.2.0. 这里我改成了11.2.0.4. 即将oracle 安装到其他位置,这样可以减少宕机时间,也是oracle 推荐的方法。
第 3 步
======
安装最新的 11.2 RDBMS 软件之后,用以前的 ORACLE_HOME 中启动 11.2.0.1实例,对正在运行的以前的实例执行 11.2.0.2 的$ORACLE_HOME/rdbms/admin/utlu112i.sql 脚本,并将输出 spool 至一个文件。原来目录执行新脚本。
不论您是使用 DBUA 还是手动升级,均必须运行 Pre-Upgrade Information Tool。否则可能会遇到错误:
1. Log in to the system as theowner of the environment of the database being upgraded.
Important:
The Pre-UpgradeInformation Tool must be copied to and must be run from the environment of thedatabase being upgraded.
注意,这里必须调用新的ORACLE_HOME 下脚本。
2. Start SQL*Plus.
3. Connect to the databaseinstance as a user with SYSDBA privileges.
4. Set the system to spool resultsto a log file for later analysis:
SQL> SPOOL upgrade_info.log
5. Run the Pre-Upgrade InformationTool:
SQL>@/u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlu112i.sql
6. Turn off the spooling of scriptresults to the log file:
SQL> SPOOL OFF
第 4 步
======
运行以下 My Oracle Support 文章中的 dbupgdiag.sql 脚本,验证 dba_registry 中的所有组件有效并且 dba_objects 中没有无效的数据字典对象。
如果 dbupgdiag.sql 脚本报告了任意无效对象,则运行 $ORACLE_HOME/rdbms/admin/utlrp.sql(可能需要多次)以使数据库中的无效对象变为有效,直至无效对象数不发生变化为止。
第 5 步
=====
禁用所有批处理和 cron 作业,然后执行数据库的完整备份。
1. 登录 RMAN:
rman "target / nocatalog"
2. 运行以下 RMAN 命令:
RUN
{
ALLOCATE CHANNEL chan_name TYPE DISK;
BACKUP DATABASE FORMAT 'some_backup_directory%U' TAG before_upgrade;
BACKUP CURRENT CONTROLFILE FORMAT 'controlfile location and name';
}
第 6 步
=======
干净的关闭数据库。
操作步骤:
第 7 步(仅限 Windows 平台)
========================
1) 将环境变量 ORACLE_HOME 设置为指向 11.2.0.1 安装。
2) 停止指向 11.2.0.1 安装的 Oracle 数据库服务。
C:\> NET STOP OracleServiceORCL
3) 使用 %ORACLE_HOME%\bin\ORADIM 可执行程序删除 11.2.0.1 Oracle 服务。
C:\> ORADIM -DELETE -SID ORCL
4) 将环境变量 ORACLE_HOME 设置为指向 11.2.0.2 安装。
5) 将 init.ora/spfile 和口令文件 (orapw<sid>.ora) 从 11.2.0.1 %ORACLE_HOME%/database 复制到 11.2.0.2 %ORACLE_HOME%/database。
6) 将网络配置文件(listener.ora、sqlnet.ora、tnsnames.ora 等)从 11.2.0.1 %ORACLE_HOME%\network\admin(或 $TNS_ADMIN)位置复制到 11.2.0.2 %ORACLE_HOME%\network\admin(或 %TNS_ADMIN%)位置。
7) 如果配置并使用了 DB Console/DB Control,将以下两个目录及其内容从 11.2.0.1 复制到 11.2.0.2。(如果未配置 DB Console/DB Control,则这些目录可能不存在。)
ORACLE_HOME/<hostname_dbname>
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>
8) 使用 11.2.0.2 的可执行程序,在命令提示符下创建 Oracle 11.2.0.2 服务。
%ORACLE_HOME%\bin\ ORADIM
C:\> ORADIM -NEW -SID SID -SYSPWD PASSWORD -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA
例如:
C:\> ORADIM -NEW -SID ORCL -SYSPWD pass_with_sysdba_priv -STARTMODE AUTO -PFILE %ORACLE_HOME%\DATABASE\INIT<SID>.ORA
PASSWORD = 新数据库实例的口令。这是使用 SYSDBA 权限连接的用户的口令。-SYSPWD 选项并非必需。如果未指定该项,则将使用操作系统验证,并且不需要口令
第 8 步(Unix 和 Linux)
=================
配置目标 11.2.0.2 ORACLE_HOME
1) 确保环境变量 ORACLE_BASE、ORACLE_HOME、PATH、NLS_10 和 LIBRARY_PATH 设置为指向 11.2.0.2 安装。
将 ORACLE_SID 设置为 11.2.0.1数据库名以升级。
修改 /etc/oratab 文件指向您的 11.2.0.2 ORACLE_HOME。
2) 禁用 Database Vault
Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX
3) 将 init.ora/spfile 和口令文件 (orapw<sid>.ora) 从 11.2.0.1 $ORACLE_HOME/dbs 复制到 11.2.0.2 $ORACLE_HOME/dbs
4) 将网络配置文件(listener.ora、sqlnet.ora、tnsnames.ora 等)从 11.2.0.1 $ORACLE_HOME/network/admin(或 $TNS_ADMIN)位置复制到 11.2.0.2 $ORACLE_HOME/network/admin(或 $TNS_ADMIN)位置
5) 如果配置了并使用了 DB Console/DB Control,将以下两个目录及其内容从 11.2.0.1 复制到 11.2.0.2。(如果未配置 DB Console/DB Control,则这些目录可能不存在。)
ORACLE_HOME/<hostname_dbname>
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>
请为 <hostname_dbname> 指定实际的名称
6) 确保为 Oracle Database 11g 版本 2 (11.2) 正确设置了 COMPATIBLE 初始化参数。如果未正确设置 COMPATIBLE,则 Pre-Upgrade Information Tool 会在“Database”部分中显示警告。
7) 将初始化参数的值调整到至少为 Pre-Upgrade Information Tool 指示的最小值。对于安装了 JVM 的客户,必须在升级前将 java_pool_size 和 shared_pool_size 至少设置为 250MB,否则 JVM 升级可能会失败,并出现以下错误:
ORA-07445: exception encountered: core dump [qmkmgetConfig()+52] [SIGSEGV] [ADDR:0x18] [PC:0x103FFEC34] [Address not mapped to object] []
具体操作步骤:
操作步骤:(复制侦听,密码文件)
编辑环境变量
修 改/etc/oratab,该目录下也有ORACLE_HOME
[oracle@dave db_1]$ cat /etc/oratab
如果配置了并使用了 DB Console/DB Control,将以下两个目录及其内容从 11.2.0.1 复制到 11.2.0.2。(如果未配置 DB Console/DB Control,则这些目录可能不存在。)
ORACLE_HOME/<hostname_dbname>
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname_dbname>
确保为 Oracle Database 11g 版本 2 (11.2) 正确设置了 COMPATIBLE 初始化参数。如果未正确设置 COMPATIBLE,则 Pre-Upgrade Information Tool 会在“Database”部分中显示警告。
必须在升级前将 java_pool_size 和 shared_pool_size 至少设置为 250MB,
加入参数:
create pfile from spfile ;
修改参数
最后生成spfile
SQL> create spfile from pfile ;
第 9 步
======
手动升级数据库。
1) 启动 sqlplus 并从新安装的目标 $ORACLE_HOME/rdbms/admin 下运行 catupgrd.sql 脚本
sqlplus " / as sysdba "
SQL> spool /tmp/upgrade.log
SQL> startup upgrade
SQL> set echo on
SQL> @$ORACLE_HOME/rdbms/admin /catupgrd.sql;
SQL> spool off
SQL> Shutdown immediate
这个非常重要的步骤可以确保新的数据库软件的完整性和一致性。如果在启动数据库时碰到错误说参数文件中含有被废弃的初始化参数,那么从初始化参数文件中删除这些参数。如果需要的话,可以把 spfile 转换成 pfile 之后就可以编辑 pfile 并删除相关参数了。
执行 Post-Upgrade Status Tool $ORACLE_HOME/rdbms/admin/utlu112s.sql,它会提供一个关于升级的总结. 它会显示升级后各个数据库组件的状态和各个组件升级花费的时间。任何在升级中碰到的错误也会被列出,这些错误必须得到妥善的处理。
$ sqlplus "/as sysdba"
SQL> STARTUP
SQL> @utlu112s.sql
运行 $ORACLE_HOME/rdbms/admin 目录下的 catuppst.sql,完成不需要在数据库处于 UPGRADE 模式下操作的其它升级的动作:
SQL> @catuppst.sql
这个脚本可以和 utlrp.sql 并行运行. 在另一个 session 里运行 utlrp.sql 来重新编译剩下的 PL/SQL 和 Java 代码:
SQL> @utlrp.sql
运行从下面文档中得到的 dbupgdiag.sql 来检查升级后数据库的完整性。
Note 556610.1 Script to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql)
如果 dbupgdiag.sql 发现了一些失效对象,那么多次执行 $ORACLE_HOME/rdbms/admin/utlrp.sql 来重新编译这些失效对象,直到失效对象的数目不再变化。
在重新编译这些失效对象之后,再次运行 dbupgdiag.sql 确认一切都是正常的。
升级后步骤
===================
1) 升级集群配置
如果您使用的是 Oracle 集群,那么您必须更新集群配置。
从 11.2.0.2 开始,upgrade 命令会将配置更新为正在运行的软件的版本。
您可以使用 srvctl 命令,例如:
srvctl upgrade database
这个命令会将数据库及其对应服务的配置信息更新至正在运行的软件的版本。
语法及选项如下:
srvctl upgrade database -d db_unique_name -o Oracle_home
Table A-161 srvctl upgrade database Options
选项描述
-d db_unique_name
数据库的 unique name
-o Oracle_home
ORACLE_HOME 的路径
2) 使用 DBMS_DST 将时区升级到最新版本。
Note 1201253.1
Title: Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset
3) 升级 Recovery Catalog
有关升级 Recovery Catalog 和 UPGRADE CATALOG 命令的完整信息,请参阅《Oracle Database Backup and Recovery User's Guide》中的介绍这些过程的主题。
4) 升级 DBMS_STATS 程序包创建的 Statistics Table
如果使用 DBMS_STATS.CREATE_STAT_TABLE 创建了 statistics table,则通过运行以下命令来升级这些表:
EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE('scott', 'stat_table');
在示例中,SCOTT 是 statistics table 的所有者,STAT_TABLE 是 statistics table 的名称。对每个 statistics table 都需要执行此命令。
5) 启用 Oracle Database Vault 并收回 DV_PATCH_ADMIN 角色。
如果您使用了 Oracle Database Vault,并按照之前的指示在升级前先禁用了它,现在您需要:
启用 Database Vault。
Note 453903.1 - Enabling and Disabling Oracle Database Vault in UNIX
收回 SYS 用户的 Database Vault DV_PATCH_ADMIN 角色。
参考http://download.oracle.com/docs/cd/E11882_01/server.112/e17222.pdf
6). 数据库中的 Oracle Warehouse Builder (OWB) 组件不会在升级过程中安装。升级后,有几个步骤升级该组件。
7)最后调用一下dbca 重建一下OEM。
如果dbca 显示OEM 已经配置过,rm 掉如下2个目录,再次运行就ok了。
ORACLE_HOME/hostname_dbname
ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_dbname
最后验证一下各个组件的版本和状态:
Sql> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY
COMP_NAME VERSION STATUS
---------------------------------------- --------------- ----------------------
OWB 11.2.0.1.0 VALID
Oracle Application Express 3.2.1.00.10 VALID
Oracle Enterprise Manager 11.2.0.4.0 VALID
OLAP Catalog 11.2.0.4.0 VALID
Spatial 11.2.0.4.0 VALID
Oracle Multimedia 11.2.0.4.0 VALID
Oracle XML Database 11.2.0.4.0 VALID
Oracle Text 11.2.0.4.0 VALID
Oracle Expression Filter 11.2.0.4.0 VALID
Oracle Rules Manager 11.2.0.4.0 VALID
Oracle Workspace Manager 11.2.0.4.0 VALID
Oracle Database Catalog Views 11.2.0.4.0 VALID
Oracle Database Packages and Types 11.2.0.4.0 VALID
JServer JAVA Virtual Machine 11.2.0.4.0 VALID
Oracle XDK 11.2.0.4.0 VALID
Oracle Database Java Packages 11.2.0.4.0 VALID
OLAP Analytic Workspace 11.2.0.4.0 VALID
Oracle OLAP API 11.2.0.4.0 VALID
18 rows selected.
至此,通过命令升级操作结束。
如果在升级过程中遇到问题,可以重新执行升级脚本,步骤如下:
1.Shut down the database as follows:
SQL> SHUTDOWNIMMEDIATE
2.Restart the databasein UPGRADE mode:
SQL> STARTUP UPGRADE
3.Set the system to spool results to a logfile for later verification of success:
SQL> SPOOLupgrade.log
4.Rerun catupgrd.sql:
SQL>@catupgrd.sql
Note:
You can rerunthe catupgrd.sql script as many times as necessary. The first timeyou run the script, there should be no error messages returned. If you rerunthe script, then the ORA-00001 messageis displayed. You can safely ignore this message.
5.Rerun utlu112s.sql:
SQL>@utlu112s.sql
图形化升级
图形化升级更为简单,到调用图形化界面后一路回车完成升级。
接着,是最重要的,通过DBUA进行数据库的升级,然后OUI会提示,升级ASM还是数据库,如果数据库是安装在asm上的要先升级asm,后升级数据库。最后会汇总升级信息进行确认即可开始升级。数据库升级时一个耐心的活,因为可能很慢。升级过程中最好有Data Guard或RAC环境,优先提供服务。
相关文章:

DPU加持下的阿里云如何做加密计算?
作者:谭婧来源:亲爱的数据人在干,天在看,云在算。云计算越发展,云安全越重要。故事得从小小的芯片讲起。一家以色列的芯片公司,名叫Annapurna Labs,以喜马拉雅山脉的最高十峰之一——安娜普尔纳…

Fastcgi是什么
一、FastCGI是什么?FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要 行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存 中并接受Fas…

Android 中文 API (25) —— ZoomControls
正文 一、结构 public class ZoomControls extends LinearLayout java.lang.Object android.view.View android.view.ViewGroup android.widget.LinearLayout android.widget.ZoomControls 二、概述 ZoomControls显示一个简单的设置来控制缩放并回调已注册的事件。 三、 公共方…

你知道吗?你可以在异常中解退调用栈
[原文作者]:Bill Horst [原文链接]:Did you know? You can unwind the call stack from exceptions (Bill Horst) 解退一个异常堆栈的能力是Visual Basic.NET 2005的一个新引进的特性。当调式器触发了一个异常,你可以解退这个堆栈以便于使用…

UnicodeDecodeError: ‘ascii’ codec can’t decode...: ordinal not in range(128 问题解决
今天在使用yum源安装时出现UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xe5 in position 108: ordinal not in range(128原因就是python的str默认是ascii编码,和unicode编码冲突,就会报这个标题错误。那么该怎样解决呢?/usr/li…

女程序员也有35岁危机焦虑吗?
作者 | 郭雪 信通院云大所 责编 | 张红月出品 | CSDN(ID:CSDNnews)【CSDN 编者按】在程序员界,我们鲜少会去关注女性的职场处境及工作危机,本文从女性是否适合做开发谈起,到35岁女性职场现状ÿ…

android:关于主工程和library project
1、如何将一个android工程作为库工程(library project)library project是作为jar包被其它android工程使用的,首先它也是普通的android工程。然后:1)在eclipse Package Explorer, 右键android工程选择Properties2&#…

JavaScript 读写文件
<script> /* object.OpenTextFile(filename[, iomode[, create[, format]]]) 参数 object 必选项。object 应为 FileSystemObject 的名称。 filename 必选项。指明要打开文件的字符串表达式。 iomode 可选项。可以是三个常数之一:ForReading 、 ForWriting 或…

css3箭头效果
css3 record1 尝试用css写了个箭头效果 思路就是通过span和span子元素i分别通过设置他们的伪元素构造两个箭头,但是i构造的箭头两条线height都是0,hover的时候渐近的动画效果就是i箭头的高度变化而来的,还有rotate相同的角度 css3知识: transitiontransform伪元素::…

计算机视觉,凉了?
机器学习是目前比较热门的技术,包含深度学习、强化学习、对抗学习、对偶学习、迁移学习、分布式学习、以及元学习等内容。得益于大数据、大模型、大计算的发展,深度学习在计算机视觉、语音处理、自然语言方面相继取得了突破,达到甚至超过了人…

用koa mongodb 做了个简单的博客系统
最近在研究koa和mongodb,简单做了个博客系统,目前还未开放评论和发帖功能,欢迎大家吐槽~ ?安装 git clone https://github.com/oliyg/alljscc.git npm install ?启动 cd server node app.js ?DEMO地址 alljs http://alljs.cc ?功能 用户登…

.net 实现 URL重写,伪静态
一,获得Mircosoft URLRewriter.dll:获得Mircosoft URLRewriter.dll可以到http://www.microsoft.com/china/msdn/library/webservices/asp.net/URLRewriting.mspx?mfrtrue 下载完毕后,导入工程,我这里没有对该工程做任何修改&…

AI 技术升级,这一新方法遏制在线语言骚扰
编译 | 禾木木图源 | IC photo出品 | AI科技大本营(ID:rgznai100)哥本哈根IT大学的 Nina Nrgaard 和她的组员正在参与一项非同寻常的工作,更好地方法来识别网络上的偏见。研究人员对数千条 Facebook、Reddit 和 Twitter 帖子进行了调查,并验证这些帖子是…
MFC中快速应用OpenCV(转)
转载链接:http://wiki.opencv.org.cn/index.php/MFC%E4%B8%AD%E5%BF%AB%E9%80%9F%E5%BA%94%E7%94%A8OpenCV 简介和缘起 本教程原始讨论主题,请见 【原创】MFC中快速应用OpenCV教程,制作此教程的目的,就是为了方便广大windows下面使…

liunx软件安装
RPM包 1. -qa显示当前系统中以RPM方式安装的所有软件列表。 2. -qi查看指定软件包的名称、版本、许可协议、用途描述等详细信息(--info)。 3. -ql显示指定的软件包在当前系统中安装的所有目录、文件列表(--list)。 4. -qf查看指定…

程序员因开发速度太慢而遭公司起诉,索赔金额高达90万!
作为程序员,你最头疼的事情是什么?下面这个算吗?在需求不停并更地前提下,项目还得如期上线。本文程序员因未能如期上线项目,公司直接起诉至法院,并提出90万元的索赔。一起来看看这个案件中法院是如何判决的…

c程序性能优化
一段c程序,功能开发完成,开始性能优化。当然是先用 -pg 编译,再gprof看“热点”在哪里,很快找到,是计算hash值的函数,于是换了个更快的hash函数——fnv ( http://isthe.com /chongo/tech/comp/fnv/)&#x…

struts2上传图片的全过程
转载自:http://blog.sina.com.cn/s/blog_6608320c0100j6no.html1、写一个上传的jsp页面upload_p_w_picpath.jsp,内容如下:<body><center> <font color"red"><s:fielderror/></font> <s:form actio…

Java中 与,||与|的区别
阅读目录 区别短路运算举例回到顶部区别 && || 是逻辑运算,支持短路运算 & | 是位运算,不支持短路运算 回到顶部短路运算 当有多个表达式时,左边的表达式值可以确定结果时,就再继续运算右边的表达式的值; 回到顶部举例 例1 Testpublic void…

保持dropdownlist选中值
RowDataBound事件 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { int i; for (i 0; i < GridView1.Rows.Count; i) { if (e.Row.RowType DataControlRowType.DataRow) { e.Row.Attributes.Ad…

js判断鼠标位置是否在某个div中
div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发 onmouseout事件,这样div中的内容就不能操作了。解决的办法是当触发onmouseout事件时,先判…

奉劝程序员们:写再多代码,还不如提升这两大能力有价值!
哪个国家的程序员水平最高?软件工程师水平测定平台HackRank发起了一系列编程挑战竞赛,给出了一份出乎意料的数据。据悉,这份数据研究分析了HackerRank社区里30万名开发者完成的140万项编码挑战。最终的结果显示中国程序员排在了第一位&#x…

IBM Thinkpad T43-44U 升级到 2G 内存后少了 66M
背景前段时间把 T43-44U 升级到 2G 内存,可以升级后,内存显示总是 1982M,少了 66M。奇怪之极,怎么搞都没搞好。有的热心网友建议重新刷 BIOS,升级到联想刚发布的 1.26 版。可是刷 BIOS 危险系数太高,俺是万…

Linux下的ATT语法(即GNU as 汇编语法)入门
学习这么长时间,一直在C语言这一层面上钻研和打拼,日积月累,很多关于C的疑惑在书本和资料中都难以找到答案。程序员是追求完美的一个种群,其头 脑中哪怕是存在一点点的思维黑洞都会让其坐卧不宁。不久前在itput论坛上偶得《Comput…

汽车高级驾驶辅助系统ADAS激光雷达创新者Cepton与Growth Capital达成企业合并协议
汽车高级驾驶辅助系统 (ADAS) 和车辆自动驾驶领域光感测距技术(激光雷达)的创新者Cepton Technologies, Inc.(以下简称“Cepton”)将与Growth Capital Acquisition Corp.(以下简称“Growth Capital”,纳斯达…

通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
在用本地的navicat连接服务器的mysql数据库时候出现下面的问题: 解决的方法: 解决方法: 1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改…

17张图揭密支付宝系统架构
支付宝的系统架构图,仅供参考。不管是不是支付行业,都值得我们参考,学习。 imageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimageimage推荐阅读 阿里高级Java面试题(首发,70道ÿ…

Facebook性能大提升的秘密:HipHop
facebook / hiphop-php https://github.com/facebook/hiphop-php Facebook神秘的PHP项目HipHop for PHP终于揭开面纱。这个项目由一个PHP到C的转换程序,一个重新实现的PHP运行库,和许多常用PHP扩展的重写版本构成,目的是旨在加速和优化PHP…

Android必备:Android的体系结构
2019独角兽企业重金招聘Python工程师标准>>> 链接地址:http://www.xx566.com/detail/107.html 最近一个月接触Android,开始做一些app的开发,通过参考网络上的资料,阅读Android相关的书籍,从无知到了解&…

豆瓣评分 9.4 的算法巨著,这本书带无数读者入门算法
说到算法巨著,你可能想到的是《算法导论》这本经典。但在入门算法时,还有一本与之比肩的巨著,不得不提,它就是《算法(第4版)》。这本豆瓣评分 9.4 的算法巨著,可谓是算法经典好书,给…