总体思路:
(1) 备份数据库
(2) 备份oracle目录
(3) 运行11.2.0.4.0 patchset,升级oracle 软件
(4) 运行dbua 或者脚本升级实例,从11.2.0.1.0升级到11.2.0.4.0
(5) 使用opatch打小补丁,从 11.2.0.4.0升级到11.2.0.4.7
(6) 检查升级后的版本信息和无效对象
一.备份数据库
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset full database format='/backup/rman/db%d_%s_%p';
sql 'alter system archive log current';
backup format='/backup/rman/ac%d_%s_%p' archivelog all delete all input;
backup current controlfile format='/backup/rman/con%d_%s_%p';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
二. purge dba_recylebin;
三.shutdown immediate
lsnrctl stop LISTENER_FMS
四. 备份ORACLE_HOME
tar cvf product.zip /oracle/product/
tar cvf oraInventory.zip /oracle/oraInventory/
五.上传安装包并解压安装
1. 上传11.2.0.4.0 patch set
2. export DISPLAY=192.168.12.12:0.0
3. ./runInstaller
4.忽略邮件
5.选择第三个选项,skip software update,
6.选择upgrade an existing database。
7.安装位置
原安装目录是/oracle/product/11.2.0/dbhome_1 ,改成了/oracle/product/11.2.0.4/dbhome_1 即将oracle 安装到其他位置,这样可以减少宕机时间,也是oracle 推荐的方法。
8.Inventory directory:如有,将安装文件存放到其他目录:/oracle/oraInventory2。
9.执行脚本:里面的路径可覆盖,最好另起目录 /oracle/product/11.2.0.4/dbhome_1/root.sh
10.配置监听:
这里会提示配置监听,因为监听之前已经存在,所以这里取消监听配置。选择skip
11.跳过监听配置之后,便是使用dbua工具升级,这个可默认按提示一路默认next,
或是,跳过dbua直接完成安装,而后选择脚本升级。
六.使用图形界面DBUA工具完成升级,仅需要环境变量和拷贝network目录。
1. 修改Oracle的.profile 文件
我们重新指定了ORACLE_HOME,需要更新到.profile 里。
ORACLE_HOME=/oracle/product/11.2.0.4/dbhome_1
2.拷贝配置文件
具体操作步骤: cp /oracle/product/11.2.0/dbhome_1/dbs/* /oracle/product/11.2.0.4/dbhome_1/dbs/ (使用dbua跳过此步)
cp -R /oracle/product/11.2.0/dbhome_1/network/admin/* /oracle/product/11.2.0.4/dbhome_1/network/admin/
3.必要时再执行升级检查脚本:
sqlplus / as sysdba
startup upgrade;
spool /home/oracle/utlu112i_check.txt
@?/rdbms/admin/utlu112i.sql --检查
spool off;
注意此时oracle 实例是运行在新的ORACLE_HOME下.
七. 如选择手工执行脚本升级,在以上五后按以下步骤。
1. 修改Oracle的.profile 文件
我们重新指定了ORACLE_HOME,需要更新到.profile 里。
ORACLE_HOME=/oracle/product/11.2.0.4/dbhome_1
2. 修改/etc/oratab 中的 ORACLE_HOME路径为新的路径。
vi /etc/oratab
3.拷贝配置文件
具体操作步骤: cp /oracle/product/11.2.0/dbhome_1/dbs/* /oracle/product/11.2.0.4/dbhome_1/dbs/
cp -R /oracle/product/11.2.0/dbhome_1/network/admin/* /oracle/product/11.2.0.4/dbhome_1/network/admin/
4.执行升级检查脚本:
sqlplus / as sysdba
startup upgrade;
spool /home/oracle/utlu112i_check.txt
@?/rdbms/admin/utlu112i.sql --检查
spool off;
5.如有不满足
则进行修改
alter system set xxx=xxx scope=spfile;
shutdown immeidate;
startup mount;
alter database flashback on;
select * from v$restore_point;
@?/rdbms/admin/utlu112i.sql
6.升级
shutdown immediate;
startup upgrade;
set echo on
spool /home/oracle/upgrade.log
set time on;
@?rdbms/admin/catupgrd.sql
spool off;
八.完成11.2.0.1.0升级11.2.0.4.0后便是进行PSU到11.2.0.4.7
1.备份原有OPatch: mv OPatch OPatch_bak
2.解压新的OPatch,unzip 升级11.2.0.4.7要求至少是 11.2.0.3.6版本的opatch.
3.解压opatch 补丁包。
4.cd 到补丁目录下,执行以下命令,进行补丁检测。
/oracle/product/11.2.0.4/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
5. sqlplus / as sysdba
shutdown immediate
并退出所有sqlplus 窗口
6.打补丁:在补丁目录下 /oracle/product/11.2.0.4/dbhome_1/OPatch/opatch apply
是否继续? [y|n]
y
User Responded with: Y
All checks passed.
提供电子邮件地址以用于接收有关安全问题的通知, 安装 Oracle Configuration Manager 并启动它。如果您使用 My Oracle
Support 电子邮件地址/用户名, 操作将更简单。
有关详细信息, 请访问 http://www.oracle.com/support/policies.html。
电子邮件地址/用户名:
尚未提供电子邮件地址以接收有关安全问题的通知。
是否不希望收到有关安全问题 (是 [Y], 否 [N]) [N] 的通知: y
本地系统是否已准备打补丁? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '17478514' to OH '/opt/app/oracle/product/11.2.0/dbhome_1'
7.完成,并检查log。
Composite patch 20760982 successfully applied.
OPatch Session completed with warnings.
Log file location: /oracle/product/11.2.0.4/dbhome_1/cfgtoollogs/opatch/opatch2015-10-15_20-50-03PM_1.log
OPatch completed with warnings.
8.实例打补丁
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
startup
@catbundle.sql psu apply
9.完成实例打补丁,检查日志
Check the following log file for errors:
/oracle/product/11.2.0.4/dbhome_1/cfgtoollogs/catbundle/catbundle_PSU_FMSS_APPLY_2015Oct15_20_55_14.log
10.验证补丁是否应用成功:
[/oracle/product/11.2.0.4/dbhome_1/rdbms/admin]#cd ../../OPatch
[/oracle/product/11.2.0.4/dbhome_1/OPatch]#./opatch lspatches
20760982;Database Patch Set Update : 11.2.0.4.7 (20760982)
11.查询版本信息
select * from dba_registry_history;
12.编译失效对象。
@?/rdbms/admin/utlrp.sql
13.重启监听 :lsnrctl start
14.在运行一段时间后正常,更改compatible参数
oracle升级回退方案
一.回退版本到11.2.0.1.0
1.恢复ORACLE相关的目录。
2.使用闪回功能进行回退(在未更改compatible参数前提下)
--在升级库前确定闪回是否打开。
select flashback_on from v$database;
--alter database flashback on;
--创建闪回点
alter database
create restore point UPGRADE_ROLLBACK guarantee flashback database;
select * from v$restore_point;
--升级失败后执行闪回数据库到闪回点。
sqlplus / as sysdba
shutdown immediate;
startup mount;
flashback database to restore point UPGRADE_ROLLBACK;
alter database open resetlogs;
--删除恢复点,无论需不需要闪回记得删除。
select * from v$restore_point;
drop restore point grpt;
3.升级前后都做一次全库rman 备份,保证数据遭到损坏时可以恢复。
二.回退opatch 到11.2.0.4.0
1.停止数据库
停止监听
lsnrctl status
lsnrctl stop
清理LOCAL=NO的进程
ps -ef| grep LOCAL=NO | grep -v grep | awk '{print "kill -9 " $2}' | sh
停止数据库
SQL> alter system checkpoint;
SQL> shutdown immediate
确保所有与oracle相关的进程都被停掉,包括本地的sqlplus连接也需要退出
2.补丁回退
su – oracle
$ORACLE_HOME/OPatch/opatch rollback -id 20760982
$ORACLE_HOME/OPatch/opatch lsinventory –bugs_fixed | grep -i database
3.回退数据注册信息
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle_PSU_FMSS_ROLLBACK.sql
SQL> QUIT
(1) 备份数据库
(2) 备份oracle目录
(3) 运行11.2.0.4.0 patchset,升级oracle 软件
(4) 运行dbua 或者脚本升级实例,从11.2.0.1.0升级到11.2.0.4.0
(5) 使用opatch打小补丁,从 11.2.0.4.0升级到11.2.0.4.7
(6) 检查升级后的版本信息和无效对象
一.备份数据库
run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
allocate channel c4 type disk;
backup as compressed backupset full database format='/backup/rman/db%d_%s_%p';
sql 'alter system archive log current';
backup format='/backup/rman/ac%d_%s_%p' archivelog all delete all input;
backup current controlfile format='/backup/rman/con%d_%s_%p';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
二. purge dba_recylebin;
三.shutdown immediate
lsnrctl stop LISTENER_FMS
四. 备份ORACLE_HOME
tar cvf product.zip /oracle/product/
tar cvf oraInventory.zip /oracle/oraInventory/
五.上传安装包并解压安装
1. 上传11.2.0.4.0 patch set
2. export DISPLAY=192.168.12.12:0.0
3. ./runInstaller
4.忽略邮件
5.选择第三个选项,skip software update,
6.选择upgrade an existing database。
7.安装位置
原安装目录是/oracle/product/11.2.0/dbhome_1 ,改成了/oracle/product/11.2.0.4/dbhome_1 即将oracle 安装到其他位置,这样可以减少宕机时间,也是oracle 推荐的方法。
8.Inventory directory:如有,将安装文件存放到其他目录:/oracle/oraInventory2。
9.执行脚本:里面的路径可覆盖,最好另起目录 /oracle/product/11.2.0.4/dbhome_1/root.sh
10.配置监听:
这里会提示配置监听,因为监听之前已经存在,所以这里取消监听配置。选择skip
11.跳过监听配置之后,便是使用dbua工具升级,这个可默认按提示一路默认next,
或是,跳过dbua直接完成安装,而后选择脚本升级。
六.使用图形界面DBUA工具完成升级,仅需要环境变量和拷贝network目录。
1. 修改Oracle的.profile 文件
我们重新指定了ORACLE_HOME,需要更新到.profile 里。
ORACLE_HOME=/oracle/product/11.2.0.4/dbhome_1
2.拷贝配置文件
具体操作步骤: cp /oracle/product/11.2.0/dbhome_1/dbs/* /oracle/product/11.2.0.4/dbhome_1/dbs/ (使用dbua跳过此步)
cp -R /oracle/product/11.2.0/dbhome_1/network/admin/* /oracle/product/11.2.0.4/dbhome_1/network/admin/
3.必要时再执行升级检查脚本:
sqlplus / as sysdba
startup upgrade;
spool /home/oracle/utlu112i_check.txt
@?/rdbms/admin/utlu112i.sql --检查
spool off;
注意此时oracle 实例是运行在新的ORACLE_HOME下.
七. 如选择手工执行脚本升级,在以上五后按以下步骤。
1. 修改Oracle的.profile 文件
我们重新指定了ORACLE_HOME,需要更新到.profile 里。
ORACLE_HOME=/oracle/product/11.2.0.4/dbhome_1
2. 修改/etc/oratab 中的 ORACLE_HOME路径为新的路径。
vi /etc/oratab
3.拷贝配置文件
具体操作步骤: cp /oracle/product/11.2.0/dbhome_1/dbs/* /oracle/product/11.2.0.4/dbhome_1/dbs/
cp -R /oracle/product/11.2.0/dbhome_1/network/admin/* /oracle/product/11.2.0.4/dbhome_1/network/admin/
4.执行升级检查脚本:
sqlplus / as sysdba
startup upgrade;
spool /home/oracle/utlu112i_check.txt
@?/rdbms/admin/utlu112i.sql --检查
spool off;
5.如有不满足
则进行修改
alter system set xxx=xxx scope=spfile;
shutdown immeidate;
startup mount;
alter database flashback on;
select * from v$restore_point;
@?/rdbms/admin/utlu112i.sql
6.升级
shutdown immediate;
startup upgrade;
set echo on
spool /home/oracle/upgrade.log
set time on;
@?rdbms/admin/catupgrd.sql
spool off;
八.完成11.2.0.1.0升级11.2.0.4.0后便是进行PSU到11.2.0.4.7
1.备份原有OPatch: mv OPatch OPatch_bak
2.解压新的OPatch,unzip 升级11.2.0.4.7要求至少是 11.2.0.3.6版本的opatch.
3.解压opatch 补丁包。
4.cd 到补丁目录下,执行以下命令,进行补丁检测。
/oracle/product/11.2.0.4/dbhome_1/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph ./
5. sqlplus / as sysdba
shutdown immediate
并退出所有sqlplus 窗口
6.打补丁:在补丁目录下 /oracle/product/11.2.0.4/dbhome_1/OPatch/opatch apply
是否继续? [y|n]
y
User Responded with: Y
All checks passed.
提供电子邮件地址以用于接收有关安全问题的通知, 安装 Oracle Configuration Manager 并启动它。如果您使用 My Oracle
Support 电子邮件地址/用户名, 操作将更简单。
有关详细信息, 请访问 http://www.oracle.com/support/policies.html。
电子邮件地址/用户名:
尚未提供电子邮件地址以接收有关安全问题的通知。
是否不希望收到有关安全问题 (是 [Y], 否 [N]) [N] 的通知: y
本地系统是否已准备打补丁? [y|n]
y
User Responded with: Y
Backing up files...
Applying sub-patch '17478514' to OH '/opt/app/oracle/product/11.2.0/dbhome_1'
7.完成,并检查log。
Composite patch 20760982 successfully applied.
OPatch Session completed with warnings.
Log file location: /oracle/product/11.2.0.4/dbhome_1/cfgtoollogs/opatch/opatch2015-10-15_20-50-03PM_1.log
OPatch completed with warnings.
8.实例打补丁
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
startup
@catbundle.sql psu apply
9.完成实例打补丁,检查日志
Check the following log file for errors:
/oracle/product/11.2.0.4/dbhome_1/cfgtoollogs/catbundle/catbundle_PSU_FMSS_APPLY_2015Oct15_20_55_14.log
10.验证补丁是否应用成功:
[/oracle/product/11.2.0.4/dbhome_1/rdbms/admin]#cd ../../OPatch
[/oracle/product/11.2.0.4/dbhome_1/OPatch]#./opatch lspatches
20760982;Database Patch Set Update : 11.2.0.4.7 (20760982)
11.查询版本信息
select * from dba_registry_history;
12.编译失效对象。
@?/rdbms/admin/utlrp.sql
13.重启监听 :lsnrctl start
14.在运行一段时间后正常,更改compatible参数
oracle升级回退方案
一.回退版本到11.2.0.1.0
1.恢复ORACLE相关的目录。
2.使用闪回功能进行回退(在未更改compatible参数前提下)
--在升级库前确定闪回是否打开。
select flashback_on from v$database;
--alter database flashback on;
--创建闪回点
alter database
create restore point UPGRADE_ROLLBACK guarantee flashback database;
select * from v$restore_point;
--升级失败后执行闪回数据库到闪回点。
sqlplus / as sysdba
shutdown immediate;
startup mount;
flashback database to restore point UPGRADE_ROLLBACK;
alter database open resetlogs;
--删除恢复点,无论需不需要闪回记得删除。
select * from v$restore_point;
drop restore point grpt;
3.升级前后都做一次全库rman 备份,保证数据遭到损坏时可以恢复。
二.回退opatch 到11.2.0.4.0
1.停止数据库
停止监听
lsnrctl status
lsnrctl stop
清理LOCAL=NO的进程
ps -ef| grep LOCAL=NO | grep -v grep | awk '{print "kill -9 " $2}' | sh
停止数据库
SQL> alter system checkpoint;
SQL> shutdown immediate
确保所有与oracle相关的进程都被停掉,包括本地的sqlplus连接也需要退出
2.补丁回退
su – oracle
$ORACLE_HOME/OPatch/opatch rollback -id 20760982
$ORACLE_HOME/OPatch/opatch lsinventory –bugs_fixed | grep -i database
3.回退数据注册信息
cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP
SQL> @catbundle_PSU_FMSS_ROLLBACK.sql
SQL> QUIT
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29863023/viewspace-1818053/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29863023/viewspace-1818053/