Oracle 10g RAC 配置物理dataguard系列3:物理备库配置步骤

在上一篇文章Oracle 10g RAC 配置物理dataguard系列2:备库安装、升级oracle软件、配置ASM实例中,我们已经在物理备库上顺利安装、升级oracle软件同RAC主库版本一致的10.2.0.5,并且配置好ASM实例,这些准备工作一切就绪之后。接下来,我们需要在物理备库机器上一步一步的配置physical dataguard。

1  主库执行RMAN备份的准备工作:

其实,在配置physical standby dataguard时,主库必须要置于归档模式,且建议将数据库也置于FORCE LOGGING模式。在这里,我们在系列一文章里查看主库基本信息中,已经看到这些已经准备就绪。否则,需要将主库置于归档+FORCE LOGGING模式,在这里就省略这一步骤,当然我们也可以通过下述得以确认。在主库的第一个节点上执行:

[root@oracle-rac1 ~]# su - oracle
[oracle@oracle-rac1 ~]$ . oraenv
ORACLE_SID = [oracle] ? glndb
[oracle@oracle-rac1 ~]$ export ORACLE_SID=glndb1
[oracle@oracle-rac1 ~]$ env | grep ORA
ORACLE_SID=glndb1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@oracle-rac1 ~]$ /u01/app/oracle/product/10.2.0/crs/bin/crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.glndb.db   application    ONLINE    ONLINE    oracle-rac2 
ora...._svc.cs application    ONLINE    ONLINE    oracle-rac1 
ora....db1.srv application    ONLINE    ONLINE    oracle-rac2 
ora....b1.inst application    ONLINE    ONLINE    oracle-rac1 
ora....b2.inst application    ONLINE    ONLINE    oracle-rac2 
ora....svc2.cs application    ONLINE    ONLINE    oracle-rac2 
ora....db2.srv application    ONLINE    ONLINE    oracle-rac2 
ora....SM1.asm application    ONLINE    ONLINE    oracle-rac1 
ora....C1.lsnr application    ONLINE    ONLINE    oracle-rac1 
ora....ac1.gsd application    ONLINE    ONLINE    oracle-rac1 
ora....ac1.ons application    ONLINE    ONLINE    oracle-rac1 
ora....ac1.vip application    ONLINE    ONLINE    oracle-rac1 
ora....SM2.asm application    ONLINE    ONLINE    oracle-rac2 
ora....C2.lsnr application    ONLINE    ONLINE    oracle-rac2 
ora....ac2.gsd application    ONLINE    ONLINE    oracle-rac2 
ora....ac2.ons application    ONLINE    ONLINE    oracle-rac2 
ora....ac2.vip application    ONLINE    ONLINE    oracle-rac2 
[oracle@oracle-rac1 ~]$
[oracle@oracle-rac1 ~]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Feb 16 10:27:39 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn / as sysdba
Connected.
SQL> select name,log_mode,force_logging from gv$database;

NAME      LOG_MODE     FOR
--------- ------------ ---
GLNDB     ARCHIVELOG   YES
GLNDB     ARCHIVELOG   YES

SQL> show parameter instance_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      glndb1
SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      glndb 
SQL> set line 160
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1       7706   52428800          1 NO  CURRENT              445956133 16-FEB-12
         2          1       7705   52428800          1 YES INACTIVE             445918203 15-FEB-12
         4          2       3273   52428800          1 NO  CURRENT              445956150 16-FEB-12
         5          2       3272   52428800          1 YES INACTIVE             445817248 15-FEB-12

SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/home/oracle/arch1
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_9                   string
log_archive_dest_state_1             string      defer
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string
log_archive_format                   string      ARC_%t_%S_%r.arc
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL> alter system set log_archive_dest_2='location=/home/oracle/arch1 valid_for=(all_logfiles,all_roles) db_unique_name=glndb' sid='glndb1';

System altered.

SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/home/oracle/arch1 va
                                                 lid_for=(all_logfiles,all_role
                                                 s) db_unique_name=glndb
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string      defer
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable
log_archive_duplex_dest              string
log_archive_format                   string      ARC_%t_%S_%r.arc
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL>

节点2连接SQL*PLUS登录数据库:

SQL> show parameter instance_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      glndb2
SQL> show parameter db_unique_name

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      glndb
SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/home/oracle/arch2
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_9                   string
log_archive_dest_state_1             string      DEFER
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string
log_archive_format                   string      ARC_%t_%S_%r.arc
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL> alter system set log_archive_dest_2='location=/home/oracle/arch2 valid_for=(all_logfiles,all_roles) db_unique_name=glndb' sid='glndb2';

System altered.

SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/home/oracle/arch2 va
                                                 lid_for=(all_logfiles,all_role
                                                 s) db_unique_name=glndb
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string      DEFER
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable
log_archive_duplex_dest              string
log_archive_format                   string      ARC_%t_%S_%r.arc
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL>

我们分别修改了两个节点的归档路径,节点1的归档指向/home/oracle/arch1,节点2的归档指向/home/oracle/arch2,这两个路径事先已经建好,这一步骤必须完成!

由于我们的RAC主库归档路径都各自指向本地存储,并没有放到共享存储上,所以,这里我们在用RMAN做备份的时候,需要连接到每个实例上进行备份。我们备份的路径分别指向每台机器的/oracle_backup,且在每个节点上也事先建好/oracle_backup路径,且确保oracle用户有对该路径的路写权限!

接下来,在节点1上执行备份,注意下述的rman备份命令中的GLNDB2连接字符串是连接到节点2的实例上,已经在节点1的/u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora事先配置好。

[oracle@oracle-rac1 ~]$ cat /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

GLNDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.36)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = glndb)
      (INSTANCE_NAME = glndb2)
    )
  )

GLNDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.35)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = glndb)
      (INSTANCE_NAME = glndb1)
    )
  )

GLNDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.35)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.36)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = glndb)
    )
  )
[oracle@oracle-rac1 ~]$

2  节点1上开始执行主库的RMAN备份:

[oracle@oracle-rac1 ~]$ env | grep ORA
ORACLE_SID=glndb1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@oracle-rac1 ~]$ rman

Recovery Manager: Release 10.2.0.5.0 - Production on Thu Feb 16 11:01:19 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: GLNDB (DBID=3995745524)

RMAN> show all;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_glndb1.f'; # default

RMAN> list archivelog all;

using target database control file instead of recovery catalog
specification does not match any archive log in the recovery catalog

RMAN> list backup;


RMAN> report schema;

Report of database schema

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    6039     SYSTEM               ***     +ORADATA/glndb/datafile/system.260.726057851
3    1290     SYSAUX               ***     +ORADATA/glndb/datafile/sysaux.262.726057863
4    150      UNDOTBS2             ***     +ORADATA/glndb/datafile/undotbs2.264.726057869
5    2        USERS                ***     +ORADATA/glndb/datafile/users.265.726057871
6    30       UNDOTBS3             ***     +ORADATA/glndb/datafile/undotbs3.268.774870843
169  2        EXAMPLE              ***     +ORADATA/glndb/datafile/example.435.756233417

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    10       TEMP                 32767       +ORADATA/glndb/tempfile/temp.263.726057865

RMAN> run {
2> allocate channel c1 device type disk format '/oracle_backup/full_%U' connect sys/oracle@glndb1;
3> allocate channel c2 device type disk format '/oracle_backup/full_%U' connect sys/oracle@glndb2;
4> backup database plus archivelog;
5> release channel c1;
6> release channel c2;
7> }

allocated channel: c1
channel c1: sid=396 instance=glndb1 devtype=DISK

allocated channel: c2
channel c2: sid=399 instance=glndb2 devtype=DISK


Starting backup at 2012/02/16 11:07:39
current log archived
channel c1: starting archive log backupset
channel c1: specifying archive log(s) in backup set
input archive log thread=1 sequence=7706 recid=2116 stamp=775393668
channel c1: starting piece 1 at 2012/02/16 11:07:50
channel c2: starting archive log backupset
channel c2: specifying archive log(s) in backup set
input archive log thread=2 sequence=3273 recid=2115 stamp=775393663
channel c2: starting piece 1 at 2012/02/16 11:07:46
channel c1: finished piece 1 at 2012/02/16 11:07:52
piece handle=/oracle_backup/full_1mn3f4c6_1_1 tag=TAG20120216T110749 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:02
channel c2: finished piece 1 at 2012/02/16 11:07:55
piece handle=/oracle_backup/full_1nn3f4c2_1_1 tag=TAG20120216T110749 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:09
Finished backup at 2012/02/16 11:07:59

Starting backup at 2012/02/16 11:08:00
channel c1: starting full datafile backupset
channel c1: specifying datafile(s) in backupset
input datafile fno=00001 name=+ORADATA/glndb/datafile/system.260.726057851
input datafile fno=00005 name=+ORADATA/glndb/datafile/users.265.726057871
input datafile fno=00169 name=+ORADATA/glndb/datafile/example.435.756233417
channel c1: starting piece 1 at 2012/02/16 11:08:04
channel c2: starting full datafile backupset
channel c2: specifying datafile(s) in backupset
input datafile fno=00003 name=+ORADATA/glndb/datafile/sysaux.262.726057863
input datafile fno=00004 name=+ORADATA/glndb/datafile/undotbs2.264.726057869
input datafile fno=00006 name=+ORADATA/glndb/datafile/undotbs3.268.774870843
channel c2: starting piece 1 at 2012/02/16 11:08:00
channel c2: finished piece 1 at 2012/02/16 11:10:48
piece handle=/oracle_backup/full_1pn3f4cg_1_1 tag=TAG20120216T110803 comment=NONE
channel c2: backup set complete, elapsed time: 00:02:48
channel c2: starting full datafile backupset
channel c2: specifying datafile(s) in backupset
including current control file in backupset
channel c2: starting piece 1 at 2012/02/16 11:10:58
channel c2: finished piece 1 at 2012/02/16 11:11:06
piece handle=/oracle_backup/full_1qn3f4hp_1_1 tag=TAG20120216T110803 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:17
channel c2: starting full datafile backupset
channel c2: specifying datafile(s) in backupset
including current SPFILE in backupset
channel c2: starting piece 1 at 2012/02/16 11:11:07
channel c2: finished piece 1 at 2012/02/16 11:11:08
piece handle=/oracle_backup/full_1rn3f4ib_1_1 tag=TAG20120216T110803 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
channel c1: finished piece 1 at 2012/02/16 11:13:19
piece handle=/oracle_backup/full_1on3f4ck_1_1 tag=TAG20120216T110803 comment=NONE
channel c1: backup set complete, elapsed time: 00:05:15
Finished backup at 2012/02/16 11:13:19

Starting backup at 2012/02/16 11:13:19
current log archived
channel c1: starting archive log backupset
channel c1: specifying archive log(s) in backup set
input archive log thread=1 sequence=7707 recid=2117 stamp=775393999
channel c1: starting piece 1 at 2012/02/16 11:13:23
channel c2: starting archive log backupset
channel c2: specifying archive log(s) in backup set
input archive log thread=2 sequence=3274 recid=2118 stamp=775393996
channel c2: starting piece 1 at 2012/02/16 11:13:19
channel c1: finished piece 1 at 2012/02/16 11:13:24
piece handle=/oracle_backup/full_1sn3f4mj_1_1 tag=TAG20120216T111323 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:01
channel c2: finished piece 1 at 2012/02/16 11:13:20
piece handle=/oracle_backup/full_1tn3f4mf_1_1 tag=TAG20120216T111323 comment=NONE
channel c2: backup set complete, elapsed time: 00:00:01
Finished backup at 2012/02/16 11:13:24

released channel: c1

released channel: c2

RMAN> list backup;


List of Backup Sets
===================

BS Key  Size       Device Type Elapsed Time Completion Time    
------- ---------- ----------- ------------ -------------------
48      26.34M     DISK        00:00:01     2012/02/16 11:07:51
        BP Key: 48   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T110749
        Piece Name: /oracle_backup/full_1mn3f4c6_1_1

  List of Archived Logs in backup set 48
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    7706    445956133  2012/02/16 01:33:55 446024208  2012/02/16 11:07:43

BS Key  Size       Device Type Elapsed Time Completion Time    
------- ---------- ----------- ------------ -------------------
49      10.56M     DISK        00:00:07     2012/02/16 11:07:53
        BP Key: 49   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T110749
        Piece Name: /oracle_backup/full_1nn3f4c2_1_1

  List of Archived Logs in backup set 49
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  2    3273    445956150  2012/02/16 01:33:53 446024205  2012/02/16 11:07:37

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
50      Full    1.08G      DISK        00:02:45     2012/02/16 11:10:45
        BP Key: 50   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T110803
        Piece Name: /oracle_backup/full_1pn3f4cg_1_1
  List of Datafiles in backup set 50
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  3       Full 446024239  2012/02/16 11:08:00 +ORADATA/glndb/datafile/sysaux.262.726057863
  4       Full 446024239  2012/02/16 11:08:00 +ORADATA/glndb/datafile/undotbs2.264.726057869
  6       Full 446024239  2012/02/16 11:08:00 +ORADATA/glndb/datafile/undotbs3.268.774870843

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
51      Full    15.30M     DISK        00:00:17     2012/02/16 11:11:06
        BP Key: 51   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T110803
        Piece Name: /oracle_backup/full_1qn3f4hp_1_1
  Control File Included: Ckp SCN: 446024474    Ckp time: 2012/02/16 11:10:49

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
52      Full    80.00K     DISK        00:00:01     2012/02/16 11:11:08
        BP Key: 52   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T110803
        Piece Name: /oracle_backup/full_1rn3f4ib_1_1
  SPFILE Included: Modification time: 2012/02/16 10:47:30

BS Key  Type LV Size       Device Type Elapsed Time Completion Time    
------- ---- -- ---------- ----------- ------------ -------------------
53      Full    5.81G      DISK        00:05:09     2012/02/16 11:13:13
        BP Key: 53   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T110803
        Piece Name: /oracle_backup/full_1on3f4ck_1_1
  List of Datafiles in backup set 53
  File LV Type Ckp SCN    Ckp Time            Name
  ---- -- ---- ---------- ------------------- ----
  1       Full 446024221  2012/02/16 11:08:04 +ORADATA/glndb/datafile/system.260.726057851
  5       Full 446024221  2012/02/16 11:08:04 +ORADATA/glndb/datafile/users.265.726057871
  169     Full 446024221  2012/02/16 11:08:04 +ORADATA/glndb/datafile/example.435.756233417

BS Key  Size       Device Type Elapsed Time Completion Time    
------- ---------- ----------- ------------ -------------------
54      46.50K     DISK        00:00:00     2012/02/16 11:13:19
        BP Key: 54   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T111323
        Piece Name: /oracle_backup/full_1tn3f4mf_1_1

  List of Archived Logs in backup set 54
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  2    3274    446024205  2012/02/16 11:07:37 446024635  2012/02/16 11:13:16

BS Key  Size       Device Type Elapsed Time Completion Time    
------- ---------- ----------- ------------ -------------------
55      80.00K     DISK        00:00:00     2012/02/16 11:13:23
        BP Key: 55   Status: AVAILABLE  Compressed: NO  Tag: TAG20120216T111323
        Piece Name: /oracle_backup/full_1sn3f4mj_1_1

  List of Archived Logs in backup set 55
  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    7707    446024208  2012/02/16 11:07:43 446024632  2012/02/16 11:13:19

RMAN>

到各个节点的/oracle_backup路径下确认备份文件信息:

节点1:

[oracle@oracle-rac1 ~]$ cd /oracle_backup/ && ls -lh
total 5.9G
-rw-r----- 1 oracle oinstall  27M Feb 16 11:07 full_1mn3f4c6_1_1
-rw-r----- 1 oracle oinstall 5.9G Feb 16 11:13 full_1on3f4ck_1_1
-rw-r----- 1 oracle oinstall  81K Feb 16 11:13 full_1sn3f4mj_1_1
[oracle@oracle-rac1 oracle_backup]$

节点2:

[oracle@oracle-rac2 oracle_backup]$ ll -h
total 1.2G
-rw-r----- 1 oracle oinstall  11M Feb 16 11:07 full_1nn3f4c2_1_1
-rw-r----- 1 oracle oinstall 1.1G Feb 16 11:10 full_1pn3f4cg_1_1
-rw-r----- 1 oracle oinstall  16M Feb 16 11:11 full_1qn3f4hp_1_1
-rw-r----- 1 oracle oinstall  96K Feb 16 11:11 full_1rn3f4ib_1_1
-rw-r----- 1 oracle oinstall  47K Feb 16 11:13 full_1tn3f4mf_1_1
[oracle@oracle-rac2 oracle_backup]$

 

3  节点1上生成物理备库控制文件:

RMAN> backup device type disk format '/oracle_backup/standby_ctl_%U' current controlfile for standby;

Starting backup at 2012/02/16 11:21:22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=411 instance=glndb1 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including standby control file in backupset
channel ORA_DISK_1: starting piece 1 at 2012/02/16 11:21:26
channel ORA_DISK_1: finished piece 1 at 2012/02/16 11:21:33
piece handle=/oracle_backup/standby_ctl_1un3f55k_1_1 tag=TAG20120216T112123 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:09
Finished backup at 2012/02/16 11:21:33

RMAN>

确认物理备库控制文件信息:

[oracle@oracle-rac1 ~]$ cd /oracle_backup/ && ll
total 6140020
-rw-r----- 1 oracle oinstall   27619328 Feb 16 11:07 full_1mn3f4c6_1_1
-rw-r----- 1 oracle oinstall 6237437952 Feb 16 11:13 full_1on3f4ck_1_1
-rw-r----- 1 oracle oinstall      82432 Feb 16 11:13 full_1sn3f4mj_1_1
-rw-r----- 1 oracle oinstall   16056320 Feb 16 11:21 standby_ctl_1un3f55k_1_1
[oracle@oracle-rac1 oracle_backup]$

4  在主库创建物理备库的初始化参数文件:

[oracle@oracle-rac1 ~]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Feb 16 11:23:53 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn / as sysdba;
Connected.
SQL> show parameter instance_name;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      glndb1
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +ORADATA/glndb/spfileglndb.ora
SQL> create pfile='/oracle_backup/initpridb.ora' from spfile;

File created.

SQL> !
[oracle@oracle-rac1 ~]$ cd /oracle_backup/ && ll -h
total 5.9G
-rw-r----- 1 oracle oinstall  27M Feb 16 11:07 full_1mn3f4c6_1_1
-rw-r----- 1 oracle oinstall 5.9G Feb 16 11:13 full_1on3f4ck_1_1
-rw-r----- 1 oracle oinstall  81K Feb 16 11:13 full_1sn3f4mj_1_1
-rw-r--r-- 1 oracle oinstall 2.3K Feb 16 11:25 initpridb.ora
-rw-r----- 1 oracle oinstall  16M Feb 16 11:21 standby_ctl_1un3f55k_1_1
[oracle@oracle-rac1 oracle_backup]$

5  分别FTP两个节点上/oracle_backup下的所有文件到备库机器172.16.0.202上的/oracle_backup路径下,备库机器的/oracle_backup路径在系列2中创建磁盘的那一节里已经提到过,现在就派上了用场!

节点1上:

[oracle@oracle-rac1 oracle_backup]$ pwd
/oracle_backup
[oracle@oracle-rac1 oracle_backup]$ ll
total 6140028
-rw-r----- 1 oracle oinstall   27619328 Feb 16 11:07 full_1mn3f4c6_1_1
-rw-r----- 1 oracle oinstall 6237437952 Feb 16 11:13 full_1on3f4ck_1_1
-rw-r----- 1 oracle oinstall      82432 Feb 16 11:13 full_1sn3f4mj_1_1
-rw-r--r-- 1 oracle oinstall       2324 Feb 16 11:25 initpridb.ora
-rw-r----- 1 oracle oinstall   16056320 Feb 16 11:21 standby_ctl_1un3f55k_1_1
[oracle@oracle-rac1 oracle_backup]$ scp * oracle@172.16.0.202:/oracle_backup
The authenticity of host '172.16.0.202 (172.16.0.202)' can't be established.
RSA key fingerprint is 87:6f:ef:3c:d2:e9:6b:c2:11:36:3d:75:22:77:e2:f3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.0.202' (RSA) to the list of known hosts.
oracle@172.16.0.202's password: 
full_1mn3f4c6_1_1                                                                                 100%   26MB   2.6MB/s   00:10    
full_1on3f4ck_1_1                                                                                 100% 5948MB   2.0MB/s   49:29    
full_1sn3f4mj_1_1                                                                                 100%   81KB  80.5KB/s   00:00    
initpridb.ora                                                                                     100% 2324     2.3KB/s   00:00    
standby_ctl_1un3f55k_1_1                                                                          100%   15MB  15.3MB/s   00:01    
[oracle@oracle-rac1 oracle_backup]$

节点2上:

[oracle@oracle-rac2 ~]$ cd /oracle_backup/
[oracle@oracle-rac2 oracle_backup]$ ll
total 1155632
-rw-r----- 1 oracle oinstall   11072000 Feb 16 11:07 full_1nn3f4c2_1_1
-rw-r----- 1 oracle oinstall 1154891776 Feb 16 11:10 full_1pn3f4cg_1_1
-rw-r----- 1 oracle oinstall   16056320 Feb 16 11:11 full_1qn3f4hp_1_1
-rw-r----- 1 oracle oinstall      98304 Feb 16 11:11 full_1rn3f4ib_1_1
-rw-r----- 1 oracle oinstall      48128 Feb 16 11:13 full_1tn3f4mf_1_1
[oracle@oracle-rac2 oracle_backup]$ scp * oracle@172.16.0.202:/oracle_backup
The authenticity of host '172.16.0.202 (172.16.0.202)' can't be established.
RSA key fingerprint is 87:6f:ef:3c:d2:e9:6b:c2:11:36:3d:75:22:77:e2:f3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.0.202' (RSA) to the list of known hosts.
oracle@172.16.0.202's password: 
full_1nn3f4c2_1_1                                                                                 100%   11MB   5.3MB/s   00:02    
full_1pn3f4cg_1_1                                                                                 100% 1101MB   1.8MB/s   10:15    
full_1qn3f4hp_1_1                                                                                 100%   15MB   7.7MB/s   00:02    
full_1rn3f4ib_1_1                                                                                 100%   96KB  96.0KB/s   00:00    
full_1tn3f4mf_1_1                                                                                 100%   47KB  47.0KB/s   00:00    
[oracle@oracle-rac2 oracle_backup]$

物理备库机器上确认:

[oracle@ora10grac-dg ~]$ cd /oracle_backup/
[oracle@ora10grac-dg oracle_backup]$ ll
total 7295636
-rw-r----- 1 oracle oinstall   27619328 Feb 16 11:32 full_1mn3f4c6_1_1
-rw-r----- 1 oracle oinstall   11072000 Feb 16 11:35 full_1nn3f4c2_1_1
-rw-r----- 1 oracle oinstall 6237437952 Feb 16 12:22 full_1on3f4ck_1_1
-rw-r----- 1 oracle oinstall 1154891776 Feb 16 11:46 full_1pn3f4cg_1_1
-rw-r----- 1 oracle oinstall   16056320 Feb 16 11:46 full_1qn3f4hp_1_1
-rw-r----- 1 oracle oinstall      98304 Feb 16 11:46 full_1rn3f4ib_1_1
-rw-r----- 1 oracle oinstall      82432 Feb 16 12:22 full_1sn3f4mj_1_1
-rw-r----- 1 oracle oinstall      48128 Feb 16 11:46 full_1tn3f4mf_1_1
-rw-r--r-- 1 oracle oinstall       2324 Feb 16 12:22 initpridb.ora
drwx------ 2 oracle oinstall      16384 Feb 15 13:52 lost+found
-rw-r----- 1 oracle oinstall   16056320 Feb 16 12:22 standby_ctl_1un3f55k_1_1
[oracle@ora10grac-dg oracle_backup]$

6  在备库上使用orapwd命令创建口令文件,要确保sys用户或者具有sysdba系统权限用户的口令要同主库两个节点上sys用户的口令一致。为简单起见,也可以在主库两个节点上分别修改sys用户口令为一致,然后,直接拷贝主库任意节点的口令文件到备库$ORACLE_HOME/dbs路径下,并且重命名为orapwSID,其中SID为备库上实例名,这里备库SID为pridb,,所以口令文件名应该为orapwpridb。

这里,在RAC两个节点上分别修改sys用户口令,然后,cp节点1下的口令文件到物理备库172.16.0.202的$ORACLE_HOME/dbs路径下,然后在备库上重命名该文件:

节点1:

[oracle@oracle-rac1 dbs]$ pwd
/u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@oracle-rac1 dbs]$ ll
total 15716
-rw-rw---- 1 oracle oinstall     1544 Feb 14 16:58 hc_glndb1.dat
-rw-r--r-- 1 oracle oinstall    12920 May  3  2001 initdw.ora
-rw-r--r-- 1 oracle oinstall       40 Dec 31 01:28 initglndb1.ora
-rw-r----- 1 oracle oinstall     8385 Sep 11  1998 init.ora
-rw-r----- 1 oracle oinstall     2048 Feb 16 11:05 orapwglndb1
-rw-r----- 1 oracle oinstall 16007168 Feb 16 11:21 snapcf_glndb1.f
[oracle@oracle-rac1 dbs]$ scp orapwglndb1 172.16.0.202:/u01/app/oracle/dbs
oracle@172.16.0.202's password: 
orapwglndb1                                                                                       100% 2048     2.0KB/s   00:00    
[oracle@oracle-rac1 dbs]$

物理备库:

[oracle@ora10grac-dg dbs]$ env | grep ORA
ORACLE_SID=pridb
ORACLE_BASE=/u01/app
ORACLE_TERM=xterm
ORACLE_HOME=/u01/app/oracle
[oracle@ora10grac-dg dbs]$ pwd
/u01/app/oracle/dbs
[oracle@ora10grac-dg dbs]$ ll
total 52
-rw-rw---- 1 oracle oinstall   577 Feb 15 16:12 ab_+ASM.dat
-rw-rw---- 1 oracle oinstall  1544 Feb 15 16:12 hc_+ASM.dat
-rw-r--r-- 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-rw---- 1 oracle oinstall    24 Feb 15 16:12 lk+ASM
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:12 orapw+ASM
-rw-r----- 1 oracle oinstall  2048 Feb 16 14:17 orapwglndb1
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:18 spfile+ASM.ora
[oracle@ora10grac-dg dbs]$ mv orapwglndb1 orapwpridb
[oracle@ora10grac-dg dbs]$ ll
total 52
-rw-rw---- 1 oracle oinstall   577 Feb 15 16:12 ab_+ASM.dat
-rw-rw---- 1 oracle oinstall  1544 Feb 15 16:12 hc_+ASM.dat
-rw-r--r-- 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-rw---- 1 oracle oinstall    24 Feb 15 16:12 lk+ASM
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:12 orapw+ASM
-rw-r----- 1 oracle oinstall  2048 Feb 16 14:17 orapwpridb
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:18 spfile+ASM.ora
[oracle@ora10grac-dg dbs]$

7   配置主备库3台机器上的tnsnames.ora文件,使之三个$ORACLE_HOME/network/admin/tnsnames.ora文件内容完全一致!修改后,如下:

[oracle@ora10grac-dg admin]$ pwd
/u01/app/oracle/network/admin
[oracle@ora10grac-dg admin]$ ll
total 16
-rw-r--r-- 1 oracle oinstall  468 Feb 15 09:16 listener.ora
drwxr-x--- 2 oracle oinstall 4096 Feb 14 16:28 samples
-rw-r--r-- 1 oracle oinstall  172 Dec 26  2003 shrept.lst
-rw-r--r-- 1 oracle oinstall 1017 Feb 16 14:31 tnsnames.ora
[oracle@ora10grac-dg admin]$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

GLNDB2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.36)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = glndb)
      (INSTANCE_NAME = glndb2)
    )
  )

GLNDB1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.35)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = glndb)
      (INSTANCE_NAME = glndb1)
    )
  )

GLNDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.35)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.36)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = glndb)
    )
  )

PRIDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.202)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pridb)
    )
  )
[oracle@ora10grac-dg admin]$

 

8   确保主、备库3台机器上的listener工作正常,并且在备库上利用上述的tnsnames.ora文件来分别访问两个节点:

[oracle@ora10grac-dg admin]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Feb 16 15:06:40 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn human/hr@glndb
Connected.
SQL> conn human/hr@glndb1
Connected.
SQL> conn human/hr@glndb2
Connected.
SQL> conn sys/oracle@glndb as sysdba
Connected.
SQL> conn sys/oracle@glndb1 as sysdba
Connected.
SQL> conn sys/oracle@glndb2 as sysdba
Connected.
SQL> 

9  在备库上修改初始化参数文件,去掉所有的RAC参数,修改后如下:

[oracle@ora10grac-dg dbs]$ pwd
/u01/app/oracle/dbs
[oracle@ora10grac-dg dbs]$ ll
total 52
-rw-rw---- 1 oracle oinstall   577 Feb 15 16:12 ab_+ASM.dat
-rw-rw---- 1 oracle oinstall  1544 Feb 15 16:12 hc_+ASM.dat
-rw-r--r-- 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-rw---- 1 oracle oinstall    24 Feb 15 16:12 lk+ASM
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:12 orapw+ASM
-rw-r----- 1 oracle oinstall  2048 Feb 16 14:17 orapwpridb
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:18 spfile+ASM.ora
[oracle@ora10grac-dg dbs]$ cp /oracle_backup/initpridb.ora .
[oracle@ora10grac-dg dbs]$ ll
total 56
-rw-rw---- 1 oracle oinstall   577 Feb 15 16:12 ab_+ASM.dat
-rw-rw---- 1 oracle oinstall  1544 Feb 15 16:12 hc_+ASM.dat
-rw-r--r-- 1 oracle oinstall 12920 May  3  2001 initdw.ora
-rw-r----- 1 oracle oinstall  8385 Sep 11  1998 init.ora
-rw-r--r-- 1 oracle oinstall  2324 Feb 16 15:16 initpridb.ora
-rw-rw---- 1 oracle oinstall    24 Feb 15 16:12 lk+ASM
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:12 orapw+ASM
-rw-r----- 1 oracle oinstall  2048 Feb 16 14:17 orapwpridb
-rw-r----- 1 oracle oinstall  1536 Feb 15 16:18 spfile+ASM.ora
[oracle@ora10grac-dg dbs]$ cat initpridb.ora 
*.audit_file_dest='/u01/app/admin/pridb/adump'
*.background_dump_dest='/u01/app/admin/pridb/bdump'
*.cluster_database=false
*.compatible='10.2.0.5.0'
*.control_files='+ORADATA/pridb/controlfile'
*.core_dump_dest='/u01/app/admin/pridb/cdump'
*.db_block_size=8192
*.db_create_file_dest='+ORADATA'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_files=300
*.db_name='glndb'
*.db_unique_name='pridb'
*.disk_asynch_io=TRUE
*.dispatchers='(PROTOCOL=TCP) (SERVICE=glndbXDB)'
*.event='10298 trace name context forever, level 32'
*.global_names=FALSE
*.job_queue_processes=10
*.log_archive_config='dg_config=(glndb,pridb)'
*.log_archive_dest_2='location=/home/oracle/arch2 valid_for=(all_logfiles,all_roles) db_unique_name=pridb'
*.log_archive_dest_1='service=glndb1 lgwr sync valid_for=(online_logfiles,primary_roles) db_unique_name=glndb'
*.log_archive_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.log_archive_format='ARC_%t_%S_%r.arc'
*.nls_length_semantics='CHAR'
*.open_cursors=300
*.pga_aggregate_target=1034944512
*.processes=400
*.remote_login_passwordfile='exclusive'
*.sessions=445
*.sga_target=1610612736
*.thread=1
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS3'
*.user_dump_dest='/u01/app/admin/pridb/udump'
*.db_file_name_convert='+ORADATA/glndb/','+ORADATA/pridb/'
*.log_file_name_convert='+ORADATA/glndb/','+ORADATA/pridb/'
*.standby_file_management='auto'
*.fal_server='glndb1','glndb2'
*.fal_client='pridb'
*.service_names='pridb'
[oracle@ora10grac-dg dbs]$

依据上述的参数文件配置,在物理备库上建立相应的路径:

[oracle@ora10grac-dg ~]$ cd /u01/app/admin/
[oracle@ora10grac-dg admin]$ pwd
/u01/app/admin
[oracle@ora10grac-dg admin]$ ll
total 4
drwxr-x--- 6 oracle oinstall 4096 Feb 15 16:12 +ASM
[oracle@ora10grac-dg admin]$ mkdir -p pridb/{a,b,c,u}dump
[oracle@ora10grac-dg admin]$ ll
total 8
drwxr-x--- 6 oracle oinstall 4096 Feb 15 16:12 +ASM
drwxr-xr-x 6 oracle oinstall 4096 Feb 16 15:52 pridb
[oracle@ora10grac-dg admin]$ cd pridb/
[oracle@ora10grac-dg glndb]$ ll
total 16
drwxr-xr-x 2 oracle oinstall 4096 Feb 16 15:52 adump
drwxr-xr-x 2 oracle oinstall 4096 Feb 16 15:52 bdump
drwxr-xr-x 2 oracle oinstall 4096 Feb 16 15:52 cdump
drwxr-xr-x 2 oracle oinstall 4096 Feb 16 15:52 udump 
[oracle@ora10grac-dg glndb~]$ mkdir -p /home/oracle/arch2
[oracle@ora10grac-dg glndb~]$

同时, 依据上述的参数文件配置,在物理备库的ASM实例中上建立相应的路径:

[root@ora10grac-dg ~]# su - oracle
[oracle@ora10grac-dg ~]$ export ORACLE_SID=+ASM
[oracle@ora10grac-dg ~]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Thu Feb 16 16:25:00 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn / as sysdba
Connected.
SQL> select name from v$asm_diskgroup;

NAME
--------------------------------------------------------------------------------
ORADATA

SQL> alter diskgroup oradata add directory '+ORADATA/PRIDB';

Diskgroup altered.

SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@ora10grac-dg ~]$ asmcmd
ASMCMD> ls
ORADATA/
ASMCMD> cd oradata
ASMCMD> ls
PRIDB/
ASMCMD> exit
[oracle@ora10grac-dg ~]$

10  启动备库至nomount状态:

 [root@ora10grac-dg ~]# su - oracle
[oracle@ora10grac-dg ~]$ env | grep ORA
ORACLE_SID=pridb
ORACLE_BASE=/u01/app
ORACLE_TERM=xterm
ORACLE_HOME=/u01/app/oracle
[oracle@ora10grac-dg ~]$ ps -ef | grep asm_
oracle    4074     1  0 Feb16 ?        00:00:05 asm_pmon_+ASM
oracle    4076     1  0 Feb16 ?        00:00:01 asm_psp0_+ASM
oracle    4078     1  0 Feb16 ?        00:00:01 asm_mman_+ASM
oracle    4080     1  0 Feb16 ?        00:00:01 asm_dbw0_+ASM
oracle    4082     1  0 Feb16 ?        00:00:01 asm_lgwr_+ASM
oracle    4084     1  0 Feb16 ?        00:00:01 asm_ckpt_+ASM
oracle    4086     1  0 Feb16 ?        00:00:01 asm_smon_+ASM
oracle    4088     1  0 Feb16 ?        00:00:01 asm_rbal_+ASM
oracle    4090     1  0 Feb16 ?        00:00:04 asm_gmon_+ASM
oracle    7431  7400  0 09:45 pts/2    00:00:00 grep asm_
[oracle@ora10grac-dg ~]$ ps -ef | grep ora_
oracle    7435  7400  0 09:45 pts/2    00:00:00 grep ora_
[oracle@ora10grac-dg ~]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Feb 17 09:45:50 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 1610612736 bytes
Fixed Size                  2096632 bytes
Variable Size             385876488 bytes
Database Buffers         1207959552 bytes
Redo Buffers               14680064 bytes
SQL> !
[oracle@ora10grac-dg ~]$ ps -ef | grep ora_
oracle    7440     1  0 09:45 ?        00:00:00 ora_pmon_pridb
oracle    7442     1  0 09:45 ?        00:00:00 ora_psp0_pridb
oracle    7444     1  4 09:45 ?        00:00:01 ora_mman_pridb
oracle    7446     1  0 09:45 ?        00:00:00 ora_dbw0_pridb
oracle    7448     1  0 09:45 ?        00:00:00 ora_lgwr_pridb
oracle    7450     1  0 09:45 ?        00:00:00 ora_ckpt_pridb
oracle    7452     1  0 09:45 ?        00:00:00 ora_smon_pridb
oracle    7454     1  0 09:45 ?        00:00:00 ora_reco_pridb
oracle    7456     1  0 09:45 ?        00:00:00 ora_cjq0_pridb
oracle    7458     1  0 09:45 ?        00:00:00 ora_mmon_pridb
oracle    7460     1  0 09:45 ?        00:00:00 ora_mmnl_pridb
oracle    7462     1  0 09:45 ?        00:00:00 ora_d000_pridb
oracle    7464     1  0 09:45 ?        00:00:00 ora_s000_pridb
oracle    7491  7466  0 09:46 pts/4    00:00:00 grep ora_
[oracle@ora10grac-dg ~]$ 

11 备库恢复:

首先,RMAN连接物理备库,恢复备库控制文件:

[oracle@ora10grac-dg ~]$ rlwrap rman target /

Recovery Manager: Release 10.2.0.5.0 - Production on Fri Feb 17 10:03:25 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: glndb (not mounted)

RMAN> restore standby controlfile from '/oracle_backup/standby_ctl_1un3f55k_1_1';

Starting restore at 2012/02/17 10:03:35
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=431 devtype=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:07
output filename=+ORADATA/pridb/control.ctl
Finished restore at 2012/02/17 10:03:44

RMAN> host;

[oracle@ora10grac-dg ~]$ export ORACLE_SID=+ASM
[oracle@ora10grac-dg ~]$ asmcmd
ASMCMD> ls
ORADATA/
ASMCMD> cd oradata
ASMCMD> ls
PRIDB/
ASMCMD> cd pridb
ASMCMD> ls
CONTROLFILE/
control.ctl
ASMCMD> cd controlfile
ASMCMD> ls
current.256.775476221
ASMCMD> exit
[oracle@ora10grac-dg ~]$ export ORACLE_SID=pridb
[oracle@ora10grac-dg ~]$ rlwrap sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Feb 17 10:06:01 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> set line 160
SQL> show parameter control

NAME                                 TYPE                                         VALUE
------------------------------------ -------------------------------------------- ------------------------------
control_file_record_keep_time        integer                                      7
control_files                        string                                       +ORADATA/pridb/control.ctl
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@ora10grac-dg ~]$ exit
exit
host command complete

RMAN>

然后,在确认物理备库控制文件恢复成功后,将物理备库置于MOUNT状态,接下来restore物理备库:

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

RMAN> run {
2> allocate channel c1 type disk;
3> allocate channel c2 type disk;
4> restore database;
5> release channel c1;
6> release channel c2;
7> }

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

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

Starting restore at 2012/02/17 10:14:18

channel c1: starting datafile backupset restore
channel c1: specifying datafile(s) to restore from backup set
restoring datafile 00003 to +ORADATA/pridb/datafile/sysaux.262.726057863
restoring datafile 00004 to +ORADATA/pridb/datafile/undotbs2.264.726057869
restoring datafile 00006 to +ORADATA/pridb/datafile/undotbs3.268.774870843
channel c1: reading from backup piece /oracle_backup/full_1pn3f4cg_1_1
channel c2: starting datafile backupset restore
channel c2: specifying datafile(s) to restore from backup set
restoring datafile 00001 to +ORADATA/pridb/datafile/system.260.726057851
restoring datafile 00005 to +ORADATA/pridb/datafile/users.265.726057871
restoring datafile 00169 to +ORADATA/pridb/datafile/example.435.756233417
channel c2: reading from backup piece /oracle_backup/full_1on3f4ck_1_1
channel c1: restored backup piece 1
piece handle=/oracle_backup/full_1pn3f4cg_1_1 tag=TAG20120216T110803
channel c1: restore complete, elapsed time: 00:19:47
channel c2: restored backup piece 1
piece handle=/oracle_backup/full_1on3f4ck_1_1 tag=TAG20120216T110803
channel c2: restore complete, elapsed time: 00:23:23
Finished restore at 2012/02/17 10:37:50

released channel: c1

released channel: c2

RMAN> exit


Recovery Manager complete.
[oracle@ora10grac-dg ~]$

其次,SQL*PLUS连接物理备库,确认状态:

[oracle@ora10grac-dg ~]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Feb 17 10:39:58 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn / as sysdba
Connected.
SQL> select name from v$datafile
  2  union
  3  select name from v$controlfile
  4  union
  5  select member from v$logfile
  6  ;

NAME
--------------------------------------------------------------------------------
+ORADATA/pridb/control.ctl
+ORADATA/pridb/datafile/example.261.775476929
+ORADATA/pridb/datafile/sysaux.257.775476887
+ORADATA/pridb/datafile/system.258.775476897
+ORADATA/pridb/datafile/undotbs2.259.775476909
+ORADATA/pridb/datafile/undotbs3.262.775476939
+ORADATA/pridb/datafile/users.260.775476921
+ORADATA/pridb/onlinelog/group_1.257.726057849
+ORADATA/pridb/onlinelog/group_2.258.726057849
+ORADATA/pridb/onlinelog/group_4.266.726058757
+ORADATA/pridb/onlinelog/group_5.267.726058757

11 rows selected.
SQL> set line 160
SQL> select dbid,name,switchover_status,db_unique_name,database_role,open_mode,current_scn from v$database;

      DBID NAME      SWITCHOVER DB_UNIQUE_ DATABASE_ROLE        OPEN_MODE  CURRENT_SCN
---------- --------- ---------- ---------- -------------------- ---------- -----------
3995745524 GLNDB     TO PRIMARY pridb      PHYSICAL STANDBY     MOUNTED      446025625

SQL>

最后,至此,物理备库已经成功恢复!

12     在备库上创建standby logfile:

创建之前:

SQL> col status for a10
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARCHIVED     STATUS     FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- ------------ ---------- ------------- -------------------
         1          1       7708   52428800          1 NO           CURRENT        446024632 2012/02/16 11:13:19
         2          1       7707   52428800          1 YES          INACTIVE       446024208 2012/02/16 11:07:43
         4          2       3275   52428800          1 NO           CURRENT        446024635 2012/02/16 11:13:16
         5          2       3274   52428800          1 YES          INACTIVE       446024205 2012/02/16 11:07:37

SQL> col member for a50
SQL> select * from v$logfile;

    GROUP# STATUS     TYPE                         MEMBER                                             IS_RECOVERY_
---------- ---------- ---------------------------- -------------------------------------------------- ------------
         1            ONLINE                       +ORADATA/pridb/onlinelog/group_1.257.726057849     NO
         2            ONLINE                       +ORADATA/pridb/onlinelog/group_2.258.726057849     NO
         4            ONLINE                       +ORADATA/pridb/onlinelog/group_4.266.726058757     NO
         5            ONLINE                       +ORADATA/pridb/onlinelog/group_5.267.726058757     NO

SQL> select * from v$standby_log;

no rows selected

SQL>

开始创建:

SQL> alter database add standby logfile thread 1 group 3 size 50m,group 6 size 50m,group 7 size 50m;

Database altered.

SQL> alter database add standby logfile thread 2 group 8 size 50m,group 9 size 50m,group 10 size 50m;

Database altered.

SQL>

创建之后:

SQL> select * from v$standby_log;

    GROUP# DBID          THREAD#  SEQUENCE#      BYTES       USED ARCHIVED     STATUS     FIRST_CHANGE# FIRST_TIME          LAST_CHANGE# LAST_TIME
---------- ---------- ---------- ---------- ---------- ---------- ------------ ---------- ------------- ------------------- ------------ -------------------
         3 UNASSIGNED          1          0   52428800        512 YES          UNASSIGNED             0                                0
         6 UNASSIGNED          1          0   52428800        512 YES          UNASSIGNED             0                                0
         7 UNASSIGNED          1          0   52428800        512 YES          UNASSIGNED             0                                0
         8 UNASSIGNED          2          0   52428800        512 YES          UNASSIGNED             0                                0
         9 UNASSIGNED          2          0   52428800        512 YES          UNASSIGNED             0                                0
        10 UNASSIGNED          2          0   52428800        512 YES          UNASSIGNED             0                                0

6 rows selected.

SQL> select * from v$logfile;

    GROUP# STATUS     TYPE                         MEMBER                                             IS_RECOVERY_
---------- ---------- ---------------------------- -------------------------------------------------- ------------
         1            ONLINE                       +ORADATA/pridb/onlinelog/group_1.257.726057849     NO
         2            ONLINE                       +ORADATA/pridb/onlinelog/group_2.258.726057849     NO
         3            STANDBY                      +ORADATA/pridb/onlinelog/group_3.263.775479203     NO
         4            ONLINE                       +ORADATA/pridb/onlinelog/group_4.266.726058757     NO
         5            ONLINE                       +ORADATA/pridb/onlinelog/group_5.267.726058757     NO
         6            STANDBY                      +ORADATA/pridb/onlinelog/group_6.264.775479205     NO
         7            STANDBY                      +ORADATA/pridb/onlinelog/group_7.265.775479205     NO
         8            STANDBY                      +ORADATA/pridb/onlinelog/group_8.266.775479229     NO
         9            STANDBY                      +ORADATA/pridb/onlinelog/group_9.267.775479229     NO
        10            STANDBY                      +ORADATA/pridb/onlinelog/group_10.268.775479231    NO

10 rows selected.

SQL>

13    备库启动redo apply:

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL> select sequence#,name,first_time,next_time,applied from v$archived_log;

no rows selected

SQL> col switchover_status for a16
SQL> select dbid,name,switchover_status,db_unique_name,database_role,open_mode,current_scn from v$database;

      DBID NAME      SWITCHOVER_STATU DB_UNIQUE_ DATABASE_ROLE        OPEN_MODE  CURRENT_SCN
---------- --------- ---------------- ---------- -------------------- ---------- -----------
3995745524 GLNDB     SESSIONS ACTIVE  pridb      PHYSICAL STANDBY     MOUNTED      446025625

SQL> select sequence#,name,first_time,next_time,applied from v$archived_log;

no rows selected

SQL>

发现,这时候,备库根本没有应用归档日志,且从alert日志里可以看到下述信息:

alter database add standby logfile thread 1 group 3 size 50m,group 6 size 50m,group 7 size 50m
Fri Feb 17 10:53:26 CST 2012
Completed: alter database add standby logfile thread 1 group 3 size 50m,group 6 size 50m,group 7 size 50m
Fri Feb 17 10:53:49 CST 2012
alter database add standby logfile thread 2 group 8 size 50m,group 9 size 50m,group 10 size 50m
Fri Feb 17 10:53:51 CST 2012
Completed: alter database add standby logfile thread 2 group 8 size 50m,group 9 size 50m,group 10 size 50m
Fri Feb 17 11:02:26 CST 2012
alter database recover managed standby database using current logfile disconnect from session
Fri Feb 17 11:02:26 CST 2012
Attempt to start background Managed Standby Recovery process (pridb)
MRP0 started with pid=16, OS id=7915
Fri Feb 17 11:02:26 CST 2012
MRP0: Background Managed Standby Recovery process started (pridb)
Managed Standby Recovery starting Real Time Apply
 parallel recovery started with 3 processes
Fri Feb 17 11:02:33 CST 2012
Waiting for all non-current ORLs to be archived...
Fri Feb 17 11:02:33 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+ORADATA/pridb/onlinelog/group_1.257.726057849'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_1.257.726057849
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_1.257.726057849' does not exist
Fri Feb 17 11:02:33 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+ORADATA/pridb/onlinelog/group_1.257.726057849'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_1.257.726057849
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_1.257.726057849' does not exist
Clearing online redo logfile 1 +ORADATA/pridb/onlinelog/group_1.257.726057849
Clearing online log 1 of thread 1 sequence number 7708
Fri Feb 17 11:02:33 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+ORADATA/pridb/onlinelog/group_1.257.726057849'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_1.257.726057849
ORA-15173: entry 'group_1.257.726057849' does not exist in directory 'onlinelog'
Deleted Oracle managed file +ORADATA/pridb/onlinelog/group_1.257.726057849
Fri Feb 17 11:02:33 CST 2012
Completed: alter database recover managed standby database using current logfile disconnect from session
Fri Feb 17 11:02:35 CST 2012
Clearing online redo logfile 1 complete
Fri Feb 17 11:02:35 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+ORADATA/pridb/onlinelog/group_2.258.726057849'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_2.258.726057849
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_2.258.726057849' does not exist
Fri Feb 17 11:02:35 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+ORADATA/pridb/onlinelog/group_2.258.726057849'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_2.258.726057849
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_2.258.726057849' does not exist
Clearing online redo logfile 2 +ORADATA/pridb/onlinelog/group_2.258.726057849
Clearing online log 2 of thread 1 sequence number 7707
Fri Feb 17 11:02:35 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+ORADATA/pridb/onlinelog/group_2.258.726057849'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_2.258.726057849
ORA-15173: entry 'group_2.258.726057849' does not exist in directory 'onlinelog'
Deleted Oracle managed file +ORADATA/pridb/onlinelog/group_2.258.726057849
Clearing online redo logfile 2 complete
Fri Feb 17 11:02:35 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+ORADATA/pridb/onlinelog/group_4.266.726058757'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_4.266.726058757
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_4.266.726058757' does not exist
Fri Feb 17 11:02:35 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+ORADATA/pridb/onlinelog/group_4.266.726058757'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_4.266.726058757
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_4.266.726058757' does not exist
Clearing online redo logfile 4 +ORADATA/pridb/onlinelog/group_4.266.726058757
Clearing online log 4 of thread 2 sequence number 3275
Fri Feb 17 11:02:35 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+ORADATA/pridb/onlinelog/group_4.266.726058757'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_4.266.726058757
ORA-15173: entry 'group_4.266.726058757' does not exist in directory 'onlinelog'
Deleted Oracle managed file +ORADATA/pridb/onlinelog/group_4.266.726058757
Clearing online redo logfile 4 complete
Fri Feb 17 11:02:36 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 5 of thread 2
ORA-00312: online log 5 thread 2: '+ORADATA/pridb/onlinelog/group_5.267.726058757'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_5.267.726058757
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_5.267.726058757' does not exist
Fri Feb 17 11:02:36 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 5 of thread 2
ORA-00312: online log 5 thread 2: '+ORADATA/pridb/onlinelog/group_5.267.726058757'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_5.267.726058757
ORA-15012: ASM file '+ORADATA/pridb/onlinelog/group_5.267.726058757' does not exist
Clearing online redo logfile 5 +ORADATA/pridb/onlinelog/group_5.267.726058757
Clearing online log 5 of thread 2 sequence number 3274
Fri Feb 17 11:02:36 CST 2012
Errors in file /u01/app/admin/pridb/bdump/pridb_mrp0_7915.trc:
ORA-00313: open failed for members of log group 5 of thread 2
ORA-00312: online log 5 thread 2: '+ORADATA/pridb/onlinelog/group_5.267.726058757'
ORA-17503: ksfdopn:2 Failed to open file +ORADATA/pridb/onlinelog/group_5.267.726058757
ORA-15173: entry 'group_5.267.726058757' does not exist in directory 'onlinelog'
Deleted Oracle managed file +ORADATA/pridb/onlinelog/group_5.267.726058757
Clearing online redo logfile 5 complete
Media Recovery Waiting for thread 1 sequence 7707

 

从上述的错误信息,可以看到备库整等待主库第一个节点上的日志号为7707的日志。其它的错误信息提示是指备库第一次置于recover状态时,备库将生成对应的online redo log,这是正常的,可不必理会。

14 调整主库参数,使主库上的归档日志可以顺利传递到备库上去,其中也包括在主库备份完成到备库置于recover状态之间主库产生的归档日志,及archive log gap。

[oracle@oracle-rac1 ~]$ env | grep ORA
ORACLE_SID=glndb1
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@oracle-rac1 ~]$ sqlplus

SQL*Plus: Release 10.2.0.5.0 - Production on Fri Feb 17 11:14:17 2012

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

SQL> conn / as sysdba;
Connected.
SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1       7710   52428800          1 YES INACTIVE             446188257 17-FEB-12
         2          1       7711   52428800          1 NO  CURRENT              446237897 17-FEB-12
         4          2       3277   52428800          1 YES INACTIVE             446178255 17-FEB-12
         5          2       3278   52428800          1 NO  CURRENT              446238085 17-FEB-12

SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string
log_archive_dest                     string
log_archive_dest_1                   string
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/home/oracle/arch1 va
                                                 lid_for=(all_logfiles,all_role
                                                 s) db_unique_name=glndb
log_archive_dest_3                   string
log_archive_dest_4                   string
log_archive_dest_5                   string
log_archive_dest_6                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string      defer
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable
log_archive_duplex_dest              string
log_archive_format                   string      ARC_%t_%S_%r.arc
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL> alter system set log_archive_dest_1='service=pridb lgwr sync valid_for=(online_logfiles,primary_role) db_unique_name=pridb' sid='*';

System altered.

SQL> alter system set log_archive_dest_state_1='enable';

System altered.

SQL> alter system set log_archive_config='dg_config=(glndb,pridb)' sid='*';

System altered.

SQL> show parameter log_archive

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      dg_config=(glndb,pridb)
log_archive_dest                     string
log_archive_dest_1                   string      service=pridb lgwr sync valid_
                                                 for=(online_logfiles,primary_r
                                                 ole) db_unique_name=pridb
log_archive_dest_10                  string
log_archive_dest_2                   string      location=/home/oracle/arch1 va
                                                 lid_for=(all_logfiles,all_role
                                                 s) db_unique_name=glndb
log_archive_dest_3                   string
log_archive_dest_4                   string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_5                   string
log_archive_dest_6                   string
log_archive_dest_7                   string
log_archive_dest_8                   string
log_archive_dest_9                   string
log_archive_dest_state_1             string      enable
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             string      enable
log_archive_dest_state_4             string      enable
log_archive_dest_state_5             string      enable

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_6             string      enable
log_archive_dest_state_7             string      enable
log_archive_dest_state_8             string      enable
log_archive_dest_state_9             string      enable
log_archive_duplex_dest              string
log_archive_format                   string      ARC_%t_%S_%r.arc
log_archive_local_first              boolean     TRUE
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     FALSE
log_archive_trace                    integer     0
SQL> show parameter fal

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fal_client                           string
fal_server                           string
SQL> alter system set fal_server='pridb' sid='*';

System altered.

SQL> alter system set fal_client='glndb1' sid='*';

System altered.

SQL> alter system set fal_client='glndb1' sid='glndb1';

System altered.

SQL> alter system set fal_client='glndb2' sid='glndb2';

System altered.

SQL>

配置完主库的归档参数之后,在主库节点1上尝试切换日志,到备库上查看是否可以正常接收主库传递过来的归档日志?

 

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1       7710   52428800          1 YES INACTIVE             446188257 17-FEB-12
         2          1       7711   52428800          1 NO  CURRENT              446237897 17-FEB-12
         4          2       3277   52428800          1 YES INACTIVE             446178255 17-FEB-12
         5          2       3278   52428800          1 NO  CURRENT              446238085 17-FEB-12

SQL> alter system switch logfile;

System altered.

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1       7712   52428800          1 NO  CURRENT              446238670 17-FEB-12
         2          1       7711   52428800          1 YES ACTIVE               446237897 17-FEB-12
         4          2       3277   52428800          1 YES INACTIVE             446178255 17-FEB-12
         5          2       3278   52428800          1 NO  CURRENT              446238085 17-FEB-12

SQL> !
[oracle@oracle-rac1 ~]$ cd /home/oracle/arch1/ && ll -h
total 134M
-rw-rw---- 1 oracle oinstall  27M Feb 16 11:07 ARC_1_0000007706_726057844.arc
-rw-r----- 1 oracle oinstall  79K Feb 16 11:13 ARC_1_0000007707_726057844.arc
-rw-rw---- 1 oracle oinstall  44M Feb 16 22:06 ARC_1_0000007708_726057844.arc
-rw-rw---- 1 oracle oinstall  44M Feb 17 04:17 ARC_1_0000007709_726057844.arc
-rw-rw---- 1 oracle oinstall  21M Feb 17 11:23 ARC_1_0000007710_726057844.arc
-rw-rw---- 1 oracle oinstall 228K Feb 17 11:30 ARC_1_0000007711_726057844.arc
[oracle@oracle-rac1 arch1]$

可以看到,主库节点1已经产生7711归档的本地日志,而备库上却没有接收到任何归档日志:

[oracle@ora10grac-dg arch2]$ pwd
/home/oracle/arch2
[oracle@ora10grac-dg arch2]$ ll
total 0
[oracle@ora10grac-dg arch2]$

并且物理备库的告警日志暂时也没有任何提示信息!!在这一步,尝试了N久,才发现备库的监听没有启动,导致主库无法连接物理备库,自然,主库的归档也就无法传递到物理备库。具体,可见下面的记录信息,首先在节点1上,在SQL*PLUS里尝试用pridb网络服务名连接物理备库时报错,没有监听,然后到物理备库启动监听,在物理备库上重新执行应用归档,最后问题的以解决!

主库尝试连接备库报错:

SQL> conn sys/oracle@pridb as sysdba
ERROR:
ORA-12541: TNS:no listener


Warning: You are no longer connected to ORACLE.
SQL>

备库监听未启,然后启动:

[oracle@ora10grac-dg arch2]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 17-FEB-2012 11:41:59

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora10grac-dg)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
[oracle@ora10grac-dg arch2]$ lsnrctl start 

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 17-FEB-2012 11:42:04

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Starting /u01/app/oracle/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 10.2.0.5.0 - Production
System parameter file is /u01/app/oracle/network/admin/listener.ora
Log messages written to /u01/app/oracle/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora10grac-dg)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora10grac-dg)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                17-FEB-2012 11:42:06
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/network/admin/listener.ora
Listener Log File         /u01/app/oracle/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora10grac-dg)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@ora10grac-dg arch2]$ lsnrctl status

LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 17-FEB-2012 11:42:27

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ora10grac-dg)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date                17-FEB-2012 11:42:06
Uptime                    0 days 0 hr. 0 min. 20 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/network/admin/listener.ora
Listener Log File         /u01/app/oracle/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora10grac-dg)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "pridb" has 1 instance(s).
  Instance "pridb", status READY, has 1 handler(s) for this service...
Service "pridb_XPT" has 1 instance(s).
  Instance "pridb", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@ora10grac-dg arch2]$

备库重启启动redo apply:

SQL> alter database recover managed standby database cancel;

Database altered.

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL>

过一段时间后,看到下述信息:

SQL> select sequence#,name,first_time,next_time,applied from v$archived_log;

 SEQUENCE# NAME                                               FIRST_TIME          NEXT_TIME           APPLIED
---------- -------------------------------------------------- ------------------- ------------------- ------------
      7708 /home/oracle/arch2/ARC_1_0000007708_726057844.arc  2012/02/16 11:13:19 2012/02/16 22:05:46 YES
      7709 /home/oracle/arch2/ARC_1_0000007709_726057844.arc  2012/02/16 22:05:46 2012/02/17 04:17:07 YES
      7710 /home/oracle/arch2/ARC_1_0000007710_726057844.arc  2012/02/17 04:17:07 2012/02/17 11:23:14 YES
      7711 /home/oracle/arch2/ARC_1_0000007711_726057844.arc  2012/02/17 11:23:14 2012/02/17 11:30:44 YES
      7707 /home/oracle/arch2/ARC_1_0000007707_726057844.arc  2012/02/16 11:07:43 2012/02/16 11:13:19 YES
      3274 /home/oracle/arch2/ARC_2_0000003274_726057844.arc  2012/02/16 11:07:37 2012/02/16 11:13:16 YES
      3275 /home/oracle/arch2/ARC_2_0000003275_726057844.arc  2012/02/16 11:13:16 2012/02/16 23:03:02 YES
      3276 /home/oracle/arch2/ARC_2_0000003276_726057844.arc  2012/02/16 23:03:02 2012/02/17 03:00:36 YES
      3277 /home/oracle/arch2/ARC_2_0000003277_726057844.arc  2012/02/17 03:00:36 2012/02/17 11:25:24 YES
      3278 /home/oracle/arch2/ARC_2_0000003278_726057844.arc  2012/02/17 11:25:24 2012/02/17 11:41:04 NO

10 rows selected.

SQL> select process,status,client_process,group#,thread#,sequence# from v$managed_standby;

PROCESS                              STATUS          CLIENT_PROCESS                   GROUP    THREAD#  SEQUENCE#
------------------------------------ --------------- -------------------------------- ----- ---------- ----------
ARCH                                 CONNECTED       ARCH                             N/A            0          0
ARCH                                 CONNECTED       ARCH                             N/A            0          0
MRP0                                 WAIT_FOR_LOG    N/A                              N/A            1       7712
RFS                                  IDLE            UNKNOWN                          N/A            0          0
RFS                                  IDLE            UNKNOWN                          N/A            0          0

SQL> !
[oracle@ora10grac-dg ~]$ cd /home/oracle/arch2/ && ll
total 210424
-rw-r----- 1 oracle oinstall    80896 Feb 17 11:46 ARC_1_0000007707_726057844.arc
-rw-r----- 1 oracle oinstall 45309952 Feb 17 11:45 ARC_1_0000007708_726057844.arc
-rw-r----- 1 oracle oinstall 45311488 Feb 17 11:46 ARC_1_0000007709_726057844.arc
-rw-r----- 1 oracle oinstall 21249024 Feb 17 11:46 ARC_1_0000007710_726057844.arc
-rw-r----- 1 oracle oinstall   233472 Feb 17 11:46 ARC_1_0000007711_726057844.arc
-rw-r----- 1 oracle oinstall    46592 Feb 17 11:47 ARC_2_0000003274_726057844.arc
-rw-r----- 1 oracle oinstall 47448576 Feb 17 11:47 ARC_2_0000003275_726057844.arc
-rw-r----- 1 oracle oinstall 45309952 Feb 17 11:48 ARC_2_0000003276_726057844.arc
-rw-r----- 1 oracle oinstall  9995776 Feb 17 11:48 ARC_2_0000003277_726057844.arc
-rw-r----- 1 oracle oinstall   214528 Feb 17 11:49 ARC_2_0000003278_726057844.arc
[oracle@ora10grac-dg arch2]$

此时,备库alert日志文件里也看到成功应用归档的信息如下:

Completed: alter database recover managed standby database using current logfile disconnect from session
Fri Feb 17 11:44:24 CST 2012
Using STANDBY_ARCHIVE_DEST parameter default value as /home/oracle/arch2
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[1]: Assigned to RFS process 8107
RFS[1]: Identified database type as 'physical standby'
Fri Feb 17 11:44:24 CST 2012
RFS LogMiner: Client disabled from further notification
Fri Feb 17 11:44:26 CST 2012
Fetching gap sequence in thread 1, gap sequence 7707-7707
Fri Feb 17 11:44:59 CST 2012
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[2]: Assigned to RFS process 8112
RFS[2]: Identified database type as 'physical standby'
Fri Feb 17 11:45:21 CST 2012
RFS[1]: Archived Log: '/home/oracle/arch2/ARC_1_0000007708_726057844.arc'
Fri Feb 17 11:46:04 CST 2012
RFS[1]: Archived Log: '/home/oracle/arch2/ARC_1_0000007709_726057844.arc'
RFS[1]: Archived Log: '/home/oracle/arch2/ARC_1_0000007710_726057844.arc'
RFS[1]: Archived Log: '/home/oracle/arch2/ARC_1_0000007711_726057844.arc'
RFS[1]: Archived Log: '/home/oracle/arch2/ARC_1_0000007707_726057844.arc'
Fri Feb 17 11:46:29 CST 2012
Media Recovery Log /home/oracle/arch2/ARC_1_0000007707_726057844.arc
Media Recovery Waiting for thread 2 sequence 3274
Fetching gap sequence in thread 2, gap sequence 3274-3274
Fri Feb 17 11:47:02 CST 2012
RFS[2]: Archived Log: '/home/oracle/arch2/ARC_2_0000003274_726057844.arc'
Fri Feb 17 11:47:30 CST 2012
Media Recovery Log /home/oracle/arch2/ARC_2_0000003274_726057844.arc
Media Recovery Log /home/oracle/arch2/ARC_1_0000007708_726057844.arc
Fri Feb 17 11:47:40 CST 2012
Media Recovery Waiting for thread 2 sequence 3275 (in transit)
Fri Feb 17 11:47:51 CST 2012
RFS[2]: Archived Log: '/home/oracle/arch2/ARC_2_0000003275_726057844.arc'
Fri Feb 17 11:47:55 CST 2012
Media Recovery Log /home/oracle/arch2/ARC_2_0000003275_726057844.arc
Fri Feb 17 11:48:49 CST 2012
RFS[2]: Archived Log: '/home/oracle/arch2/ARC_2_0000003276_726057844.arc'
Fri Feb 17 11:48:59 CST 2012
RFS[2]: Archived Log: '/home/oracle/arch2/ARC_2_0000003277_726057844.arc'
RFS[2]: Archived Log: '/home/oracle/arch2/ARC_2_0000003278_726057844.arc'
Fri Feb 17 11:49:12 CST 2012
Media Recovery Log /home/oracle/arch2/ARC_1_0000007709_726057844.arc
Fri Feb 17 11:49:38 CST 2012
Media Recovery Log /home/oracle/arch2/ARC_2_0000003276_726057844.arc
Fri Feb 17 11:50:01 CST 2012
Media Recovery Log /home/oracle/arch2/ARC_2_0000003277_726057844.arc
Media Recovery Log /home/oracle/arch2/ARC_1_0000007710_726057844.arc
Media Recovery Log /home/oracle/arch2/ARC_1_0000007711_726057844.arc
Media Recovery Log /home/oracle/arch2/ARC_2_0000003278_726057844.arc
Media Recovery Waiting for thread 1 sequence 7712

看到这些信息后,才说明主库所有节点的归档日志已经全部传递到物理备库,且物理备库也成功应用了这些归档!

15 主库创建standby logfile。在主库上创建standby logfile的目的和作用是,将来在做switchover时,RAC主库变成新standby备库,而原来的物理备库变成新主库时,新standby备库可以顺利接受并应用新主库的归档日志。当然,也别忘记了要修改主库的standby_file_management、db_file_name_convert、log_file_name_convert这三个重要的参数!

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  +ORADATA/glndb/onlinelog/group_1.257.726057849     NO
         2         ONLINE  +ORADATA/glndb/onlinelog/group_2.258.726057849     NO
         4         ONLINE  +ORADATA/glndb/onlinelog/group_4.266.726058757     NO
         5         ONLINE  +ORADATA/glndb/onlinelog/group_5.267.726058757     NO

SQL> select * from v$standby_log;

no rows selected

SQL> alter database add standby logfile thread 1 group 3 size 50m,group 6 size 50m,group 7 size 50m;

Database altered.

SQL> alter database add standby logfile thread 2 group 8 size 50m,group 9 size 50m,group 10 size 50m;

Database altered.

SQL> select * from v$standby_log;

    GROUP# DBID                                        THREAD#  SEQUENCE#      BYTES       USED ARC STATUS     FIRST_CHANGE# FIRST_TIM LAST_CHANGE# LAST_TIME
---------- ---------------------------------------- ---------- ---------- ---------- ---------- --- ---------- ------------- --------- ------------ ---------
         3 UNASSIGNED                                        1          0   52428800        512 YES UNASSIGNED             0  0
         6 UNASSIGNED                                        1          0   52428800        512 YES UNASSIGNED             0  0
         7 UNASSIGNED                                        1          0   52428800        512 YES UNASSIGNED             0  0
         8 UNASSIGNED                                        2          0   52428800        512 YES UNASSIGNED             0  0
         9 UNASSIGNED                                        2          0   52428800        512 YES UNASSIGNED             0  0
        10 UNASSIGNED                                        2          0   52428800        512 YES UNASSIGNED             0  0

6 rows selected.

SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER                                             IS_
---------- ------- ------- -------------------------------------------------- ---
         1         ONLINE  +ORADATA/glndb/onlinelog/group_1.257.726057849     NO
         2         ONLINE  +ORADATA/glndb/onlinelog/group_2.258.726057849     NO
         3         STANDBY +ORADATA/glndb/onlinelog/group_3.261.775490705     NO
         4         ONLINE  +ORADATA/glndb/onlinelog/group_4.266.726058757     NO
         5         ONLINE  +ORADATA/glndb/onlinelog/group_5.267.726058757     NO
         6         STANDBY +ORADATA/glndb/onlinelog/group_6.430.775490705     NO
         7         STANDBY +ORADATA/glndb/onlinelog/group_7.444.775490707     NO
         8         STANDBY +ORADATA/glndb/onlinelog/group_8.431.775491149     NO
         9         STANDBY +ORADATA/glndb/onlinelog/group_9.445.775491149     NO
        10         STANDBY +ORADATA/glndb/onlinelog/group_10.446.775491151    NO

10 rows selected.

SQL> 
SQL> show parameter convert

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string
log_file_name_convert                string
SQL> show parameter standby_file

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
standby_file_management              string      MANUAL
SQL> show parameter spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      +ORADATA/glndb/spfileglndb.ora
SQL> alter system set standby_file_management='auto' sid='*';

System altered.
SQL> alter system set db_file_name_convert='+ORADATA/pridb/','+ORADATA/glndb/'  sid='*' scope=spfile;
alter system set db_file_name_convert='+ORADATA/pridb/','+ORADATA/glndb/'  sid='*' scope=spfile
                 *
ERROR at line 1:
ORA-02096: specified initialization parameter is not modifiable with this option


SQL> alter system set log_file_name_convert='+ORADATA/pridb/','+ORADATA/glndb/' sid='*' scope=spfile;
alter system set log_file_name_convert='+ORADATA/pridb/','+ORADATA/glndb/' sid='*' scope=spfile
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified


SQL> 

发现,最后两个参数不能修改!百思不得其解,不得已,只好通过创建PFILE,在PFILE里修改这两个参数,然后再利用该PFILE来创建SPFILE的方式来修改之!

终于,终于,经过漫长的配置,我们的dataguard成功创建!关于dataguard的功能测试,将在下一篇文章里介绍!依然敬请期待!

评论 (6)

  • sam wang| 2012年3月12日

    根据客户需求,我们的环境需要在一个RAC节点(比如:oracle-rac1)上配置Datagurad。

    我的问题是:

    如果物理备库和RAC节点1(oracle-rac1)是同一台机器,并且备库采用local disk方式存储,哪些步骤需要变化?如何变化?

    可否就我的问题按照你的Oracle 10g RAC 配置物理dataguard系列1-4分别指出有哪些不同,能给出详细的步骤就再好不过了!

    首先在此谢过!

  • Asher| 2012年3月12日

    to sam wang:
    你好!
    对于你的需求,配置应该更简单,但是dataguard的容灾功能就大打折扣了。具体可参照下述步骤:
    1 在主库上执行一次完整的备份,包括两个RAC节点上的归档日志也得备份,可参见本篇文章之步骤2;
    2 主库上利用RMAN执行创建standby controlfile,可参见本篇文章之步骤3;
    3 生成备库参数文件,并放至备库的ORACLE_HOME/dbs路径下,参见步骤4;
    4 创建备库口令文件,注意这里你的备库的ORACLE_HOME如果同主库RAC1的ORACLE_HOME,那么你的备库的ORACLE_SID就不能同主库RAC1的ORACLE_SID,具体可阅读:http://www.oracleonlinux.cn/2012/03/01/oracle_sid_and_oracle_home_environment_variable/
    5 修改主库两个节点的tnsnames.ora文件,其实就是在该文件中加入你的备库的网络服务名,可参见本篇文章之步骤7;
    6 修改备库参数文件,注意该步骤中的几个参数一定要修改,db_create_file_dest,db_unique_name,instance_name,db_file_name_convert,log_file_name_convert,
    7 接下来就是startup nomount物理备库;
    8 rman restore 物理备库控制文件;
    。。。
    接下来,你再照着本篇一步一步执行,就可以了。如有问题,请继续提出,我尽自己能力帮你解答,能帮助你,我也欣慰^_^O(∩_∩)O~

  • mark| 2013年10月24日

    您好,我仿照您的做,到restore standby controlfile from ‘/oracle_backup/standby_ctl_0bon4ph3_1_1’;,提示RMAN-03002: failure of restore command at 10/25/2013 04:48:59
    ORA-19870: error reading backup piece /oracle_backup/standby_ctl_0bon4ph3_1_1
    ORA-19504: failed to create file “+ORADATA/pridb/controlfile”
    ORA-17502: ksfdcre:4 Failed to create file +ORADATA/pridb/controlfile
    ORA-15005: name “+oradata/pridb/controlfile” is already used by an existing alias
    我的版本用的是10.2.0.1,google里面的方法都试了还是不行,这个是不是这版本的BUG,请指点,谢谢!

    • admin| 2013年10月25日

      @mark
      你好,mark.
      从错误的提示信息“ORA-15005: name “+oradata/pridb/controlfile” is already used by an existing alias”来看,应该是“+ORADATA/pridb/controlfile”这个路径已经存在了。
      可以通过asmcmd命令行进去删掉controlfile这个子目录,或者通过SQL*PLUS工具连接到ASM实例下,drop controlfile这个目录。
      然后,再重新restore。

      • xiaotao| 2015年8月1日

        黄老师你好.
        我也是在这个地方报这个错.
        channel ORA_DISK_1: restoring control file
        RMAN-00571: ===========================================================
        RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
        RMAN-00571: ===========================================================
        RMAN-03002: failure of restore command at 08/01/2015 18:43:26
        ORA-19870: error reading backup piece /oracle_backup/standby_ctl_0bqdfaso_1_1
        ORA-19504: failed to create file “+ORADATA/pridb/controlfile”
        ORA-17502: ksfdcre:4 Failed to create file +ORADATA/pridb/controlfile
        ORA-15005: name “+oradata/pridb/controlfile” is already used by an existing alias

        但是通过asmcmd -p 或者是sqlplus进入后,在asmcmd ls -l ORADATA/PRIDB 目录下没有任何文件,但是还是报这个错

  • xiaotao| 2015年8月1日

    黄老师:你好.
    这是参照你的文档的initpridb.ora配置文件, 文件中的devdb则是参照你网站上的文档所成功做出来的10g+rac实验中的SID

    *.audit_file_dest=’/u01/app/admin/pridb/adump’
    *.background_dump_dest=’/u01/app/admin/pridb/bdump’
    *.cluster_database=false
    *.compatible=’10.2.0.5.0′
    *.control_files=’+ORADATA/pridb/controlfile’
    *.core_dump_dest=’/u01/app/admin/pridb/cdump’
    *.db_block_size=8192
    *.db_create_file_dest=’+ORADATA’
    *.db_domain=”
    *.db_file_multiblock_read_count=16
    *.db_files=300
    *.db_name=’devdb’
    *.db_unique_name=’pridb’
    *.disk_asynch_io=TRUE
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=devdbXDB)’
    *.event=’10298 trace name context forever, level 32′
    *.global_names=FALSE
    *.job_queue_processes=10
    *.log_archive_config=’dg_config=(devdb,pridb)’
    *.log_archive_dest_2=’location=/home/oracle/arch2 valid_for=(all_logfiles,all_roles) db_unique_name=pridb’
    *.log_archive_dest_1=’service=devdb1 lgwr sync valid_for=(online_logfiles,primary_roles) db_unique_name=devdb’
    *.log_archive_dest_state_1=’enable’
    *.log_archive_dest_state_2=’enable’
    *.log_archive_format=’ARC_%t_%S_%r.arc’
    *.nls_length_semantics=’CHAR’
    *.open_cursors=300
    *.pga_aggregate_target=1034944512
    *.processes=400
    *.remote_login_passwordfile=’exclusive’
    *.sessions=445
    *.sga_target=1610612736
    *.thread=1
    *.undo_management=’AUTO’
    *.undo_tablespace=’UNDOTBS3′
    *.user_dump_dest=’/u01/app/admin/pridb/udump’
    *.db_file_name_convert=’+ORADATA/devdb/’,’+ORADATA/pridb/’
    *.log_file_name_convert=’+ORADATA/devdb/’,’+ORADATA/pridb/’
    *.standby_file_management=’auto’
    *.fal_server=’devdb1′,’devdb2′
    *.fal_client=’pridb’
    *.service_names=’pridb’

  • 发表评论

    邮箱地址不会被公开。 必填项已用*标注