********************************************************************************************集群环境下的data guard 主库是rac 备库是单实例 单节点***************************主库 rac1 rac2 su - oracle检查各节点登录情况 crs_stat -t[root@rac1 ~]# su - oracle[oracle@rac1 ~]$ crs_stat -t [oracle@rac1 ~]$ crsctl start crs 启动 crs[oracle@rac1 ~]$ crsctl stop crs 关闭 crs[oracle@rac1 ~]$ crsctl check crs CSS appears healthyCRS appears healthyEVM appears healthy[oracle@rac1 ~]$ srvctl start asm -n rac1/rac2 启动 asm 服务[oracle@rac1 ~]$ srvctl start instance -d prod -i prod1 [oracle@rac1 ~]$ srvctl start instance -d prod -i prod2[oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 20 05:35:19 2013Copyright (c) 1982, 2005, Oracle. All rights reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - ProductionWith the Partitioning, Real Application Clusters, OLAP and Data Mining optionsSYS@ prod1 >select status from v$instance ; 检查实例状态 STATUS------------OPEN SYS@ prod1 >show parameter control;NAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time integer 7control_files string +DG1/prod/controlfile/current. 260.810115699SYS@ prod1 > create pfile='/home/oracle/initprod.ora' from spfile; 事先备份spfile 集群环境需要指定路径 不然会放于 asm磁盘组SYS@ prod1 >shutdown immediate;***************************把两个节点 全部关闭 然后启动一个节点到 mount状态[root@rac2 ~]# srvctl stop instance -d prod -i prod2 关闭节点2rac1 SYS@ prod1 > shutdown immediate;[oracle@rac1 dbs]$ ls initdw.ora orapw+ASM1 spfileprod1.ora ab_+ASM1.dat hc_+ASM1.dat init.ora spfiletemp.ora hc_prod1.dat initprod1.ora orapwprod1 init+ASM1.ora inittmp.ora snapcf_prod1.f[oracle@rac1 ~]$ sqlplus /nologSQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 20 05:41:11 2013Copyright (c) 1982, 2005, Oracle. All rights reserved.@ >conn /as sysdbaConnected to an idle instance.SYS@ prod1 >startup pfile='?/dbs/inittmp.ora';SYS@ prod1 >show parameter name;NAME TYPE VALUE------------------------------------ ----------- ------------------------------db_file_name_convert string /u01/app/oracle/oradata/orcl, +DG1/prod/datafile, /u01/app/o racle/oradata/orcl, +DG1/prod/ tempfiledb_name string proddb_unique_name string prodglobal_names boolean FALSEinstance_name string prod1lock_name_space stringlog_file_name_convert string /u01/app/oracle/oradata/orcl, +DG1/prod/onlinelog, /u01/app/NAME TYPE VALUE------------------------------------ ----------- ------------------------------ oracle/oradata/orcl, +RECOVERY /prod/onlinelogservice_names string prod[oracle@rac1 ~]$ mkdir /u01/rman_bakSYS@ prod1 >alter database create standby controlfile as '/home/oracle/stddb_controlfile.ctl' ;Database altered.; 生成备库 控制文件***************************rac1 rman备份数据库[oracle@rac1 ~]$ mkdir -p /u01/rman_bak[oracle@rac1 ~]$ rman target /RMAN> run { backup database format '/u01/rman_bak/%d_%s.bak'; }***************************rac1 修改初始化参数文件修改 归档日志存放路径 主库端(RAC)修改spfile:添加以下内容:db_unique_name 不需要 删掉此项*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,racdb)'LOG_ARCHIVE_DEST_1= 'LOCATION=/u01/arch1 VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prod'LOG_ARCHIVE_DEST_2= 'SERVICE=racdb LGWR ASYNC 最大性能模式 选择 async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=racdb'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_MAX_PROCESSES=10FAL_SERVER=racdbFAL_CLIENT=prodprod1.FAL_CLIENT=prod1prod2.FAL_CLIENT=prod2*.STANDBY_ARCHIVE_DEST='/u01/arch1'DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/racdb','+DG1/prod/datafile','/u01/app/oracle/oradata/racdb','+DG1/prod/tempfile','/u01/app/oracle/oradata/racdb','+DG2/prod/datafile'LOG_FILE_NAME_CONVERT='/disk1/oradata/racdb','+DG1/prod/onlinelog','/disk2/oradata/racdb','+RECOVERY/prod/onlinelog'STANDBY_FILE_MANAGEMENT=AUTO*************************** SYS@ prod1 >select * from v$log; 查看当前日志组 GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- 1 1 16 52428800 1 NO CURRENT 742243 23-MAR-13 2 1 15 52428800 1 YES INACTIVE 737118 23-MAR-13 3 2 11 52428800 1 NO CURRENT 742247 23-MAR-13 4 2 10 52428800 1 YES INACTIVE 629292 21-MAR-13rac1 添加standby日志 (比redo日知组多一组)alter database add standby logfile thread 1 线程1 组 5('+dg1/prod/onlinelog/std_redo01a.log' ,'+recovery/prod/onlinelog/std_redo05.log') size 50m;alter database add standby logfile thread 1 线程1 组 6('+dg1/prod/onlinelog/std_redo02a.log' ,'+recovery/prod/onlinelog/std_redo06.log') size 50m;alter database add standby logfile thread 1 线程1 组 7('+dg1/prod/onlinelog/std_redo03a.log' ,'+recovery/prod/onlinelog/std_redo07.log') size 50m;alter database add standby logfile thread 2 线程2 组 8('+dg1/prod/onlinelog/std_redo04a.log' ,'+recovery/prod/onlinelog/std_redo08.log') size 50m;alter database add standby logfile thread 2 线程2 组 9('+dg1/prod/onlinelog/std_redo04a.log' ,'+recovery/prod/onlinelog/std_redo09.log') size 50m;alter database add standby logfile thread 2 线程2 组 10('+dg1/prod/onlinelog/std_redo04a.log' ,'+recovery/prod/onlinelog/std_redo10.log') size 50m;alter database add standby logfile thread 2 线程2 4组('+dg1','+recovery') size 50m ;两个节点 故添加 线程1 线程2查看添加的standby 日志SYS@ prod1 >select group#,thread#,status from v$standby_log; GROUP# THREAD# STATUS---------- ---------- ---------- 7 1 UNASSIGNED 8 1 UNASSIGNED 9 1 UNASSIGNED 10 1 UNASSIGNED 11 2 UNASSIGNED 12 2 UNASSIGNED 13 2 UNASSIGNED 14 2 UNASSIGNED数据库物理结构发生变化 故 重建 standby 控制文件SYS@ prod1 >alter database backup controlfile to trace;SYS@ prod1 >create spfile='/home/oracle/spfileprod1.ora' from pfile; 集群环境下的spfile 只有 一句话而已***************************rac 1 启动实例SYS@ prod1 >alter database create standby controlfile as '/home/oracle/std_control02.ctl' ;Database altered. 创建新的控制文件SYS@ prod1 > startup force nomount pfile='/home/oracle/initprod.ora';SYS@ prod1 > create spfile='+DG1/PROD/spfile.ora' from pfile='?/dbs/inittmp.ora';其实创建spfile pfile 不用启动数据库 只要进入sqlplus 环境就可以了 呼呼*********************************************************************************备库环境修改[oracle@cuug dbs]$ mkdir /u01/rman_bak[oracle@cuug dbs]$ mkdir -p /u01/app/oracle/oradata/orcl/**************************************拷贝备份文件(修改host文件)rac1 [oracle@cuug dbs]$ scp /u01/rman_backup/prod_7.bak stddb:/u01/rman_backup 数据文件[oracle@cuug dbs]$ scp std_control.ctl stddb: /home/oracle 拷贝控制文件[oracle@cuug dbs]$ scp initprod.ora stddb:$ORACLE_HOME/dbs 初始化参数文件备库 启动listener [oracle@orcl ~]$ lsnrctl startLSNRCTL for Linux: Version 10.2.0.1.0 - Production on 23-MAR-2013 02:14:57Copyright (c) 1991, 2005, Oracle. All rights reserved.Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionSystem parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraLog messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.logListening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl)(PORT=1521)))Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 10.2.0.1.0 - ProductionStart Date 23-MAR-2013 02:14:58Uptime 0 days 0 hr. 0 min. 1 secTrace Level offSecurity ON: Local OS AuthenticationSNMP OFFListener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.oraListener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.logListening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=orcl)(PORT=1521)))Services Summary...Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...The command completed successfullystddb 修改初始化参数文件备库端(pfile 文件)添加以下内容:*.audit_file_dest='/u01/app/oracle/admin/racdb/adump'*.background_dump_dest='/u01/app/oracle/admin/racdb/bdump'*.compatible='10.2.0.1.0'*.control_files='/u01/app/oracle/oradata/racdb/std_control01.ctl'*.core_dump_dest='/u01/app/oracle/admin/racdb/cdump'*.db_block_size=8192*.db_domain=''*.db_file_multiblock_read_count=16*.db_name='prod'*.dispatchers='(PROTOCOL=TCP) (SERVICE=racdbXDB)'*.job_queue_processes=10*.log_archive_format='arch_%t_%s_%r.log'*.open_cursors=300*.pga_aggregate_target=94371840*.processes=150*.remote_login_passwordfile='exclusive'*.sga_target=285212672thread=1*.undo_management='AUTO'undo_tablespace='UNDOTBS1'*.user_dump_dest='/u01/app/oracle/admin/racdb/udump'db_unique_name=orcl 不是集群环境 故添加 db_unique_name *.LOG_ARCHIVE_CONFIG='DG_CONFIG=(prod,racdb)'LOG_ARCHIVE_DEST_1= 'LOCATION=/disk1/arch_racdb VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=racdb'LOG_ARCHIVE_DEST_2= 'SERVICE=prod LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prod'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLELOG_ARCHIVE_MAX_PROCESSES=5FAL_SERVER=prodFAL_CLIENT=racdb*.STANDBY_ARCHIVE_DEST='/disk1/arch_std'DB_FILE_NAME_CONVERT='+DG1/prod/datafile','/u01/app/oracle/oradata/racdb','+DG1/prod/tempfile','/u01/app/oracle/oradata/racdb','+DG2/racdb/datafile','/u01/app/oracle/oradata/racdb'LOG_FILE_NAME_CONVERT='+DG1/prod/onlinelog','/disk1/oradata/racdb','+RECOVERY/prod/onlinelog','/disk2/oradata/racdb'STANDBY_FILE_MANAGEMENT=AUTO******************************************************生成备库 口令文件[oracle@orcl dbs]$ orapwd file=orapwracdb password=oracle entries=3[oracle@orcl dbs]$ mkdir -p /u01/app/oracle/admin/racdb[oracle@orcl dbs]$ mkdir bdump cdump udump adump SYS @ orcl > show parameter arch;SYS @ orcl > show parameter name;******************************************************stddb 启动实例 [oracle@orcl dbs]$ export ORACLE_SID=orcl[oracle@orcl dbs]$ sqlplus / as sysdba[oracle@orcl dbs]$ startup nomount; SYS @ orcl >show parameter name; 检查 db_name instance_nameNAME TYPE VALUE------------------------------------ ----------- ------------------------------db_file_name_convert string +DG1/prod/datafile, /u01/app/o racle/oradata/orcl/, +DG1/prod /tempfile, /u01/app/oracle/ora data/orcldb_name string proddb_unique_name string orclglobal_names boolean FALSEinstance_name string orcllock_name_space stringlog_file_name_convert string +DG1/prod/onlinelog/, /u01/app /oracle/oradata/orclNAME TYPE VALUE------------------------------------ ----------- ------------------------------service_names string orcl ******************************************************主库修改tnsnames 添加内容如下:orcl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.170)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =orcl ) (ur=A) ) 需要通过rman连接备库 故添加此项 )) 备库修改tnsnames 添加内容如下:orcl= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp)(HOST=192.168.8.170)(PORT=1521)) (CONNECT_DATA= (SERVICE_NAME=orcl))) ************************************************************************************************************rman recover主库[oracle@rac1 admin]$ rman target /RMAN> connect auxiliary sys/oracle@orcl as sysdba; 连接辅助库 备库RMAN> run { duplicate target database for standby; }Starting Duplicate Db at 23-MAR-13using channel ORA_AUX_DISK_1contents of Memory Script:{ restore clone standby controlfile; sql clone 'alter database mount standby database';}Starting Duplicate Db at 23-MAR-13using channel ORA_AUX_DISK_1contents of Memory Script:{ restore clone standby controlfile; sql clone 'alter database mount standby database';}executing Memory ScriptStarting restore at 23-MAR-13channel ORA_AUX_DISK_1: restoring control filechannel ORA_AUX_DISK_1: copied control file copyinput filename=/home/oracle/std_control02.ctloutput filename=/u01/app/oracle/oradata/orcl/control01.ctlFinished restore at 23-MAR-13sql statement: alter database mount standby databasereleased channel: ORA_AUX_DISK_1contents of Memory Script:{ set newname for tempfile 1 to "/u01/app/oracle/oradata/orcl/temp.263.810625605"; switch clone tempfile all; set newname for datafile 1 to "/u01/app/oracle/oradata/orcl/system.256.810625497"; set newname for datafile 2 to "/u01/app/oracle/oradata/orcl/undotbs1.258.810625499"; set newname for datafile 3 to "/u01/app/oracle/oradata/orcl/sysaux.257.810625497"; set newname for datafile 4 to "/u01/app/oracle/oradata/orcl/users.259.810625499"; set newname for datafile 5 to "/u01/app/oracle/oradata/orcl/example.264.810625615"; set newname for datafile 6 to "/u01/app/oracle/oradata/orcl/undotbs2.265.810625709"; restore check readonly clone database ;}executing Memory Scriptexecuting command: SET NEWNAMErenamed temporary file 1 to /u01/app/oracle/oradata/orcl/temp.263.810625605 in control fileexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEexecuting command: SET NEWNAMEStarting restore at 23-MAR-13allocated channel: ORA_AUX_DISK_1channel ORA_AUX_DISK_1: sid=155 devtype=DISKchannel ORA_AUX_DISK_1: starting datafile backupset restorechannel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00002 to /u01/app/oracle/oradata/orcl/undotbs1.258.810625499restoring datafile 00003 to /u01/app/oracle/oradata/orcl/sysaux.257.810625497restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example.264.810625615channel ORA_AUX_DISK_1: reading from backup piece /u01/rman_bak/db_0ho52gtb_1_1_810632107.bakchannel ORA_AUX_DISK_1: restored backup piece 1piece handle=/u01/rman_bak/db_0ho52gtb_1_1_810632107.bak tag=TAG20130321T073506channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:25channel ORA_AUX_DISK_1: starting datafile backupset restorechannel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup setrestoring datafile 00001 to /u01/app/oracle/oradata/orcl/system.256.810625497restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users.259.810625499restoring datafile 00006 to /u01/app/oracle/oradata/orcl/undotbs2.265.810625709channel ORA_AUX_DISK_1: reading from backup piece /u01/rman_bak/db_0go52gtb_1_1_810632107.bakchannel ORA_AUX_DISK_1: restored backup piece 1piece handle=/u01/rman_bak/db_0go52gtb_1_1_810632107.bak tag=TAG20130321T073506channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:35Finished restore at 23-MAR-13contents of Memory Script:{ switch clone datafile all;}executing Memory Scriptdatafile 1 switched to datafile copyinput datafile copy recid=10 stamp=810786701 filename=/u01/app/oracle/oradata/orcl/system.256.810625497datafile 2 switched to datafile copyinput datafile copy recid=11 stamp=810786701 filename=/u01/app/oracle/oradata/orcl/undotbs1.258.810625499datafile 3 switched to datafile copyinput datafile copy recid=12 stamp=810786701 filename=/u01/app/oracle/oradata/orcl/sysaux.257.810625497datafile 4 switched to datafile copyinput datafile copy recid=13 stamp=810786701 filename=/u01/app/oracle/oradata/orcl/users.259.810625499datafile 5 switched to datafile copyinput datafile copy recid=14 stamp=810786701 filename=/u01/app/oracle/oradata/orcl/example.264.810625615datafile 6 switched to datafile copyinput datafile copy recid=15 stamp=810786701 filename=/u01/app/oracle/oradata/orcl/undotbs2.265.810625709Finished Duplicate Db at 23-MAR-13******************************************************备库 开始接受日志alter database recover managed standby database disconnect from session; 这是一个media recover 的过程
转载于:https://www.cnblogs.com/iyoume2008/p/9178243.html
相关资源:Oracle 11g RAC DG项目实战(共15集) 视频