系统: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. QNX 线程 调度策略 优先级 时钟频率 同步

    /* * barrier1.c */ #include <stdio.h>#include <unistd.h>#include <stdlib.h>#includ ...

  2. 融云(找到“每个App都有沟通的需求”的细分市场)

    近日,国内著名App驾考宝典和融云达成合作,为应用增加IM功能,实现亿级用户之间聊天.消息一出,IM(即时通讯)领域的大佬,同时也是个上线不到两岁的新生力量,再次引发了行业的关注. 对业内人士而言,即 ...

  3. 一个问题:关于类型转换Type Cast(汇编讲解 as 语法)

    问题如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34   ...

  4. Linkedin工程师是如何优化他们的Java代码的(转)

    英文原文:LinkedIn Feed: Faster with Less JVM Garbage 最近在刷各大公司的技术博客的时候,我在Linkedin的技术博客上面发现了一篇很不错博文.这篇博文介绍 ...

  5. EL表达式(2)

    本篇介绍EL表达式的隐式对象,如同JSP一样,EL也封装了11个隐式对象,通过这些隐式对象可以在EL表达式中直接使用. 在使用EL时,其实EL是先看标识符是否是其隐式对象之一,如果不是,才从四个域(p ...

  6. 【Demo 0001】Android 程序结构

    Android 学习步骤及内容:     1.  Android 程序结构(开发环境搭建,Android第一程序,程序启动过程以及工程介绍):     2.  Android 事件(通用使用规则,通用 ...

  7. C++基础之二:常量指针和指针常量

    1.常量指针 定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针. 声明:const int * p; 注:可以将一个常量的地址赋值给一个对应类型的常 ...

  8. [置顶] oracle 快速查询数据库各种信息、及转换对应java代码

    1 查询表中数据量 select 'select '||''''||t.TABLE_NAME||''''||' as table_name, count(*) from '|| t.TABLE_NAM ...

  9. NET Core RC2 and .NET Core SDK Preview

    NET Core RC2 and .NET Core SDK Preview 先看一下 .NET Core(包含 ASP.NET Core)的路线图: Beta6: 2015年7月27日 Beta7: ...

  10. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...