


|
orcl.__db_cache_size=327155712 orcl.__java_pool_size=4194304 orcl.__large_pool_size=8388608 orcl.__oracle_base='/opt/oracle'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=314572800 orcl.__sga_target=469762048 orcl.__shared_io_pool_size=0 orcl.__shared_pool_size=117440512 orcl.__streams_pool_size=0 *.audit_file_dest='/opt/oracle/admin/orcl/adump' *.audit_trail='db' *.compatible='11.2.0.4.0' *.control_files='/opt/oracle/oradata/orcl/control01.ctl','/opt/oracle/oradata/orcl/control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='orcl' *.diagnostic_dest='/opt/oracle' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.log_archive_dest_1='location=/opt/arch' *.memory_target=783286272 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1'
log_archive_config='DG_CONFIG=(orcl,orcls)' log_archive_dest_1='LOCATION=/opt/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' LOG_ARCHIVE_DEST_2='SERVICE=dbstandby LGWR ASYNC VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcls' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE FAL_SERVER=dbstandby FAL_CLIENT=dbprimary STANDBY_FILE_MANAGEMENT=AUTO *.log_file_name_convert='/opt/oracle/oradata','/opt/oracle/oradata' *.db_file_name_convert='/opt/oracle/oradata','/opt/oracle/oradata' |
startup pfile='$ORACLE_HOME/dbs/initorcl.ora';
create spfile from memory;
shutdown immediate;
startup;
show parameter spfile;
|
LISTENER = (DESCRIPTION_LIST= (DESCRIPTION = (ADDRESS=(PROTOCOL=tcp)(HOST=centdgpri)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY= EXTPROC1521))) )
SID_LIST_LISTENER = (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=orcl) (SID_NAME=orcl) (ORACLE_HOME=/opt/oracle/product/11.2.0.4/db) ) (SID_DESC = (GLOBAL_DBNAME = orcl_DGMGRL) (ORACLE_HOME = /opt/oracle/product/11.2.0.4/db) (SID_NAME= orcl) ) ) ADR_BASE_LISTENER = /opt/oracle |
|
DBPRIMARY= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL =TCP)(HOST=centdgpri)(PORT=1521)) ) (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)) ) ORCL= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL =TCP)(HOST=centdgpri)(PORT=1521)) ) (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)) )
DBSTANDBY= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL =TCP)(HOST=centdgstd)(PORT=1521)) ) (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)) ) |
|
*.audit_file_dest='/opt/oracle/diag/rdbms/orcl/orcl/adump' *.compatible='11.2.0.4.0' *.control_files='/opt/oracle/oradata/control01.ctl','/opt/oracle/oradata/control02.ctl' *.core_dump_dest='/opt/oracle/diag/rdbms/orcl/orcl/cdump' *.db_block_size=8192 *.db_create_file_dest='/opt/oracle/oradata' *.db_file_multiblock_read_count=16 *.db_name='orcl' *.db_recovery_file_dest='/opt/oracle/flash_recovery_area' *.db_recovery_file_dest_size=10G *.diagnostic_dest='/opt/oracle/diag/rdbms/orcl/orcl/trace' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orcl)' *.job_queue_processes=10 *.log_archive_dest_1='LOCATION=/opt/oracle/arch' *.log_buffer=7356416 # log buffer update *.open_cursors=300 *.optimizer_dynamic_sampling=2 *.optimizer_mode='ALL_ROWS' *.pga_aggregate_target=186M *.plsql_warnings='DISABLE:ALL' # PL/SQL warnings at init.ora *.processes=150 *.query_rewrite_enabled='TRUE' *.remote_login_passwordfile='EXCLUSIVE' *.result_cache_max_size=2880K *.sga_target=560M *.skip_unusable_indexes=TRUE *.undo_management='AUTO' *.undo_tablespace='UNDOTBS1'
log_archive_config='DG_CONFIG=(orcls,orcl)' log_archive_dest_1='LOCATION=/opt/oracle/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcls' LOG_ARCHIVE_DEST_2='SERVICE=dbprimary LGWR ASYNC VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' LOG_ARCHIVE_DEST_STATE_1=ENABLE LOG_ARCHIVE_DEST_STATE_2=ENABLE FAL_SERVER=dbprimary FAL_CLIENT=dbstandby STANDBY_FILE_MANAGEMENT=AUTO *.log_file_name_convert='/opt/oracle/oradata','/opt/oracle/oradata' *.db_file_name_convert='/opt/oracle/oradata','/opt/oracle/oradata' |
|
LISTENER = (DESCRIPTION_LIST= (DESCRIPTION = (ADDRESS=(PROTOCOL=tcp)(HOST=centdgstd)(PORT=1521)) (ADDRESS=(PROTOCOL=ipc)(KEY= EXTPROC1521))) )
SID_LIST_LISTENER = (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=orcl) (SID_NAME=orcl) (ORACLE_HOME=/opt/oracle/product/11.2.0.4/db) ) (SID_DESC = (GLOBAL_DBNAME = orcls_DGMGRL) (ORACLE_HOME = /opt/oracle/product/11.2.0.4/db) (SID_NAME= orcl) ) ) ADR_BASE_LISTENER = /opt/oracle |
|
DBPRIMARY= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL =TCP)(HOST=centdgpri)(PORT=1521)) ) (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)) ) ORCLS= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL =TCP)(HOST=centdgstd)(PORT=1521)) ) (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)) )
DBSTANDBY= (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL =TCP)(HOST=centdgstd)(PORT=1521)) ) (CONNECT_DATA=(SID=orcl)(SERVER=DEDICATED)) ) |
主库创建sys密码文件并传送到备库dbs目录
orapwd file=$ORACLE_HOME/dbs/PWDorcl.ora password=WaterH2o entries=40 force=y
备库创建和主库一致的审计目录
cd $ORACLE_BASE
tar -cvf diag.tar diag/
scp diag.tar centdgstd:/opt/oracle
备库:
mv diag $ORACLE_BASE/
cd $ORACLE_BASE
tar -xvf diag.tar
mkdir -p $ORACLE_BASE/flash_recovery_area
mkdir -p $ORACLE_BASE/oradata
主库克隆到备机
rman target sys/WaterH2o@dbprimary
auxiliary sys/WaterH2o@dbstandby
9、验证物理DG的数据同步
select switchover_status from v$database; --查看有没有gap的归档日志
主库:
select STATUS, GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;
主库:
SQL>select STATUS, GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID RESOLVABLE GAP
备库:
SQL> select STATUS, GAP_STATUS from V$ARCHIVE_DEST_STATUS where DEST_ID = 2;
STATUS GAP_STATUS
--------- ------------------------
VALID NO
GAP
查看主备库角色及状态
select open_mode,database_role,db_unique_name from v$database;-
主库:
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
READ WRITE PRIMARY orcl
SQL>
备库:
SQL>select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
READ ONLY WITH APPLY PHYSICAL STANDBY orcl
SQL>
select max(sequence#) from v$archived_log;
archive log list;
主库:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
25
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/arch
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
SQL>
备库:
SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)
--------------
25
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /opt/arch
Oldest online log sequence 17
Next log sequence to archive 0
Current log sequence 25
SQL>show parameter dg_broker_start
alter system set dg_broker_start=true;
show parameter dg_broker_start
|
DGMGRL> create configuration my_dgb as primary database is orcl connect identifier is dbprimary; Configuration "my_dgb" created with primary database "orcl" |
添加备库
|
DGMGRL> add database orcls as connect identifier is dbstandby maintained as physical; Database "orcls" added |
启用配置文件
|
DGMGRL> enable configuration; Enabled. DGMGRL> |
验证配置启动状态
|
DGMGRL> show configuration
Configuration - my_dgb
Protection Mode: MaxPerformance Databases: orcl - Primary database orcls - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status: SUCCESS
DGMGRL> |
开启主备库StandbyFileManagement并同步到DGB
SQL>alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;
DGMGRL> edit database orcl set property StandbyFileManagement='AUTO';
DGMGRL> edit database orcls set property StandbyFileManagement='AUTO';
DGMGRL> EDIT DATABASE orcl SET PROPERTY LogXptMode='async';
DGMGRL> EDIT DATABASE orcls SET PROPERTY LogXptMode='async';
取消物理DG的两个参数
alter system set fal_server='' scope=both sid='*';
alter system set fal_client='' scope=both sid='*';
11、物理DG 通过Broker手工切换主备库的角色
主备库切换前的角色检查
主库:
|
SQL> select database_role,switchover_status,open_mode from v$database;
DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE ---------------- -------------------- -------------------- PRIMARY TO STANDBY READ WRITE |
|
SQL> select database_role,switchover_status,open_mode from v$database;
DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE ---------------- -------------------- -------------------- PHYSICAL STANDBY NOT ALLOWED MOUNTED |
|
DGMGRL> show configuration
Configuration - my_dgb
Protection Mode: MaxPerformance Databases: orcl - Primary database orcls - Physical standby database
Fast-Start Failover: DISABLED
Configuration Status: SUCCESS
DGMGRL> switchover to orcls Performing switchover NOW, please wait... Operation requires a connection to instance "orcl" on database "orcls" Connecting to instance "orcl"... Connected. New primary database "orcls" is opening... Operation requires startup of instance "orcl" on database "orcl" Starting instance "orcl"... ORACLE instance started. Database mounted. Database opened. Switchover succeeded, new primary is "orcls" DGMGRL> DGMGRL> show configuration Configuration - my_dgb
Protection Mode: MaxPerformance Databases: orcls - Primary database orcl - Physical standby database
Fast-Start Failover: DISABLED Configuration Status: SUCCESS DGMGRL> |
|
新主库: SQL> select db_unique_name,database_role,switchover_status,open_mode from v$database; DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE ------------------------------ ---------------- -------------------- -------------------- orcls PRIMARY TO STANDBY READ WRITE 新备库: SQL> select db_unique_name,database_role,switchover_status,open_mode from v$database; DB_UNIQUE_NAME DATABASE_ROLE SWITCHOVER_STATUS OPEN_MODE ------------------------------ ---------------- -------------------- -------------------- orcl PHYSICAL STANDBY NOT ALLOWED MOUNTED |
LogXptMode='async'
EDIT DATABASE orcl SET PROPERTY LogXptMode='async';
EDIT DATABASE orcls SET PROPERTY LogXptMode='async';
主备库均开启闪回,目的是启动快速自动恢复数据库
select name,db_unique_name,flashback_on from v$database;
处理standby的备库打开闪回
alter database open read only;
alter database flashback on;
启用主备库的FFS
edit database orcl set property FastStartFailoverTarget=orcls;
edit database orcls set property FastStartFailoverTarget=orcl;
enable fast_start failover
启用结果





确认角色自动切换结果

主库恢复后启动

observer日志提示主备角色分配

原主库恢复后的主备库角色查看
原主库端查看
原备库端查看

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29357786/viewspace-2152959/ ,如需转载,请注明出处,否则将追究法律责任。