系统:Red Hat Enterprise Linux 6.4

数据库:Oracle 10.2.0.5.0 Patch Set 4

主机:10dg1 192.168.1.91

10dg2192.168.1.92

内存:1G

虚拟机:VBox 4.2.14

一,操作系统部分(略)

能够參考我之前写的博客 http://blog.csdn.net/aaron8219/article/details/38239065

二,数据库部分



*****主库配置*****

1. 开启归档,force logging



SQL> archive log list

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> shutdown immediate

SQL> startup

SQL> alter database force logging;

SQL> select log_mode,force_logging from v$database;



SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     1

Next log sequence to archive   3

Current log sequence           3





2. 在线改动DG所需參数



SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(zlm,zlmdg)' scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=zlm' scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=zlm10gdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zlmdg' scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;

SQL> alter system set FAL_SERVER=zlmdg scope=both;

SQL> alter system set FAL_CLIENT=zlm scope=both;

SQL> alter system set STANDBY_FILE_MANAGEMENT='AUTO' scope=both;

这里仅仅做2个说明:

①. SERVICE相应的是NET SERVICE NAME,而不是tnsnames.ora中配置的SERVICE NAME

②. 因为db_unique_name无法在线改动,如果生产库之前就设置过这个參数,一般会和db_name一致,那么最好了,能够直接使用它,这样就不用停库,我这里如果原来的db_unique_name设置过,而且就是和db_name一样的zlm,

能够说,这是零停机窗体搭建DG环境的必要条件

3. 创建备份文件夹,開始备份主库,准备在备库上做rman异机恢复



mkdir /u01/rman_bak

run{

allocate channel c1 device type disk;

allocate channel c2 device type disk;

backup incremental level=0 database format '/u01/rman_bak/full_lev0_%d_%I_%T_%U.bak' tag 'full_level_0'include current controlfile for standby;

release channel c1;

release channel c2;

}



查看刚才备份后生成的文件



[oracle@10dg1 u01]$ cd rman_bak/

[oracle@10dg1 rman_bak]$ ll

total 608976

-rw-r-----. 1 oracle oinstall 383500288 Jul 30 13:22 full_lev0_ZLM_3930348306_20140730_04pemmkd_1_1.bak

-rw-r-----. 1 oracle oinstall 232873984 Jul 30 13:22 full_lev0_ZLM_3930348306_20140730_05pemmkd_1_1.bak

-rw-r-----. 1 oracle oinstall   7110656 Jul 30 13:23 full_lev0_ZLM_3930348306_20140730_06pemmlq_1_1.bak

-rw-r-----. 1 oracle oinstall     98304 Jul 30 13:23 full_lev0_ZLM_3930348306_20140730_07pemmlr_1_1.bak



4. 复制初始化參数initSID.ora和备份集到备库$ORACLE_HOME/dbs



scp $ORACLE_HOME/dbs/initzlm.ora 10dg2:$ORACLE_HOME/dbs

scp /u01/rman_bak/*.bak 10dg2:/u01/rman_bak  --注意必须先在备库主机上创建/u01/rman_bak文件夹

5. 复制tnsnames.ora和listener.ora到备库$ORACLE_HOME/dbs

这里贴一下我主库这2个文件的配置,推荐直接改动成备库的内容以后再复制,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.





ZLM10G =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.91)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = zlm_SN)

    )

  )





ZLM10GDG =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.92)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = zlm_SN1)

    )

  )





# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

# Generated by Oracle configuration tools.





SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

      (PROGRAM = extproc)

    )

    (SID_DESC =

      (GLOBAL_DBNAME = zlm_SN)

      (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)

      (SID_NAME = zlm)

    )

  )





LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.91)(PORT = 1521))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

    )

  )

还记得怎么区分GLOBAL_DBNAME,SID_NAME,SERVICE_NAME,NET SERVICE
NAME这些概念吗?请參考我的还有一篇博客 http://blog.csdn.net/aaron8219/article/details/38267145

-------------------------------------------------切割线 -----------------------------------------------------

*****备库配置*****

1. 创建初始化參数中必要的文件夹

[oracle@10dg2 ~]$ mkdir /u01/app/oracle/admin/zlm/adump -p

[oracle@10dg2 ~]$ mkdir /u01/app/oracle/admin/zlm/bdump -p

[oracle@10dg2 ~]$ mkdir /u01/app/oracle/admin/zlm/cdump -p

[oracle@10dg2 ~]$ mkdir /u01/app/oracle/admin/zlm/udump -p

[oracle@10dg2 ~]$ mkdir /u01/app/oracle/oradata/zlm -p

[oracle@10dg2 ~]$ mkdir /u01/app/oracle/flash_recovery_area -p



sqlplus / as sysdba

SQL> startup nomount

SQL> exit



[oracle@10dg2 ~]$ ls -lrt /u01/rman_bak

total 608976

-rw-r-----. 1 oracle oinstall 383500288 Jul 30 13:39 full_lev0_ZLM_3930348306_20140730_04pemmkd_1_1.bak

-rw-r-----. 1 oracle oinstall 232873984 Jul 30 13:40 full_lev0_ZLM_3930348306_20140730_05pemmkd_1_1.bak

-rw-r-----. 1 oracle oinstall   7110656 Jul 30 13:40
full_lev0_ZLM_3930348306_20140730_06pemmlq_1_1.bak

-rw-r-----. 1 oracle oinstall     98304 Jul 30 13:40 full_lev0_ZLM_3930348306_20140730_07pemmlr_1_1.bak

[oracle@10dg2 ~]$ rman target /

2. 依次用rman恢复备库控制文件,数据文件

RMAN> restore controlfile from'/u01/rman_bak/full_lev0_ZLM_3930348306_20140730_06pemmlq_1_1.bak';





Starting restore at 30-JUL-14

using target database control file instead of recovery catalog

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK





channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:03

output filename=/u01/app/oracle/oradata/zlm/control01.ctl

output filename=/u01/app/oracle/oradata/zlm/control02.ctl

output filename=/u01/app/oracle/oradata/zlm/control03.ctl

Finished restore at 30-JUL-14





RMAN> alter database mount;





database mounted

released channel: ORA_DISK_1





RMAN> restore database;





Starting restore at 30-JUL-14

Starting implicit crosscheck backup at 30-JUL-14

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK

Crosschecked 2 objects

Finished implicit crosscheck backup at 30-JUL-14





Starting implicit crosscheck copy at 30-JUL-14

using channel ORA_DISK_1

Finished implicit crosscheck copy at 30-JUL-14





searching for all files in the recovery area

cataloging files...

no files cataloged





using channel ORA_DISK_1





channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00002 to /u01/app/oracle/oradata/zlm/undotbs01.dbf

restoring datafile 00003 to /u01/app/oracle/oradata/zlm/sysaux01.dbf

restoring datafile 00005 to /u01/app/oracle/oradata/zlm/example01.dbf

channel ORA_DISK_1: reading from backup piece /u01/rman_bak/full_lev0_ZLM_3930348306_20140730_05pemmkd_1_1.bak

channel ORA_DISK_1: restored backup piece 1

piece handle=/u01/rman_bak/full_lev0_ZLM_3930348306_20140730_05pemmkd_1_1.bak tag=FULL_LEVEL_0

channel ORA_DISK_1: restore complete, elapsed time: 00:00:25

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u01/app/oracle/oradata/zlm/system01.dbf

restoring datafile 00004 to /u01/app/oracle/oradata/zlm/users01.dbf

channel ORA_DISK_1: reading from backup piece /u01/rman_bak/full_lev0_ZLM_3930348306_20140730_04pemmkd_1_1.bak

channel ORA_DISK_1: restored backup piece 1

piece handle=/u01/rman_bak/full_lev0_ZLM_3930348306_20140730_04pemmkd_1_1.bak tag=FULL_LEVEL_0

channel ORA_DISK_1: restore complete, elapsed time: 00:00:25

Finished restore at 30-JUL-14





RMAN>

--检查是否恢复完毕

[oracle@10dg2 ~]$ cd /u01/app/oracle/oradata/zlm

[oracle@10dg2 zlm]$ ll

total 865540

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 13:52
control01.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 13:52
control02.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 13:52
control03.ctl

-rw-r-----. 1 oracle oinstall 104865792 Jul 30 13:47
example01.dbf

-rw-r-----. 1 oracle oinstall 262152192 Jul 30 13:47
sysaux01.dbf

-rw-r-----. 1 oracle oinstall 461381632 Jul 30 13:47
system01.dbf

-rw-r-----. 1 oracle oinstall  31465472 Jul 30 13:47
undotbs01.dbf

-rw-r-----. 1 oracle oinstall   5251072 Jul 30 13:47
users01.dbf

--查看备库归档情况(此时和主库一致,由于刚从主库恢复过来)

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     1

Next log sequence to archive   3

Current log sequence           3

3. 启动监听

--主库

[oracle@10dg1 ~]$ lsnrctl start

...

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.91)(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 "zlm_SN" has 1 instance(s).

  Instance "zlm", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully



--备库

[oracle@10dg2 ~]$ lsnrctl start

...

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.92)(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 "zlm_SN1" has 1 instance(s).

  Instance "zlm", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully



4. 调整备库的參数(基本就是主库參反过来设置)

db_unique_name='ZLMDG'

fal_client='ZLMDG'

fal_server='ZLM'

log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=zlmdg'

log_archive_dest_2='SERVICE=zlm10g LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=zlm'

5. 查看归档路径状态

--主库

SQL> set lin 120 pages 120

SQL> col dest_name for a20

SQL> col destination for a15

SQL> col error for a40

SQL> select dest_id,dest_name,destination,status,error from
v$archive_dest_status;





   DEST_ID DEST_NAME            DESTINATION     STATUS    ERROR

---------- -------------------- --------------- --------- ----------------------------------------

         1 LOG_ARCHIVE_DEST_1                   VALID

         2 LOG_ARCHIVE_DEST_2   zlm10gdg        ERROR    ORA-01031: insufficient privileges

         3 LOG_ARCHIVE_DEST_3                   INACTIVE

         4 LOG_ARCHIVE_DEST_4                   INACTIVE

         5 LOG_ARCHIVE_DEST_5                   INACTIVE

         6 LOG_ARCHIVE_DEST_6                   INACTIVE

         7 LOG_ARCHIVE_DEST_7                   INACTIVE

         8 LOG_ARCHIVE_DEST_8                   INACTIVE

         9 LOG_ARCHIVE_DEST_9                   INACTIVE

        10 LOG_ARCHIVE_DEST_10                  INACTIVE





10 rows selected.

注意,DESTINATION写的一定是tnsnames.ora中开头的那个大写名称,即NET SERVICE NAME(ZLM10GDG)

--备库

SQL> set lin 120 pages 120

SQL> col dest_name for a20

SQL> col destination for a15

SQL> col error for a40

SQL> select dest_id,dest_name,destination,status,error from v$archive_dest_status;





   DEST_ID DEST_NAME            DESTINATION     STATUS    ERROR

---------- -------------------- --------------- --------- ----------

         1 LOG_ARCHIVE_DEST_1           VALID

         2 LOG_ARCHIVE_DEST_2   zlm10g        VALID

         3 LOG_ARCHIVE_DEST_3           INACTIVE

         4 LOG_ARCHIVE_DEST_4           INACTIVE

         5 LOG_ARCHIVE_DEST_5           INACTIVE

         6 LOG_ARCHIVE_DEST_6           INACTIVE

         7 LOG_ARCHIVE_DEST_7           INACTIVE

         8 LOG_ARCHIVE_DEST_8           INACTIVE

         9 LOG_ARCHIVE_DEST_9           INACTIVE

        10 LOG_ARCHIVE_DEST_10          INACTIVE

        11 STANDBY_ARCHIVE_DEST         VALID





11 rows selected.



--备库远程归档正常,主库报一个权限不足,于是考虑又一次复制主库password到备库

SQL> !scp $ORACLE_HOME/dbs/orapwzlm 10dg2:$ORACLE_HOME/dbs

oracle@10dg2's password: 

orapwzlm                                                                                           100% 1536     1.5KB/s   00:00

--主库tnsping一下备库

[oracle@10dg1 rman_bak]$ tnsping
zlm10gdg --NET SERVICE NAME





TNS Ping Utility for Linux: Version 10.2.0.5.0 - Production on 30-JUL-2014 14:50:45





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





Used parameter files:





Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.92)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = zlm_SN1)))

OK (0 msec)

--备库tnsping一下主库

[oracle@10dg2 zlm]$ tnsping
zlm10g --NET SERVICE NAME





TNS Ping Utility for Linux: Version 10.2.0.5.0 - Production on 30-JUL-2014 14:50:56





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





Used parameter files:





Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.91)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = zlm_SN)))

OK (10 msec)

--再次查看主库归档路径状态

SQL> select dest_id,dest_name,destination,status,error from v$archive_dest_status;





   DEST_ID DEST_NAME            DESTINATION     STATUS    ERROR

---------- -------------------- --------------- --------- ----------------------------------------

         1 LOG_ARCHIVE_DEST_1                   VALID

         2 LOG_ARCHIVE_DEST_2   zlm10gdg        VALID

         3 LOG_ARCHIVE_DEST_3                   INACTIVE

         4 LOG_ARCHIVE_DEST_4                   INACTIVE

         5 LOG_ARCHIVE_DEST_5                   INACTIVE

         6 LOG_ARCHIVE_DEST_6                   INACTIVE

         7 LOG_ARCHIVE_DEST_7                   INACTIVE

         8 LOG_ARCHIVE_DEST_8                   INACTIVE

         9 LOG_ARCHIVE_DEST_9                   INACTIVE

        10 LOG_ARCHIVE_DEST_10                  INACTIVE





10 rows selected.

主库远程归档路径正常了,切记备库開始应用redo log前,先查看这个条件是否满足

6. 主备库创建standby redo logfile(假设仅仅採用arch方式归档,这步能够省略,推荐用lgwr方式)

SQL> alter database add standby logfile group 4 ('/u01/app/oracle/oradata/zlm/std04.redo') size 100m;

SQL> alter database add standby logfile group 5 ('/u01/app/oracle/oradata/zlm/std05.redo') size 100m;

SQL> alter database add standby logfile group 6 ('/u01/app/oracle/oradata/zlm/std06.redo') size 100m;

SQL> alter database add standby logfile group 7 ('/u01/app/oracle/oradata/zlm/std07.redo') size 100m;

主库创建的时候没问题,备库创建到第2个文件的时候报错

SQL> alter database add standby logfile group 4 ('/u01/app/oracle/oradata/zlm/std04.redo') size 100m;





Database altered.





SQL> alter database add standby logfile group 5 ('/u01/app/oracle/oradata/zlm/std05.redo') size 100m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/zlm/std05.redo') size 100m

*

ERROR at line 1:

ORA-19502: write error on file "/u01/app/oracle/oradata/zlm/std05.redo", blockno 198657 (blocksize=512)

ORA-27072: File I/O error

Linux-x86_64 Error: 9: Bad file descriptor  --错误的描写叙述符

Additional information: 4

Additional information: 198657

Additional information: 790016



開始还以为是磁盘有损坏,原来是可用空间不够了,初始仅仅给了15G,想想装个10g足够了,Oracle软件和patch的安装文件用完后没及时删除,占用掉不少空间

--再次查看一下是否生成了standby redo logfile

SQL> !ls -lrt /u01/app/oracle/oradata/zlm

total 1275164

-rw-r-----. 1 oracle oinstall  31465472 Jul 30 13:47 undotbs01.dbf

-rw-r-----. 1 oracle oinstall 104865792 Jul 30 13:47 example01.dbf

-rw-r-----. 1 oracle oinstall 262152192 Jul 30 13:47 sysaux01.dbf

-rw-r-----. 1 oracle oinstall   5251072 Jul 30 13:47 users01.dbf

-rw-r-----. 1 oracle oinstall 461381632 Jul 30 13:47 system01.dbf

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:07
std04.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25
std05.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25
std06.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25
std07.redo

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:25 control01.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:25 control02.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:25 control03.ctl

7. 备库開始redo apply

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

Media recovery complete.

--查看备库数据文件文件夹,发现并未生成redo01.log,redo02.log,redo03.log这3个文件

SQL> !ls -lrt /u01/app/oracle/oradata/zlm

total 1275164

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:07 std04.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25 std05.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25 std06.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25 std07.redo

-rw-r-----. 1 oracle oinstall 461381632 Jul 30 15:27 system01.dbf

-rw-r-----. 1 oracle oinstall  31465472 Jul 30 15:27 undotbs01.dbf

-rw-r-----. 1 oracle oinstall 262152192 Jul 30 15:27 sysaux01.dbf

-rw-r-----. 1 oracle oinstall   5251072 Jul 30 15:27 users01.dbf

-rw-r-----. 1 oracle oinstall 104865792 Jul 30 15:27 example01.dbf

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:27 control01.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:27 control02.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:27 control03.ctl

--查看备库alertlog,提示无法得到文件状态,找不到该文件

ALTER DATABASE RECOVER  managed standby database using current logfile disconnect from session  

Wed Jul 30 15:27:18 CST 2014

Attempt to start background Managed Standby Recovery process (zlm)

MRP0 started with pid=19, OS id=16199

Wed Jul 30 15:27:18 CST 2014

MRP0: Background Managed Standby Recovery process started (zlm)

Managed Standby Recovery starting Real Time Apply

 parallel recovery started with 2 processes

Wed Jul 30 15:27:24 CST 2014

Waiting for all non-current ORLs to be archived...

Wed Jul 30 15:27:24 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16199.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Wed Jul 30 15:27:24 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16199.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Clearing online redo logfile 1 /u01/app/oracle/oradata/zlm/redo01.log

Clearing online log 1 of thread 1 sequence number 1

Wed Jul 30 15:27:24 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16199.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Wed Jul 30 15:27:24 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16199.trc:

ORA-19527: physical standby redo log must be renamed

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

Clearing online redo logfile 1 complete --尽管提示complete,但并未成功,也就是说,没有生成对应文件

Media Recovery Waiting for thread 1 sequence 3

Wed Jul 30 15:27:24 CST 2014

Completed: ALTER DATABASE RECOVER  managed standby database using current logfile disconnect from session

在之前的文章中提到过 http://blog.csdn.net/aaron8219/article/details/37902793,对于10g,须要要设置一个參数,那就是log_file_name_convert,哪怕主备库的路径全然一样,并且因为这个參数无法在线改动,必须重新启动数据库才干生效,也就是要停库。因为创建过standby
redo logfile,还是能够应用日志的,对DG配置没有影响,之后又做了个測试,发现主库和备库做一次正常的switchover并又一次open后,会自己主动生成和原主库一致的3个online redo logfile,即redo01.log,redo02.log,redo03.log,既然备库switchover成主库后,能够正常生成online redo logfile,那么就能够考虑不设置log_file_name_convert參数了,但前提必须是主备库的路径确实是一致的,否则这个參数还是不能少

通过查看备库switchover成主库以后跟踪到的日志得到这一结论

Thu Jul 31 12:58:42 CST 2014

alter database commit to switchover to primary

Thu Jul 31 12:58:42 CST 2014

ALTER DATABASE SWITCHOVER TO PRIMARY (zlm)

Thu Jul 31 12:58:42 CST 2014

If media recovery active, switchover will wait 900 seconds

SwitchOver after complete recovery through change 492782

Thu Jul 31 12:58:42 CST 2014

Errors in file /u01/app/oracle/admin/zlm/udump/zlm_ora_4548.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Thu Jul 31 12:58:43 CST 2014

Errors in file /u01/app/oracle/admin/zlm/udump/zlm_ora_4548.trc:

ORA-00313: open failed for members of log group 2 of thread 1

ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/zlm/redo02.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Thu Jul 31 12:58:44 CST 2014

Errors in file /u01/app/oracle/admin/zlm/udump/zlm_ora_4548.trc:

ORA-00313: open failed for members of log group 3 of thread 1

ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/zlm/redo03.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Standby became primary SCN: 492780

Converting standby mount to primary mount.

Thu Jul 31 12:58:46 CST 2014

Switchover: Complete - Database mounted as primary (zlm)

Thu Jul 31 12:58:46 CST 2014

ARC1: STARTING ARCH PROCESSES

Thu Jul 31 12:58:46 CST 2014

Completed: alter database commit to switchover to primary

Thu Jul 31 12:58:46 CST 2014

ARC2: Archival started

ARC1: STARTING ARCH PROCESSES COMPLETE

ARC2 started with pid=18, OS id=4703

Thu Jul 31 12:59:24 CST 2014

ARC0: Becoming the 'no SRL' ARCH

Thu Jul 31 13:01:03 CST 2014

alter database open

Thu Jul 31 13:01:03 CST 2014

Assigning activation ID 3930494507 (0xea46962b)

LNS1 started with pid=19, OS id=4724

Thu Jul 31 13:01:06 CST 2014

Thread 1 advanced to log sequence 14 (thread open)

Thu Jul 31 13:01:06 CST 2014

******************************************************************

LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2

******************************************************************

Thu Jul 31 13:01:06 CST 2014

Thread 1 opened at log sequence 14

  Current log# 2 seq# 14 mem# 0: /u01/app/oracle/oradata/zlm/redo02.log

Successful open of redo thread 1

注意看这3个online redo logfile生成的时间,即改动时间,因为当前使用的是redo02.log,随着时间的推移,redo02.log的最后改动时间会不断地添加,直到切换到其它日志文件上

SQL> !ls -lrt /u01/app/oracle/oradata/zlm

total 1428848

-rw-r-----. 1 oracle oinstall  20979712 Jul 31 10:56 temp01.dbf

-rw-r-----. 1 oracle oinstall  52429312 Jul 31 13:01 redo03.log

-rw-r-----. 1 oracle oinstall  52429312 Jul 31 13:01 redo01.log

-rw-r-----. 1 oracle oinstall   5251072 Jul 31 13:01 users01.dbf

-rw-r-----. 1 oracle oinstall 104865792 Jul 31 13:01 example01.dbf

-rw-r-----. 1 oracle oinstall 104858112 Jul 31 13:01 std04.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 31 13:01 std05.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 31 13:01 std06.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 31 13:01 std07.redo

-rw-r-----. 1 oracle oinstall 262152192 Jul 31 13:12 sysaux01.dbf

-rw-r-----. 1 oracle oinstall 461381632 Jul 31 13:12 system01.dbf

-rw-r-----. 1 oracle oinstall  31465472 Jul 31 13:13 undotbs01.dbf

-rw-r-----. 1 oracle oinstall  52429312 Jul 31 13:13 redo02.log

-rw-r-----. 1 oracle oinstall   7061504 Jul 31 13:13 control01.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 31 13:13 control02.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 31 13:13 control03.ctl

能够看到,reod02.log的最后改动时间变成13:13了

--备库初始状态

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     1

Next log sequence to archive   0

Current log sequence           3

--主库初始状态

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     1

Next log sequence to archive   3

Current log sequence           3

--主库切换3次日志

SQL> alter system switch logfile;





System altered.





SQL> alter system switch logfile;





System altered.





SQL> alter system switch logfile;





System altered.

--备库归档日志状态

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     4

Next log sequence to archive   0

Current log sequence           6

--查看日志应用情况

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





 SEQUENCE# APP

---------- ---

         3 YES

         4 YES

         5 YES

--备库停止redo apply

SQL> recover managed standby disconnect from session;

--主库再切2次归档后查看归档

SQL> alter system switch logfile;





System altered.





SQL> alter system switch logfile;





System altered.





SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     7

Next log sequence to archive   9

Current log sequence           9

--此时能够看到,备库接收到了2个新切的归档7,8,但未应用

SQL> archive log list

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     7

Next log sequence to archive   0

Current log sequence           9

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





 SEQUENCE# APP

---------- ---

         3 YES

         4 YES

         5 YES

         6 YES

         7 NO

         8 NO

--备库再启用redo apply,这次不使用using crrent logfile

SQL> recover managed standby database disconnect from session;

--跟踪备库的alertlog日志

Wed Jul 30 15:47:03 CST 2014

ALTER DATABASE RECOVER  managed standby database cancel  

Wed Jul 30 15:47:03 CST 2014

MRP0: Background Media Recovery cancelled with status 16037

Wed Jul 30 15:47:03 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16199.trc:

ORA-16037: user requested cancel of managed recovery operation

Managed Standby Recovery not using Real Time Apply

Recovery interrupted!

Recovered data files to a consistent state at change 465658

Wed Jul 30 15:47:04 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16199.trc:

ORA-16037: user requested cancel of managed recovery operation

Wed Jul 30 15:47:04 CST 2014

MRP0: Background Media Recovery process shutdown (zlm)

Wed Jul 30 15:47:04 CST 2014

Managed Standby Recovery Canceled (zlm)

Wed Jul 30 15:47:04 CST 2014

Completed: ALTER DATABASE RECOVER  managed standby database cancel  

Wed Jul 30 15:47:13 CST 2014

Primary database is in MAXIMUM PERFORMANCE mode

RFS[2]: Successfully opened standby log 4: '/u01/app/oracle/oradata/zlm/std04.redo'

Primary database is in MAXIMUM PERFORMANCE mode

RFS[2]: Successfully opened standby log 5: '/u01/app/oracle/oradata/zlm/std05.redo'

Wed Jul 30 15:47:42 CST 2014

ALTER DATABASE RECOVER  managed standby database disconnect from session  

Wed Jul 30 15:47:42 CST 2014

Attempt to start background Managed Standby Recovery process (zlm)

MRP0 started with pid=19, OS id=16248

Wed Jul 30 15:47:42 CST 2014

MRP0: Background Managed Standby Recovery process started (zlm)

Managed Standby Recovery not using Real Time Apply

 parallel recovery started with 2 processes

Wed Jul 30 15:47:47 CST 2014

Waiting for all non-current ORLs to be archived...

Wed Jul 30 15:47:47 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16248.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Wed Jul 30 15:47:47 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16248.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Clearing online redo logfile 1 /u01/app/oracle/oradata/zlm/redo01.log

Clearing online log 1 of thread 1 sequence number 7

Wed Jul 30 15:47:47 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16248.trc:

ORA-00313: open failed for members of log group 1 of thread 1

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

Wed Jul 30 15:47:47 CST 2014

Errors in file /u01/app/oracle/admin/zlm/bdump/zlm_mrp0_16248.trc:

ORA-19527: physical standby redo log must be renamed

ORA-00312: online log 1 thread 1: '/u01/app/oracle/oradata/zlm/redo01.log'

Clearing online redo logfile 1 complete

Media Recovery Log /u01/app/oracle/flash_recovery_area/ZLMDG/archivelog/2014_07_30/o1_mf_1_7_9xk8r16v_.arc

Media Recovery Log /u01/app/oracle/flash_recovery_area/ZLMDG/archivelog/2014_07_30/o1_mf_1_8_9xk8r1jc_.arc

Wed Jul 30 15:47:48 CST 2014

Completed: ALTER DATABASE RECOVER  managed standby database disconnect from session  

Wed Jul 30 15:47:48 CST 2014

Media Recovery Waiting for thread 1 sequence 9 (in transit)





发现online redo logfile还是无法获取,仍然会提示standby redo log须要重命名,可是去能够成功地应用刚才剩下的2个归档7,8





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





 SEQUENCE# APP

---------- ---

         3 YES

         4 YES

         5 YES

         6 YES

         7 YES

         8 YES





6 rows selected.





查看一下数据文件存放的文件夹,的确依然没有生成我么所期待的online redo logfile(redo01.log,redo02.log,redo03.log)





SQL> !ls -lrt /u01/app/oracle/oradata/zlm

total 1275164

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25 std06.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:25 std07.redo

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:47 std04.redo

-rw-r-----. 1 oracle oinstall  31465472 Jul 30 15:47 undotbs01.dbf

-rw-r-----. 1 oracle oinstall 461381632 Jul 30 15:47 system01.dbf

-rw-r-----. 1 oracle oinstall 262152192 Jul 30 15:47 sysaux01.dbf

-rw-r-----. 1 oracle oinstall   5251072 Jul 30 15:47 users01.dbf

-rw-r-----. 1 oracle oinstall 104865792 Jul 30 15:47 example01.dbf

-rw-r-----. 1 oracle oinstall 104858112 Jul 30 15:56 std05.redo

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:56 control01.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:56 control02.ctl

-rw-r-----. 1 oracle oinstall   7061504 Jul 30 15:56 control03.ctl



关闭主库,加入log_file_name_convert參数后,这种DG才算是完整的配置

Deploy Oracle 10.2.0.5 DataGuard on Red Hat Enterprise Linux 6.4的更多相关文章

  1. Red Hat Enterprise Linux 7.0

    简介 Red Hat Enterprise Linux是Red Hat公司的Linux发行版,面向商业市场,包括大型机.红帽公司从Red Hat Enterprise Linux 5开始对企业版LIN ...

  2. Deploy Oracle 10.2.0.5 on Red Hat Enterprise Linux 6.4

    一.Linux系统安装和配置 1.安装系统时选Desktop 2.设置eth0网卡为静态IP,加入子网掩码,网关,DNS.并配置自己主动启动 3.改动/etc/hosts.加入主机名和相应IP 4.禁 ...

  3. Red Hat Enterprise Linux 6上安装Oracle 11G(11.2.0.4.0)缺少pdksh包的问题

    RHEL 6上安装Oracle 11G警告缺少pdksh包 前言 相信很多刚刚接触学习Oracle的人,在RHEL6上安装11.2.0.3 or 11.2.0.4这两个版本的时候, 都遇到过先决条件检 ...

  4. ORACLE Install (10g r2) FOR Red Hat Enterprise Linux Server release 5.5 (64 bit) (转)

    OS Info----------# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 5.5 (Tikanga)# cat ...

  5. Red Hat Enterprise Linux 8.0 安装

    Red Hat Enterprise Linux 8.0 安装 本次安装通过使用VMware Workstation 15 pro 进行. 1.新建虚拟机 2.点击首页的创建新的虚拟机,或者点击标签栏 ...

  6. How to create Oracle ASM devices using device-mapper multipath devices in Red Hat Enterprise Linux 6

    How to create Oracle ASM devices using device-mapper multipath devices in Red Hat Enterprise Linux 6 ...

  7. Red Hat Enterprise Linux AS4, C++ OCCI connect Oracle 9i

    前提是已经安装好Oracle 9i. 1. 下载对应的ORACLE client安装. http://www.oracle.com/technetwork/database/features/inst ...

  8. Red Hat Enterprise Linux 7.4上安装Oracle 11.2.0.4

    1. 配置Yum源及关闭SeLinux [root@localhost ~]# mkdir /media/rhel [root@localhost ~]# mount /dev/cdrom /medi ...

  9. Red Hat Enterprise Linux x86-64 上安装 oracle 11gR2

    一.以root用户登录 二.安装依赖包 #rpm -qa | grep 包名    ----查看包 binutils-2.20.51.0.2-5.11.el6 (x86_64)            ...

随机推荐

  1. node-inspector使用

    nodejs.gulp调试工具node-inspector使用 俗话说欲善其功,必先利其器. 作为目前新型的Web Server开发栈倍受开发者关注的Nodejs来说,调试技术是学习开发的基石,所以对 ...

  2. QFrame好像是万能的(可以随意画线,或者图片,放在其它元素之间做点缀,还可OnClick)

    QFrame *fr2=new QFrame(this); fr2->setGeometry(0,140,90,40); fr2->setStyleSheet("backgrou ...

  3. vc怎么去掉烦人的“驱动器未准备好”错误

    在我们写程序的时候,如果访问一个软驱中没有软盘或者光驱中没有cd的时候,windows总是弹出一个恼人的错误框说“驱动器未准备好” 其实我们可以通过如下的步骤禁止这个错误框的弹出 一.用SetErro ...

  4. ubuntu 安装 maven3.2

    1.下载并解压 apache-maven-3.2.5-bin.tar.gz tar -xzvf apache-maven--bin.tar.gz 2.设置环境变量 sudo gedit ~/.prof ...

  5. hdu 1540 Tunnel Warfare(线段树区间统计)

    Tunnel Warfare Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) T ...

  6. SQL Select语句完整的执行顺序

    1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函数进行计算: 5. 使用having子句筛 ...

  7. 改变TPageControl的活动标签颜色

    设置PageControl的owndraw属性为TRUE. procedure TForm1.pgc1DrawTab(Control: TCustomTabControl; TabIndex: Int ...

  8. reduce个数究竟和哪些因素有关

    reduce的数目究竟和哪些因素有关 1.我们知道map的数量和文件数.文件大小.块大小.以及split大小有关,而reduce的数量跟哪些因素有关呢?  设置mapred.tasktracker.r ...

  9. qt槽函数中,窗口镶嵌窗口的问题,求解

    my_label=newQLabel(ui->widget); my_Label->setText("yvhvv"); 我把这插入到构造函数中,正确显示. 我把这插入到 ...

  10. Network Panel说明

    Chrome Developer Tools:Network Panel说明   官方资料:Chrome Developer Tools: Network Panel 一.chrome Develop ...