oracle 升级前备份,Oracle Study之---Oracle升级前备份和失败回退

1、软件备份

[root@localhost backup]# su - oracle

[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包。

2、数据文件备份

需要备份的文件主要是spfile、controlfile、datafile,如果是采取的冷备份方式直接cp的方式备份数据文件所在的目录即可,而如果是热备,则需要备份controlfile和datafile以及备份的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中的数据已经全部sync到disk中去,接下来可以放心的升级了!

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数据文件)。

二、回退过程(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_ROLLBACK122798931-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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值