【Oracle Database】Oracle DataGuard(single-single)
[oracle@monkey01 ~]$ sqlplus / as sysdba
SQL> alter database force logging;
Database altered.
SQL> col force_logging for a15
SQL> select force_logging from v$database;
FORCE_LOGGING
YES
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 35
Next log sequence to archive 37
Current log sequence 37
SQL> alter system set db_unique_name='monkeymdb' scope=spfile;
SQL> alter system set log_archive_config='dg_config=(monkeymdb,monkeysdb)' scope=spfile;
SQL> alter system set log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=monkeymdb' scope=spfile;
SQL> alter system set log_archive_dest_2='service=monkeysdb lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=monkeysdb' scope=spfile;
SQL> alter system set fal_server='monkeysdb' scope=spfile;
SQL> alter system set standby_file_management='auto' scope=spfile;
SQL> alter system set log_archive_dest_state_2='defer' scope=spfile;
SQL> alter system set service_names=monkeydb,monkeymdb scope=spfile;
[oracle@monkey01 ~]$ cd $ORACLE_HOME/dbs
[oracle@monkey01 dbs]$ sqlplus / as sysdba
SQL> create pfile from spfile;
File created.
[oracle@monkey01 dbs]$ scp initmonkeydb.ora 192.168.1.202:/u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@monkey01 dbs]$ scp orapwmonkeydb 192.168.1.202:/u01/app/oracle/product/11.2.0/db_1/dbs
[oracle@monkey01 ~]$ mkdir backup
[oracle@monkey02 ~]$ mkdir backup
[oracle@monkey01 ~]$ rman target /
RMAN> backup device type disk format '/home/oracle/backup/%U' database plus archivelog;
RMAN> backup device type disk format '/home/oracle/backup/%U' current controlfile for standby;
[oracle@monkey01 ~]$ scp /home/oracle/backup/* 192.168.1.202:/home/oracle/backup
[oracle@monkey01 ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
monkeymdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = monkeydb)
)
)
monkeysdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = monkeydb)
)
)
[oracle@monkey02 ~]$ vi $ORACLE_HOME/network/admin/listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = monkeydb)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = monkeydb)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = monkey02)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
[oracle@monkey02 ~]$ lsnrctl start
[oracle@monkey02 ~]$ lsnrctl status
[oracle@monkey02 ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
monkeymdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = monkeydb)
)
)
monkeysdb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = monkeydb)
)
)
[oracle@monkey01 ~]$ tnsping monkeysdb
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.202)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =
monkeydb)))
OK (40 msec)
[oracle@monkey02 ~]$ tnsping monkeymdb
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.201)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME =
monkeydb)))
OK (30 msec)
[oracle@monkey02 ~]$ cd $ORACLE_HOME/dbs
[oracle@monkey02 dbs]$ vi initambdb.ora
*.audit_file_dest='/u01/app/oracle/admin/monkeydb/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/u01/app/oracle/oradata/ambdb/control01.ctl','/u01/app/oracle/fast_recovery_area/ambdb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='monkeydb'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=107374182400
*.db_unique_name='monkeysdb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=monkeydbXDB)'
*.fal_server='monkeymdb'
*.log_archive_config='dg_config=(monkeymdb,monkeysdb)'
*.log_archive_dest_1='location=db_recovery_file_dest valid_for=(all_logfiles,all_roles) db_unique_name=monkeysdb'
*.log_archive_dest_2='service=monkeymdb lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=monkeymdb'
*.memory_max_target=1073741824
*.memory_target=1073741824
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.service_names='monkeydb','monkeysdb'
*.standby_file_management='auto'
*.undo_tablespace='UNDOTBS1'
[oracle@monkey02 dbs]$ sqlplus / as sysdba
SQL> create spfile from pfile;
File created.
[oracle@monkey02 ~]$ mkdir -p /u01/app/oracle/admin/monkeydb/adump
[oracle@monkey02 ~]$ mkdir -p /u01/app/oracle/oradata/monkeydb
[oracle@monkey02 ~]$ mkdir -p /u01/app/oracle/fast_recovery_area/monkeydb
[oracle@monkey02 ~]$ sqlplus / as sysdba
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1068937216 bytes
Fixed Size 2260088 bytes
Variable Size 432014216 bytes
Database Buffers 629145600 bytes
Redo Buffers 5517312 bytes
[oracle@monkey02 ~]$ rman target sys/oracle@monkeymdb auxiliary sys/oracle@monkeysdb nocatalog
Recovery Manager: Release 11.2.0.4.0 - Production on Sat Mar 31 14:25:26 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: monkeydb (DBID=1072562510)
using target database control file instead of recovery catalog
connected to auxiliary database: monkeydb (not mounted)
RMAN> duplicate target database for standby dorecover nofilenamecheck;
[oracle@monkey02 ~]$ sqlplus / as sysdba
SQL> alter database add standby logfile '/u01/app/oracle/oradata/monkeydb/standby01.log' size 50m;
SQL> alter database add standby logfile '/u01/app/oracle/oradata/monkeydb/standby02.log' size 50m;
SQL> alter database add standby logfile '/u01/app/oracle/oradata/monkeydb/standby03.log' size 50m;
SQL> alter database add standby logfile '/u01/app/oracle/oradata/monkeydb/standby04.log' size 50m;
SQL> alter database recover managed standby database disconnect from session using current logfile;
[oracle@monkey01 ~]$ sqlplus / as sysdba
SQL> alter system set log_archive_dest_state_2=enable scope=both;
SQL> alter system switch logfile;
[oracle@monkey02 ~]$ sqlplus / as sysdba
SQL> alter database recover managed standby database cancel;
SQL> alter database open;
SQL> alter database recover managed standby database disconnect from session using current logfile;
[oracle@monkey01 ~]$ sqlplus / as sysdba
sql> set line 200
sql> col database_mode for a30
sql> col protection_mode for a30
sql> col recovery_mode for a30
sql> select dest_id , database_mode , recovery_mode , protection_mode from v$archive_dest_status where dest_id=2;
dest_id database_mode recovery_mode protection_mode
2 open_read-only managed real time apply maximum performance
sql> col dest_name for a20
sql> col destination for a30
sql> col error for a50
sql> select dest_id,dest_name,status, destination, error from v$archive_dest where dest_id<=2;
dest_id dest_name status destination error
1 log_archive_dest_1 valid db_recovery_file_dest
2 log_archive_dest_2 valid monkeysdb
sql> col type for a20
sql> select dest_name,destination,status,type,archived_seq#,applied_seq# from v$archive_dest_status where dest_id<=2;
dest_name destination status type archived_seq# applied_seq#
log_archive_dest_1 db_recovery_file_dest valid local 50 0
log_archive_dest_2 monkeysdb valid physical 50 49
sql> select thread# , sequence# , status from v$log;
thread# sequence# status
1 49 inactive
1 50 inactive
1 51 current
[oracle@monkey02 ~]$ sqlplus / as sysdba
sql> set line 200
sql> col archived for a10
sql> select thread# , sequence# , archived , status from v$standby_log;
thread# sequence# archived status
1 51 yes active
1 0 no unassigned
0 0 yes unassigned
0 0 yes unassigned
sql> select process , status , thread# , sequence# , block# , blocks from v$managed_standby where process != 'ARCH';
process status thread# sequence# block# blocks
rfs idle 0 0 0 0
rfs idle 0 0 0 0
rfs idle 1 51 4381 1
mrp0 applying_log 1 51 4381 102400