Oracle Fail over Dataguard (Standby) Database to Primary Database (Disaster) [Thai]

** Myself
Fail over Standby Database to Primary Database
Standby DB information : hostname=hpstb01, ip=10.2.144.65
- oracle sid = EEDB
มีขั้นตอนดังนี้
1. หยุดทำการรับ archivelog files ของ oracle ฝั่ง standby (ทำฝั่ง standby )Sql >ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
-or-
 
Sql >ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH SCRIPT STANDBY LOGFILE;
2. เปลี่ยน standby mode ไปเป็น normal mode จากนั้นระบบจะทำให้ controlfile เป็นแบบ ปกติแล้ว
(ทำฝั่ง standby )
Sql > ALTER DATABASE ACTIVATE STANDBY DATABASE;
3. start ระบบฝั่ง drc (ทำฝั่ง standby )Sql > shutdown immediate
Sql > startup


Check open read only mode at Standby Database

วัตถุประสงค์:ทำการตรวจสอบว่า standby database สามารถใช้งานได้ โดยผ่าน command unix
Program:Shell Programming
Check open read only mode at Standby Database
Standby DB information : hostname=hpstb01, ip=10.2.144.65
- oracle sid = EEDB
มีขั้นตอนดังนี้
1. หยุดทำการรับ archivelog files ของ oracle ฝั่ง standby (ทำฝั่ง standby )sql > alter database recover managed standby database finish;
2. ทำการเปิด standby database ใน read only mode ซึ่ง สามารถใช้ในการ query ได้ แต่ไม่สามารถ insert,update,.. (ทำฝั่ง standby )sql > alter database open read only;
3. หยุดทำการเปิด db ใน read only mode และทำการเปิดรับ archivelogs เหมือนเดิม (ทำฝั่ง standby )Sql > shutdown immediate
Sql > startup nomount
Sql > alter database mount standby database;

Switch over Standby Database to Primary Database and Primary Database to Standby Database

วัตถุประสงค์:ทำการตรวจเปลี่ยนจาก standby database เป็น primary database และ จาก primary database เป็น standby databaseได้ โดยผ่าน command unix
Program:Shell Programming
Check open read only mode at Standby Database
oracle sid = EEDB
DC DB information :
- hostname=ktbtfs03 or ktbtfs04, vip=10.1.221.135, Replication ip of ktbtfs04=10.1.145.66
- listener for receive log= EEDB_DRC port 1522 , Replication ip =10.2.145.65
DRC DB information :
- hostname=hpstb01, ip=10.2.144.65
- listener = LISTENER port 1521
มีขั้นตอนดังนี้
1. ทำการ convert primary database to standby database (ทำฝั่ง DC )sql > alter database commit to switchover to standby;
Sql > shutdown immediate
2. ทำการ copy standby profile standby database to primary database และ prepare (ทำฝั่ง DRC )rcp/scp/ftp by oracle user ${ORACLE_HOME}/dbs/spfileEEDB.ora(DR Site) to ${ORACLE_HOME}/dbs/spfileEEDB_DR.ora(DC Site)

mv ${ORACLE_HOME}/dbs/spfileEEDB.ora ${ORACLE_HOME}/dbs/spfileEEDB_origDC.ora (DC Site)

mv ${ORACLE_HOME}/dbs/spfileEEDB_DR.ora ${ORACLE_HOME}/dbs/spfileEEDB.ora (DC Site)
3. start ระบบ ฝั่ง Old Primaryไปเป็น Standby database (ทำฝั่ง DC)Sql> startup nomount
Sql> alter database mount standby database;
Sql > alter database recover managed standby database DISCONNECT from session;
4. ทำการ convert standby database to primary database (ทำฝั่ง DRC )sql > alter database commit to switchover to primary;
Sql > shutdown immediate
5. ทำการ copy primary profile database to Standby database และ prepare (ทำฝั่ง DC )rcp/scp/ftp by oracle user ${ORACLE_HOME}/dbs/spfileEEDB_origDC.ora(DC Site) to ${ORACLE_HOME}/dbs/spfileEEDB_DC.ora(DC Site)

mv ${ORACLE_HOME}/dbs/spfileEEDB.ora ${ORACLE_HOME}/dbs/spfileEEDB_origDRC.ora (DC Site)

mv ${ORACLE_HOME}/dbs/spfileEEDB_DR.ora ${ORACLE_HOME}/dbs/spfileEEDB.ora (DC Site)
6. start ระบบ ฝั่ง Old Standby ไปเป็น primary database (ทำฝั่ง DRC)Sql> startup
7. เพิ่ม listener.ora ฝั่ง DC (old primary) ซื่ง instance EEDB จะเป็นvirtual ip ของฝั่ง old primary กับ port 1521 เพื่อเป็น standby database (ทำฝั่ง DC )#backup orig
cp -p ${ORACLE_HOME}/network/admin/listener.ora ${ORACLE_HOME}/network/admin/listener_orig.ora
# Add record
EEDB_DRC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.145.66)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = EEDB)
)
)
8. start listener ฝั่ง DC เพื่อรับ archive log from DRC (ทำฝั่ง DC )lsnrctl start EEDB_DRC
9. แก้ tnsnames.ora primary and standby เหมือนกัน คือ EEDB จะเป็น virtual ip ของฝั่ง DRC กับ port 1521 ส่วน EEDB_DRC จะเป็น Replicate ip ของฝั่ง DC กับ port 1522 (ทำ 2 ฝั่ง)#backup orig (all site)
cp -p ${ORACLE_HOME}/network/admin/tnsnames.ora ${ORACLE_HOME}/network/admin/tnsnames_orig.ora

EEDB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.2.221.137)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = EEDB)
)
)

EEDB_DRC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.145.66)(PORT = 1522))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = EEDB)
)
)

0 comments:

Loading