ORACLE 11g RAC-RAC DG Duplicate 搭建(生產操作文檔)


環境:
rhel 6.7 64位
源庫:ORACLE 11204 RAC 未打PSU
備庫:ORACLE 11204 RAC PSU 20170718


一、停止中間件並做全庫備份

1、在節點2做全備

2、首先要規划主、備庫db_unique_name

主庫: 備庫:
============================================================
db_name mgrdb db_name mgrdb
db_unique_name mgrdb db_unique_name mgrdbdg
============================================================

3、vi /etc/hosts 修改主、備共計4個節點
=========================================================
#主庫

由於是生產系統IP 省略

#備庫
由於是生產系統IP 省略
============================================================

 


二、源庫參數設置
1、檢查源庫每個節點至少3組redo
select group#,thread#,bytes/1024/1024,members,status from v$log;

GROUP# THREAD# BYTES/1024/1024 MEMBERS STATUS
---------- ---------- --------------- ---------- ----------------
5 1 500 2 INACTIVE
6 1 500 2 INACTIVE
7 1 500 2 INACTIVE
8 1 500 2 CURRENT
9 1 500 2 INACTIVE
10 1 500 2 INACTIVE
11 2 500 2 CURRENT
12 2 500 2 INACTIVE
13 2 500 2 INACTIVE
14 2 500 2 INACTIVE
15 2 500 2 INACTIVE

GROUP# THREAD# BYTES/1024/1024 MEMBERS STATUS
---------- ---------- --------------- ---------- ----------------
16 2 500 2 INACTIVE

1節點\2節點
alter database add logfile thread 1 group 5 ('+DATA1') size 500m;
alter database add logfile thread 2 group 6 ('+DATA1') size 500m;

2、添加Standby Redo Log

如果主庫是Rac數據庫,standby redo log組數=(所有節點中日志組數最大值+1)*RAC節點數;
#################################################################################################
--1節點
alter database add standby logfile thread 1 group 21('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 1 group 22('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 1 group 23('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 1 group 24('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 1 group 25('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 1 group 26('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 1 group 27('+DATA1','+DATA1') size 500m;

--2節點
alter database add standby logfile thread 2 group 31('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 2 group 32('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 2 group 33('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 2 group 34('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 2 group 35('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 2 group 36('+DATA1','+DATA1') size 500m;
alter database add standby logfile thread 2 group 37('+DATA1','+DATA1') size 500m;
##################################################################################################

select group#,thread#,sequence#,BYTES/1024/1024,archived,used,status from v$standby_log;

GROUP# THREAD# SEQUENCE# BYTES/1024/1024 ARC USED STATUS
---------- ---------- ---------- --------------- --- ---------- ----------
21 1 0 500 YES 0 UNASSIGNED
22 1 0 500 YES 0 UNASSIGNED
23 1 0 500 YES 0 UNASSIGNED
24 1 0 500 YES 0 UNASSIGNED
25 1 0 500 YES 0 UNASSIGNED
26 1 0 500 YES 0 UNASSIGNED
27 1 0 500 YES 0 UNASSIGNED
31 2 0 500 YES 0 UNASSIGNED
32 2 0 500 YES 0 UNASSIGNED
33 2 0 500 YES 0 UNASSIGNED
34 2 0 500 YES 0 UNASSIGNED

GROUP# THREAD# SEQUENCE# BYTES/1024/1024 ARC USED STATUS
---------- ---------- ---------- --------------- --- ---------- ----------
35 2 0 500 YES 0 UNASSIGNED
36 2 0 500 YES 0 UNASSIGNED
37 2 0 500 YES 0 UNASSIGNED



3、判斷DG軟件是否安裝
select * from v$option where parameter = 'Oracle Data Guard';

4、允許Forced Logging
alter database force logging;
select INST_ID,name,force_logging from gv$database;

--備份原始參數文件
create pfile='/home/oracle/pfile0908.bak' from spfile;
!ls -ltr /home/oracle

5、設置主庫初始化參數
##################################################################################################
select name,db_unique_name from v$database;
--alter system set db_unique_name=mgrdb scope=spfile sid='*';

alter system set log_archive_config='dg_config=(mgrdb,mgrdbdg)' scope=spfile sid='*';

alter system set log_archive_dest_1='LOCATION=+DATA1 valid_for=(ALL_LOGFILES, ALL_ROLES) db_unique_name=mgrdb' scope=spfile sid='*';

alter system set log_archive_dest_2='SERVICE=standby OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE) DB_UNIQUE_NAME=mgrdbdg' scope=spfile sid='*';

alter system set log_archive_format = '%t_%s_%r.arc' scope=spfile sid='*';

alter system set log_archive_dest_state_1=enable scope=spfile sid='*';
alter system set log_archive_dest_state_2=enable scope=spfile sid='*';

alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile sid='*';

alter system set log_archive_max_processes = 10 scope=spfile sid='*';

--Primary Database:Standby Role initialization parameters FAL參數定義的數據庫名同樣取自本地tnsnames.ora里配置的Oracle Net Service Name.
alter system set fal_server=standby scope=spfile sid='*';

alter system set standby_file_management=auto scope=spfile sid='*';

alter system set db_file_name_convert='+DATA1','+DATA1' scope=spfile sid='*'; --備端的磁盤組寫前面
alter system set log_file_name_convert='+DATA1','+DATA1' scope=spfile sid='*'; --備端的磁盤組寫前面

##################################################################################################

#為使修改生效,重啟Primary Database:
alter system archive log current;
alter system archive log current;
alter system checkpoint;
alter system checkpoint;

ps -ef|grep LOCAL=NO

set pages 999
set lines 200
col machine for a30
select MACHINE,s.USERNAME, SID,s.SERIAL#,p.spid from v$session s,v$process p
where s.paddr = p.addr and s.username is not null
order by spid;


ps -ef|grep LOCAL=NO|grep -v grep|cut -c 9-15|xargs kill -9

#分別關閉2節點
shut immediate;


#srvctl stop database -d mgrdb
#srvctl start database -d mgrdb


#重啟完后,可通過下面語句查看修改地方:
set lines 500 pages 0
col value for a90
col name for a50
select name,value
from v$parameter
where name in('db_name','db_unique_name',
'log_archive_config',
'log_archive_dest_1','log_archive_dest_2',
'log_archive_dest_1',
'log_archive_dest_2',
'remote_login_passwordfile',
'log_archive_format',
'log_archive_max_processes',
'fal_server',
'db_file_name_convert',
'log_file_name_convert',
'standby_file_management')
/

 

6、將數據庫備份、備份控制文件、備份參數文件
su - oracle
mkdir backup
rman target /

run
{allocate channel c1 type disk;
allocate channel c2 type disk;
backup filesperset 3 database format '/home/oracle/backup/full_%d_%T_%s_%p';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup archivelog from time 'sysdate-1/24' format '/home/oracle/backup/arch_%d_%T_%s_%p';
backup current controlfile for standby format '/home/oracle/backup/ctl_std';
}

7、創建備庫的pfile

su - oracle
mkdir backup
sqlplus / as sysdba
CREATE PFILE='/home/oracle/backup/initstandby.ora' FROM SPFILE;

--查看備份出來的參數文件
cat /home/oracle/backup/initstandby.ora
#################################################################################
mgrdb1.__db_cache_size=14629732352
mgrdb2.__db_cache_size=14361296896
mgrdb1.__java_pool_size=939524096
mgrdb2.__java_pool_size=939524096
mgrdb1.__large_pool_size=134217728
mgrdb2.__large_pool_size=402653184
mgrdb1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
mgrdb2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
mgrdb1.__pga_aggregate_target=39996882944
mgrdb2.__pga_aggregate_target=39460012032
mgrdb1.__sga_target=24427626496
mgrdb2.__sga_target=24964497408
mgrdb1.__shared_io_pool_size=0
mgrdb2.__shared_io_pool_size=0
mgrdb1.__shared_pool_size=7784628224
mgrdb2.__shared_pool_size=8321499136
mgrdb1.__streams_pool_size=268435456
mgrdb2.__streams_pool_size=268435456
*.audit_file_dest='/u01/app/oracle/admin/mgrdb/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATA1/mgrdb/controlfile/current.260.834178123','+DATA1/mgrdb/controlfile/current.3076.947956273'
*.db_block_size=8192
*.db_create_file_dest='+DATA1'
*.db_domain=''
*.db_file_name_convert='+DATA1','+DATA1'
*.db_name='mgrdb'
*.diagnostic_dest='/u01/app/oracle'
*.fal_server='STANDBY'
mgrdb1.instance_number=1
mgrdb2.instance_number=2
*.job_queue_processes=1000
*.log_archive_config='dg_config=(mgrdb,mgrdbdg)'
*.log_archive_dest_1='LOCATION=+DATA1 valid_for=(ALL_LOGFILES, ALL_ROLES) db_unique_name=mgrdb'
*.log_archive_dest_2='SERVICE=standby OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE) DB_UNIQUE_NAME=mgrdbdg'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=10
*.log_buffer=306790400
*.log_file_name_convert='+DATA1','+DATA1'
*.memory_max_target=64424509440
*.memory_target=64424509440
*.open_cursors=300
*.parallel_force_local=FALSE
*.pga_aggregate_target=25769803776
mgrdb2.pga_aggregate_target=0
mgrdb1.pga_aggregate_target=0
*.processes=1000
*.remote_listener='scanip:1521'
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=1600
*.sga_max_size=38654705664
mgrdb2.sga_max_size=64424509440
mgrdb1.sga_max_size=64424509440
*.sga_target=38654705664
mgrdb1.sga_target=0
mgrdb2.sga_target=0
*.shared_pool_reserved_size=288568115
mgrdb2.shared_pool_reserved_size=524288000
mgrdb1.shared_pool_reserved_size=524288000
*.shared_pool_size=805306368
mgrdb1.shared_pool_size=0
mgrdb2.shared_pool_size=0
*.standby_file_management='AUTO'
*.streams_pool_size=268435456
mgrdb2.thread=2
mgrdb1.thread=1
*.undo_retention=86400
mgrdb2.undo_tablespace='UNDOTBS2'
mgrdb1.undo_tablespace='UNDOTBS1'
*.undo_tablespace='UNDOTBS2'

#################################################################################


8、修改主庫tnsnames.ora 【兩個節點都要修改】
#修改1節點:
vi $ORACLE_HOME/network/admin/tnsnames.ora

#拷貝到2節點
scp $ORACLE_HOME/network/admin/tnsnames.ora HOSTNAME:$ORACLE_HOME/network/admin
########################################################################33
primary =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = public ip )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdb)
)
)

primary1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vip1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdb)
(SID = mgrdb1)
)
)

primary2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vip2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdb)
(SID = mgrdb2)
)
)

########################################################################

 


三、准備備庫RAC Database
1、復制參數文件
從主庫備份出來的參數拷貝到備庫上,選擇一個節點

在主庫上:
scp /home/oracle/backup/initstandby.ora hostname:/app/u01/oracle/product/11.2.0/db_1/dbs/initstandby.ora


2、復制源端密碼文件
配置DG需要兩邊數據庫密碼保持一致,把主庫的密碼文件分別拷貝到【備庫兩個節點】

在主庫上:
cd $ORACLE_HOME/dbs/
scp orapwmgrdb1 hostname:/app/u01/oracle/product/11.2.0/db_1/dbs/
scp orapwmgrdb1 hostname:/app/u01/oracle/product/11.2.0/db_1/dbs/

拷貝完后修改【備庫第二節點】的密碼文件名:
在備庫2節點:
cd $ORACLE_HOME/dbs/
mv orapwmgrdb1 orapwmgrdb2


3、將主庫備份文件拷貝到備端【因為用DUPLICATE方式,此步不做】
#scp -r /home/oracle/backup hostname:/home/oracle

 

4、按照參數文件中指定的目錄去創建相關目錄

【備端1節點】:
su - oracle
mkdir -p /app/u01/oracle/admin/mgrdbdg/adump
chmod 775 /app/u01/oracle/admin/mgrdbdg/adump

【備端2節點】:
mkdir -p /app/u01/oracle/admin/mgrdbdg/adump
chmod 775 /app/u01/oracle/admin/mgrdbdg/adump

 

5、【修改備庫參數文件】
加注釋的為修改的地方,其他保留即可
cd $ORACLE_HOME/dbs
vi initstandby.ora
##################################################################################################
*.audit_file_dest='/app/u01/oracle/admin/mgrdbdg/adump' =============
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATA1/mgrdbdg/controlfile/control01.ctl' =============
*.db_block_size=8192
*.db_create_file_dest='+DATA1' =============
*.db_domain=''
*.db_file_name_convert='+DATA1','+DATA1' =============
*.db_name='mgrdb'
*.db_unique_name='mgrdbdg' =============
*.diagnostic_dest='/oracle/app/oracle' =============
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orcldbXDB)'
*.fal_server='primary' =============
orcldb2.instance_number=2
orcldb1.instance_number=1
*.log_archive_config='dg_config=(mgrdb,mgrdbdg)'
*.log_archive_dest_1='LOCATION=+DATA1 valid_for=(ALL_LOGFILES, ALL_ROLES) db_unique_name=mgrdbdg' =============
*.log_archive_dest_2='SERVICE=primary OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE) DB_UNIQUE_NAME=mgrdb' =============
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=10
*.log_file_name_convert='+DATA1','+DATA1' =============
*.open_cursors=300
*.pga_aggregate_target=545259520 =============
*.processes=150
*.remote_listener='scanip:1521' =============
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=817889280
*.standby_file_management='AUTO'
orcldb2.thread=2
orcldb1.thread=1
orcldb2.undo_tablespace='UNDOTBS2'
orcldb1.undo_tablespace='UNDOTBS1'

##################################################################################################
*.audit_file_dest='/app/u01/oracle/admin/mgrdbdg/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATA1/mgrdbdg/controlfile/control01.ctl','+DATA1/mgrdbdg/controlfile/control02.ctl'
*.db_block_size=8192
*.db_create_file_dest='+DATA1'
*.db_domain=''
*.db_file_name_convert='+DATA1','+DATA1'
*.db_name='mgrdb'
*.diagnostic_dest='/app/u01/oracle'
*.fal_server='primary'
mgrdb1.instance_number=1
mgrdb2.instance_number=2
*.job_queue_processes=1000
*.log_archive_config='dg_config=(mgrdb,mgrdbdg)'
*.log_archive_dest_1='LOCATION=+DATA1 valid_for=(ALL_LOGFILES, ALL_ROLES) db_unique_name=mgrdbdg'
*.log_archive_dest_2='SERVICE=primary OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILE, PRIMARY_ROLE) DB_UNIQUE_NAME=mgrdb'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.arc'
*.log_archive_max_processes=10
*.log_buffer=306790400
*.log_file_name_convert='+DATA1','+DATA1'
*.memory_max_target=64424509440
*.memory_target=64424509440
*.open_cursors=300
*.parallel_force_local=FALSE
*.pga_aggregate_target=25769803776
mgrdb2.pga_aggregate_target=0
mgrdb1.pga_aggregate_target=0
*.processes=1000
*.remote_listener='scanip:1521'
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=1600
*.sga_max_size=38654705664
mgrdb2.sga_max_size=64424509440
mgrdb1.sga_max_size=64424509440
*.sga_target=38654705664
mgrdb1.sga_target=0
mgrdb2.sga_target=0
*.shared_pool_reserved_size=288568115
mgrdb2.shared_pool_reserved_size=524288000
mgrdb1.shared_pool_reserved_size=524288000
*.shared_pool_size=805306368
mgrdb1.shared_pool_size=0
mgrdb2.shared_pool_size=0
*.standby_file_management='AUTO'
*.streams_pool_size=268435456
mgrdb2.thread=2
mgrdb1.thread=1
*.undo_retention=86400
mgrdb2.undo_tablespace='UNDOTBS2'
mgrdb1.undo_tablespace='UNDOTBS1'
*.undo_tablespace='UNDOTBS2'


##################################################################################################

6、【備庫1節點】創建ASM路徑
通過grid用戶進入到asmcmd,在備庫磁盤組下創建db_unique_name目錄
su - grid
asmcmd
ASMCMD> mkdir DATA1/mgrdbdg


7、修改備庫tnanames.ora 兩個節點都要修改

修改【備庫1、2節點】tnanames.ora
vi $ORACLE_HOME/network/admin/tnsnames.ora
scp $ORACLE_HOME/network/admin/tnsnames.ora hostname:$ORACLE_HOME/network/admin

##################################################################################################
standby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan-ip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdbdg)
)
)

standby1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vip1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdbdg)
(SID = mgrdb1)
)
)

standby2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vip2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = standby)
(SID = mgrdb2)
)
)


primary =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = scan-ip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdb)
)
)


--標注的primary服務名必須添加,否則啟動mrp時日志會報如下錯誤:
Error 12154 received logging on to the standby
FAL[client, MRP0]: Error 12154 connecting to orcldb fro fetching gap sequence

FAIL_CLIENT 和 FAIL_SERVER 這兩個參數值都需指定網絡服務器,並非是db_unique_name
FAL_SERVER=net_service_name
FAL_CLIENT=net_service_name
##################################################################################################

 

四、創建物理備庫
1、使用修改好的參數備庫實例啟動到nomount
連接到oracle用戶,使用上面已修改好的參數文件將備庫實例啟動到nomount

僅在【備庫的1節點】操作:
echo $ORACLE_SID
mgrdb1

sqlplus / as sysdba
startup nomount pfile = '$ORACLE_HOME/dbs/initstandby.ora'

2、RMAN Duplicate復制數據庫
使用Rman Duplicate 方式,須先配置監聽,添加靜態服務名。
Oracle 11gR2開始,所有高可用架構,如oracle restart,rac等,監聽器的創建和管理
都是由grid用戶完成。

在【備庫1節點】:
su - grid
cd $ORACLE_HOME/network/admin
cp listener.ora listener.ora.bak
cp endpoints_listener.ora endpoints_listener.ora.bak
vi listener.ora

【添加】以下行:
===================================================
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = ANYTHING))
(ADDRESS = (PROTOCOL = TCP)(HOST = public ip)(PORT = 1521))
) )

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = mgrdbdg)
(ORACLE_HOME = /app/u01/oracle/product/11.2.0/db_1)
(SID_NAME = mgrdb1)
) )

===================================================

#重啟監聽器並查看:
su - grid
grid> srvctl stop listener -n mgrdb1
grid> srvctl start listener -n mgrdb1
grid> lsnrctl status --正常應該顯示如下信息

Service "mgrdbdg" has 1 instance(s).
Instance "mgrdb1", status UNKNOWN, has 1 handler(s) for this service...
Instance "mgrdb1", status BLOCKED, has 1 handler(s) for this service...


#在【主庫1節點】 tnsnames.ora 中【添加】下面信息
su - oracle
cd $ORACLE_HOME/network/admin
vi tnsnames.ora
添加如下內容:
========================================================
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = public ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdbdg)
)
)
========================================================

啟動監聽,【主備庫】共計4個節點都要測試
主庫1節點
tnsping standby 3
tnsping primary 3


在主庫1節點測試
sqlplus 'sys/"XXXX"'@standby as sysdba

在進制Rman Duplicate操作之前,我們還要修改oracle二進制命令的權限,參考下面:
----------------------------------------------------------------------------------
During 11.2 Gird Infrastructure installation, it prompts to select ASM admin group and AS
M dba group. Assume asmadmin is used for ASM admin group and asmdba is used for
ASM dba group.

Only users that are members of the asmadmin group have direct access to ASM disks an
d maintenance. For other database users (software owners or dba group users), the acce
ss is gained via the oracle executable ($ORACLE_HOME/bin/oracle). It should have a setg
id bit with group set to "asmadmin".
The 11.2 "oracle" binary is changed automatically via setasmgidwrap when the instance i
s started by the CRS daemon (e.g. srvctl start database/instance). But for earlier release,
the "oracle" binary group and ownership need to be set manually.
----------------------------------------------------------------------------------

#在【備庫1節點】操作:
su - grid
ls -lrt /app/u01/oracle/product/11.2.0/db_1/bin/oracle
-rwsr-s--x 1 oracle oinstall 239626641 Dec 29 2015 /app/u01/oracle/product/11.2.0/db_1/bin/oracle

/app/u01/11.2.0/grid/bin/setasmgidwrap -o=/app/u01/oracle/product/11.2.0/db_1/bin/oracle

[grid@mgrdb1 ~]$ ls -l /app/u01/oracle/product/11.2.0/db_1/bin/oracle
-rwsr-s--x 1 oracle asmadmin 239869951 Sep 8 10:20 /app/u01/oracle/product/11.2.0/db_1/bin/oracle


如果從主庫連備庫
sqlplus 'sys/"XXX"'@standby as sysdba
報ORA-12537: TNS:connection closed
是因為$ORACLE_HOME/bin/oracle權限有問題,使用下面命令修改:
chmod u+s oracle
chmod g+s oracle
顯示如下:
[oracle@mgrdb1 bin]$ pwd
/app/u01/oracle/product/11.2.0/db_1/bin
[oracle@mgrdb1 bin]$ ls -l oracle
-rwsr-x--x 1 oracle asmadmin 239869951 Sep 8 10:20 oracle

 

如果不做上面的操作,在進行下面 DUPLICATE 復制操作時候會報 ASMLib 驅動錯誤:
---------------------------------------------------------------------------
ORA-15183: ASMLIB initialization error [driver/agent not installed]
WARNING: FAILED to load library: /opt/oracle/extapi/64/asm/orcl/1/libasm.so
Errors in file /u01/app/oracle/diag/rdbms/standby/standby1/trace/standby1_rbal_13010.trc:
ORA-15183: ASMLIB initialization error [driver/agent not installed]
Mon Sep 03 09:30:10 2012
SUCCESS: diskgroup SDATA was mounted
Errors in file /u01/app/oracle/diag/rdbms/standby/standby1/trace/standby1_ora_13390.trc
(incident=305):
ORA-00600: internal error code, arguments: [kfioTranslateIO03], [], [], [], [], [], [], [],
[], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/standby/standby1/incident/incdir_305/standb
y1_ora_13390_i305.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Mon Sep 03 09:30:18 2012
Dumping diagnostic data in directory=[cdmp_20120903093018], requested by (instance=1,
osid=13390), summary=[incident=305].
Errors in file /u01/app/oracle/diag/rdbms/standby/standby1/trace/standby1_ora_13390.trc
(incident=306):
ORA-00600: internal error code, arguments: [17090], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/app/oracle/diag/rdbms/standby/standby1/incident/incdir_306/standb
y1_ora_13390_i306.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
ERROR: unrecoverable error ORA-600 raised in ASM I/O path; terminating process 13390
Dumping diagnostic data in directory=[cdmp_20120903093019], requested by (instance=1,
osid=13390), summary=[incident=306].
Mon Sep 03 09:30:20 2012
---------------------------------------------------------------------------


#正式開始 RAMN DUPLICATE 復制

在【主庫1節點上】操作 【************一定要用后台腳本執行************】:
#su - oracle
#rman target / auxiliary sys/XXX@standby
#RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;

#查看非OMF類型的文件,然后加到腳本里:
select file#,name from v$datafile;

自動傳輸腳本:dup-mgrdb.sh

注意,如果文件名不是ASM 自動命令格式,需要SET newname。


su - root
cd /home/oracle
touch dup-mgrdb.sh
chmod +x dup-mgrdb.sh
=================================================================
su - oracle -c "
rman target / auxiliary 'sys/"XXXX"'@standby << EOF
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
allocate channel d5 type disk;
allocate channel d6 type disk;
allocate channel d7 type disk;
set newname for datafile 3 to '+DATA1';
set newname for datafile 5 to '+DATA1';
set newname for datafile 6 to '+DATA1';
set newname for datafile 7 to '+DATA1';
set newname for datafile 8 to '+DATA1';
set newname for datafile 9 to '+DATA1';
set newname for datafile 10 to '+DATA1';
set newname for datafile 11 to '+DATA1';
set newname for datafile 12 to '+DATA1';
set newname for datafile 16 to '+DATA1';
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DORECOVER NOFILENAMECHECK;
}
EOF
"
=================================================================
nohup ./dup-mgrdb.sh > dup-mgrdb.log 2>&1 &


-----------------------------------------------------------------------------
完整輸出內容:
Starting Duplicate Db at 2017-09-01 05:08:21
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=33 instance=orcldb1 device type=DISK

contents of Memory Script:
{
backup as copy reuse
targetfile '/oracle/app/oracle/product/11.2.0/db_1/dbs/orapworcldb1' auxiliary format
'/oracle/app/oracle/product/11.2.0/db_1/dbs/orapworcldb1' ;
}
executing Memory Script

Starting backup at 2017-09-01 05:08:22
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=34 instance=orcldb1 device type=DISK
Finished backup at 2017-09-01 05:08:23

contents of Memory Script:
{
backup as copy current controlfile for standby auxiliary format '+DATA1/standby/controlfile/control01.ctl';
}
executing Memory Script

Starting backup at 2017-09-01 05:08:23
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
copying standby control file
output file name=/oracle/app/oracle/product/11.2.0/db_1/dbs/snapcf_orcldb1.f tag=TAG20170901T050824 RECID=1 STAMP=953528905
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 2017-09-01 05:08:28

contents of Memory Script:
{
sql clone 'alter database mount standby database';
}
executing Memory Script

sql statement: alter database mount standby database
RMAN-05529: WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed to disk group only.

contents of Memory Script:
{
set newname for tempfile 1 to
"+stdatadg";
switch clone tempfile all;
set newname for datafile 1 to
"+stdatadg";
set newname for datafile 2 to
"+stdatadg";
set newname for datafile 3 to
"+stdatadg";
set newname for datafile 4 to
"+stdatadg";
set newname for datafile 5 to
"+stdatadg";
set newname for datafile 6 to
"+stdatadg";
backup as copy reuse
datafile 1 auxiliary format
"+stdatadg" datafile
2 auxiliary format
"+stdatadg" datafile
3 auxiliary format
"+stdatadg" datafile
4 auxiliary format
"+stdatadg" datafile
5 auxiliary format
"+stdatadg" datafile
6 auxiliary format
"+stdatadg" ;
sql 'alter system archive log current';
}
executing Memory Script

executing command: SET NEWNAME

renamed tempfile 1 to +stdatadg in control file

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

executing command: SET NEWNAME

Starting backup at 2017-09-01 05:08:37
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=+DATADG/orcldb/datafile/undotbs1.261.946699483
output file name=+STDATADG/standby/datafile/undotbs1.257.953529099 tag=TAG20170901T050837
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=+DATADG/orcldb/datafile/system.259.946699473
output file name=+STDATADG/standby/datafile/system.258.953529113 tag=TAG20170901T050837
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=+DATADG/orcldb/datafile/sysaux.260.946699479
output file name=+STDATADG/standby/datafile/sysaux.259.953529129 tag=TAG20170901T050837
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=+DATADG/orcldb/datafile/undotbs2.263.946699493
output file name=+STDATADG/standby/datafile/undotbs2.260.953529145 tag=TAG20170901T050837
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=+DATADG/primary/datafile/test.296.953464749
output file name=+STDATADG/standby/datafile/test.261.953529147 tag=TAG20170901T050837
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=+DATADG/orcldb/datafile/users.264.946699495
output file name=+STDATADG/standby/datafile/users.262.953529151 tag=TAG20170901T050837
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 2017-09-01 05:09:30

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=953529154 file name=+STDATADG/standby/datafile/system.258.953529113
datafile 2 switched to datafile copy
input datafile copy RECID=2 STAMP=953529154 file name=+STDATADG/standby/datafile/sysaux.259.953529129
datafile 3 switched to datafile copy
input datafile copy RECID=3 STAMP=953529154 file name=+STDATADG/standby/datafile/undotbs1.257.953529099
datafile 4 switched to datafile copy
input datafile copy RECID=4 STAMP=953529154 file name=+STDATADG/standby/datafile/undotbs2.260.953529145
datafile 5 switched to datafile copy
input datafile copy RECID=5 STAMP=953529154 file name=+STDATADG/standby/datafile/users.262.953529151
datafile 6 switched to datafile copy
input datafile copy RECID=6 STAMP=953529154 file name=+STDATADG/standby/datafile/test.261.953529147
Finished Duplicate Db at 2017-09-01 05:09:40

RMAN>
-----------------------------------------------------------------------------

 

 

下面為復制數據庫過程中 備庫端alert輸出的完整日志:
--------------------------------------------------------------------------
NOTE: Loaded library: System
Fri Sep 01 05:11:26 2017
SUCCESS: diskgroup STDATADG was mounted
Fri Sep 01 05:11:26 2017
ERROR: failed to establish dependency between database STANDBY and diskgroup resource ora.STDATADG.dg
Fri Sep 01 05:11:28 2017
RFS connections have been disallowed
alter database mount standby database
This instance was first to mount
Set as converted control file due to db_unique_name mismatch
Changing di2dbun from PRIMARY to STANDBY
Fri Sep 01 05:11:33 2017
NSS2 started with pid=34, OS id=11471
ARCH: STARTING ARCH PROCESSES
Fri Sep 01 05:11:36 2017
ARC0 started with pid=35, OS id=11473
ARC0: Archival started
ARCH: STARTING ARCH PROCESSES COMPLETE
ARC0: STARTING ARCH PROCESSES
Fri Sep 01 05:11:37 2017
ARC1 started with pid=37, OS id=11475
Fri Sep 01 05:11:37 2017
ARC2 started with pid=38, OS id=11477
Fri Sep 01 05:11:37 2017
Successful mount of redo thread 1, with mount id 2389489025
Physical Standby Database mounted.
Lost write protection disabled
Fri Sep 01 05:11:37 2017
ARC3 started with pid=39, OS id=11479
Fri Sep 01 05:11:37 2017
ARC4 started with pid=40, OS id=11481
Fri Sep 01 05:11:37 2017
ARC5 started with pid=41, OS id=11483
Create Relation IPS_PACKAGE_UNPACK_HISTORY
Fri Sep 01 05:11:37 2017
ARC6 started with pid=42, OS id=11486
Fri Sep 01 05:11:37 2017
ARC7 started with pid=43, OS id=11488
Fri Sep 01 05:11:37 2017
ARC8 started with pid=44, OS id=11490
ARC1: Archival started
ARC2: Archival started
ARC3: Archival started
ARC4: Archival started
ARC5: Archival started
ARC6: Archival started
ARC7: Archival started
ARC8: Archival started
ARC1: Becoming the 'no FAL' ARCH
ARC2: Becoming the heartbeat ARCH
ARC2: Becoming the active heartbeat ARCH
ARC2: Becoming the active heartbeat ARCH
Fri Sep 01 05:11:37 2017
ARC9 started with pid=45, OS id=11492
Completed: alter database mount standby database
Error 12154 received logging on to the standby
FAL[client, ARC3]: Error 12154 connecting to PRIMARY for fetching gap sequence
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+STDATADG/orcldb/onlinelog/group_1.257.946699471'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_1.257.946699471
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_1.257.946699471' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+STDATADG/orcldb/onlinelog/group_1.257.946699471'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_1.257.946699471
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_1.257.946699471' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+STDATADG/orcldb/onlinelog/group_2.258.946699473'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_2.258.946699473
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_2.258.946699473' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+STDATADG/orcldb/onlinelog/group_2.258.946699473'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_2.258.946699473
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_2.258.946699473' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 3 of thread 2
ORA-00312: online log 3 thread 2: '+STDATADG/orcldb/onlinelog/group_3.265.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_3.265.946701385
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_3.265.946701385' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 3 of thread 2
ORA-00312: online log 3 thread 2: '+STDATADG/orcldb/onlinelog/group_3.265.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_3.265.946701385
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_3.265.946701385' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+STDATADG/orcldb/onlinelog/group_4.266.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_4.266.946701385
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_4.266.946701385' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+STDATADG/orcldb/onlinelog/group_4.266.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_4.266.946701385
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_4.266.946701385' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 11 of thread 1
ORA-00312: online log 11 thread 1: '+STDATADG/orcldb/onlinelog/group_11.268.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_11.268.953459033
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_11.268.953459033' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 11 of thread 1
ORA-00312: online log 11 thread 1: '+STDATADG/orcldb/onlinelog/group_11.268.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_11.268.953459033
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_11.268.953459033' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 12 of thread 1
ORA-00312: online log 12 thread 1: '+STDATADG/orcldb/onlinelog/group_12.269.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_12.269.953459033
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_12.269.953459033' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 12 of thread 1
ORA-00312: online log 12 thread 1: '+STDATADG/orcldb/onlinelog/group_12.269.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_12.269.953459033
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_12.269.953459033' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 13 of thread 1
ORA-00312: online log 13 thread 1: '+STDATADG/orcldb/onlinelog/group_13.270.953459035'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_13.270.953459035
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_13.270.953459035' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 13 of thread 1
ORA-00312: online log 13 thread 1: '+STDATADG/orcldb/onlinelog/group_13.270.953459035'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_13.270.953459035
ORA-15012: ASM file '+STDATADG/orcldb/onlinelog/group_13.270.953459035' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 18 of thread 2
ORA-00312: online log 18 thread 2: '+STDATADG/primary/onlinelog/group_18.273.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_18.273.953466059
ORA-15012: ASM file '+STDATADG/primary/onlinelog/group_18.273.953466059' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 18 of thread 2
ORA-00312: online log 18 thread 2: '+STDATADG/primary/onlinelog/group_18.273.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_18.273.953466059
ORA-15012: ASM file '+STDATADG/primary/onlinelog/group_18.273.953466059' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 19 of thread 2
ORA-00312: online log 19 thread 2: '+STDATADG/primary/onlinelog/group_19.272.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_19.272.953466059
ORA-15012: ASM file '+STDATADG/primary/onlinelog/group_19.272.953466059' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 19 of thread 2
ORA-00312: online log 19 thread 2: '+STDATADG/primary/onlinelog/group_19.272.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_19.272.953466059
ORA-15012: ASM file '+STDATADG/primary/onlinelog/group_19.272.953466059' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 20 of thread 2
ORA-00312: online log 20 thread 2: '+STDATADG/primary/onlinelog/group_20.271.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_20.271.953466059
ORA-15012: ASM file '+STDATADG/primary/onlinelog/group_20.271.953466059' does not exist
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_lgwr_6281.trc:
ORA-00313: open failed for members of log group 20 of thread 2
ORA-00312: online log 20 thread 2: '+STDATADG/primary/onlinelog/group_20.271.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_20.271.953466059
ORA-15012: ASM file '+STDATADG/primary/onlinelog/group_20.271.953466059' does not exist
ARC9: Archival started
ARC0: STARTING ARCH PROCESSES COMPLETE
Fri Sep 01 05:12:34 2017
Switch of datafile 1 complete to datafile copy
checkpoint is 1261264
Switch of datafile 2 complete to datafile copy
checkpoint is 1261282
Switch of datafile 3 complete to datafile copy
checkpoint is 1261246
Switch of datafile 4 complete to datafile copy
checkpoint is 1261309
Switch of datafile 5 complete to datafile copy
checkpoint is 1261323
Switch of datafile 6 complete to datafile copy
checkpoint is 1261317
alter database clear logfile group 1
Clearing online log 1 of thread 1 sequence number 114
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+STDATADG/orcldb/onlinelog/group_1.257.946699471'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_1.257.946699471
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: '+STDATADG/orcldb/onlinelog/group_1.257.946699471'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_1.257.946699471
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_1.257.946699471
Completed: alter database clear logfile group 1
alter database clear logfile group 2
Clearing online log 2 of thread 1 sequence number 115
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+STDATADG/orcldb/onlinelog/group_2.258.946699473'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_2.258.946699473
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: '+STDATADG/orcldb/onlinelog/group_2.258.946699473'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_2.258.946699473
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_2.258.946699473
Completed: alter database clear logfile group 2
alter database clear logfile group 3
Clearing online log 3 of thread 2 sequence number 90
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 3 of thread 2
ORA-00312: online log 3 thread 2: '+STDATADG/orcldb/onlinelog/group_3.265.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_3.265.946701385
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 3 of thread 2
ORA-00312: online log 3 thread 2: '+STDATADG/orcldb/onlinelog/group_3.265.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_3.265.946701385
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_3.265.946701385
Completed: alter database clear logfile group 3
alter database clear logfile group 4
Clearing online log 4 of thread 2 sequence number 91
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+STDATADG/orcldb/onlinelog/group_4.266.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_4.266.946701385
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 4 of thread 2
ORA-00312: online log 4 thread 2: '+STDATADG/orcldb/onlinelog/group_4.266.946701385'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_4.266.946701385
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_4.266.946701385
Completed: alter database clear logfile group 4
alter database clear logfile group 11
Clearing online log 11 of thread 1 sequence number 0
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 11 of thread 1
ORA-00312: online log 11 thread 1: '+STDATADG/orcldb/onlinelog/group_11.268.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_11.268.953459033
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 11 of thread 1
ORA-00312: online log 11 thread 1: '+STDATADG/orcldb/onlinelog/group_11.268.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_11.268.953459033
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_11.268.953459033
Completed: alter database clear logfile group 11
alter database clear logfile group 12
Clearing online log 12 of thread 1 sequence number 0
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 12 of thread 1
ORA-00312: online log 12 thread 1: '+STDATADG/orcldb/onlinelog/group_12.269.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_12.269.953459033
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 12 of thread 1
ORA-00312: online log 12 thread 1: '+STDATADG/orcldb/onlinelog/group_12.269.953459033'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_12.269.953459033
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_12.269.953459033
Completed: alter database clear logfile group 12
alter database clear logfile group 13
Clearing online log 13 of thread 1 sequence number 0
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 13 of thread 1
ORA-00312: online log 13 thread 1: '+STDATADG/orcldb/onlinelog/group_13.270.953459035'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_13.270.953459035
ORA-15173: entry 'orcldb' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 13 of thread 1
ORA-00312: online log 13 thread 1: '+STDATADG/orcldb/onlinelog/group_13.270.953459035'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/orcldb/onlinelog/group_13.270.953459035
ORA-15173: entry 'orcldb' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/orcldb/onlinelog/group_13.270.953459035
Completed: alter database clear logfile group 13
alter database clear logfile group 18
Clearing online log 18 of thread 2 sequence number 0
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 18 of thread 2
ORA-00312: online log 18 thread 2: '+STDATADG/primary/onlinelog/group_18.273.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_18.273.953466059
ORA-15173: entry 'primary' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 18 of thread 2
ORA-00312: online log 18 thread 2: '+STDATADG/primary/onlinelog/group_18.273.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_18.273.953466059
ORA-15173: entry 'primary' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/primary/onlinelog/group_18.273.953466059
Completed: alter database clear logfile group 18
alter database clear logfile group 19
Clearing online log 19 of thread 2 sequence number 0
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 19 of thread 2
ORA-00312: online log 19 thread 2: '+STDATADG/primary/onlinelog/group_19.272.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_19.272.953466059
ORA-15173: entry 'primary' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 19 of thread 2
ORA-00312: online log 19 thread 2: '+STDATADG/primary/onlinelog/group_19.272.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_19.272.953466059
ORA-15173: entry 'primary' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/primary/onlinelog/group_19.272.953466059
Completed: alter database clear logfile group 19
alter database clear logfile group 20
Clearing online log 20 of thread 2 sequence number 0
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 20 of thread 2
ORA-00312: online log 20 thread 2: '+STDATADG/primary/onlinelog/group_20.271.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_20.271.953466059
ORA-15173: entry 'primary' does not exist in directory '/'
Errors in file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_11431.trc:
ORA-00313: open failed for members of log group 20 of thread 2
ORA-00312: online log 20 thread 2: '+STDATADG/primary/onlinelog/group_20.271.953466059'
ORA-17503: ksfdopn:2 Failed to open file +STDATADG/primary/onlinelog/group_20.271.953466059
ORA-15173: entry 'primary' does not exist in directory '/'
Deleted Oracle managed file +STDATADG/primary/onlinelog/group_20.271.953466059
Completed: alter database clear logfile group 20
RFS connections are allowed
Fri Sep 01 05:13:13 2017
RFS[1]: Assigned to RFS process 11610
RFS[1]: Opened log for thread 2 sequence 91 dbid -1912314293 branch 946699467
Archived Log entry 1 added for thread 2 sequence 91 rlc 946699467 ID 0x8e6c5f93 dest 2:
Fri Sep 01 05:13:14 2017
Primary database is in MAXIMUM PERFORMANCE mode
RFS[2]: Assigned to RFS process 11612
RFS[2]: Selected log 18 for thread 2 sequence 93 dbid -1912314293 branch 946699467
Fri Sep 01 05:13:14 2017
RFS[3]: Assigned to RFS process 11614
RFS[3]: Selected log 19 for thread 2 sequence 92 dbid -1912314293 branch 946699467
Fri Sep 01 05:13:14 2017
Archived Log entry 2 added for thread 2 sequence 92 ID 0x8e6c5f93 dest 1:
Fri Sep 01 05:13:22 2017
RFS[4]: Assigned to RFS process 11636
RFS[4]: Opened log for thread 1 sequence 115 dbid -1912314293 branch 946699467
Archived Log entry 3 added for thread 1 sequence 115 rlc 946699467 ID 0x8e6c5f93 dest 2:
Fri Sep 01 05:13:23 2017
Primary database is in MAXIMUM PERFORMANCE mode
RFS[5]: Assigned to RFS process 11638
RFS[5]: Selected log 11 for thread 1 sequence 117 dbid -1912314293 branch 946699467
Fri Sep 01 05:13:23 2017
RFS[6]: Assigned to RFS process 11641
RFS[6]: Selected log 12 for thread 1 sequence 116 dbid -1912314293 branch 946699467
Fri Sep 01 05:13:23 2017
Archived Log entry 4 added for thread 1 sequence 116 ID 0x8e6c5f93 dest 1:

 

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


3、修改主庫的tnsnames.ora

修改【主庫1、2節點】tnsnames.ora

su - oracle
vi $ORACLE_HOME/network/admin/tnsnames.ora

修改standby為如下內容:
================================================
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = vip1)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = vip2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mgrdbdg)
)
)

================================================

4、啟動MRP進程
在Rman Duplicate操作過程中,【備庫】自動切換到mount狀態
select instance_name,status from v$instance;


在【備庫1節點】上:
開啟日志恢復進程
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;


#測試應用日志過程,我們手動切換【主庫1節點】的日志,並觀察日志:
alter system switch logfile;

#備庫1節點查詢
select member from v$logfile union select name from v$datafile union select name from v$tempfile;
select group#,thread#,sequence#,BYTES/1024/1024,archived,used,status from v$standby_log;


5、創建spfile並使用spfile 啟動備庫RAC DATABASE
僅在【備庫的1節點】執行:
create spfile='+DATA1/mgrdbdg/parameterfile/spfilestandby.ora' from pfile='$ORACLE_HOME/dbs/initstandby.ora';

在【備庫的2節點】查看:
su - grid
asmcmd
ASMCMD> ls -l +DATA1/mgrdbdg/parameterfile


#將spfile路徑分別添加到備庫節點的init.ora里,如下:

在備庫1節點上:
vi $ORACLE_HOME/dbs/initmgrdb1.ora
spfile='+DATA1/mgrdbdg/parameterfile/spfilestandby.ora'

在備庫2節點上:
vi $ORACLE_HOME/dbs/initmgrdb2.ora
spfile='+DATA1/mgrdbdg/parameterfile/spfilestandby.ora'


6、備庫注冊到OCR里
添加備庫和實例到OCR中,好讓clusterware可以管理資源:
僅在【備庫1節點上】操作:
su - oracle
srvctl add database -d mgrdbdg -n mgrdb -o $ORACLE_HOME -p +DATA1/mgrdbdg/parameterfile/spfilestandby.ora -r physical_standby -a DATA1

=================================================================================================
srvctl add database -h

Adds a database configuration to the Oracle Clusterware.

Usage: srvctl add database -d <db_unique_name> -o <oracle_home> [-c {RACONENODE | RAC | SINGLE}
[-e <server_list>] [-i <inst_name>] [-w <timeout>]] [-m <domain_name>] [-p <spfile>]
[-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s <start_options>]
[-t <stop_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL | NORESTART}] [-g "<serverpool_list>"]
[-x <node_name>] [-a "<diskgroup_list>"] [-j "<acfs_path_list>"]
=================================================================================================


#添加實例
su - oracle
srvctl add instance -d mgrdbdg -i mgrdb1 -n mgrdb1
srvctl add instance -d mgrdbdg -i mgrdb2 -n mgrdb2


#查看配置
srvctl config database -d mgrdbdg


7、將【備庫1節點】 狀態為UNKNOW 狀態的監聽刪掉
在【備庫1節點】:
su - grid
cd $ORACLE_HOME/network/admin
cp listener.ora listener.ora.bak
vi listener.ora

lsnrctl reload
lsnrctl status

8、重新啟動ADG
在【備庫1節點】,重啟備庫
alter database recover managed standby database cancel;
shut immediate

srvctl stop instance -d mgrdbdg -i mgrdb1
srvctl start database -d mgrdbdg


9、查看備庫啟動狀態:
set line 120
select name,db_unique_name,database_role,open_mode,SWITCHOVER_STATUS from gv$database;

啟動MRP
alter database recover managed standby database using current logfile disconnect from session;


10、簡單測試
主庫1節點:
create tablespace test datafile size 50m;
create user test identified by test default tablespace test;
grant dba to test;
conn test/test
create table t as select * from dba_objects where rownum<=500;

主庫2節點:
sqlplus test/test
insert into t select * from t;
commit;


備庫:
sqlplus test/test
select count(*) from t;

 

五、DG傳輸過程監控

1、查看備庫工作模式及狀態
select inst_id,db_unique_name,database_role,open_mode,protection_mode,protection_level,switchover_status,force_logging from gv$database;
select db_unique_name,protection_mode,synchronization_status,SYNCHRONIZED from v$archive_dest_status;


2、日志恢復進程
archive log list;
select thread#,max(sequence#) from v$archived_log group by thread#;
select pid,process,client_process,client_pid,thread#,sequence#,status,DELAY_MINS from v$managed_standby;


--RFS進程從主數據庫接收重做數據,並將其寫入備用重做日志。

3、查看standbylog狀態,如果是RAC兩節點,那么每個節點至少有一個是ACTIVE的狀態,否則不對
set lines 200
select group#,thread#,sequence#,bytes/1024/1024,archived,used,status,first_change#,last_change# from v$standby_log;

檢查備庫已恢復的最大歸檔日志序號
select thread#,max(sequence#),registrar,applied,status from v$archived_log where applied='YES' and registrar='RFS' and name is not null
group by thread#,registrar,applied,status;


4、檢查應用率和活動率(PS)
--Redo Applied 值以MB衡量。剩余兩個以KB/s計算。
select to_char(start_time,'DD-MON-RR HH24:MI:SS') start_time,ITEM,sofar
from v$recovery_progress
where item in ('Active Apply Rate','Average Apply Rate','Redo Applied');

5、審閱傳輸和應用滯后(PS+LS)
--transport lag 表明從主數據庫到物理備用數據庫的重做數據傳輸時間。
--apply lag 表明應用滯后時間,它反映了archive_log_dest_n參數中 DELAY 特性。

COL NAME FOR A13
COL VALUE FOR A20
COL UNIT FOR A30
SET LINES 200
select name,value,unit,time_computed
from v$dataguard_stats
where name like '%lag%';


6、查看Data Guard狀態視圖中的錯誤
set lines 132
col message for a80
col timestamp for a20
select error_code,severity,message,
to_char(timestamp,'DD-MON-RR HH24:MI:SS') timestamp
from v$dataguard_status
where callout='YES'
and timestamp > sysdate -1;

7、檢查日志文件是否傳輸到備用數據庫
select dest_name,status,error from v$archive_dest where dest_id=2;
DEST_NAME STATUS ERROR
-------------------- ---------- --------------------
LOG_ARCHIVE_DEST_2 VALID

status列如果為valid,說明歸檔成功,可以查看error列得到不能歸檔的原因

 

六、修改DG保護模式
1、查看當前保護模式 主庫查詢
select inst_id,db_unique_name,database_role,open_mode,protection_mode,protection_level,switchover_status,force_logging from gv$database;

2、將備庫轉換為最大可用模式
--主庫數據庫操作 --將最大性能轉為最大可用
alter database set standby database to maximize availability;

 


七、Primary 和 Standby 數據庫Switchover切換

1、檢查主、備庫alert日志是否有報錯信息

2、Switchover 到 Physical Standby Database
保證主庫只運行一個節點,先關閉2節點實例
su - oracle
sqlplus / as sysdba
shut immediate

srvctl status database -d orcldb


3、看主庫是否滿足切換條件:
主庫操作:
1)
select inst_id,db_unique_name,database_role,open_mode,protection_mode,protection_level,switchover_status,force_logging from gv$database;
select db_unique_name,protection_mode,synchronization_status,SYNCHRONIZED from v$archive_dest_status;

select thread#,max(sequence#) from v$archived_log group by thread#;
select pid,process,client_process,client_pid,thread#,sequence#,status,DELAY_MINS from v$managed_standby;


2)select switchover_status from gv$database;
SWITCHOVER_STATUS
--------------------------
TO STANDBY

有時候會顯示SESSION ACTIVE,這表示當前有活動的會話連接。


主庫執行下面命令切換:
alter database commit to switchover to physical standby;
alter database commit to switchover to physical standby WITH SESSION SHUTDOWN;

輸出日志類似:
========================================
alter database commit to switchover to physical standby
ORA-1031 signalled during: alter database commit to switchover to physical standby...
Thu Aug 31 16:57:56 2017
alter database commit to switchover to physical standby
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY [Process Id: 24425] (orcldb1)
Waiting for all non-current ORLs to be archived...
All non-current ORLs have been archived.
Waiting for all FAL entries to be archived...
All FAL entries have been archived.
Waiting for potential Physical Standby switchover target to become synchronized...
Active, synchronized Physical Standby switchover target has been identified
Switchover End-Of-Redo Log thread 1 sequence 64 has been fixed
Switchover: Primary highest seen SCN set to 0x0.0x105ae0
ARCH: Noswitch archival of thread 1, sequence 64
ARCH: End-Of-Redo Branch archival of thread 1 sequence 64
ARCH: LGWR is actively archiving destination LOG_ARCHIVE_DEST_2
ARCH: Standby redo logfile selected for thread 1 sequence 64 for destination LOG_ARCHIVE_DEST_2
Archived Log entry 70 added for thread 1 sequence 64 ID 0x8e6b5733 dest 1:
ARCH: Archiving is disabled due to current logfile archival
Primary will check for some target standby to have received alls redo
Final check for a synchronized target standby. Check will be made once.
LOG_ARCHIVE_DEST_2 is a potential Physical Standby switchover target
Active, synchronized target has been identified
Target has also received all redo
Backup controlfile written to trace file /oracle/app/oracle/diag/rdbms/standby/orcldb1/trace/orcldb1_ora_24425.trc
Clearing standby activation ID 2389399347 (0x8e6b5733)
The primary database controlfile was created using the
'MAXLOGFILES 192' clause.
There is space for up to 188 standby redo logfiles
Use the following SQL commands on the standby database to create
standby redo logfiles that match the primary database:
ALTER DATABASE ADD STANDBY LOGFILE 'srl1.f' SIZE 131072000;
ALTER DATABASE ADD STANDBY LOGFILE 'srl2.f' SIZE 131072000;
ALTER DATABASE ADD STANDBY LOGFILE 'srl3.f' SIZE 131072000;
ALTER DATABASE ADD STANDBY LOGFILE 'srl4.f' SIZE 131072000;
ALTER DATABASE ADD STANDBY LOGFILE 'srl5.f' SIZE 131072000;
Archivelog for thread 1 sequence 64 required for standby recovery
Switchover: Primary controlfile converted to standby controlfile succesfully.
Switchover: Complete - Database shutdown required
USER (ospid: 24425): terminating the instance
Thu Aug 31 16:58:01 2017
ORA-1092 : opitsk aborting process
Instance terminated by USER, pid = 24425
Completed: alter database commit to switchover to physical standby
Shutting down instance (abort)
License high water mark = 8
Thu Aug 31 16:58:01 2017
Instance shutdown complete

如果不關閉2節點,會報如下錯誤:
Fri Sep 01 03:08:13 2017
Switchover in progress in another database instance - Database is shutdown automatically
LGWR (ospid: 9713): terminating the instance due to error 16456
Instance terminated by LGWR, pid = 9713
Fri Sep 01 03:08:13 2017
========================================


關閉源主庫重啟到mount
srvctl stop instance -d orcldb -i orcldb1
srvctl start database -d orcldb -o mount

用read only 模式打開源主庫:
主庫1節點:
alter database open read only;

主庫2節點:
alter database open read only;

輸出日志類似:
========================================
alter database open read only
AUDIT_TRAIL initialization parameter is changed to OS, as DB is NOT compatible for database opened with read-only access
This instance was first to open
Beginning Standby Crash Recovery.
Serial Media Recovery started
Thu Aug 31 17:00:39 2017
Managed Standby Recovery starting Real Time Apply
Media Recovery Log +STDATADG/standby/archivelog/2017_08_31/thread_1_seq_64.337.953485079
Identified End-Of-Redo (switchover) for thread 1 sequence 64 at SCN 0x0.105ae0
Media Recovery Log +STDATADG/standby/archivelog/2017_08_31/thread_2_seq_34.336.953484769
Media Recovery Log +STDATADG/standby/archivelog/2017_08_31/thread_2_seq_35.335.953484769
Resetting standby activation ID 0 (0x0)
Incomplete Recovery applied until change 1071840 time 08/31/2017 16:57:58
Completed Standby Crash Recovery.
Picked Lamport scheme to generate SCNs
Thu Aug 31 17:00:40 2017
SMON: enabling cache recovery
Dictionary check beginning
Dictionary check complete
Database Characterset is ZHS16GBK
No Resource Manager plan active
Starting background process GTX0
Thu Aug 31 17:00:41 2017
GTX0 started with pid=47, OS id=24790
replication_dependency_tracking turned off (no async multimaster replication found)
Physical standby database opened for read only access.
Completed: alter database open read only
========================================


源主庫啟動 Redo 應用模式
alter database recover managed standby database using current logfile disconnect from session;


源主庫切換后查看角色
select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY TO PRIMARY


源備庫操作:

查看源備庫是否滿足切換條件
select database_role,switchover_status from v$database;

DATABASE_ROLE SWITCHOVER_STATUS
-------------------------------- ----------------------------------------
PHYSICAL STANDBY TO PRIMARY


源備庫執行下面命令進行切換:
alter database commit to switchover to primary;


輸出日志類似:
========================================
alter database commit to switchover to primary
ALTER DATABASE SWITCHOVER TO PRIMARY (orcldb1)
Maximum wait for role transition is 15 minutes.
Switchover: Media recovery is still active
Forcing database into limbo
Role Change: Canceling MRP - no more redo to apply
Thu Aug 31 17:04:40 2017
MRP0: Background Media Recovery cancelled with status 16037
Errors in file /oracle/app/oracle/diag/rdbms/primary/orcldb1/trace/orcldb1_mrp0_18559.trc:
ORA-16037: user requested cancel of managed recovery operation
Thu Aug 31 17:04:40 2017
Managed Standby Recovery not using Real Time Apply
Recovery interrupted!
Thu Aug 31 17:04:41 2017
Reconfiguration started (old inc 5, new inc 7)
List of instances:
1 2 (myinst: 1)
Global Resource Directory frozen
Communication channels reestablished
Master broadcasted resource hash value bitmaps
Non-local Process blocks cleaned out
Thu Aug 31 17:04:41 2017
LMS 0: 0 GCS shadows cancelled, 0 closed, 0 Xw survived
Set master node info
Submitted all remote-enqueue requests
Dwn-cvts replayed, VALBLKs dubious
All grantable enqueues granted
Submitted all GCS remote-cache requests
Fix write in gcs resources
Reconfiguration complete
MRP0: Background Media Recovery process shutdown (orcldb1)
Role Change: Canceled MRP
All dispatchers and shared servers shutdown
CLOSE: killing server sessions.
CLOSE: all sessions shutdown successfully.
Thu Aug 31 17:04:42 2017
SMON: disabling cache recovery
Backup controlfile written to trace file /oracle/app/oracle/diag/rdbms/primary/orcldb1/trace/orcldb1_ora_4330.trc
SwitchOver after complete recovery through change 1071840
Online log +DATADG/orcldb/onlinelog/group_1.257.946699471: Thread 1 Group 1 was previously cleared
Online log +DATADG/orcldb/onlinelog/group_2.258.946699473: Thread 1 Group 2 was previously cleared
Online log +DATADG/orcldb/onlinelog/group_3.265.946701385: Thread 2 Group 3 was previously cleared
Online log +DATADG/orcldb/onlinelog/group_4.266.946701385: Thread 2 Group 4 was previously cleared
Standby became primary SCN: 1071838
AUDIT_TRAIL initialization parameter is changed back to its original value as specified in the parameter file.
Switchover: Complete - Database mounted as primary
Completed: alter database commit to switchover to primary
========================================


新主庫打開數據庫:
On Current On Primary Node1:
alter database open;

Current On Primary Node2:
alter database open;

輸出日志類似:
========================================
alter database open
This instance was first to open
Picked broadcast on commit scheme to generate SCNs
Thu Aug 31 17:05:24 2017
Assigning activation ID 2389418825 (0x8e6ba349)
Destination LOG_ARCHIVE_DEST_2 is UNSYNCHRONIZED
Destination LOG_ARCHIVE_DEST_2 no longer supports SYNCHRONIZATION
Thu Aug 31 17:05:24 2017
ARC0: Becoming the 'no SRL' ARCH
Thread 1 advanced to log sequence 66 (thread open)
Thu Aug 31 17:05:24 2017
ARC1: Becoming the 'no SRL' ARCH
Thread 1 opened at log sequence 66
Current log# 2 seq# 66 mem# 0: +DATADG/orcldb/onlinelog/group_2.258.946699473
Successful open of redo thread 1
MTTR advisory is disabled because FAST_START_MTTR_TARGET is not set
Thu Aug 31 17:05:24 2017
SMON: enabling cache recovery
Thu Aug 31 17:05:24 2017
minact-scn: Inst 1 is now the master inc#:7 mmon proc-id:18275 status:0x7
minact-scn status: grec-scn:0x0000.00000000 gmin-scn:0x0000.00000000 gcalc-scn:0x0000.00000000
minact-scn: Master returning as live inst:2 has inc# mismatch instinc:0 cur:7 errcnt:0
[4330] Successfully onlined Undo Tablespace 2.
Undo initialization finished serial:0 start:40587844 end:40588794 diff:950 (9 seconds)
Dictionary check beginning
ORACLE Instance orcldb1 - Cannot allocate log, archival required
Thread 1 cannot allocate new log, sequence 67
All online logs need archiving
Examine archive trace files for archiving errors
Current log# 2 seq# 66 mem# 0: +DATADG/orcldb/onlinelog/group_2.258.946699473
Archived Log entry 117 added for thread 1 sequence 65 ID 0x8e6ba349 dest 1:
Dictionary check complete
Verifying file header compatibility for 11g tablespace encryption..
Verifying 11g file header compatibility for tablespace encryption completed
SMON: enabling tx recovery
Database Characterset is ZHS16GBK
Thu Aug 31 17:05:25 2017
idle dispatcher 'D000' terminated, pid = (26, 1)
Starting background process SMCO
Thu Aug 31 17:05:26 2017
SMCO started with pid=46, OS id=5558
No Resource Manager plan active
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
LGWR: Standby redo logfile selected for thread 1 sequence 67 for destination LOG_ARCHIVE_DEST_2
Thread 1 advanced to log sequence 67 (LGWR switch)
Current log# 1 seq# 67 mem# 0: +DATADG/orcldb/onlinelog/group_1.257.946699471
Thu Aug 31 17:05:30 2017
Archived Log entry 119 added for thread 1 sequence 66 ID 0x8e6ba349 dest 1:
Starting background process QMNC
Thu Aug 31 17:05:30 2017
QMNC started with pid=52, OS id=5571
Thu Aug 31 17:05:30 2017
ARC4: Standby redo logfile selected for thread 1 sequence 66 for destination LOG_ARCHIVE_DEST_2
LOGSTDBY: Validating controlfile with logical metadata
LOGSTDBY: Validation complete
Thu Aug 31 17:05:34 2017
Completed: alter database open
========================================

 


切換后查看角色
select name,open_mode from gv$database;
DATABASE_ROLE SWITCHOVER_STATUS
-------------------------------- ----------------------------------------
PRIMARY TO STANDBY


查看數據保護模式
On Current Primary Node1:
select protection_mode,protection_level from v$database;


select dest_id,database_mode,recovery_mode,protection_mode from v$archive_dest_status where dest_id=2;

 

 

 

 


備注:
Table 5-2 Minimum Requirements for Data Protection Modes
----------------------------------------------------------------------------------------------------------------------------------------------
Maximum Protection Maximum Availability Maximum Performance
Redo archival process LGWR LGWR LGWR or ARCH
Network transmission mode SYNC SYNC SYNC or ASYNC when using LGWR process. SYNC if using ARCH process
Disk write option AFFIRM AFFIRM AFFIRM or NOAFFIRM
Standby redo log required? Yes Yes No, but it is recommended
----------------------------------------------------------------------------------------------------------------------------------------------

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM