oracle12c存在pdb情況下的dataguard簡單搭建

--  Oracle 12c Data Guard




-- 12c DG 特點及搭建注意點
- 特點;
Oracle 12c 的DataGuard 是在CDB級別實現的.但在有pdb的情況下與12c之前的版本有些區別.
在Oracle 12c的架構裏,online redo log 和控制文件是保存在CDB中的,PDB中只有自己的數據文件,
所以我們這裏加standby redo log,也是在CDB中加。


- 注意點;
備庫在 rman restore數據文件時,需要注意創建pdb(還有pdbseed數據庫)的目錄.




-- 規劃
- cat /etc/hosts
192.168.128.228 wh -- primary
192.168.128.229 sh   -- standby 


用主庫上的PDB:POC_PDB 做我們的主庫。


- 實例名:
DG Role --- DB_UNIQUE_NAME ---  Oracle Net Service Name
Primary poc_sh poc_sh
standby poc_wh poc_wh


- 歸檔路徑;
/u01/fra -- FRA










-- 環境
SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production              0
PL/SQL Release 12.1.0.2.0 - Production                                                    0
CORE    12.1.0.2.0      Production                                                                0
TNS for Linux: Version 12.1.0.2.0 - Production                                            0
NLSRTL Version 12.1.0.2.0 - Production                                                    0




SQL> show pdbs


    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 POC_PDB                        READ WRITE NO




SQL> SELECT SYS_CONTEXT ('USERENV', 'CON_NAME') FROM DUAL;


SYS_CONTEXT('USERENV','CON_NAME')
----------------------------------------------------------------------------------------------------
CDB$ROOT










---  DG 搭建  主庫端
- 主庫啓動FORCE LOGGING


SQL> select name,open_mode from v$pdbs;
NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
POC_PDB                        READ WRITE


SQL> alter database force logging;


SQL> select force_logging from v$database;




-- 歸檔直接放在FRA, pcb到open狀態


SQL> show  parameter recovery


SQL> alter system set db_recovery_file_dest_size=1G;
SQL> alter system set db_recovery_file_dest='/u01/fra';


SQL> show parameter db_recover
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      /u01/fra
db_recovery_file_dest_size           big integer 1G






SQL> select name,open_mode from v$pdbs;


NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
POC_PDB                        MOUNTED


SQL> alter pluggable database POC_PDB open;


SQL> select name,open_mode from v$pdbs;


NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
POC_PDB                        READ WRITE






--  啓動歸檔模式
SQL> show con_name --確認在cdb下.
CON_NAME
------------------------------
CDB$ROOT




SQL> archive log list;


SQL> shutdown immediate


SQL> startup mount


SQL> alter database archivelog;










-- 在主庫添加 standby redo logfile


查看 Primary 庫的 REDO 相關信息:
 
SQL>  show con_name
select  group#, members,  bytes/1024/1024 m  from v$log;
select  member from  v$logfile;


alter database add standby logfile thread 1
group 10 ('/u01/oradata/poc/sbredo10.log')size 50M,
group 11 ('/u01/oradata/poc/sbredo11.log')size 50M,
group 12 ('/u01/oradata/poc/sbredo12.log')size 50M,
group 13 ('/u01/oradata/poc/sbredo13.log')size 50M;


SQL> select GROUP#,THREAD#,BYTES/1024/1024 from v$standby_log;


    GROUP#    THREAD# BYTES/1024/1024
---------- ---------- ---------------
        10          1              50
        11          1              50
        12          1              50
        13          1              50


-- 主備庫配置靜態監聽


- 使用netmgr工具生成,或手工編輯


[oracle@wh ~]$ vi /u01/app/oracle/product/12.1/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/12.1/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.


SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = POC)
      (ORACLE_HOME = /u01/app/oracle/product/12.1/db_1)
      (SID_NAME = POC)   --注意; 是cdb
    )
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = wh)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


ADR_BASE_LISTENER = /u01/app/oracle




lsnrctl reload
lsnrctl status     (看到1個 UNKNOW狀態的Service )


[oracle@wh ~]$ lsnrctl status


LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 07-FEB-2017 09:56:07


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


Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=wh)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production
Start Date                06-FEB-2017 14:52:45
Uptime                    0 days 19 hr. 3 min. 22 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.1/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/wh/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wh)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "POC" has 1 instance(s).
  Instance "POC", status UNKNOWN, has 1 handler(s) for this service...   -- 靜態監聽
Service "pocXDB" has 1 instance(s).
  Instance "poc", status READY, has 1 handler(s) for this service...
Service "poc_pdb" has 1 instance(s).
  Instance "poc", status READY, has 1 handler(s) for this service...
Service "poc_wh" has 1 instance(s).
  Instance "poc", status READY, has 1 handler(s) for this service...
The command completed successfully






-- 分別在主備庫配置tnsnames.ora
$ORACLE_HOME/network/admin/tnsnames.ora
-添加如下;
poc_wh =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = wh)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = POC) -- 與listener.ora中的 unknow狀態的靜態監聽一致.
    )
  )


poc_sh =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = sh)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = POC)
    )
  )


 - 測試
  sqlplus sys/oracle@poc_sh as sysdba
sqlplus sys/oracle@poc_wh as sysdba  






-- 在備庫創建必要的目錄
su - oracle
mkdir -p /u01/fra
mkdir -p /u01/oradata/poc/poc_pdb
mkdir -p /u01/oradata/poc/pdbseed
mkdir -p /u01/app/oracle/admin/poc/adump


-- 主庫修改參數


alter system set db_unique_name='poc_wh' scope=spfile;
alter system set log_archive_config='dg_config=(poc_wh,poc_sh)';
alter system set log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=poc_wh' scope=spfile;
alter system set log_archive_dest_2='service=poc_sh reopen=120 lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=poc_sh';
alter system set log_archive_dest_state_1=enable;
alter system set log_archive_dest_state_2=enable;
alter system set standby_file_management='auto';







alter system set DB_FILE_NAME_CONVERT='/u01/oradata/poc','/u01/oradata/poc' scope=spfile;
alter system set LOG_FILE_NAME_CONVERT='/u01/oradata/poc','/u01/oradata/poc' scope=spfile;


- 重啓數據庫,使得新參數生效
SQL> 
shutdown immediate
startup


- 創建pfile
SQL>
create pfile='/home/oracle/pfile' from spfile;




-- 9 主庫口令文件到備庫




-- 10 主庫參數文件到備庫,並修改


-- 11 備庫使用pfile創建spfile並啓動到nomount狀態.
SQL>
startup nomount pfile='/home/oracle/pfile';


create spfile from pfile='/home/oracle/pfile';


shutdown immediate
startup nomount;
show parameter spfile;






-- 12 創建備庫


- Primary端,創建備份
rman target /
run{
ALLOCATE CHANNEL c1 TYPE disk;
BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FILESPERSET 10 FORMAT '/u01/rman_bak/dbfull_%M%D_%U.bus';
RELEASE CHANNEL c1;
}


[oracle@wh ~]$ rman target /
run{
ALLOCATE CHANNEL c1 TYPE disk;
BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FILESPERSET 10 FORMAT '/u01/rman_bak/dbfull_%M%D_%U.bus';
RELEASE CHANNEL c1;
}
Recovery Manager: Release 12.1.0.2.0 - Production on Mon Feb 6 15:16:55 2017


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




connected to target database: POC (DBID=1572033017)


RMAN> 2> 3> 4> 5> 
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=367 device type=DISK


Starting backup at 06-FEB-17
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u01/oradata/poc/undotbs01.dbf
input datafile file number=00003 name=/u01/oradata/poc/sysaux01.dbf
input datafile file number=00001 name=/u01/oradata/poc/system01.dbf
input datafile file number=00006 name=/u01/oradata/poc/users01.dbf
channel c1: starting piece 1 at 06-FEB-17
channel c1: finished piece 1 at 06-FEB-17
piece handle=/u01/rman_bak/dbfull_0206_02rrtgn9_1_1.bus tag=TAG20170206T151657 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:55
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00008 name=/u01/oradata/poc/poc_pdb/sysaux01.dbf
input datafile file number=00007 name=/u01/oradata/poc/poc_pdb/system01.dbf
input datafile file number=00009 name=/u01/oradata/poc/poc_pdb/poc_pdb_users01.dbf
channel c1: starting piece 1 at 06-FEB-17
channel c1: finished piece 1 at 06-FEB-17
piece handle=/u01/rman_bak/dbfull_0206_03rrtgp1_1_1.bus tag=TAG20170206T151657 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:25
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00004 name=/u01/oradata/poc/pdbseed/sysaux01.dbf
input datafile file number=00002 name=/u01/oradata/poc/pdbseed/system01.dbf
channel c1: starting piece 1 at 06-FEB-17
channel c1: finished piece 1 at 06-FEB-17
piece handle=/u01/rman_bak/dbfull_0206_04rrtgpq_1_1.bus tag=TAG20170206T151657 comment=NONE
channel c1: backup set complete, elapsed time: 00:00:25
Finished backup at 06-FEB-17


Starting Control File and SPFILE Autobackup at 06-FEB-17
piece handle=/u01/fra/POC_WH/autobackup/2017_02_06/o1_mf_s_935248723_d9j8tmgt_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 06-FEB-17


released channel: c1


RMAN> exit




Recovery Manager complete.
[oracle@wh ~]$ 


- Primary,創建standby控制文件
SQL> alter database create standby controlfile as '/u01/rman_bak/control01.ctl';




- 把rman備份,crontfile 從主庫傳到備庫




- 啓動standby數據庫到mount狀態
$ mv /u01/rman_bak/control01.ctl /u01/oradata/poc/control01.ctl     (將從Primary傳來的帶有rman備份信息的control,複製到pfile中的位置)
$ cp /u01/oradata/poc/control01.ctl /u01/oradata/poc/control02.ctl


sqlplus / as sysdba
startup mount 


- 使用RMAN restore數據文件
RMAN target /
RMAN> restore database; (由於需要把datafile 恢復到1T,非常緩慢)


RMAN> restore database;


Starting restore at 07-FEB-17
using channel ORA_DISK_1


datafile 1 is already restored to file /u01/oradata/poc/system01.dbf
datafile 3 is already restored to file /u01/oradata/poc/sysaux01.dbf
datafile 5 is already restored to file /u01/oradata/poc/undotbs01.dbf
datafile 6 is already restored to file /u01/oradata/poc/users01.dbf
skipping datafile 7; already restored to file /u01/oradata/poc/poc_pdb/system01.dbf
skipping datafile 8; already restored to file /u01/oradata/poc/poc_pdb/sysaux01.dbf
skipping datafile 9; already restored to file /u01/oradata/poc/poc_pdb/poc_pdb_users01.dbf
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /u01/oradata/poc/pdbseed/system01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/oradata/poc/pdbseed/sysaux01.dbf
channel ORA_DISK_1: reading from backup piece /u01/rman_bak/dbfull_0206_04rrtgpq_1_1.bus
channel ORA_DISK_1: piece handle=/u01/rman_bak/dbfull_0206_04rrtgpq_1_1.bus tag=TAG20170206T151657
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 07-FEB-17


RMAN> 








-- 13 啓動備庫並啓動apply
- restore後備庫是mount狀態;
SQL> select open_mode from v$database; -- mount狀態
OPEN_MODE
--------------------
MOUNTED




SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       MOUNTED
         3 POC_PDB                        MOUNTED


SQL> alter database open;  -- cdb(poc) 到open狀態
Database altered.


SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO -- 變爲 read only
         3 POC_PDB                        MOUNTED


SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY -- cdb 由 mount狀態 變爲 read only狀態




SQL> alter pluggable database poc_pdb open;
Pluggable database altered.


SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 POC_PDB                        READ ONLY  NO    -- 變爲 read only






- 主備庫狀態
SQL> select log_mode,open_mode ,database_role from v$database;
LOG_MODE     OPEN_MODE            DATABASE_ROLE
------------ -------------------- ----------------
ARCHIVELOG   READ WRITE           PRIMARY




- 備庫啓動real-time apply
SQL> alter database recover managed standby database using current logfile disconnect from session;


2017-02-07 15:15:27.419000 +08:00
Archived Log entry 6 added for thread 1 sequence 202 ID 0x5db35af9 dest 1:
2017-02-07 15:44:50.598000 +08:00
Warning: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE has been deprecated.
Warning: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE has been deprecated.
alter database recover managed standby database using current logfile disconnect from session
Attempt to start background Managed Standby Recovery process (poc)
Starting background process MRP0
MRP0 started with pid=43, OS id=11310 
MRP0: Background Managed Standby Recovery process started (poc)
2017-02-07 15:44:55.641000 +08:00
 Started logmerger process
Managed Standby Recovery starting Real Time Apply
Parallel Media Recovery started with 4 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/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/oradata/poc/redo01.log
Clearing online log 1 of thread 1 sequence number 196
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_m000_11322.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_m000_11322.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.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 complete
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.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 2 /u01/oradata/poc/redo02.log
Clearing online log 2 of thread 1 sequence number 197
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
2017-02-07 15:44:56.623000 +08:00
Completed: alter database recover managed standby database using current logfile disconnect from session
Clearing online redo logfile 2 complete
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.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 3 /u01/oradata/poc/redo03.log
Clearing online log 3 of thread 1 sequence number 195
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.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 3 complete
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_197_d9lv0gpq_.arc
2017-02-07 15:44:59.192000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_198_d9lv0gpt_.arc
2017-02-07 15:45:02.667000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_199_d9lv0gpm_.arc
Resize operation completed for file# 3, old size 1075200K, new size 1085440K
2017-02-07 15:45:04.810000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_200_d9lv0vwl_.arc
2017-02-07 15:45:06.447000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_201_d9lv0wj9_.arc
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_202_d9lx0h6c_.arc
2017-02-07 15:45:08.310000 +08:00
Media Recovery Waiting for thread 1 sequence 203 (in transit)
Recovery of Online Redo Log: Thread 1 Group 13 Seq 203 Reading mem 0
  Mem# 0: /u01/oradata/poc/sbredo13.log




SQL> select open_mode from v$database;






- 主庫;
SQL> alter system switch logfile;


備庫;
2017-02-07 15:47:23.977000 +08:00
RFS[1]: Selected log 11 for thread 1 sequence 205 dbid 1572033017 branch 934278201
Archived Log entry 8 added for thread 1 sequence 204 ID 0x5db35af9 dest 1:
Media Recovery Waiting for thread 1 sequence 205 (in transit)
Recovery of Online Redo Log: Thread 1 Group 11 Seq 205 Reading mem 0
  Mem# 0: /u01/oradata/poc/sbredo11.log




-- 14 驗證DG同步
- 主庫;
SQL> 
SELECT SYS_CONTEXT ('USERENV', 'CON_NAME') FROM DUAL; -- 查看當前處在哪個容器中.


alter session set Container=poc_pdb;  -- 進入pdb


create table cndba as select * from dba_users;




SQL> alter system switch logfile;    --提示 ora-65040 log在cdb級別,pdb不能切換
alter system switch logfile
             *
ERROR at line 1:
ORA-16000: database or pluggable database open for read-only access




alter session set Container=CDB$ROOT;  -- 切換到cdb
alter system switch logfile;


-




-- 問題;


1. 在備庫rman restore database完成後, alert日誌報錯如下;
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_lgwr_11161.trc:


在dg同步開啓後,主庫切換幾次日誌,備庫就會自動創建出 redo,standby redo


restore 完成後,備庫目錄;
[root@sh ~]# ll /u01/oradata/poc/
total 3492180
-rw-r----- 1 oracle oinstall   17973248 Feb  7 15:00 control01.ctl
-rw-r----- 1 oracle oinstall   17973248 Feb  7 15:00 control02.ctl
drwxr-xr-x 2 oracle oinstall       4096 Feb  7 14:54 pdbseed
drwxr-xr-x 2 oracle oinstall       4096 Feb  7 14:57 poc_pdb
-rw-r----- 1 oracle oinstall 1101012992 Feb  7 14:54 sysaux01.dbf
-rw-r----- 1 oracle oinstall  849354752 Feb  7 14:54 system01.dbf
-rw-r----- 1 oracle oinstall   20979712 Feb  7 14:54 temp01.dbf
-rw-r----- 1 oracle oinstall 1583357952 Feb  7 14:54 undotbs01.dbf
-rw-r----- 1 oracle oinstall    5251072 Feb  7 14:54 users01.dbf


dg同步,並切換數個日誌後,
[root@sh ~]# ll /u01/oradata/poc/
total 3860848
-rw-r----- 1 oracle oinstall   17973248 Feb  7 15:48 control01.ctl
-rw-r----- 1 oracle oinstall   17973248 Feb  7 15:48 control02.ctl
drwxr-xr-x 2 oracle oinstall       4096 Feb  7 14:54 pdbseed
drwxr-xr-x 2 oracle oinstall       4096 Feb  7 14:57 poc_pdb
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:44 redo01.log   -- redo
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:44 redo02.log
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:44 redo03.log
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:48 sbredo10.log   -- standby redo
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:48 sbredo11.log
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:15 sbredo12.log
-rw-r----- 1 oracle oinstall   52429312 Feb  7 15:47 sbredo13.log
-rw-r----- 1 oracle oinstall 1111498752 Feb  7 15:48 sysaux01.dbf
-rw-r----- 1 oracle oinstall  849354752 Feb  7 15:48 system01.dbf
-rw-r----- 1 oracle oinstall   20979712 Feb  7 14:54 temp01.dbf
-rw-r----- 1 oracle oinstall 1583357952 Feb  7 15:48 undotbs01.dbf
-rw-r----- 1 oracle oinstall    5251072 Feb  7 15:48 users01.dbf


在備庫開啓恢復後,會開始 clear redo, 注意alert日誌中的 "Clearing online redo logfile 3 complete".


2017-02-07 15:44:50.598000 +08:00
Warning: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE has been deprecated.
Warning: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE has been deprecated.
alter database recover managed standby database using current logfile disconnect from session
Attempt to start background Managed Standby Recovery process (poc)
Starting background process MRP0
MRP0 started with pid=43, OS id=11310 
MRP0: Background Managed Standby Recovery process started (poc)
2017-02-07 15:44:55.641000 +08:00
 Started logmerger process
Managed Standby Recovery starting Real Time Apply
Parallel Media Recovery started with 4 slaves
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/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/oradata/poc/redo01.log
Clearing online log 1 of thread 1 sequence number 196
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '/u01/oradata/poc/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_m000_11322.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_m000_11322.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.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 complete
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.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 2 /u01/oradata/poc/redo02.log
Clearing online log 2 of thread 1 sequence number 197
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '/u01/oradata/poc/redo02.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
2017-02-07 15:44:56.623000 +08:00
Completed: alter database recover managed standby database using current logfile disconnect from session
Clearing online redo logfile 2 complete
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.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 3 /u01/oradata/poc/redo03.log
Clearing online log 3 of thread 1 sequence number 195
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Errors in file /u01/app/oracle/diag/rdbms/poc_sh/poc/trace/poc_mrp0_11310.trc:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/oradata/poc/redo03.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 3 complete
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_197_d9lv0gpq_.arc
2017-02-07 15:44:59.192000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_198_d9lv0gpt_.arc
2017-02-07 15:45:02.667000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_199_d9lv0gpm_.arc
Resize operation completed for file# 3, old size 1075200K, new size 1085440K
2017-02-07 15:45:04.810000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_200_d9lv0vwl_.arc
2017-02-07 15:45:06.447000 +08:00
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_201_d9lv0wj9_.arc
Media Recovery Log /u01/fra/POC_SH/archivelog/2017_02_07/o1_mf_1_202_d9lx0h6c_.arc
2017-02-07 15:45:08.310000 +08:00
Media Recovery Waiting for thread 1 sequence 203 (in transit)
Recovery of Online Redo Log: Thread 1 Group 13 Seq 203 Reading mem 0
  Mem# 0: /u01/oradata/poc/sbredo13.log














發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章