设为首页 收藏本站
查看: 918|回复: 0

[经验分享] oracle小版本升级patch过程和分析 及 升级失败后的两种回退方法

[复制链接]
YunVN网友  发表于 2016-8-16 06:50:18 |阅读模式
  一则比较完整的数据库的10.2.0.1升级到10.2.0.5的步奏和分析
[iyunv@localhost ~]# df -h
FilesystemSizeUsed Avail Use% Mounted on
/dev/sda112G8.5G 2.7G77% /
/dev/sda21.9G40M1.8G3% /home
tmpfs385M0385M0% /dev/shm
/dev/sdb14.6G1.3G3.2G28% /backup
[iyunv@localhost ~]# cd /backup/
[iyunv@localhost backup]# ls
Disk1lost+foundREADME.html
上述的Disk1是下载的10.2.0.5patchoracle官网可能已经停止了oracle 10g相关方面的下载,有mos的可以直接从mosdownload下来。
 
 
升级数据库当然需要对数据库软件进行升级,而后对数据库的数据文件进行相应的update,软件升级前我们要备份oracle的软件,那么数据文件update当然需要备份其数据,那么可以考虑的就有两种了冷备和热备。
  
软件备份
[iyunv@localhost backup]# su - oracle
[oracle@localhost ~]$ sqlplus /nolog
 
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Sep 6 10:36:55 2012
 
Copyright (c) 1982, 2005, Oracle.All rights reserved.
 
[oracle@localhost ~]$ cd $ORACLE_HOME
[oracle@localhost db_1]$ pwd
/db/oracle/oracle/product/10.2.0/db_1
[oracle@localhost db_1]$ tar -cvzf ora_home.tar.gz ./
软件升级主要是对ORACLE_HOME下的文件进行修改,先对其打tar包。
 
数据文件备份:
需要备份的文件主要是spfilecontrolfiledatafile,如果是采取的冷备份方式直接cp的方式备份数据文件所在的目录即可,而如果是热备,则需要备份controlfiledatafile以及备份的control中未完全记录的archivelog
RMAN> run{
2> allocate channel disk1 type disk;
3> delete obsolete;
4> crosscheck backup;
5> delete expired backup;
6> backup database format '/backup/db_%d_%T_%s'
7> plus archivelog delete all input format '/backup/arch_%d_%T_%s';
8> backup current controlfile format '/backup/ctl_%d_%T_%s';
9> release channel disk1;
10> }
上述是自己经常用的全备份脚本。
 
接下来正常关闭数据库,此时buffer cache中的数据已经全部syncdisk中去,接下来可以放心的升级了!
RMAN> shutdown immediate;
升级软件前请先关闭所有使用ORACLE_HOME下面的对象的进程,不然后续可能无法正常打patch
这里也可以利用oracle 10R2中的restore point功能来实现升级,由于生产库一般是不开启flashback database
SQL>shutdown immediate;
SQL>startup mount;
SQL>create restore point upgrade guarantee flashback database;
这里创建一个restore point upgrade,而后如果升级失效可以直接回退这个点,这样也就不需要备份数据文件和控制文件了,restore point是记录在控制文件中,而后相应的记录改变都会记录在闪回区中,所以需要保证闪回恢复区的容量足够大,相对于rman的恢复更节省了时间(不需要restore数据文件)。
 
 
升级软件完毕后需要用upgrade启动数据库,运行相应的数据字典更新和编译失效的系统对象。
[oracle@localhost ~]$ cd /db/oracle/oracle/product/10.2.0/db_1/rdbms/admin/
[oracle@localhost admin]$ sqlplus / as sysdba
 
SQL*Plus: Release 10.2.0.5.0 - Production on Thu Sep 6 23:06:17 2012
 
Copyright (c) 1982, 2010, Oracle.All Rights Reserved.
 
Connected to an idle instance.
SQL> startup upgrade;
ORACLE instance started.
 
Total System Global Area524288000 bytes
Fixed Size1274668 bytes
Variable Size272633044 bytes
Database Buffers247463936 bytes
Redo Buffers2916352 bytes
Database mounted.
Database opened.
SQL>spool ‘/tmp/catupgrd.log’
SQL>start catupgrd.sql
更新数据字典,此过程比较漫长,适当的增加shared pooljava pool网络上说是可以增加更新速度,不过一般生产环境中肯定的是足够的。
SQL>spool off;
SQL>shutdown immediate;
 
编译失效的对象
SQL>startup;
SQL>start utltp.sql
SQL>start catalog.sql
SQL>start catproc.sql
检查是否正常升级
SQL> col comp_name for a30
SQL> col version for a20
SQL> select comp_name,version from dba_registry;
SQL> select comp_name,version from dba_registry;
 
COMP_NAMEVERSION
------------------------------ --------------------
Oracle Database Catalog Views10.2.0.50
Oracle Database Packages and T 10.2.0.5.0
ypes
 
Oracle Workspace Manager10.2.0.5.0
JServer JAVA Virtual Machine10.2.0.5.0
Oracle XDK10.2.0.5.0
……
升级全部完成,如果其中出现了不可预料的错误,我们至少可以正常回退软件和数据文件,不会影响系统的使用。
参考:http://blog.itpub.net/25362835/viewspace-1059365/
 
=====================================升级失败后的两种回退方法===================================
二、回退过程(to 11.2.0.2)
1、关闭RAC所有节点的实例
2、在所有节点上关闭数据库实例,并在一个节点上启动数据库到mount模式进行闪回。
$ sqlplus / as sysdba
SQL> startup mount;
SQL> SELECT NAME, SCN, TIME, DATABASE_INCARNATION#, GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE  FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE='YES';

NAME
--------------------------------------------------------------------------------
       SCN
----------
TIME
---------------------------------------------------------------------------
DATABASE_INCARNATION# GUA STORAGE_SIZE
--------------------- --- ------------
UPGRADE_ROLLBACK
   1227989
31-MAR-12 10.21.06.000000000 AM
                    1 YES    910868480
 

SQL> flashback database to restore point UPGRADE_ROLLBACK;
Flashback complete.


SQL> alter database open resetlogs;
Database altered.
SQL> shutdown immediate;

3 、使用srvctl命令更新ocr中DBHOME相关信息
$ su - Oracle
%srvctl upgrade database -d racdb -o $NEW_ORACLE_HOME
$ srvctl upgrade database -d racdb -o /oracle/app/oracle/product/11.2.0
$ srvctl config database -d racdb

4、更环境变量到11.2.0及pfile等。

5、启动数据库:

6、 检查版本信息
SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
RACDB

SQL> select * from v$version;
SQL> col COMP_ID format a10
SQL> col COMP_NAME format a30
SQL> select comp_id,comp_name,version,status,modified from dba_registry
 

SQL> select * from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
RACDB
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE    11.2.0.2.0      Production
TNS for IBM/AIX RISC System/6000: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
SQL> col COMP_ID format a10
SQL> col COMP_NAME format a30
SQL> select comp_id,comp_name,version,status,modified from dba_registry
  2  ;
COMP_ID    COMP_NAME                      VERSION
---------- ------------------------------ ------------------------------
STATUS                 MODIFIED
---------------------- -----------------------
APEX       Oracle Application Express     3.2.1.00.12
INVALID                29-MAR-2012 19:53:42
EM         Oracle Enterprise Manager      11.2.0.2.0
VALID                  29-MAR-2012 19:34:52
ORDIM      Oracle Multimedia              11.2.0.2.0
VALID                  29-MAR-2012 19:24:12

COMP_ID    COMP_NAME                      VERSION
---------- ------------------------------ ------------------------------
STATUS                 MODIFIED
---------------------- -----------------------
XDB        Oracle XML Database            11.2.0.2.0
VALID                  29-MAR-2012 19:12:54
EXF        Oracle Expression Filter       11.2.0.2.0
VALID                  29-MAR-2012 19:09:10
RUL        Oracle Rules Manager           11.2.0.2.0
VALID                  29-MAR-2012 19:13:49

COMP_ID    COMP_NAME                      VERSION
---------- ------------------------------ ------------------------------
STATUS                 MODIFIED
---------------------- -----------------------
OWM        Oracle Workspace Manager       11.2.0.2.0
VALID                  29-MAR-2012 18:56:43
CATALOG    Oracle Database Catalog Views  11.2.0.2.0
VALID                  29-MAR-2012 18:55:11
CATPROC    Oracle Database Packages and T 11.2.0.2.0
           ypes
VALID                  29-MAR-2012 18:55:11
COMP_ID    COMP_NAME                      VERSION
---------- ------------------------------ ------------------------------
STATUS                 MODIFIED
---------------------- -----------------------
JAVAVM     JServer JAVA Virtual Machine   11.2.0.2.0
VALID                  29-MAR-2012 19:06:30
XML        Oracle XDK                     11.2.0.2.0
VALID                  29-MAR-2012 19:08:00
CATJAVA    Oracle Database Java Packages  11.2.0.2.0
VALID                  29-MAR-2012 19:08:34
COMP_ID    COMP_NAME                      VERSION
---------- ------------------------------ ------------------------------
STATUS                 MODIFIED
---------------------- -----------------------
RAC        Oracle Real Application Cluste 11.2.0.2.0
           rs
VALID                  29-MAR-2012 19:58:08

13 rows selected.
完成回退。
 
原文链接:http://www.iyunv.com/Linux/2012-07/65950p2.htm
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-258298-1-1.html 上篇帖子: 第六章 PL/SQL与Oracle间交互(3) 下篇帖子: 关于oracle字符集乱码的问题-EXP遇到ORA-06552错误的解决,及如何应急修改ORACLE
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表