sys:OracleLinux5.8_x86_64
db:Oracle11gR2_11.2.3.0_x86_64
primany
ip:192.168.1.105
hostname:misdb
db_name:misdb
db_unique_name:misdb
global_db_name:misdb
sid:misdb
service_name:misdb
instance_name:misdb
standby
192.168.1.106
hostname:standby
db_name:standby
db_unique_name:standby
global_db_name:standby
sid:standby
service_name:standby
instance_name:standby
0.listener & tnsnames
primany:
------------------------------------------------------------------
cat listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = misdb)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = misdb)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = misdb)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
------------------------------------------------------------------
cat tnsnames.ora
MISDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = misdb)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = misdb)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = standby)
)
)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
standby:
------------------------------------------------------------------
cat listener.ora
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = standby)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = standby)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
------------------------------------------------------------------
cat tnsnames.ora
MISDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = misdb)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = misdb)
)
)
STANDBY =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = standby)
)
)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.primany
sqlplus / as sysdba
alter database force logging;
alter database add standby logfile group 4 size 50M;
alter database add standby logfile group 5 size 50M;
alter database add standby logfile group 6 size 50M;
alter database add standby logfile group 7 size 50M;
!scp $ORACLE_HOME/dbs/orapwmisdb oracle@standby:$ORACLE_HOME/dbs/orapwstandby
2.standby
echo "db_name=misdb">$ORACLE_HOME/dbs/initstandby.ora
mv spfilestandby.ora{,.bak_DG}
mkdir -p $ORACLE_BASE/admin/misdb/{a,b,c,u}dump
sqlplus / as sysdba
shutdown immediate
startup nomount
3.primany
rman target / auxiliary sys/123qwe@standby
duplicate target database for standby nofilenamecheck
from active database
dorecover
spfile
set db_unique_name='standby'
set log_archive_dest_1='location=/data/arch'
set log_archive_dest_2='service=misdb async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=misdb'
set standby_file_management='AUTO'
set fal_server='misdb'
set fal_client='standby'
set control_files='/data/standby/control01.ctl'
set db_file_name_convert='misdb','standby'
set log_file_name_convert='misdb','standby'
set memory_target='0'
set sga_target='400M';
sqlplus / as sysdba
alter system set log_archive_dest_2='service=standby lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=standby';
select database_role,protection_mode,open_mode from v$database;
4.standby
sqlplus / as sysdba
alter database recover managed standby database using current logfile disconnect from session;
alter database recover managed standby database cancel;
alter database open read only;
alter database recover managed standby database using current logfile disconnect from session;
select database_role,protection_mode,open_mode from v$database;