ORACLE 11.2.0.4 Single To Single Data Guard 安装 physical standby

[root@ORACLE ~]# su - oracle
[oracle@ORACLE ~]$ sqlplus / as sysdba


1. 查看主库归档模式:
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG

2. 如果不是归档模式,进行如下修改:
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE ARCHIVELOG;
SQL>ALTER DATABASE OPEN;


3. 将主库修改为强制日志模式:
SQL> alter database force logging;
Database altered.


4. 查看db_name,主库和备库的db_name要相同:
SQL> show parameter db_name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_name                              string      orcl


5. 查看unique_name,主库和备库的unique_name必须不一样,那么在后面生成pfile拷给备库后,需要将db_unique_name改为orcl_dg。
SQL> show parameter name;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name               string
db_file_name_convert                 string
db_name                              string      orcl
db_unique_name                       string      orcl
global_names                         boolean     FALSE
instance_name                        string      oradb
lock_name_space                      string
log_file_name_convert                string
processor_group_name                 string
service_names                        string      orcl

6. 为主数据库添加standby redolog文件:
[oracle@ORACLE orcl]$ sqlplus / as sysdba
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/orcl/standby_redo01.log') size 50M;
Database altered.
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/orcl/standby_redo02.log') size 50M;
Database altered.
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/orcl/standby_redo03.log') size 50M;
Database altered.
SQL> alter database add standby logfile ('/u01/app/oracle/oradata/orcl/standby_redo04.log') size 50M;
Database altered.

6. 修改DG_CONFIG
SQL> alter system set log_archive_config='DG_CONFIG=(orcl,orcl_dg)';
System altered.
SQL> show parameter recovery;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/app/oracle/fast_recovery_area
db_recovery_file_dest_size           big integer 4182M
recovery_parallelism                 integer     0

7. 修改远程归档路径,将其发送到远程的orcl_dg服务器上。
SQL> alter system set log_archive_dest_2='SERVICE=orcl_dg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_dg';
System altered.

8. 将第二个归档路径开启。
SQL> alter system set log_archive_dest_state_2=enable;
System altered.


SQL> select group#,member from v$logfile;

    GROUP#  MEMBER
----------  --------------------------------------------------------------------------------
    3        /u01/app/oracle/oradata/orcl/redo03.log
    2        /u01/app/oracle/oradata/orcl/redo02.log
    1        /u01/app/oracle/oradata/orcl/redo01.log
    4        /u01/app/oracle/oradata/orcl/standby_redo01.log
    5        /u01/app/oracle/oradata/orcl/standby_redo02.log
    6        /u01/app/oracle/oradata/orcl/standby_redo03.log
    7        /u01/app/oracle/oradata/orcl/standby_redo04.log

SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
System altered.

SQL> alter system set log_archive_max_processes=30;
System altered.

SQL> alter system set remote_login_passwordfile=exclusive scope=spfile;
System altered.

SQL> alter system set fal_server=orcl_dg;
System altered.

SQL> alter system set standby_file_management=auto;
System altered.


SQL> quit



9. 在主备库中同时修改tnsname.ora,添加以下两个配置:
[oracle@ORACLE oracle]$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ORACLE)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

ORCL_DG =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ORADG)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
  
"product/11.2.0/db_1/network/admin/tnsnames.ora" 30L, 682C written                               


10. 开始备份:
[oracle@ORACLE oracle]$ rman target /
RMAN> backup database plus archivelog;

Finished backup at 07-FEB-17

RMAN> exit
Recovery Manager complete.

# 如果备库已经创建了库,那么只需要将备库的oradata路径下的文件全部删除,以及控制文件删除,密码文件删除
# [oracle@ORADG ~]$ cd /u01/app/oracle/oradata/orcl/
# [oracle@ORADG orcl]$ ls
# control01.ctl  redo01.log  redo03.log    system01.dbf  undotbs01.dbf
# example01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf
# 删除备库的oradata路径下面的文件,不需要重新创建该路径
# [oracle@ORADG orcl]$ rm -rf *
# 如果没有创建库,那么就需要在备库创建对应的路径:
# [oracle@ORADG ~] mkdir -p /u01/app/oracle/oradata/orcl
# [oracle@ORADG ~] mkdir -p /u01/app/oracle/fast_recovery_area/ORCL
# [oracle@ORADG ~] mkdir -p /u01/app/oracle/admin/orcl/adump



11. 生成pfile文件,将其拷贝到备用数据库,并进行修改
[oracle@ORACLE admin]$ sqlplus / as sysdba
SQL> create pfile='/u01/app/oracle/pfileoradb1.ora' from spfile;
File created.
SQL> show parameter spfile;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/11.2.0/db_1/dbs/spfileoradb.ora
SQL> quit
[oracle@ORACLE admin]$ scp /u01/app/oracle/pfileoradb1.ora 192.168.56.20:/u01/app/oracle/product/11.2.0/db_1/dbs/
pfileoradb1.ora                                                                  100% 1319     1.3KB/s   00:00    


12. 在节点2上进行修改,如下,将主库的pfile文件拷贝过来进行修改,修改以下三个参数
[oracle@ORADG orcl]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/
[oracle@ORADG dbs]$ ls
hc_orcl.dat  init.ora  lkORCL  lkORCL_DG  orapworcl  pfileoradb1.ora  spfileorcl.ora
[oracle@ORADG dbs]$ mv spfileorcl.ora spfileorcl.ora.bak
[oracle@ORADG dbs]$ vi pfileoradb1.ora 
*.db_unique_name='orcl_dg'
*.fal_server='orcl'
*.log_archive_dest_2='SERVICE=orcl ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'


13. 在节点1上生成备用控制文件,并拷贝到节点2上:
[oracle@ORACLE admin]$ sqlplus / as sysdba
SQL> alter database create standby controlfile as '/tmp/orcl_dg.ctl';
Database altered.
SQL> quit
[oracle@ORACLE admin]$ scp /tmp/orcl_dg.ctl 192.168.56.20:/u01/app/oracle/oradata/orcl/control01.ctl
orcl_dg.ctl                                                                      100% 9520KB   9.3MB/s   00:00    


14. 在节点2上另一个路径下生成第二个control02
[oracle@ORADG adump]$ cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/oracle/fast_recovery_area/orcl/control02.ctl


15. 将其余归档文件和备份文件一起考到备用数据库上
[oracle@ORADG adump]$ scp -r 192.168.56.21:/u01/app/oracle/fast_recovery_area/ORCL/backupset /u01/app/oracle/fast_recovery_area/ORCL
o1_mf_nnndf_TAG20170207T155257_d9lz6t7j_.bkp                                     100% 1122MB  17.5MB/s   01:04    
o1_mf_annnn_TAG20170207T155438_d9lz9yv8_.bkp                                     100%  220KB 219.5KB/s   00:00    
o1_mf_ncsnf_TAG20170207T155257_d9lz9x5f_.bkp                                     100% 9600KB   9.4MB/s   00:01    
o1_mf_annnn_TAG20170207T155250_d9lz6lfj_.bkp                                     100%   82MB  16.5MB/s   00:05    
[oracle@ORADG adump]$ scp -r 192.168.56.21:/u01/app/oracle/fast_recovery_area/ORCL/archivelog /u01/app/oracle/fast_recovery_area/ORCL
o1_mf_1_10_d9lz9ykm_.arc                                                         100%  218KB 218.0KB/s   00:00    
o1_mf_1_8_d9lxp78t_.arc                                                          100%   40KB  39.5KB/s   00:00    
o1_mf_1_7_d9lxnfvf_.arc                                                          100%   37MB  37.0MB/s   00:01    
o1_mf_1_9_d9lz6k42_.arc                                                          100% 2691KB   2.6MB/s   00:00    
o1_mf_1_6_d9lk1v9w_.arc                                                          100%   43MB  42.7MB/s   00:01    
[oracle@ORADG dbs]$ scp 192.168.56.21:/u01/app/oracle/product/11.2.0/db_1/dbs/orapworadb $ORACLE_HOME/dbs
oracle@192.168.56.21's password: 
orapworadb                                                                       100% 1536     1.5KB/s   00:00 

16. 开启备库的监听:
[oracle@ORADG dbs]$ lsnrctl start

17. 在备库创建spfile
[oracle@ORADG dbs]$ export ORACLE_SID=orcl
[oracle@ORADG dbs]$ sqlplus / as sysdba
SQL> create spfile from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/pfileoradb1.ora';


18. 对备库进行恢复:
[oracle@ORADG dbs]$ rman target /
RMAN> startup mount
RMAN> restore database;
Finished restore at 07-FEB-17

19. 此时在备库查看状态,没有MRP进程
SQL> select process,status,sequence# from v$managed_standby;

PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0

PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0

PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0


20. 进行同步(在备库上执行)可以看到已经有了MRP进程,
 
SQL> alter database recover managed standby database using current logfile disconnect from session;
Database altered.

SQL> select process,status,sequence# from v$managed_standby;
PROCESS   STATUS        SEQUENCE#
--------- ------------ ----------
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
ARCH      CONNECTED             0
MRP0      WAIT_FOR_GAP         10


21. 但是还是没有进行同步,可以在线面看到status为WAIT_FOR_GAP,下面是排错过程:
SQL> select process,client_process,sequence#,status from v$managed_standby;

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH              0 CONNECTED
MRP0      N/A              10 WAIT_FOR_GAP



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

 SEQUENCE# APPLIED
---------- ---------
         6 NO
         7 NO
         8 NO
         9 NO
        10 NO

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     9
Next log sequence to archive   11
Current log sequence           11
SQL> select dest_name,status from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_2';

DEST_NAME              STATUS
-----------            ---------
LOG_ARCHIVE_DEST_2     ERROR


SQL> show parameter log_archive_dest_2

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2                   string      SERVICE=orcl_dg LGWR ASYNC VAL
                                                 ID_FOR=(ONLINE_LOGFILES,PRIMAR
                                                 Y_ROLE) DB_UNIQUE_NAME=orcl_dg
log_archive_dest_20                  string
log_archive_dest_21                  string
log_archive_dest_22                  string
log_archive_dest_23                  string


SQL> show parameter log_archive_dest_state_2

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_2             string      ENABLE
log_archive_dest_state_20            string      enable
log_archive_dest_state_21            string      enable
log_archive_dest_state_22            string      enable
log_archive_dest_state_23            string      enable
log_archive_dest_state_24            string      enable
log_archive_dest_state_25            string      enable
log_archive_dest_state_26            string      enable
log_archive_dest_state_27            string      enable
log_archive_dest_state_28            string      enable
log_archive_dest_state_29            string      enable


SQL> alter system set log_archive_dest_state_2=enable;

System altered.

SQL> select dest_name,status from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_2';

DEST_NAME            STATUS
--------------      -----
LOG_ARCHIVE_DEST_2  ERROR


SQL> 
SQL> show parameter dump

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_core_dump                 string      partial
background_dump_dest                 string      /u01/app/oracle/diag/rdbms/orc
                                                 l/oradb/trace
core_dump_dest                       string      /u01/app/oracle/diag/rdbms/orc
                                                 l/oradb/cdump
max_dump_file_size                   string      unlimited
shadow_core_dump                     string      partial
user_dump_dest                       string      /u01/app/oracle/diag/rdbms/orc
                                                 l/oradb/trace
SQL> quit

[oracle@ORACLE orcl]$ cd /u01/app/oracle/diag/rdbms/orcl/oradb/trace/
[oracle@ORACLE trace]$ ls -l
total 1156
-rw-r-----. 1 oracle oinstall 389529 Feb  7 17:20 alert_oradb.log

[oracle@ORACLE trace]$ tail -n 200 alert_oradb.log 
***********************************************************************
TNS-12545: Connect failed because target host or object does not exist  (错误在这里可以看出,是因为无法连接到目标服务器)
    ns secondary err code: 12560
    nt main err code: 515
    
TNS-00515: Connect failed because target host or object does not exist
    nt secondary err code: 111
    nt OS err code: 0
Error 12545 received logging on to the standby
PING[ARC1]: Heartbeat failed to connect to standby 'orcl_dg'. Error is 12545.



[oracle@ORACLE trace]$ cd /u01/app/oracle/product/11.2.0/db_1/network/admin/
[oracle@ORACLE admin]$ ls
listener.ora  samples  shrept.lst  tnsnames.ora


检查tnsname.ora文件,查看是否有错误,检查发现无措
[oracle@ORACLE admin]$ cat tnsnames.ora 

[oracle@ORACLE admin]$ tnsping ORCL_DG
TNS-12545: Connect failed because target host or object does not exist
(这里发现tnsping不同,在hosts文件中没有添加备库的host记录,而在tnsname.ora文件中使用的HOST为计算机名,因此无法解析,修改名称为IP)
[oracle@ORACLE admin]$ vi tnsnames.ora 
ORCL_DG =
  (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.20)(PORT = 1521))
    )
      (SERVICE_NAME = orcl)
    )
"tnsnames.ora" 30L, 690C written                                                                 
[oracle@ORACLE admin]$ tnsping ORCL_DG 

Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.20)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl)))
OK (50 msec)
[oracle@ORACLE admin]$ sqlplus / as sysdba                            


SQL> select dest_name,status from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_2';

DEST_NAME            STATUS
------------------  ---------
LOG_ARCHIVE_DEST_2  ERROR


SQL> alter system set log_archive_dest_state_2=enable;

System altered.

SQL> select dest_name,status from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_2';

DEST_NAME                STATUS
--------------------    ---------
LOG_ARCHIVE_DEST_2      VALID


SQL> /

DEST_NAME            STATUS
------------------  ---------
LOG_ARCHIVE_DEST_2  ERROR


SQL> quit   

[oracle@ORACLE admin]$ cd /u01/app/oracle/diag/rdbms/orcl/oradb/trace/
[oracle@ORACLE trace]$ tail -n 200 alert_oradb.log                    
***********************************************************************

Fatal NI connect error 12545, connecting to:
 (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=ORADG)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=orcl)(CID=(PROGRAM=oracle)(HOST=ORACLE)(USER=oracle))))

  VERSION INFORMATION:
        TNS for Linux: Version 11.2.0.4.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
  Time: 07-FEB-2017 17:21:40
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12545
    
TNS-12545: Connect failed because target host or object does not exist
    ns secondary err code: 12560
    nt main err code: 515
    
TNS-00515: Connect failed because target host or object does not exist
    nt secondary err code: 111
    nt OS err code: 0
Error 12545 received logging on to the standby
PING[ARC1]: Heartbeat failed to connect to standby 'orcl_dg'. Error is 12545.
Tue Feb 07 17:22:43 2017
Error 1033 received logging on to the standby
PING[ARC1]: Heartbeat failed to connect to standby 'orcl_dg'. Error is 1033.
Tue Feb 07 17:22:55 2017
ALTER SYSTEM SET log_archive_dest_state_2='ENABLE' SCOPE=BOTH;
Tue Feb 07 17:23:45 2017
Error 1033 received logging on to the standby
PING[ARC1]: Heartbeat failed to connect to standby 'orcl_dg'. Error is 1033.


注:密码文件在拷贝过来之后,是orapw+SID,SID要修改为备用数据库的instance_name,否则不生效
[oracle@ORACLE trace]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/
[oracle@ORACLE dbs]$ ls
hc_oradb.dat  init.ora  lkORCL  lkPRIMARY  orapworadb  snapcf_oradb.f  spfileoradb.ora

[oracle@ORACLE dbs]$ scp orapworadb 192.168.56.20:$ORACLE_HOME/dbs/orapworcl
orapworadb                                                                       100% 1536     1.5KB/s   00:00    
[oracle@ORACLE dbs]$ sqlplus / as sysdba                                  

DEST_NAME            STATUS
------------------  ---------
LOG_ARCHIVE_DEST_2  ERROR


SQL> alter system set log_archive_dest_state_2=enable;

System altered.

SQL> select dest_name,status from v$archive_dest_status where dest_name='LOG_ARCHIVE_DEST_2';

DEST_NAME                STATUS
--------------------    ---------
LOG_ARCHIVE_DEST_2      VALID


SQL> /

DEST_NAME                STATUS
--------------------    ---------
LOG_ARCHIVE_DEST_2      VALID

22. 经过以上排错,数据库同步正常(在备库上查询,已经生成了RFS进程,其中LGWR进程就是将主库上的redo抓取过来):
SQL> select process,client_process,sequence#,status from v$managed_standby;

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
MRP0      N/A              12 APPLYING_LOG
RFS       ARCH              0 IDLE
RFS       UNKNOWN           0 IDLE
RFS       LGWR             12 IDLE
RFS       UNKNOWN           0 IDLE


23. 将同步取消,MRP进程消失:
SQL> alter database recover managed standby database cancel;

Database altered.

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

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
RFS       ARCH              0 IDLE
RFS       UNKNOWN           0 IDLE
RFS       LGWR             12 IDLE
RFS       UNKNOWN           0 IDLE

24. 此时可将备库打开到open状态,及read_only,然后再进行同步:
SQL> alter database open;

Database altered.

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

Database altered.

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

PROCESS   CLIENT_P  SEQUENCE# STATUS
--------- -------- ---------- ------------
ARCH      ARCH              0 CONNECTED
ARCH      ARCH              0 CONNECTED
RFS       ARCH              0 IDLE
MRP0      N/A              12 APPLYING_LOG
RFS       UNKNOWN           0 IDLE
RFS       LGWR             12 IDLE
RFS       UNKNOWN           0 IDLE



25. 从下面查询可以看出,此时数据库处于read_only并且正常同步状态
SQL> select database_role,open_mode from v$database;

DATABASE_ROLE    OPEN_MODE
---------------- --------------------
PHYSICAL STANDBY READ ONLY WITH APPLY


SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE    SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY NOT ALLOWED



测试:
SQL> create table test as select * from dba_objects;

Table created.

在节点2上查询得到如下结果,开始有延时。
SQL> select count(1) from test;
select count(1) from test
                     *
ERROR at line 1:
ORA-00942: table or view does not exist

SQL> /

  COUNT(1)
----------
     86962


在节点1上将test表truncate掉
SQL> truncate table test;

Table truncated.

节点2上查询结果如下:
SQL> 
SQL> /

  COUNT(1)
----------
         0
节点2上查询结果如下:





#DG常用维护命令

1、检查备库是否与主库同步
执行时间:每天
检查 applied 状态是否全部 为YES, 如果发现有 NO 行,请联系我 ;
SQL> select sequence#,applied from v$archived_log;
检查sequence#的序号主库和备库是否一致,如果一致,说明日志已正确传送到备库。
检查 applied 状态是否为YES,如果是,说明规档日志已在备库中应用。NO为日志没有应用。

2、备库归档日志的删除
应定期删除 archive log, 以防止目录填满,导致整个 oracle 实例挂起 。 
可以定制自动作业,用rman脚本,删除7天之前的的归档日志
DELETE noprompt ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

3、 swithover
执行时间 : 计划 swithover
主库和备份都正常在线进行的一种转换


4、FAILOVER
执行时间:主库故障


5、    注册丢失的归档日志文件
从9i以后,oracle dataguard 备库一般都不需要手工处理丢失的日志,FAL自动会帮我们处理。个别情况,也是需要手工处理丢失的日志的。
    在备库查询有哪些日志丢失,没应用到备库
SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
如果有记录,则把相应的归档日志从主库拷贝到备库。
    备库注册:
ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

6、在生产库停止Data Guard操作:
SQL> show parameter log_archive_dest
SQL> alter system set log_archive_dest_state_2=defer;

7、在生产库开启Data Guard操作:
SQL> alter system set log_archive_dest_state_2=enable;

8、查询备库相关进程信息
SQL> select process,client_process,sequence#,status from v$managed_standby; 
PROCESS列显示进程信息
CLIENT_PROCESS列显示对应的主数据库中的进程
SEQUENCE#列显示归档redo的序列号
STATUS列显示的进程状态

9、正确关闭顺序
首先关闭 standby database:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL>SHUTDOWN IMMEDIATE;

然后关闭product database
SQL>SHUTDOWN IMMEDIATE; 
原文地址:https://www.cnblogs.com/zx3212/p/6378383.html