您的位置:首页 > 其它

RAC环境下如何利用冷备份进行恢复

2016-10-14 21:56 197 查看
本人是一个数据库小白,写的东西也是浅显易懂,主要是想自己记录一下东西,以及把工作中遇到的一些问题总结起来,与大家一起分享学习。废话不多说,让我们开始今天的分享。

当今世界主要流行的关系型数据库主要有oracle,mysql,sqlserver以及IBM的DB2。oracle绝对是关系型数据库的龙头老大,而衡量一个oracle数据库dba水准的一个重要的标准就是是否能熟练操作RAC,这也成为一个重要的衡量标准。而这一篇文章,我们主要分享的是如何利用冷备份在rac环境下进行恢复。

相关的概念我会在以后的文章继续深入的讲解,这篇文章主要是实战应用。

本实验是通过rman的备份,进行恢复的,因此,想要恢复就必须要有相应的备份。在备份之前,必须保证数据库处于归档模式,因为rman是不允许在非归档模式下进行备份的。

第一:因此,必须将两个节点的数据库处于归档模式。

SQL> alter database archivelog;

如果遇到ORA-01126: database must be mounted in this instance and not open in any instance这个错误,则是个因为将一号节点置于归档之后,立即alter database open造成。修改两个节点归档模式,两个节点都是必须处于mount状态。

第二:利用rman备份整个数据库以及参数文件。

MAN> backup spfile;

piece handle='+FLASH/devdb/backupset/2016_10_11/nnndf0_tag20161011t080743_0.262.924941267'--参数文件

RMAN> backup database;

+FLASH/devdb/backupset/2016_10_11/nnndf0_tag20161011t080743_0.262.924941267--数据文件

+FLASH/devdb/backupset/2016_10_11/ncsnf0_tag20161011t080743_0.263.924941379--控制文件

第三:通过dbca,将数据库删除。

第四:恢复

        ①由于已经把数据所有相关的文件都删除了。所以,第一步必须利用冷备份恢复参数文件。由于恢复参数文件,数据库必须处于nomount的状态,因此直接强          行启动nomount的状态。

        RMAN> startup nomount;

       startup failed: ORA-01078: failure in processing system parameters

       LRM-00109: could not open parameter file '/u01/app/oracle/product/11.2.0/db_1/dbs/initdevdb1.ora'

      这个错误可以直接忽略,此时数据库状态是nomount状态。

      恢复参数文件:

     restore spfile to '+DBDATA/devdb/spfiledevdb.ora'  from '+FLASH/devdb/backupset/2016_10_11/nnsnf0_tag20161011t080656_0.261.924941219';

      ②恢复控制文件:上一步已经把spfile文件恢复到共享存储上,在恢复控制文件,必须以spfiledevdb.ora文件将数据库启动到nomount状态。

 
     修改$ORACLE_HOME/dbs下的init.ora,添加下面内容,同时将文件名字修改成pfiledevdb1.ora,二节点也执行同样的修改。

 
     同时由于在参数文件中有审计目录,因此必须创建对应的审计目录。

 
      /u01/app/oracle/admin/devdb/adump

 
     恢复控制文件:

 
     RMAN> restore controlfile from '+FLASH/devdb/backupset/2016_10_11/ncsnf0_tag20161011t080743_0.263.924941379';

 
     ③恢复数据文件:恢复数据文件之前必须将数据库处于mount状态。

 
       SQL> alter database mount;

 
       RMAN> restore database;

         RMAN> recover database;

 
    ④向集群中注册数据库信息

 
         删除server pool里面关于devdb信息:

 
        crsctl delete serverpool ora.devdb

 
        添加数据库信息:

 
        srvctl add database -d devdb -o /u01/app/oracle/product/11.2.0/db_1 -p +DBDATA/devdb/spfiledevdb.ora

 
        添加实例的信息:

 
        srvctl add instance -d devdbdb -i racdb1 -n node1

          srvctl add instance -d devdbdb -i racdb2 -n node2

 
        启动数据库资源

          srvctl start database -d racdb

 
         检查数据库资源的状态:

           srvctl status database -d racdb 

这就是本次的分享,希望大家多多支持。
       
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: