RMAN利用auxiliary复制数据库
2015-07-21 16:00
465 查看
这个是经理给的一份复制备份计划,只需要利用rman智能管理复制,无需手工操作。关键字是auxiliary,在rman中使用到,其实不是什么技术名称。操作过程整理及错误收集如下。
测试连接
1 在主库上备份数据库
RMAN> backup database plus archivelog;
2 把备份片scp到目标库,路径同原库一样
scp /home/oracle/rmanbk/VICDB_1711386261_15_1_20141023.bkp 10.1.1.2:/home/oracle/rmanbk/ --包含数据文件的bkp scp /home/oracle/rmanbk/VICDB_1711386261_16_1_20141023.bkp 10.1.1.2:/home/oracle/rmanbk/ --包含控制文件的bkp scp /home/oracle/rmanbk/VICDB_1711386261_20_1_20141023.bkp 10.1.1.2:/home/oracle/rmanbk/ --包含了归档
3、编辑参数文件,使得数据库启动到nomount状态,sid与主库一致
vi initvicdb.ora db_name='vicdb' SQL> startup nomount pfile='oradata/vicl/initvicl.ora'
4、在目标数据库上创建密码文件(用于远程连接)
orapwd file=orapwvicdb password=oracle
5、配置网络
5.1 在原库和目标库上配置listener
在原库和目标库上配置listener,需要使用静态注册(原因是目标库上的数据库库只能启动到nomount状态,如果使用动态注册,那么listener的状态为blocked状态,block状态表示只能在本机进行连接是收到限制的连接)LISTENER= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.1.2)(PORT=1521)) )) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=vicdb) (ORACLE_HOME=/oracle/app/db) (SID_NAME=vicdb)) )
5.2 配置tnsnames
配置tns(rman可以在任何机器上发起连接,但是需要有tns,如目前准备在10.1.1.11上使用rman发起连接,那么就需要在10.1.1.11上配置去目标库和原库的tns)to_2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.2)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = vicdb) ) ) to_11 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.11)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = vicdb) ) )
测试连接
rman target sys/oracle@to_2 connected to target database: VICDB (not mounted) rman target sys/oracle@to_11 connected to target database: VICDB (DBID=1711386261)
6、开始做数据库复制
rman target sys/oracle@to_11 auxiliary sys/oracle@to_2 --此处的target database为10.1.1.11,auxiliary为10.1.1.2,表示要把10.1.1.11复制到10.1.1.2上) RMAN> duplicate target database to orcl nofilenamecheck;
常见问题
现象: RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux Error: 2: No such file or directory 原因:目标数据库没有启动到nomount状态 解决:启动目标数据库到nomount状态
现象: RMAN-03002: failure of Duplicate Db command at 10/23/2014 23:08:42 RMAN-05520: database name mismatch, auxiliary instance has VCDB, command specified VICDB 原因:目标库参数文件中的db_name和原库的db_name不一致导致 解决:在目标库上修改参数文件的db_name
现象: RMAN-06053: unable to perform media recovery because of missing log RMAN-06025: no backup of archived log for thread 1 with sequence 39 and starting SCN of 2144142 found to restore RMAN-06025: no backup of archived log for thread 1 with sequence 38 and starting SCN of 2144139 found to restore RMAN-06025: no backup of archived log for thread 1 with sequence 37 and starting SCN of 2142826 found to restore 原因:数据库需要恢复到原库当前log的first_change# 处,目前只有sequence#为36的归档被cp到了目标库,缺少37 38 39,故报错 解决: 方法一: 在sqlplus中执行不完全恢复 recover database using backup controlfile until cancel cancel; 方法2 将需要的归档cp到对应目录 原库上执行 [oracle@vicdb arc]$ scp * 10.1.1.2:/home/oracle/arc/ 目标库上执行: alter system set log_archive_dest_1='location=/home/oracle/arc/' ; (原因:由于log_archive_dest_1没设置,恢复的时候回去/oracle/app/db/dbs/中寻找归档文件,肯定是找不到的,故我们可以把归档路径设置为和原库一样,这样就可以找到了) SQL> recover database using backup controlfile ; ORA-00279: change 2142775 generated at 10/23/2014 22:46:17 needed for thread 1 ORA-00289: suggestion : /home/oracle/arc/1_36_861363552.dbf ORA-00280: change 2142775 for thread 1 is in sequence #36 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} auto SQL> recover database using backup controlfile until cancel
相关文章推荐
- InnoDB: Check that you do not already have another mysqld process 错误解决办法
- SQL Saturday 北京将于7月25日举办线下活动,欢迎参加
- SQL中case语句的两种方式
- MySQL插入效率改进
- DB2与Oracle 使用的区别
- Oracle 常见命令 (更新)
- PostgreSQL安装与配置详解
- MySQL性能调优my.cnf详解
- SQL注入原理以及如何避免注入
- Meteor数据库mongodb查询
- Mysql存储过程_一次性建立多张表
- CRUD---数据库SQL操作
- oracle 违反主键id错误,查看表中是否有重复的ID列的值,并删除重复数据
- iOS 把数据库文件打包到mainbundle中,查找不到路径的解决办法;以及在删除bundle中文件的可行性
- Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题
- CenOS安装Oracle 11g
- mysql中表名为关键字的处理方法
- linux下安装php扩展memcache
- linux下安装php扩展memcache
- 不同数据库标志符长度限制总结