楼主: mcseman

[原创] 正好有个机会安装一次RAC+DG,准备搞一搞,出个文档.

[复制链接]
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:20:512011新春纪念徽章
日期:2011-01-04 10:38:44
51#
发表于 2009-10-31 20:56 | 只看该作者
我用虚拟机装了rac+ a Single Instance Physical Standby  已经配置成功了。并能进行自动的切换.我在这里就先贴一个.



一、系统的准备工作
1.对系统IP地址的规划
[oracle@rac2 dbs]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1       localhosts
192.168.20.152  rac2               --RAC2主库
192.168.20.151  rac1               --RAC1主库
10.10.10.2      rac2-priv
10.10.10.1      rac1-priv
192.168.20.139  pri-rac            --DATAGUARD的备用库
2.安装配置好ORACLE9I RAC的数据库和数据库软件能正常的启动和关闭数据库

   INST_ID INSTANCE_NUMBER INSTANCE_NAME    HOST_NAME    STATUS
---------- --------------- ---------------- ------------ ------------
         2               2 devdb2           rac2         OPEN
         1               1 devdb1           rac1         OPEN
SQL> l
  1* select inst_id,instance_number,instance_name,host_name,status from gv$instance
SQL> /

COMP_ID  COMP_NAME                           VERSION    STATUS
-------- ----------------------------------- ---------- -----------
CATALOG  Oracle9i Catalog Views              9.2.0.4.0  VALID
CATPROC  Oracle9i Packages and Types         9.2.0.4.0  VALID
OWM      Oracle Workspace Manager            9.2.0.1.0  VALID
JAVAVM   JServer JAVA Virtual Machine        9.2.0.4.0  VALID
XML      Oracle XDK for Java                 9.2.0.6.0  VALID
CATJAVA  Oracle9i Java Packages              9.2.0.4.0  VALID
ORDIM    Oracle interMedia                   9.2.0.4.0  VALID
SDO      Spatial                             9.2.0.4.0  LOADED
CONTEXT  Oracle Text                         9.2.0.4.0  VALID
XDB      Oracle XML Database                 9.2.0.4.0  VALID
WK       Oracle Ultra Search                 9.2.0.4.0  VALID

COMP_ID  COMP_NAME                           VERSION    STATUS
-------- ----------------------------------- ---------- -----------
ODM      Oracle Data Mining                  9.2.0.1.0  LOADED
APS      OLAP Analytic Workspace             9.2.0.4.0  LOADED
XOQ      Oracle OLAP API                     9.2.0.4.0  LOADED
AMD      OLAP Catalog                        9.2.0.4.0  VALID
RAC      Oracle9i Real Application Clusters  9.2.0.4.0  VALID

16 rows selected.
SQL> l
  1* select comp_id,comp_name,version,status from dba_registry
3.安装配置好备用库上的数据库软件和配置好数据库的环境变量这些文件
RAC1和RAC2上的环境变量
[oracle@rac2 dbs]$ cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
PATH=$PATH:$HOME/bin
#ORACLE_BASE 可以定位到盘阵上/data
export ORACLE_BASE=/home/oracle/product
export ORACLE_HOME=/home/oracle/product/9.2.0.4
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=devdb2
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export NLS_LANG="American_america.zhs16gbk"
# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#export DISPLAY=:0
#export LANG=en_US
#export GDM_LANG= en_US
#export LC= en_US
#export PATH
export DBCA_RAW_CONFIG=/home/oracle/DBCA_RAW_CONFIG.txt
unset USERNAME
PRI-RAC备用库的环境变量
[oracle@pri-rac devdb]$ cat /home/oracle/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
PATH=$PATH:$HOME/bin
#ORACLE_BASE 可以定位到盘阵上/data
export ORACLE_BASE=/home/oracle/product
export ORACLE_HOME=/home/oracle/product/9.2.0.4
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin
export ORACLE_OWNER=oracle
export ORACLE_SID=devdb
export ORACLE_TERM=xterm
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export NLS_LANG="American_america.zhs16gbk"
# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#export DISPLAY=:0
#export LANG=en_US
#export GDM_LANG= en_US
#export LC= en_US
#export PATH
export DBCA_RAW_CONFIG=/home/oracle/DBCA_RAW_CONFIG.txt
unset USERNAME
4.安装配置RAC1,RAC2,PRI-RAC主机网络listener.ora文件和tnsnames.ora文件
在RAC1和RAC2上的listener.ora和tnsnames.ora文件
这个是RAC2的listener.ora文件内容
[oracle@rac2 admin]$ cat listener.ora
# LISTENER.ORA.RAC2 Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/listener.ora.rac2
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/oracle/product/9.2.0.4)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (ORACLE_HOME = /home/oracle/product/9.2.0.4)
      (SID_NAME = devdb2)
    )
  )
这个是RAC1上的listener.ora文件内容
[oracle@rac1 admin]$ cat listener.ora
# LISTENER.ORA.RAC1 Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/listener.ora.rac1
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
      )
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/oracle/product/9.2.0.4)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (ORACLE_HOME = /home/oracle/product/9.2.0.4)
      (SID_NAME = devdb1)
    )
  )
这个是RAC2的 tnsnames.ora文件内容
[oracle@rac2 admin]$ cat tnsnames.ora
# TNSNAMES.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_DEVDB1 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))


INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )

DEVDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
      (INSTANCE_NAME = devdb2)
    )
  )

DEVDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
      (INSTANCE_NAME = devdb1)
    )
  )

DEVDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = devdb)
    )
  )

LISTENERS_DEVDB =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
  )

LISTENER_DEVDB2 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))

STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
    )
  )
这个两个TNS是我们主要使用的DEVDB是做为主库的。Standby是作为备用库的TNS
这个是RAC1上的TNSNAMES.ORA文件的内容
[oracle@rac1 admin]$ cat tnsnames.ora
# TNSNAMES.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_DEVDB1 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))


INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )

DEVDB2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
      (INSTANCE_NAME = devdb2)
    )
  )

DEVDB1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
      (INSTANCE_NAME = devdb1)
    )
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
    )
  )

DEVDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = devdb)
    )
  )

LISTENERS_DEVDB =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
  )

LISTENER_DEVDB2 =
  (ADDRESS = (PROTOCOL = TCP)(HOST = rac2)(PORT = 1521))
以上在配置好要进行相应的测试,也测试能否连同各个数据库
这个pri-rac备用库的listener.ora和tnsnames.ora文件内容
[oracle@pri-rac admin]$ cat listener.ora
# LISTENER.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521))
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = devdb)
      (ORACLE_HOME = /home/oracle/product/9.2.0.4)
      (SID_NAME = devdb)
    )
  )
以下是tnsname.ora文件内容
[oracle@pri-rac admin]$ cat tnsnames.ora
# TNSNAMES.ORA Network Configuration File: /home/oracle/product/9.2.0.4/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.139)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = devdb)
    )
  )


DEVDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.151)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.20.152)(PORT = 1521))
      (LOAD_BALANCE = yes)
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = devdb)
    )
  )
以上在配置好要进行相应的测试,也测试能否连同各个数据库
5.安装和配置pri-rac上的参数文件initdevdb.ora文件
安装和配置pri-rac上的参数文件initdevdb.ora文件,并配置好相应的密码文件和dataguard的相关参数。
其实initdevdb.ora文件可以从RAC1或者RAC2的机器上COPY过来,然后再把带有RAC的项目去掉
$sqlpluc /nolog
SQL>conn / as sysdba
SQL>create pfile from spfile;
scp $ORACLE_HOME/dbs/initdevdb1.ora pri-ra:$ORACLE_HOME/dbs
再修改相应的的参数,以下是pri-rac上的initdevdb.ora文件内容:

[oracle@pri-rac dbs]$ cat initdevdb.ora
*.aq_tm_processes=1
*.background_dump_dest='/home/oracle/product/admin/devdb/bdump'
*.compatible='9.2.0.0.0'
*.control_files='/home/oracle/product/oradata/devdb/control01.ctl','/home/oracle/product/oradata/devdb/control02.ctl','/home/oracle/product/oradata/devdb/control03.ctl'
*.core_dump_dest='/home/oracle/product/admin/devdb/cdump'
*.db_block_size=8192
*.db_cache_size=33554432
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='devdb'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=devdbXDB)'
*.fast_start_mttr_target=300
*.hash_join_enabled=TRUE
*.instance_name='devdb'
*.java_pool_size=20971520
*.job_queue_processes=10
*.large_pool_size=33554432
*.open_cursors=300
*.pga_aggregate_target=25165824
*.processes=150
*.query_rewrite_enabled='FALSE'
*.remote_login_passwordfile='EXCLUSIVE'
*.shared_pool_size=33554432
*.sort_area_size=524288
*.star_transformation_enabled='FALSE'
*.timed_statistics=TRUE
*.undo_management='AUTO'
*.undo_retention=10800
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/home/oracle/product/admin/devdb/udump'

###########################################
# DATA GURAD  备用库的参数配置
###########################################
*.aq_tm_processes=1
#*.compatible='9.2.0.0.0'
*.log_archive_start=true
*.log_archive_dest_1='LOCATION=/home/oracle/archive/primary'  --本地归档的归档日志位置
*.log_archive_dest_2='service=devdb mandatory reopen=60'      --传输到备用库上的归档日志位置
*.log_archive_format='%t_%s.dbf'
*.db_file_name_convert='/home/oracle/product/oradata/devdb/','/home/oracle/product/oradata/devdb/'
*.log_file_name_convert='/home/oracle/product/oradata/devdb/','/home/oracle/product/oradata/devdb/'
*.utl_file_dir='/home/oracle'
*.standby_archive_dest='/home/oracle/archive/primary'   --备用库上的归档日志目录
*.standby_file_management='AUTO'
*.fal_server='devdb'
*.fal_client='standby'
在这里一定要注意db_file_name_convert,log_file_name_convert参数的值配置,在RMAN恢复他的时候,要采用,如且一定要保证配置的正确。同时也要创建好相应的目录$ORACLE_BASE/admin/devdb/bdump cdump这些相应的目录,如果感觉难创建可以直接从RAC1或者RAC2上COPY过来,然后修改下alter_devdb.log文件,就OK了。
6.配置NFS在PRI-RAC上配置
修改pri-rac备库机器上的/etc/exports文件
[oracle@pri-rac dbs]$ cat /etc/exports
/home/oracle/product/backup     *(async,rw)
添加此行。
启动portmap      service portmap start
启动NFS          service NFS start
[root@pri-rac ~]# service nfs restart
关闭 NFS mountd:[失败]
关闭 NFS 守护进程:[失败]
关闭 NFS quotas:[失败]
关闭 NFS 服务: [失败]
启动 NFS 服务: [  确定  ]
关掉 NFS 配额:[  确定  ]
启动 NFS 守护进程:[  确定  ]
启动 NFS mountd:[  确定  ]
在RAC1和RAC2的机器上分别挂载上此目录
[root@rac2 bin]# mount -t nfs -o rw,noac,hard,timeo=600,wsize=32768,rsize=32768,vers=3,proto=tcp  192.168.20.139:/home/oracle/product/backup /home/oracle/product/backup
[root@rac2 bin]# df -h
Filesystem            容量  已用 可用 已用% 挂载点
/dev/sda1              13G  5.5G  6.7G  45% /
none                  345M     0  345M   0% /dev/shm
192.168.20.139:/home/oracle/product/backup
                       13G  7.5G  4.8G  61% /home/oracle/product/backup
上面此目录要在RAC1和RAC2上分别挂载上。
到此准备工作已经完成。下面要开始备份RAC库,以及他的控制文件和日志文件

使用道具 举报

回复
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:20:512011新春纪念徽章
日期:2011-01-04 10:38:44
52#
发表于 2009-10-31 20:57 | 只看该作者
二、为physical standby库备份RAC数据库
在做好以上这些准备后,我们就可以开始备份RAC数据库了。
全库备份RAC数据库以及控制文件
run {
allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb1;
allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb2;
backup database plus archivelog delete all input;
backup current controlfile for standby;
release channel c1;
}


RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect  
sys/stu01@devdb1;
3> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect  
sys/stu01@devdb2;
4> backup database ;
5> release channel c1;
6> release channel c2;
7> }

allocated channel: c1
channel c1: sid=24 devtype=DISK

allocated channel: c2
channel c2: sid=19 devtype=DISK

Starting backup at 23-OCT-09
channel c1: starting full datafile backupset
channel c1: specifying datafile(s) in backupset
channel c2: starting full datafile backupset
channel c2: specifying datafile(s) in backupset
input datafile fno=00002 name=/home/oracle/product/oradata/devdb/undotbs01.dbf
input datafile fno=00011 name=/home/oracle/product/oradata/devdb/undotbs02.dbf
input datafile fno=00005 name=/home/oracle/product/oradata/devdb/example01.dbf
input datafile fno=00008 name=/home/oracle/product/oradata/devdb/tools01.dbf
input datafile fno=00004 name=/home/oracle/product/oradata/devdb/drsys01.dbf
input datafile fno=00007 name=/home/oracle/product/oradata/devdb/odm01.dbf
channel c2: starting piece 1 at 23-OCT-09
including current SPFILE in backupset
including current controlfile in backupset
input datafile fno=00001 name=/home/oracle/product/oradata/devdb/system01.dbf
input datafile fno=00010 name=/home/oracle/product/oradata/devdb/xdb01.dbf
input datafile fno=00006 name=/home/oracle/product/oradata/devdb/indx01.dbf
input datafile fno=00009 name=/home/oracle/product/oradata/devdb/users01.dbf
input datafile fno=00003 name=/home/oracle/product/oradata/devdb/cwmlite01.dbf
channel c1: starting piece 1 at 23-OCT-09
channel c2: finished piece 1 at 23-OCT-09
piece handle=/home/oracle/product/backup/full_02kshfm8_1_1_%I.dbf comment=NONE
channel c2: backup set complete, elapsed time: 00:00:57
channel c1: finished piece 1 at 23-OCT-09
piece handle=/home/oracle/product/backup/full_01kshfm0_1_1_%I.dbf comment=NONE
channel c1: backup set complete, elapsed time: 00:01:12
Finished backup at 23-OCT-09

released channel: c1

released channel: c2
备份RAC数据库的归档日志:脚本如下:
run {
allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb1;
allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb2;
sql 'alter system switch logfile';
backup archivelog all delete all input;
release channel c1;
release channel c2;
}
三、恢复physical standby数据库
在恢复之前要进行检查RAC1和RAC2数据库上的归档日志序列
[oracle@rac1 backup]$ sqlplus /nolog

SQL*Plus: Release 9.2.0.4.0 - Production on Mon Oct 26 11:27:35 2009

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

SQL> conn / as sysdba
Connected.
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /home/oracle/archive/primary
Oldest online log sequence     26
Next log sequence to archive   27
Current log sequence           27

RAC2上的归档日志序列
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /home/oracle/archive/primary
Oldest online log sequence     35
Next log sequence to archive   36
Current log sequence           36
恢复physical standby数据库的脚本如下:
run
{
allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb1;
allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect sys/stu01@devdb2;
allocate auxiliary channel ac1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf';
allocate auxiliary channel ac2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf';
set until sequence 26 thread 1;
set until sequence 35 thread 2;
duplicate target database for standby nofilenamecheck;
}
脚本执行如下:
[oracle@rac1 backup]$ $ORACLE_HOME/bin/rman target / auxiliary sys/stu01@standby

Recovery Manager: Release 9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

connected to target database: DEVDB (DBID=599879186)
connected to auxiliary database: devdb (not mounted)

RMAN> run
2> {
3> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

4> 5> sys/stu01@devdb1;
6> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

7> 8> sys/stu01@devdb2;
9> allocate auxiliary channel ac1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf';
10> allocate auxiliary channel ac2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf';
11> set until sequence 26 thread 1;
12> set until sequence 35 thread 2;
13> duplicate target database for standby nofilenamecheck;
14> }

using target database controlfile instead of recovery catalog
allocated channel: c1
channel c1: sid=23 devtype=DISK

allocated channel: c2
channel c2: sid=24 devtype=DISK

allocated channel: ac1
channel ac1: sid=14 devtype=DISK

allocated channel: ac2
channel ac2: sid=15 devtype=DISK

executing command: SET until clause

executing command: SET until clause

Starting Duplicate Db at 26-OCT-09

printing stored script: Memory Script
{
   restore clone standby controlfile to clone_cf;
   replicate clone controlfile from clone_cf;
   sql clone 'alter database mount standby database';
}
executing script: Memory Script

Starting restore at 26-OCT-09

channel ac1: starting datafile backupset restore
channel ac1: restoring controlfile
output filename=/home/oracle/product/oradata/devdb/control01.ctl
channel ac1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0nksop9h_1_1_%I.dbf tag=TAG20091026T104505 params=NULL
channel ac1: restore complete
Finished restore at 26-OCT-09

replicating controlfile
input filename=/home/oracle/product/oradata/devdb/control01.ctl
output filename=/home/oracle/product/oradata/devdb/control02.ctl
output filename=/home/oracle/product/oradata/devdb/control03.ctl

sql statement: alter database mount standby database

printing stored script: Memory Script
{
   set until scn  892382;
   set newname for datafile  1 to
"/home/oracle/product/oradata/devdb/system01.dbf";
   set newname for datafile  2 to
"/home/oracle/product/oradata/devdb/undotbs01.dbf";
   set newname for datafile  3 to
"/home/oracle/product/oradata/devdb/cwmlite01.dbf";
   set newname for datafile  4 to
"/home/oracle/product/oradata/devdb/drsys01.dbf";
   set newname for datafile  5 to
"/home/oracle/product/oradata/devdb/example01.dbf";
   set newname for datafile  6 to
"/home/oracle/product/oradata/devdb/indx01.dbf";
   set newname for datafile  7 to
"/home/oracle/product/oradata/devdb/odm01.dbf";
   set newname for datafile  8 to
"/home/oracle/product/oradata/devdb/tools01.dbf";
   set newname for datafile  9 to
"/home/oracle/product/oradata/devdb/users01.dbf";
   set newname for datafile  10 to
"/home/oracle/product/oradata/devdb/xdb01.dbf";
   set newname for datafile  11 to
"/home/oracle/product/oradata/devdb/undotbs02.dbf";
   restore
   check readonly
   clone database
   ;
}
executing script: Memory Script

executing command: SET until clause

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting restore at 26-OCT-09

channel ac1: starting datafile backupset restore
channel ac1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /home/oracle/product/oradata/devdb/system01.dbf
restoring datafile 00003 to /home/oracle/product/oradata/devdb/cwmlite01.dbf
restoring datafile 00006 to /home/oracle/product/oradata/devdb/indx01.dbf
restoring datafile 00009 to /home/oracle/product/oradata/devdb/users01.dbf
restoring datafile 00010 to /home/oracle/product/oradata/devdb/xdb01.dbf
channel ac2: starting datafile backupset restore
channel ac2: specifying datafile(s) to restore from backup set
restoring datafile 00002 to /home/oracle/product/oradata/devdb/undotbs01.dbf
restoring datafile 00004 to /home/oracle/product/oradata/devdb/drsys01.dbf
restoring datafile 00005 to /home/oracle/product/oradata/devdb/example01.dbf
restoring datafile 00007 to /home/oracle/product/oradata/devdb/odm01.dbf
restoring datafile 00008 to /home/oracle/product/oradata/devdb/tools01.dbf
restoring datafile 00011 to /home/oracle/product/oradata/devdb/undotbs02.dbf
channel ac2: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0kksop7j_1_1_%I.dbf tag=TAG20091026T104403 params=NULL
channel ac2: restore complete
channel ac1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0jksop7j_1_1_%I.dbf tag=TAG20091026T104403 params=NULL
channel ac1: restore complete
Finished restore at 26-OCT-09

printing stored script: Memory Script
{
   switch clone datafile all;
}
executing script: Memory Script

datafile 2 switched to datafile copy
input datafilecopy recid=12 stamp=701263595 filename=/home/oracle/product/oradata/devdb/undotbs01.dbf
datafile 3 switched to datafile copy
input datafilecopy recid=13 stamp=701263595 filename=/home/oracle/product/oradata/devdb/cwmlite01.dbf
datafile 4 switched to datafile copy
input datafilecopy recid=14 stamp=701263595 filename=/home/oracle/product/oradata/devdb/drsys01.dbf
datafile 5 switched to datafile copy
input datafilecopy recid=15 stamp=701263595 filename=/home/oracle/product/oradata/devdb/example01.dbf
datafile 6 switched to datafile copy
input datafilecopy recid=16 stamp=701263595 filename=/home/oracle/product/oradata/devdb/indx01.dbf
datafile 7 switched to datafile copy
input datafilecopy recid=17 stamp=701263595 filename=/home/oracle/product/oradata/devdb/odm01.dbf
datafile 8 switched to datafile copy
input datafilecopy recid=18 stamp=701263595 filename=/home/oracle/product/oradata/devdb/tools01.dbf
datafile 9 switched to datafile copy
input datafilecopy recid=19 stamp=701263595 filename=/home/oracle/product/oradata/devdb/users01.dbf
datafile 10 switched to datafile copy
input datafilecopy recid=20 stamp=701263596 filename=/home/oracle/product/oradata/devdb/xdb01.dbf
datafile 11 switched to datafile copy
input datafilecopy recid=21 stamp=701263596 filename=/home/oracle/product/oradata/devdb/undotbs02.dbf
Finished Duplicate Db at 26-OCT-09
released channel: c1
released channel: c2
released channel: ac1
released channel: ac2
我们看到数据库恢复成功。

使用道具 举报

回复
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:20:512011新春纪念徽章
日期:2011-01-04 10:38:44
53#
发表于 2009-10-31 20:58 | 只看该作者
四、启动physical standby 到恢复模式
Sqlplus /nolog
Conn / as sysdba
SQL>alter database reover managed standby database disconnect from session;
执行完毕,我们查看PRI-RAC库的警告日志:
Full restore complete of datafile 11 /home/oracle/product/oradata/devdb/undotbs02.dbf
  checkpoint is 887207
Mon Oct 26 11:26:32 2009
Restarting dead background process QMN0
QMN0 started with pid=9
Mon Oct 26 11:26:34 2009
Full restore complete of datafile 1 /home/oracle/product/oradata/devdb/system01.dbf
  checkpoint is 887209
Mon Oct 26 11:26:36 2009
。。。。
。。。。。
Mon Oct 26 11:37:30 2009
Attempt to start background Managed Standby Recovery process
MRP0 started with pid=18
MRP0: Background Managed Standby Recovery process started
Starting datafile 1 recovery in thread 1 sequence 22
Datafile 1: '/home/oracle/product/oradata/devdb/system01.dbf'
Starting datafile 2 recovery in thread 2 sequence 33
Datafile 2: '/home/oracle/product/oradata/devdb/undotbs01.dbf'
Starting datafile 3 recovery in thread 1 sequence 22
Datafile 3: '/home/oracle/product/oradata/devdb/cwmlite01.dbf'
Starting datafile 4 recovery in thread 2 sequence 33
Datafile 4: '/home/oracle/product/oradata/devdb/drsys01.dbf'
Starting datafile 5 recovery in thread 2 sequence 33
Datafile 5: '/home/oracle/product/oradata/devdb/example01.dbf'
Datafile 10: '/home/oracle/product/oradata/devdb/xdb01.dbf'
Starting datafile 11 recovery in thread 2 sequence 33
Datafile 11: '/home/oracle/product/oradata/devdb/undotbs02.dbf'
Media Recovery Waiting for thread 2 seq# 33
Fetching gap sequence for thread 2, gap sequence 33-35
Trying FAL server: primary
Mon Oct 26 11:37:36 2009
Completed: alter database recover managed standby database di
Mon Oct 26 11:37:50 2009
Failed to request gap sequence. Thread #: 2, gap sequence: 33-35
All FAL server has been attempted.
发现数据库不能进行恢复,他提示需要thread #2 sequence 33-35号的日志。的却。在我们上面备份数据库的时候,已经备份了相应的归档日志,并把相应的归档日志给删除了。因此我们需要恢复恢复归档日志thread 2 的33-35号
下面进行恢复归档日志:
[oracle@rac2 dbs]$ $ORACLE_HOME/bin/rman target /

Recovery Manager: Release 9.2.0.4.0 - Production

Copyright (c) 1995, 2002, Oracle Corporation.  All rights reserved.

connected to target database: DEVDB (DBID=599879186)

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 35 thread 2;
9> }

using target database controlfile instead of recovery catalog
allocated channel: c1
channel c1: sid=27 devtype=DISK

allocated channel: c2
channel c2: sid=24 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=2 sequence=35
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0qksoqtv_1_1_%I.dbf tag=TAG20091026T111303 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 34 thread 2;
9> }

allocated channel: c1
channel c1: sid=27 devtype=DISK

allocated channel: c2
channel c2: sid=24 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=2 sequence=34
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0oksoqpi_1_1_%I.dbf tag=TAG20091026T111043 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 33 thread 2;
9> }

allocated channel: c1
channel c1: sid=27 devtype=DISK

allocated channel: c2
channel c2: sid=24 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=2 sequence=33
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0mksop9f_1_1_%I.dbf tag=TAG20091026T104503 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

同时把thread 1 的序列从22-26的也恢复出来
RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 22 thread 1;
9> }

allocated channel: c1
channel c1: sid=24 devtype=DISK

allocated channel: c2
channel c2: sid=19 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=1 sequence=22
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0lksop9f_1_1_%I.dbf tag=TAG20091026T104503 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 23 thread 1;
9> }

allocated channel: c1
channel c1: sid=24 devtype=DISK

allocated channel: c2
channel c2: sid=19 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=1 sequence=23
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0pksoqpj_1_1_%I.dbf tag=TAG20091026T111043 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

RMAN>

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 24 thread 1;
9> }

allocated channel: c1
channel c1: sid=24 devtype=DISK

allocated channel: c2
channel c2: sid=19 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=1 sequence=24
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0pksoqpj_1_1_%I.dbf tag=TAG20091026T111043 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 25 thread 1;
9> }

allocated channel: c1
channel c1: sid=24 devtype=DISK

allocated channel: c2
channel c2: sid=19 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=1 sequence=25
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0rksoqtv_1_1_%I.dbf tag=TAG20091026T111303 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

RMAN> run {
2> allocate channel c1 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

3> 4> sys/stu01@devdb1;
5> allocate channel c2 device type disk format '/home/oracle/product/backup/full_%U_%I.dbf' connect

6> 7> sys/stu01@devdb2;
8> restore archivelog sequence 26 thread 1;
9> }

allocated channel: c1
channel c1: sid=24 devtype=DISK

allocated channel: c2
channel c2: sid=19 devtype=DISK

Starting restore at 26-OCT-09

channel c1: starting archive log restore to default destination
channel c1: restoring archive log
archive log thread=1 sequence=26
channel c1: restored backup piece 1
piece handle=/home/oracle/product/backup/full_0rksoqtv_1_1_%I.dbf tag=TAG20091026T111303 params=NULL
channel c1: restore complete
Finished restore at 26-OCT-09
released channel: c1
released channel: c2

[oracle@rac1 ~]$ cd archive/primary/
[oracle@rac1 primary]$ ls
1_27.dbf  1_28.dbf  1_29.dbf  1_30.dbf  1_31.dbf  1_32.dbf  2_33.dbf  2_34.dbf  2_35.dbf
我们看到2_33.dbf  2_34.dbf  2_35.dbf恢复是成功的,我们手动的把其COPY到PRI-RAC数据库上。
[oracle@rac1 primary]$ scp 2*.dbf pri-rac:/home/oracle/archive/primary
The authenticity of host 'pri-rac (192.168.20.139)' can't be established.
RSA key fingerprint is 24:06:8e:b5:32:95:67:13:a3:2a:07:51:77:72:8e:9f.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'pri-rac,192.168.20.139' (RSA) to the list of known hosts.
oracle@pri-rac's password:
2_33.dbf                                                                  100%   65KB  65.0KB/s   00:00   
2_34.dbf                                                                  100% 1577KB   1.5MB/s   00:00   
2_35.dbf                                                                  100%  168KB 167.5KB/s   00:00
把其一起都COPY到PRI-RAC上,然后再在SQLPLUS上让physical standby到恢复模式
SQL>alter database recover managed standby database cancel;
SQL>alter database recover managed standby database disconnect from session;
ALTER DATABASE RECOVER CANCEL
Media Recovery Cancelled
Completed: ALTER DATABASE RECOVER CANCEL
Mon Oct 26 13:42:31 2009
Restarting dead background process QMN0
QMN0 started with pid=17
Mon Oct 26 13:43:06 2009
alter database recover managed standby database disconnect from session
Mon Oct 26 13:43:06 2009
Attempt to start background Managed Standby Recovery process
MRP0 started with pid=17
MRP0: Background Managed Standby Recovery process started
Starting datafile 1 recovery in thread 2 sequence 44
Datafile 1: '/home/oracle/product/oradata/devdb/system01.dbf'
Starting datafile 2 recovery in thread 2 sequence 44
Datafile 2: '/home/oracle/product/oradata/devdb/undotbs01.dbf'
Starting datafile 3 recovery in thread 2 sequence 44
Datafile 3: '/home/oracle/product/oradata/devdb/cwmlite01.dbf'
Starting datafile 4 recovery in thread 2 sequence 44
Datafile 4: '/home/oracle/product/oradata/devdb/drsys01.dbf'
Starting datafile 5 recovery in thread 2 sequence 44
Datafile 5: '/home/oracle/product/oradata/devdb/example01.dbf'
Starting datafile 6 recovery in thread 2 sequence 44
Datafile 6: '/home/oracle/product/oradata/devdb/indx01.dbf'
Starting datafile 7 recovery in thread 2 sequence 44
Datafile 7: '/home/oracle/product/oradata/devdb/odm01.dbf'
Starting datafile 8 recovery in thread 2 sequence 44
Datafile 8: '/home/oracle/product/oradata/devdb/tools01.dbf'
Starting datafile 9 recovery in thread 2 sequence 44
Datafile 9: '/home/oracle/product/oradata/devdb/users01.dbf'
Starting datafile 10 recovery in thread 2 sequence 44
Datafile 10: '/home/oracle/product/oradata/devdb/xdb01.dbf'
Starting datafile 11 recovery in thread 2 sequence 44
Datafile 11: '/home/oracle/product/oradata/devdb/undotbs02.dbf'
Media Recovery Waiting for thread 2 seq# 44
Mon Oct 26 13:43:12 2009
Completed: alter database recover managed standby database di
Mon Oct 26 13:43:56 2009
Media Recovery Log /home/oracle/archive/primary/2_44.dbf
Media Recovery Log /home/oracle/archive/primary/1_33.dbf
Media Recovery Log /home/oracle/archive/primary/1_34.dbf
Media Recovery Waiting for thread 1 seq# 35
Media Recovery Log /home/oracle/archive/primary/1_35.dbf
Media Recovery Log /home/oracle/archive/primary/2_45.dbf
Media Recovery Log /home/oracle/archive/primary/1_36.dbf
Media Recovery Waiting for thread 2 seq# 46
Mon Oct 26 13:44:31 2009
alter database recover managed standby database disconnect from session
Mon Oct 26 13:45:01 2009
ORA-1153 signalled during: alter database recover managed standby database di...
我们看到恢复是成功的。至此我们的physical standby的备用库就建立好了。现在要修改主库,以让主库的日志传输过来。

使用道具 举报

回复
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:20:512011新春纪念徽章
日期:2011-01-04 10:38:44
54#
发表于 2009-10-31 20:59 | 只看该作者
五、修改主库的参数,让归档日志传输到备用库上
1.修改主库的参数,让归档日志传输到备用库pri-rac上
在RAC1上进行操作
alter system set log_archive_dest_1='LOCATION=/home/oracle/archive/primary' scope=both;
alter system set log_archive_dest_2='service=standby mandatory reopen=60' scope=both;
alter system set log_file_name_convert ='/home/oracle/product/oradata/devdb/', '/home/oracle/product/oradata/devdb/' scope=both;
alter system set db_file_name_convert='/home/oracle/product/oradata/devdb/', '/home/oracle/product/oradata/devdb/' scope=both;

alter system set standby_archive_dest='/home/oracle/archive/primary/' scope=both;
alter system set tandby_file_management=AUTO scope=both;
alter system set fal_server=devdb scope=both;
alter system set fal_client=standby scope=both;
完成后,我们应该能看到RAC1和RAC2上的归档日志已经完全传输到了pri-rac上。
2.添加在线联机日志到备用库上
添加的联机日志组(N+1)*thread 的个数,在我们的RAC中有个线程,每个RAC有2组。在我们的备用库中要创建6组备用库的联机在线日志。
alter database add standby logfile group 5 '/home/oracle/product/oradata/devdb/redo05_1.log' size 10m;
alter database add standby logfile group 6 '/home/oracle/product/oradata/devdb/redo06_1.log' size 10m;
alter database add standby logfile group 7 '/home/oracle/product/oradata/devdb/redo07_1.log' size 10m;
alter database add standby logfile group 8 '/home/oracle/product/oradata/devdb/redo08_1.log' size 10m;
alter database add standby logfile group 9 '/home/oracle/product/oradata/devdb/redo09_1.log' size 10m;
alter database add standby logfile group 10 '/home/oracle/product/oradata/devdb/redo10_1.log' size 10m;
至此我们的DATAGUARD就配置完成了。
六、主库和备用库的切换测试
1.主库切换到备用
在RAC的主库和备用库切换测试中,我们要关闭掉RAC中的一个接点,但是我们首先也要进行下日志的切换,以确定归档日志已经传输到备用接点,然后再关闭数据库。
在RAC1上操作。
SQL>connect / as sysdba
SQL>alter system switch logfile;
SQL>/
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
在关闭前一定要确认归档日志已经传输到备用接点。在关闭完RAC1后,我们在RAC2上操作
SQL> /

DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS
---------------- -------------------- ------------------
PRIMARY          MAXIMUM PERFORMANCE  SESSIONS ACTIVE

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /home/oracle/archive/primary
Oldest online log sequence     45
Next log sequence to archive   46
Current log sequence           46
SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> /

System altered.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /home/oracle/archive/primary
Oldest online log sequence     49
Next log sequence to archive   50
Current log sequence           50
然后在备用库操作:
SQL> select database_role,protection_mode,switchover_status from v$database;

DATABASE_ROLE    PROTECTION_MODE      SWITCHOVER_STATUS
---------------- -------------------- ------------------
PHYSICAL STANDBY MAXIMUM PERFORMANCE  SESSIONS ACTIVE

SQL> select THREAD# ,SEQUENCE#,archived,applied from v$archived_log;

   THREAD#  SEQUENCE# ARC APP
---------- ---------- --- ---
         1         27 YES YES
         1         28 YES YES
         2         36 YES YES
         1         29 YES YES
         2         37 YES YES
         1         30 YES YES
         2         38 YES YES
         2         39 YES YES
         2         40 YES YES
         1         31 YES YES
         1         32 YES YES

   THREAD#  SEQUENCE# ARC APP
---------- ---------- --- ---
         2         41 YES YES
         2         42 YES YES
         2         43 YES YES
         1         33 YES YES
         1         34 YES YES
         1         22 YES YES
         1         23 YES YES
         1         24 YES YES
         1         25 YES YES
         1         26 YES YES
         2         44 YES YES

   THREAD#  SEQUENCE# ARC APP
---------- ---------- --- ---
         1         35 YES YES
         1         36 YES YES
         2         45 YES YES
         2         46 YES YES
         1         37 YES YES
         2         47 YES YES
         1         38 YES YES
         2         48 YES YES
         1         39 YES YES
         2         49 YES YES
         1         40 YES NO

33 rows selected.
确认日志是恢复成功的,我们现在可以进行切换了。
SQL> alter database recover managed standby database disconnect from session;
alter database recover managed standby database disconnect from session
*
ERROR at line 1:
ORA-01153: an incompatible media recovery is active

进行主库到备用库的切换
在RAC2上操作:
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
------------------
SESSIONS ACTIVE

SQL> alter database commit to switchover to physical standby with session shutdown;

Database altered.

SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area  252777592 bytes
Fixed Size                   451704 bytes
Variable Size             218103808 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
SQL> alter database mount standby database;

Database altered.

SQL> alter database recover managed standby database disconnect from session;

Database altered.

SQL>

SQL> select database_role,switchover_status from v$database;

DATABASE_ROLE    SWITCHOVER_STATUS
---------------- ------------------
PHYSICAL STANDBY SESSIONS ACTIVE
我们看到切换是成功的。下面将进行备用库到主库的切换测试。
2.备用库切换到主库切换测试
在PRI-RAC机器上操作。
SQL> select switchover_status from v$database;

SWITCHOVER_STATUS
------------------
SESSIONS ACTIVE

SQL> alter database commit to switchover to primary witch session shutdown;
alter database commit to switchover to primary witch session shutdown
                                               *
ERROR at line 1:
ORA-00905: missing keyword


SQL> alter database commit to switchover to primary with session shutdown;

Database altered.

SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup;
ORACLE instance started.

Total System Global Area  139531744 bytes
Fixed Size                   452064 bytes
Variable Size             104857600 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
Database opened.



SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIM
------------- ---------
         1          1          0   10485760          1 YES UNUSED
            0

         2          1         42   10485760          1 NO  CURRENT
       926714 26-OCT-09

         3          2          0   10485760          1 YES UNUSED
            0


    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS
---------- ---------- ---------- ---------- ---------- --- ----------------
FIRST_CHANGE# FIRST_TIM
------------- ---------
         4          2         51   10485760          1 NO  CURRENT
       926714 26-OCT-09


SQL> select * from v$logfile;

    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
         2         ONLINE
/home/oracle/product/oradata/devdb/redo02.log

         1         ONLINE
/home/oracle/product/oradata/devdb/redo01.log

         3         ONLINE
/home/oracle/product/oradata/devdb/redo2_01.log


    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
         4         ONLINE
/home/oracle/product/oradata/devdb/redo2_02.log

         5         STANDBY
/home/oracle/product/oradata/devdb/redo05_1.log

         6         STANDBY
/home/oracle/product/oradata/devdb/redo06_1.log


    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
         7         STANDBY
/home/oracle/product/oradata/devdb/redo07_1.log

         8         STANDBY
/home/oracle/product/oradata/devdb/redo08_1.log

         9         STANDBY
/home/oracle/product/oradata/devdb/redo09_1.log


    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
        10         STANDBY
/home/oracle/product/oradata/devdb/redo010_1.log


10 rows selected.

SQL> select database_role,switchover_status from v$database;

DATABASE_ROLE    SWITCHOVER_STATUS
---------------- ------------------
PRIMARY          SESSIONS ACTIVE
[oracle@pri-rac devdb]$ ls
control01.ctl  cwmlite01.dbf  indx01.dbf     redo05_1.log  redo08_1.log  tools01.dbf    users01.dbf
control02.ctl  drsys01.dbf    odm01.dbf      redo06_1.log  redo09_1.log  undotbs01.dbf  xdb01.dbf
control03.ctl  example01.dbf  redo010_1.log  redo07_1.log  system01.dbf  undotbs02.dbf
上面是做为备用库的时候。联机日志文件。
[oracle@pri-rac devdb]$ ls
control01.ctl  cwmlite01.dbf  indx01.dbf     redo01.log    redo06_1.log  redo09_1.log  system01.dbf   
undotbs02.dbf
control02.ctl  drsys01.dbf    odm01.dbf      redo02.log    redo07_1.log  redo2_01.log  tools01.dbf    users01.dbf control03.ctl  example01.dbf  redo010_1.log  redo05_1.log  redo08_1.log  redo2_02.log  undotbs01.dbf  
xdb01.dbf
发现在线联机日志创建了。在作为备用库的时候。redo01.log,redo02.log,redo2_01.log,redo2_02.log是还没有创建的。至此我们的测试成功
在PRI-RAC做归档日志的切换,看日志能否成功的传输到RAC2上。然后运行
SQL> select registrar,thread#,sequence#,archived,applied from v$archived_log;
查看日志的应用情况。
至此我们看到RAC+单库的DATAGUARD就创建完毕了。数据库的切换也很正常。在RAC切换的过程中,主要要关闭RAC中的一个接点,然后来进行相应的操作。在关闭的过程中也要主要进行日志的切换,以确认归档日志的传输是否成功。

使用道具 举报

回复
论坛徽章:
2
2010新春纪念徽章
日期:2010-03-01 11:20:512011新春纪念徽章
日期:2011-01-04 10:38:44
55#
发表于 2009-10-31 21:05 | 只看该作者
其实配置起来还是很简单的.和单库没有什么区别.要注意的也就是在数据库切换的时候。

使用道具 举报

回复
论坛徽章:
1
2010新春纪念徽章
日期:2010-03-01 11:08:29
56#
发表于 2009-11-3 17:00 | 只看该作者
做个标记!!!

使用道具 举报

回复
论坛徽章:
89
生肖徽章2007版:鼠
日期:2009-03-10 21:19:05生肖徽章2007版:牛
日期:2008-01-02 17:35:53生肖徽章2007版:虎
日期:2008-01-02 17:35:53生肖徽章2007版:兔
日期:2009-10-14 09:31:39生肖徽章2007版:龙
日期:2009-03-10 21:14:14生肖徽章2007版:蛇
日期:2009-03-16 10:41:01生肖徽章2007版:马
日期:2009-10-21 16:45:13生肖徽章2007版:羊
日期:2009-03-24 07:32:42生肖徽章2007版:猴
日期:2008-01-02 17:35:53生肖徽章2007版:鸡
日期:2008-01-02 17:35:53
57#
发表于 2009-11-4 11:08 | 只看该作者
这是值得期待

使用道具 举报

回复
论坛徽章:
26
2009新春纪念徽章
日期:2009-01-04 14:52:28咸鸭蛋
日期:2011-11-13 14:16:262012新春纪念徽章
日期:2012-01-04 11:51:22紫蛋头
日期:2012-02-02 13:13:42玉石琵琶
日期:2012-02-21 15:04:38蛋疼蛋
日期:2012-03-09 08:25:45奥运纪念徽章
日期:2012-11-27 15:37:34复活蛋
日期:2012-12-07 13:05:172013年新春福章
日期:2013-02-25 14:51:242014年世界杯参赛球队:西班牙
日期:2014-06-26 12:03:53
58#
发表于 2009-11-15 09:57 | 只看该作者
你为什么不看Oracle自己的DG安装文档?Oracle自己的DG安装文档很清楚,很容易。

原帖由 mcseman 于 2009-9-8 09:47 发表
唉,真没看到有比较好的DG的安装文档....

使用道具 举报

回复
招聘 : 系统集成
论坛徽章:
164
灰彻蛋
日期:2013-02-27 17:02:072011新春纪念徽章
日期:2011-02-18 11:43:322011新春纪念徽章
日期:2011-02-18 11:42:472011新春纪念徽章
日期:2011-01-04 10:34:202011新春纪念徽章
日期:2011-01-04 10:34:202011新春纪念徽章
日期:2011-01-04 10:24:582010年世界杯参赛球队:阿根廷
日期:2010-07-05 16:47:512010年世界杯参赛球队:洪都拉斯
日期:2010-06-21 09:51:232010年世界杯参赛球队:荷兰
日期:2010-06-21 09:51:182010年世界杯参赛球队:韩国
日期:2010-06-21 09:51:13
59#
发表于 2010-1-11 16:10 | 只看该作者
呼唤楼主

使用道具 举报

回复
论坛徽章:
14
奥运会纪念徽章:自行车
日期:2008-04-25 21:00:142013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14奥运会纪念徽章:皮划艇激流回旋
日期:2012-08-13 10:25:38鲜花蛋
日期:2012-02-10 11:40:172010新春纪念徽章
日期:2010-03-01 11:04:58授权会员
日期:2010-01-12 09:40:47ITPUB元老
日期:2010-01-12 09:33:092009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:拳击
日期:2008-10-24 13:22:33
60#
发表于 2010-1-15 10:44 | 只看该作者
mark

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表