rac 配置dg完成版

mac2022-06-30  132

********************************************************************************************集群环境下的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集) 视频
最新回复(0)