多语言展示
当前在线:1571今日阅读:91今日分享:37

datagard for oracle 11g rac to single

oracle 11g  rac (asm)  到  单实例  的 datagard配置主库端采用:archn进程发送归档备库端采用:物理备库(mrp应用重演)配置思路:1:主库rac 开启归档模式,设置归档路径,格式(归档一定要放在共享磁盘中)2:设置主库 datagard参数3:编辑主库各个节点tnsnames.ora文件4:rman备份主库,创建pfile文件和控制文件5:scp备份集、pfile文件、控制文件、密码文件到备库主机6:备库主机还原,恢复到mount状态,并开启归档抓取进程(备库端)   1:安装rac相同版本oracle 11g 软件,不要dbca建库   2:编辑oracle 用户环境   3:创建dump目录   4:创建归档目录和数据库存放目录   5:复制文件(密码、参数、控制 文件)   6:编辑pfile参数文件(inittest.ora)   7:启动数据库到mount状态   8:rman还原数据文件   9:rman恢复数据库 10:netca创建监听并创建tnsnames.ora文件 11:开启归档抓取进程7:验证datagard是否配置成功   1:创建数据库文件验证   2:查看备库alert 日志验证rac asm环境(11.2.0.4):192.168.56.120 node1192.168.56.122 node1vip192.168.110.120 node1priv192.168.56.121 node2192.168.56.123 node2vip192.168.110.121 node2priv192.168.56.124 scanip备库主机环境:192.168.56.126考虑切换,参数的配置是双向对立的Database         DB_UNIQUE_NAME   service_names  Oracle Net Service NamePrimary              test                                test              test_rac1\ test_rac2Physical standby    test_standby       test_standby        standby_db注意:在做data guard,两个db_name都是test,DB_UNIQUE_NAME是data guard中必备的,service_names指的是实例名(这就是说ORACLE_SID=test_standby),   Oracle Net Service Name指的是对外网络服务名
方法/步骤
1

主库rac 开启归档模式,设置归档路径,格式(归档一定要放在共享磁盘中)注意:rac 归档目录设置一定要放在共享存储中详细设置参考我的经验:oracle rac 归档开启我的归档目录:+DATADG/arch

3

编辑主库各个节点tnsnames.ora文件两个节点的 tnsnames.ora:TEST =                                   (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = scanip)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test)    )  )test_rac1 =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.122)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test)       (INSTANCE_NAME = test1)    )  )test_rac2 =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.123)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test)       (INSTANCE_NAME = test2)    )  )standby_db =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.126)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test_standby)    )  )# Net_service test is for aplication befor switchover

4

rman备份主库,创建pfile文件和控制文件1:节点1上备份全库[oracle@node1 backup]$ rman target /RMAN> run{2> allocate channel c1 type disk;3> allocate channel c2 type disk;4> backup database format '/zxx_software/oracle/backup/full_%d_%T_%s_%p';5> }2:节点1全备完之后执行节点1:SQL> alter system archive log current;节点2:SQL> alter system archive log current;3:节点1 备份归档RMAN> run{2> backup archivelog all format '/zxx_software/oracle/backup/arch_%d_%T_%s_%p' delete input;3> }4:创建pfile文件SQL> create pfile='/zxx_software/oracle/backup/test_back.pfile' from spfile;5:创建控制文件SQL> alter database create standby controlfile as '/zxx_software/oracle/backup/test_back.ctl';6:创建测试表SQL> create user zxx identified by zxx;SQL> grant connect ,dba to zxx;SQL>  create table test1 (a int ,b varchar2(20));SQL> insert into test1 values(1,'aaaa');SQL> commit;

5

scp备份集、pfile文件、控制文件、密码文件到备库主机[oracle@node1 backup]$ pwd/zxx_software/oracle/backup[oracle@node1 backup]$ lltotal 366288-rw-r-----. 1 oracle asmadmin  43429888 Nov  3 05:38 arch_TEST_20141103_5_1-rw-r-----. 1 oracle asmadmin 210378752 Nov  3 05:30 full_TEST_20141103_1_1-rw-r-----. 1 oracle asmadmin  83722240 Nov  3 05:29 full_TEST_20141103_2_1-rw-r-----. 1 oracle asmadmin  18546688 Nov  3 05:30 full_TEST_20141103_3_1-rw-r-----. 1 oracle asmadmin     98304 Nov  3 05:30 full_TEST_20141103_4_1-rw-r-----. 1 oracle asmadmin  18497536 Nov  3 06:13 test_back.ctl-rw-r--r--. 1 oracle asmadmin      1279 Nov  3 06:12 test_back.pfile[oracle@node1 backup]$ scp * 192.168.56.126:/zxx_software/oracle/backup/The authenticity of host '192.168.56.126 (192.168.56.126)' can't be established.RSA key fingerprint is c3:4b:2c:9a:55:d7:16:b6:cf:4e:5f:66:a1:49:72:23.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added '192.168.56.126' (RSA) to the list of known hosts.oracle@192.168.56.126's password:arch_TEST_20141103_5_1                                             100%   41MB  13.8MB/s   00:03   full_TEST_20141103_1_1                                             100%  201MB  14.3MB/s   00:14   full_TEST_20141103_2_1                                             100%   80MB  13.3MB/s   00:06   full_TEST_20141103_3_1                                             100%   18MB  17.7MB/s   00:01   full_TEST_20141103_4_1                                             100%   96KB  96.0KB/s   00:00   test_back.ctl                                                      100%   18MB  17.6MB/s   00:01   test_back.pfile                                                    100% 1279     1.3KB/s   00:00

6

备库主机还原,恢复到mount状态,并开启归档抓取进程(备库端)1:安装rac相同版本oracle 11g 软件,不要dbca建库如何安装Oracle 11g(11.2.0.4) 软件,参考我的经验:oracle 11g(11.2.0.4) install on rhel 62:编辑oracle 用户环境export ORACLE_SID=test_standbyexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1export PATH=$ORACLE_HOME/bin:$PATHexport LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib source  /home/oracle/.bash_profile3:创建dump目录export ORACLE_SID=test_standbymkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/adumpmkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/dpdump mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID hdump mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/pfile mkdir  -p  $ORACLE_BASE/admin/$ORACLE_SID/scripts注意:Oracle 11g alert日志数据库会自动创建,默认路径:$ORACLE_BASE/diag/rdbms/中4:创建归档目录和数据库存放目录创建数据库库存放目录[oracle@oracle11g app]$ mkdir -p /u01/app/oradata/test/data 创建数据库归档目录[oracle@oracle11g app]$ mkdir -p /u01/app/oradata/test/arch  5:复制文件(密码、参数、控制 文件)复制密码文件[oracle@oracle11g backup]$ cp orapwtest_standby1 /u01/app/oracle/product/11.2.0/db_1/dbs/orapwtest复制参数文件[oracle@oracle11g backup]$ cp test_back.pfile /u01/app/oracle/product/11.2.0/db_1/dbs/inittest_standby.ora复制控制文件[oracle@oracle11g backup]$ cp test_back.ctl /u01/app/oradata/test/data/control01.dbf6:编辑pfile参数文件(inittest.ora)[oracle@oracle11g dbs]$ cat inittest.oratest_standby.__db_cache_size=230686720test_standby.__java_pool_size=4194304test_standby.__large_pool_size=4194304test_standby.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environmenttest_standby.__pga_aggregate_target=318767104test_standby.__sga_target=469762048test_standby.__shared_io_pool_size=0test_standby.__shared_pool_size=222298112test_standby.__streams_pool_size=0*.audit_file_dest='/u01/app/oracle/admin/test_standby/adump'*.audit_trail='db'*.cluster_database=false*.compatible='11.2.0.4.0'*.control_files='/u01/app/oradata/test/data/control01.dbf'*.db_block_size=8192*.db_create_file_dest='/u01/app/oradata/test/data/'*.db_domain=''*.db_file_name_convert='+DATADG/test/datafile/','+DATADG/test/tempfile/','/u01/app/oradata/test/data/','/u01/app/oradata/test/data/'*.db_name='test'*.db_unique_name='test_standby'*.fal_server='test_rac1','test_rac2'*.log_archive_config='DG_CONFIG=(test_standby,test)'*.log_archive_dest_1='LOCATION=/u01/app/oradata/test/arch/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=test_standby'*.log_archive_dest_2='SERVICE=test_rac1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test'*.log_archive_dest_state_1='ENABLE'*.log_archive_dest_state_2='ENABLE'*.log_archive_format='test_%t_%s_%r.log'*.log_archive_start=TRUE*.log_file_name_convert='+DATADG/test/onlinelog/','/u01/app/oradata/test/data/TEST_STANDBY/onlinelog/'*.memory_target=786432000*.open_cursors=300*.processes=150*.remote_login_passwordfile='exclusive'*.service_names='test_standby'*.standby_file_management='AUTO'*.thread=1*.undo_tablespace='UNDOTBS1'7:启动数据库到mount状态[oracle@oracle11g dbs]$ sqlplus / as sysdbaSQL> startup mount pfile=/u01/app/oracle/product/11.2.0/db_1/dbs/inittest_standby.ora如果遇到以下错误:ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance参考我的经验:Oracle 故障:[4]ORA-32004: obsolete ... 8:rman还原数据文件告诉控制文件备份数据文件位置RMAN> catalog backuppiece '/zxx_software/oracle/backup/full_TEST_20141103_1_1';RMAN> catalog backuppiece '/zxx_software/oracle/backup/full_TEST_20141103_2_1';RMAN> catalog backuppiece '/zxx_software/oracle/backup/full_TEST_20141103_3_1';RMAN> catalog backuppiece '/zxx_software/oracle/backup/full_TEST_20141103_4_1'; RMAN> restore database;如果报错,请参考我的经验:rac data guard rman restore database 报错9:rman恢复数据库告诉控制文件备份归档文件位置RMAN> catalog backuppiece '/zxx_software/oracle/backup/arch_TEST_20141103_5_1';恢复 数据文件到备份最新处RMAN> recover database;  10:netca创建监听并创建tnsnames.ora文件[oracle@oracle11g admin]$ vi listener.ora[oracle@oracle11g admin]$ cat listener.oraLISTENER =                                                        (ADDRESS_LIST=                                                        (ADDRESS=(PROTOCOL=tcp)(HOST= 192.168.56.126)(PORT=1521))          )                       SID_LIST_LISTENER=                                                 (SID_LIST=                                                           (SID_DESC=                                                                               (GLOBAL_DBNAME=test)                                (SID_NAME=test)                                                  (ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)                                                        )                                                                )如果担心自己创建的listener.ora格式不对,可以netca创建监听[oracle@oracle11g admin]$ cat tnsnames.oraTEST =                                   (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.126)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test_standby)    )  )test_rac1 =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.122)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test)       (INSTANCE_NAME = test1)    )  )test_rac2 =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.123)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test)       (INSTANCE_NAME = test2)    )  )standby_db =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.126)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = test_standby)    )  )# Net_service test is for aplication alter switchover11:开启归档抓取进程SQL> alter database recover managed standby database disconnect from session;

7

验证datagard是否配置成功   1:创建数据库文件验证节点1:SQL>  create tablespace zxx datafile '+DATADG/test/datafile/zxx1.dbf' size 10m;SQL> alter system archive log current;备库端:SQL> select name from v$datafile;   2:查看备库alert 日志验证备库端:[oracle@oracle11g trace]$ pwd     11g alert日志所在目录/u01/app/oracle/diag/rdbms/test/test/trace[oracle@oracle11g trace]$ cat alert_test.logMedia Recovery Log /u01/app/oradata/test/arch/test_2_18_861680022.logMedia Recovery Log /u01/app/oradata/test/arch/test_1_32_861680022.logSuccessfully added datafile 6 to media recoveryDatafile #6: '/u01/app/oradata/test/data/TEST/datafile/o1_mf_zxx_b5hs1tfb_.dbf'Media Recovery Waiting for thread 1 sequence 33 (in transit)rac端:节点1:SQL> archive log list;Database log mode        Archive ModeAutomatic archival         EnabledArchive destination        +DATADG/archOldest online log sequence     32Next log sequence to archive   33Current log sequence             33

推荐信息