上一讲介绍了rac环境下,当归档日志存储在本地文件系统时的备份与恢复操作,比较麻烦的是需要同步rac各个节点的归档日志,这无疑给备份和恢复操作增加了难度和需要的时间,因而本节中介绍使用多路归档的方式来尽量避免这个问题!
一:配置多路归档
[oracle@rac1 ~]$ sqlplus sys/123456@racdb as sysdba Connected to: SQL> archive log list; SQL> conn sys/123456@racdb2 as sysdba [oracle@rac2 ~]mkdir/u01/app/oracle/rac1archivelog/[oracle@rac2 ] ssh rac1 mkdir /u01/app/oracle/rac2_archivelog/ SQL> alter system set log_archive_dest_2='SERVICE=racdb2' sid='racdb1'; SQL> alter system set log_archive_dest_2='SERVICE=racdb1' sid='racdb2'; SQL> alter system set standby_archive_dest='/u01/app/oracle/rac2_archivelog' sid='racdb1'; SQL> alter system set standby_archive_dest='/u01/app/oracle/rac1_archivelog' sid='racdb2'; SQL> alter system set log_archive_local_first=false; SQL> alter system set log_archive_max_processes=3; SQL> alter system archive log current; [root@rac1 ~]# ls /u01/app/oracle/rac1_archivelog/ [root@rac2 ~]# ls /u01/app/oracle/rac1_archivelog/ |
二:备份数据库和归档日志,需要分配通道,否则会失败
[oracle@rac1 ~]$ rman target sys/123456@racdb RMAN> backup archivelog all; Starting backup at 2011-12-22 19:15:22 RMAN> run { RMAN> list backup of database summary; List of Backups |
三:创建测试数据
[oracle@rac1 ~]$ sqlplus sys/123456@racdb as sysdba Connected to: SQL> create tablespace local_arch_test datafile size 10M; SQL> create table test.t5 tablespace local_arch_test as select * from hr.employees; SQL> select count(*) from test.t5; COUNT(*) SQL> select file_name from dba_data_files where tablespace_name in ('SYSTEM','LOCAL_ARCH_TEST'); FILE_NAME SQL> alter system archive log current; SQL> / |
四:模拟数据文件损坏
[oracle@rac1 ~]srvctlstopdatabase−dracdb−oimmediate[oracle@rac1 ] export ORACLE_SID=+ASM1 [oracle@rac1 ~]source.bashprofile[oracle@rac1 ] srvctl start database -d racdb |
五:执行恢复
[oracle@rac2 ~]srvctlstartdatabase−dracdb−omount[oracle@rac2 ] rman target sys/123456@racdb RMAN> run { allocated channel: c1 allocated channel: c2 Starting restore at 2011-12-22 20:42:10 creating datafile fno=7 name=+DATA/racdb/datafile/local_arch_test.312.770588847 Starting recover at 2011-12-22 20:42:11 starting media recovery archive log thread 1 sequence 100 is already on disk as file /u01/app/oracle/rac1_archivelog/1_100_769205632.dbf released channel: c1 released channel: c2 |
六:验证
[oracle@rac2 ~]srvctlstopdatabase−dracdb−oabort[oracle@rac2 ] srvctl start database -d racdb [oracle@rac2 ~]$ sqlplus sys/123456@racdb as sysdba Connected to: SQL> select count(*) from test.t5; COUNT(*) 本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/749587如需转载请自行联系原作者 ylw6006 |