前言:之前由于数据库没有监控,DG早就出问题了,然而主库上归档早就被清理,没办法,只能手动重做DG。

1. 删库

该步请根据各自情况删除

2. rman连接数据库

报错如下:

``` Recovery Manager: Release 11.2.0.3.0 - Production on Thu Jun 29 23:55:03 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: WXDB (DBID=1337835662) RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00554: initialization of internal recovery manager package failed RMAN-04006: error from auxiliary database: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

  1. <a name="7yelub"></a>
  2. ### 3.查看监听状态
  3. >

[oracle@weixindg2 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 30-JUN-2017 00:10:00

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=weixindg2)(PORT=1521)))

STATUS of the LISTENER

Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production Start Date 30-JUN-2017 00:00:18 Uptime 0 days 0 hr. 9 min. 42 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/oracle/diag/tnslsnr/weixindg2/listener/alert/log.xml Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=weixindg2)(PORT=1521))) Services Summary… Service “wxdg2” has 2 instance(s). Instance “wxdb”, status BLOCKED, has 1 handler(s) for this service… Instance “wxdg”, status UNKNOWN, has 1 handler(s) for this service… The command completed successfully

  1. <a name="ri8ohd"></a>
  2. ### 4.注册动态监听
  3. >

[oracle@weixindg2 admin]$ cat listener.ora LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = weixindg2)(PORT = 1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/11.2.0/dbhome_1)
(PROGRAM = extproc)
)

  1. (SID_DESC =
  2. (GLOBAL_DBNAME = wxdg2)
  3. (ORACLE_HOME = /u01/oracle/product/11.2.0/dbhome_1)
  4. (SID_NAME = wxdb)
  5. )

)

  1. <a name="ngcazn"></a>
  2. ### 5.重启监听并查看监听状态
  3. >

[oracle@weixindg2 admin]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 30-JUN-2017 00:31:41

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=weixindg2)(PORT=1521)))

STATUS of the LISTENER

Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production Start Date 30-JUN-2017 00:15:09 Uptime 0 days 0 hr. 16 min. 32 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/oracle/diag/tnslsnr/weixindg2/listener/alert/log.xml Listening Endpoints Summary… (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=weixindg2)(PORT=1521))) Services Summary… Service “PLSExtProc” has 1 instance(s). Instance “PLSExtProc”, status UNKNOWN, has 1 handler(s) for this service… Service “wxdg2” has 2 instance(s). Instance “wxdb”, status UNKNOWN, has 1 handler(s) for this service… Instance “wxdb”, status READY, has 1 handler(s) for this service… The command completed successfully

  1. <a name="dgrvzy"></a>
  2. ### 6. RMAN连接数据库
  3. >

[oracle@weixindg2 admin]$ rman target sys/XXXX@WXDB auxiliary sys/XXXX@WXDG2

Recovery Manager: Release 11.2.0.3.0 - Production on Fri Jun 30 00:15:50 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

connected to target database: WXDB (DBID=1337835662) connected to auxiliary database: WXDB (not mounted)



<a name="f06esz"></a>
### 7. 复制数据库
>

RMAN> duplicate target database for standby nofilenamecheck from active database; Starting Duplicate Db at 30-JUN-17 using target database control file instead of recovery catalog allocated channel: ORA_AUX_DISK_1 channel ORA_AUX_DISK_1: SID=156 device type=DISK

contents of Memory Script: { backup as copy reuse targetfile ‘/u01/oracle/product/11.2.0/dbhome_1/dbs/orapwwxdb’ auxiliary format ‘/u01/oracle/product/11.2.0/dbhome_1/dbs/orapwwxdb’ ; } executing Memory Script

Starting backup at 30-JUN-17 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1922 device type=DISK Finished backup at 30-JUN-17

contents of Memory Script: { backup as copy current controlfile for standby auxiliary format ‘/u01/oracle/oradata/wxdb/control01.ctl’; restore clone controlfile to ‘/u01/oracle/fast_recovery_area/wxdb/control02.ctl’ from ‘/u01/oracle/oradata/wxdb/control01.ctl’; } executing Memory Script

Starting backup at 30-JUN-17 …. sql statement: alter system archive log current

contents of Memory Script: { switch clone datafile all; } executing Memory Script

datafile 1 switched to datafile copy input datafile copy RECID=1 STAMP=947988036 file name=/u01/oracle/oradata/wxdb/system01.dbf datafile 2 switched to datafile copy input datafile copy RECID=2 STAMP=947988036 file name=/u01/oracle/oradata/wxdb/sysaux01.dbf datafile 3 switched to datafile copy input datafile copy RECID=3 STAMP=947988036 file name=/u01/oracle/oradata/wxdb/undotbs01.dbf datafile 4 switched to datafile copy input datafile copy RECID=4 STAMP=947988036 file name=/u01/oracle/oradata/wxdb/users01.dbf datafile 5 switched to datafile copy input datafile copy RECID=5 STAMP=947988036 file name=/u01/oracle/oradata/wxdb/users02.dbf datafile 6 switched to datafile copy input datafile copy RECID=6 STAMP=947988036 file name=/data/u01/oracle/oradata/wxdb/users03.dbf Finished Duplicate Db at 30-JUN-17



<a name="bazgtu"></a>
### 8. 查看备库状态
>

SQL> select open_mode,database_role,db_unique_name from v$database;   OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME

  —————————— ———————————————————————   MOUNTED PHYSICAL STANDBY wxdg2



<a name="rzbysz"></a>
### 9. 备库打开

SQL> alter database open;


<a name="vl5min"></a>
### 10. 启用实时应用

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


<a name="bk51kg"></a>
### 11.查看状态

SQL> select open_mode,database_role,db_unique_name from v$database;

OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME


READ ONLY WITH APPLY PHYSICAL STANDBY wxdg2


<a name="1wgnqt"></a>
### 12. 查看两边归档应用情况

主库: select sequence#,standby_dest,archived,applied,status from v$archived_log; SEQUENCE# STA ARC APPLIED S


43887 NO YES NO A 43888 NO YES NO A 43888 YES YES YES A 43888 YES YES YES A 43889 NO YES NO A 43889 YES YES YES A 43889 YES YES YES A 43890 YES YES YES A 43890 YES YES YES A 43890 NO YES NO A 43891 YES YES NO A

SEQUENCE# STA ARC APPLIED S


43891 YES YES NO A 43891 NO YES NO A

备库: SQL> select sequence#,standby_dest,archived,applied,status from v$archived_log;

SEQUENCE# STA ARC APPLIED S


43872 NO YES YES A 43871 NO YES YES A 43870 NO YES YES A 43873 NO YES YES A 43874 NO YES YES A 43875 NO YES YES A 43876 NO YES YES A 43877 NO YES YES A 43880 NO YES YES A 43879 NO YES YES A 43878 NO YES YES A

SEQUENCE# STA ARC APPLIED S


43881 NO YES YES A 43882 NO YES YES A 43883 NO YES YES A 43884 NO YES YES A 43885 NO YES YES A 43886 NO YES YES A 43887 NO YES YES A 43888 NO YES YES A 43889 NO YES YES A 43890 NO YES YES A 43891 NO YES IN-MEMORY A

22 rows selected.


<a name="v6gsom"></a>
### 13. 查看GAP

SQL> select * from v$archive_gap;

no rows selected


<a name="7a0bwv"></a>
### 14. DML测试

主库: SQL> create table t(id int);

Table created.

备库:

SQL> desc t; Name Null? Type


ID NUMBER(38) ```

15. DG重做完毕