RMAN备份恢复搭建ADG 11G rac-单机

来源:这里教程网 时间:2026-03-03 16:51:37 作者:

oracle dg raman 备份还原方式 1.主库确保开启归档 2.启动主库的强制日志 SQL> select force_logging from v$database; FOR --- NO SQL> alter database force logging; Database altered. 3.配置主库静态监听 LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.10)(PORT = 1521))       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))     )   ) SID_LIST_LISTENER =   (SID_LIST =   (SID_DESC =   (GLOBAL_DBNAME = test)   (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/db_1)   (SID_NAME = test)   )   ) 4.配置备库静态监听 LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.101)(PORT = 1521))       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))     )   ) SID_LIST_LISTENER =   (SID_LIST =   (SID_DESC =   (GLOBAL_DBNAME = testdg)   (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/db_1)   (SID_NAME = testdg)   )   )   lsnrctl stop ---lsnrctl start 5.配置两端的tnsnames.ora TEST =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.10 )(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = test)     )   ) TESTDG =     (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.8.101 )(PORT = 1521))     (CONNECT_DATA =       (SERVER = DEDICATED)       (SERVICE_NAME = testdg)     )   ) --tnsping 进行测试 --登录测试 6、将主库密码文件传输到备库 [oracle@localhost dbs]$ scp orapwtest 172.16.8.101:$ORACLE_HOME/dbs  --注意11g RAC的密码文件在本地,以上的版本需要从ASM里面复制出来,复制的方式参考duplicate方式里面的命令。 [oracle@localhost dbs]$ mv orapwtest orapwtestdg  --注意改名字 sqlplus sys/Oracle@test as sysdba sqlplus sys/Oracle@testdg as sysdba 7.更改主库参数 alter system set log_archive_config='dg_config=(orcl,orcldg)'; --不用配置 alter system set fal_server=testdg; --不做双向可以不用配置 alter system set fal_client=test; --不做双向可以不用配置 alter system set log_archive_dest_2='service=testdg lgwr sync affirm valid_for=(online_logfiles,primary_role) db_unique_name=testdg' scope=both; alter system set standby_file_management=auto; alter system set log_archive_format='%t_%s_%r.arch' scope=spfile; alter system set db_file_name_convert='/u01/app/oracle/oradata','+DATA' scope=spfile; alter system set log_file_name_convert='/u01/app/oracle/oradata','+DATA' scope=spfile; 8.主库创建pfile SQL> create pfile='/tmp/pfile.txt' from spfile='+DATA/test/spfiletest.ora'; 9.将主库创建的pfile复制到备库的dbs下 [oracle@localhost ~]$ scp /tmp/pfile.txt 172.16.8.101:$ORACLE_HOME/dbs/inittestdg.ora 修改备库参数 *.audit_file_dest='/u01/app/oracle/admin/testdg/adump'   --根据本地实例名建立目录 *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='/u01/app/oracle/oradata/testdg/control01.ctl'#Restore Controlfile   --根据本地路径配置,控制文件名自定义。不用在乎源文件名是什么。 *.db_block_size=8192 *.db_create_file_dest='/u01/app/oracle/oradata/testdg'   --OMF配置 *.db_domain='' *.db_name='test'   --一定要和主库一样否则在还原的时候会报错 *.db_unique_name='testdg'  --需要加上此参数 *.diagnostic_dest='/u01/app/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=testXDB)' *.fal_server='test' *.log_archive_dest_1='LOCATION=/home/oracle/arch'   --必须配置项 *.memory_target=1603272704 *.open_cursors=300 *.processes=150 *.recyclebin='OFF' *.remote_login_passwordfile='EXCLUSIVE' *.standby_file_management='AUTO'            --此参数需要注意 *.undo_tablespace='UNDOTBS1' ~                            [oracle@localhost ~]$ mkdir -p /u01/app/oracle/admin/testdg/adump [oracle@localhost ~]$ mkdir -p /u01/app/oracle/oradata [oracle@localhost ~]$ mkdir -p /home/oracle/arch 10.备库启动到nomount状态 [oracle@localhost dbs]$ export ORACLE_SID=testdg 11.主库备份 rman target=/ run{  allocate channel ch1 type disk;  allocate channel ch2 type disk;  allocate channel ch3 type disk;  CROSSCHECK BACKUP;  CROSSCHECK ARCHIVELOG ALL;  DELETE NOPROMPT OBSOLETE;  DELETE NOPROMPT EXPIRED BACKUP;  DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;  backup as compressed backupset  database format '/home/oracle/back/DB_%d_%T_%s.rman' SKIP INACCESSIBLE PLUS ARCHIVELOG format '/home/oracle/back/ARC_%d_%T_%e.rman';  release channel ch1;  release channel ch2;  release channel ch3; } 12.主库创建备库控制文件 ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/home/oracle/back/testdg.ctl'; --此操作在数据库里面执行,不在rman 13.将备份的文件拷贝到备库 [oracle@localhost ~]$ scp /home/oracle/back 172.16.8.101:/home/oracle/back 14.备库还原 14.1 备库还原控制文件 RESTORE STANDBY CONTROLFILE FROM '/home/oracle/back/testdg.ctl'; alter database mount; -- RAMAN里面执行,注意在此步骤备库alert日志会有报错,报错的内容为主库的联机日志路径和备库不同。但是可以启动到mount。先不用管还原操作执行完成之后在启动就不会有这个报错了。 14.2 还原数据库 restore database; 15.备库修改联机日志和standby log ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=MANUAL;  alter database add standby logfile group 4 size 50m;  alter database add standby logfile group 5 size 50m;  alter database add standby logfile group 6 size 50m;  alter database add standby logfile group 7 size 50m; ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO;  SQL> select * from v$logfile;     GROUP# STATUS  TYPE    MEMBER                                  IS_ ---------- ------- ------- -----------------------------------------      3       ONLINE  +DATA/test/onlinelog/group_3.263.1079743149                      2       ONLINE  +DATA/test/onlinelog/group_2.262.1079743145                      1       ONLINE  +DATA/test/onlinelog/group_1.261.1079743141                      4       STANDBY +DATA/test/onlinelog/group_4.270.1080060905                      5       STANDBY +DATA/test/onlinelog/group_5.271.1080060921                      6       STANDBY +DATA/test/onlinelog/group_6.272.1080060937                      7       STANDBY +DATA/test/onlinelog/group_7.273.1080060951               16.开启数据库进行数据同步 recover managed standby database using current logfile disconnect from session; recover managed standby database cancel; alter database open; alter database recover managed standby database using current logfile disconnect; 17.测试数据插入 完成 故障总结 1.备库需要在切归档的时候才能同步数据 原因:注意在备份之前就已经建立的standby log,在还原的时候会按照主库的日志路径还原,因备库没有相同的路径。虽然会报错但是不影响使用,直接现象为不能实时同步。 解决办法:将备库的standby log删除,重新建立问题解决。 ERROR: slave communication error with ASM WARNING: Cannot delete Oracle managed file +DATA/test/onlinelog/group_7.273.1080060951 Errors in file /u01/app/oracle/diag/rdbms/testdg/testdg/trace/testdg_ora_32425.trc: ORA-01265: Unable to delete LOG +DATA/test/onlinelog/group_7.273.1080060951 +DATA/test/onlinelog/group_7.273.1080060951 Completed: alter database drop standby logfile group 7 Mon Aug 09 02:37:53 2021 2.在备库做还原的时候报错 原因是在修改备库的参数文件时,修改了db_name和主库不一致导致还原报错。 解决办法:alter system set fal_server=test; 问题解决 3.alert日志中报错 原因是参数文件,修改时没有修改归档路径,只要参数文件写磁盘组,数据库就会启动asmb进程 WARNING: failed to start ASMB (ASM instance not found) ORA-15077: could not locate ASM instance serving a required diskgroup ORA-29701: unable to connect to Cluster Synchronization Service 4.执行16步时报错,原因是主库的日志不能传输到备库。 主库报错信息: TNS-00511: No listener     nt secondary err code: 111     nt OS err code: 0 Error 12541 received logging on to the standby Check whether the listener is up and running. FAL[server, ARC0]: FAL archive failed, see trace file. ARCH: FAL archive failed. Archiver continuing ORACLE Instance test - Archival Error. Archiver continuing. 备库报错信息: ERROR at line 1: ORA-10458: standby database requires recovery ORA-01152: file 1 was not restored from a sufficiently old backup ORA-01110: data file 1: '/u01/app/oracle/oradata/TESTDG/datafile/o1_mf_system_jk0gqlfz_.dbf 解决办法:因为在中途重启过备库服务器,忘记启动备库监听导致网络异常,监听启动后在执行16步操作问题解决。

相关推荐