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
这就是本次的分享,希望大家多多支持。
当今世界主要流行的关系型数据库主要有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
这就是本次的分享,希望大家多多支持。
相关文章推荐
- 如何利用EasyRecovery工具进行数据恢复
- 如何在Linux环境下利用移动硬盘进行文件拷贝工作
- 如何利用VS2010进行QT开发的环境配置(win10+VS2010+QT4.8.6)
- 缓存测试分享篇:如何利用测试环境进行灰度测试缓存迁移solo
- 在Eclipse中如何利用在Anaconda中建立的Python虚拟环境进行开发
- 如何利用Ansible角色对基础设施环境进行抽象
- 如何利用闪回数据库特性恢复failover 后的dataguard 环境?
- 问题12:如何利用oracle bbed 来模拟破坏数据块,并且用RMAN进行恢复?
- RAC环境STANDBY数据库只能有一个实例在进行日志恢复工作
- 如何在RAC环境下修改Oracle字符集
- win7(64bit)利用anaconda进行theano 0.7.0的安装(anaconda+theano+cuda+vs2010编程环境搭建)
- 【视频教学】如何利用高德地图IOS SDK进行开发?
- 黄聪:如何用SQL Server内置的存储过程模板对数据库进行备份和恢复
- 如何利用神经网络结合遗传算法进行非线性函数极值寻优(1)
- <转>如何利用socket进行HTTP访问
- 域环境下利用组策略进行软件分发(下)
- INFORMIX-如何利用onpladm进行大数据量表重建
- 如何利用shell对.zip文件进行解压缩
- 如何利用cURL和python对服务端和web端进行接口测试