-
Oracle Snapshot Standby คืออะไร
-
แนวทางปฏิบัติที่ดีที่สุดสำหรับการทดสอบ Oracle Snapshot Standby
-
ปกป้องฐานข้อมูล Oracle ของคุณด้วยโซลูชันระดับมืออาชีพ
-
บทสรุป
Oracle Snapshot Standby คืออะไร
Data Guard ของ Oracle 11g ไม่เพียงมีคุณสมบัติที่โดดเด่นอย่างการสืบค้นข้อมูลแบบเรียลไทม์ผ่าน Active Data Guard เท่านั้น แต่ยังมีคุณสมบัติที่น่าสนใจอีกอย่างหนึ่งคือ ฟังก์ชัน Snapshot Standby Database ซึ่งทำให้ฐานข้อมูลสำรองสามารถอยู่ในโหมด "อ่าน-เขียน" ได้ โดยทำหน้าที่เป็นสภาพแวดล้อมสำหรับการทดสอบงานต่าง ๆ ที่อาจไม่สะดวกในการดำเนินการโดยตรงบนฐานข้อมูลหลักที่ใช้งานจริง เช่น การจำลองการปรับใช้งานออนไลน์และงานอื่น ๆ เมื่อดำเนินการต่าง ๆ เสร็จสิ้นในโหมดอ่าน-เขียนแล้ว จะสามารถเปลี่ยนบทบาทของฐานข้อมูลสำรองแบบสแนปชอตกลับไปเป็นฐานข้อมูลสำรองได้อย่างง่ายดาย และกลับมาซิงค์ข้อมูลกับฐานข้อมูลหลักต่อไป ขณะอยู่ในสถานะฐานข้อมูลสำรองแบบสแนปช็อต ระบบสามารถรับบันทึก (logs) จากฐานข้อมูลหลักได้ แต่การเปลี่ยนแปลงเหล่านั้นจะไม่สามารถนำไปประยุกต์ใช้กับฐานข้อมูลสำรองได้
แนวทางปฏิบัติที่ดีที่สุดสำหรับการทดสอบ Oracle Snapshot Standby
1. การหยุดกระบวนการ Redo Apply
หากฐานข้อมูลสำรองกำลังดำเนินการ Redo Apply อยู่ในขณะนี้ จะจำเป็นต้องยุติกระบวนการดังกล่าวก่อน
sys@ora11gdg> alter database recover managed standby database cancel; Database altered.
2. การตรวจสอบสถานะปัจจุบันของฐานข้อมูลสำรองเพื่อให้แน่ใจว่าอยู่ในสถานะ MOUNTED
sys@ora11gdg> select database_role,open_mode from v$database; DATABASE_ROLE OPEN_MODE PHYSICAL STANDBY MOUNTED
ในขณะนี้ ฐานข้อมูลสำรองทำหน้าที่เป็นฐานข้อมูลสำรองทางกายภาพและทำงานในโหมด MOUNTED
3. การตรวจสอบว่าได้มีการกำหนดพื้นที่กู้คืนแฟลชแบ็คแล้ว
เตือนความจำ: การเปิดใช้งานฟังก์ชันฐานข้อมูลสำรองแบบสแนปชอตไม่จำเป็นต้องเปิดใช้งานคุณสมบัติแฟลชแบ็คฐานข้อมูลบนฐานข้อมูลหลักและฐานข้อมูลสำรองทั้งสอง ซึ่งเป็นอิสระจากสถานะการเปิดใช้งานคุณสมบัติแฟลชแบ็คฐานข้อมูล
sys@ora11gdg> show parameter db_recovery_file_dest NAME TYPE VALUE db_recovery_file_dest string /u01/app/oracle/flash_recovery_area db_recovery_file_dest_size big integer 3852M
ยืนยันว่าคุณลักษณะการถอยกลับ (flashback) ไม่ได้เปิดใช้งานบนฐานข้อมูลหลัก
sys@ora11g> select FLASHBACK_ON from v$database; FLASHBACK_ON NO
ยืนยันว่าคุณลักษณะการย้อนกลับไม่ได้ถูกเปิดใช้งานบนฐานข้อมูลสำรอง
sys@ora11gdg> select FLASHBACK_ON from v$database; FLASHBACK_ON NO
4. ปรับฐานข้อมูลสำรองให้อยู่ในสถานะ Snapshot Standby โดยการรันคำสั่ง SQL เพียงคำสั่งเดียว
sys@ora11gdg> alter database convert to snapshot standby; Database altered. sys@ora11gdg> select database_role,open_mode from v$database; DATABASE_ROLE OPEN_MODE SNAPSHOT STANDBY MOUNTED
5. ตั้งค่าฐานข้อมูลสำรองให้อยู่ในสถานะอ่าน-เขียนเพื่อให้สามารถเข้าถึงจากภายนอกได้
sys@ora11gdg> alter database open; Database altered. sys@ora11gdg> select database_role,open_mode from v$database; DATABASE_ROLE OPEN_MODE SNAPSHOT STANDBY READ WRITE
ฐานข้อมูลอ่าน-เขียนที่ทั้งใหม่และทันสมัยปรากฏขึ้นต่อหน้าเรา
6. วิเคราะห์ข้อมูลล็อกในระหว่างกระบวนการสลับโหมด
บันทึกการแจ้งเตือนของฐานข้อมูลหลักสำหรับ Oracle 11g:
Mon Mar 19 18:46:28 2012 LNS: Attempting destination LOG_ARCHIVE_DEST_2 network reconnect (3135) LNS: Destination LOG_ARCHIVE_DEST_2 network reconnect abandoned Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_nsa2_27302.trc: ORA-03135: connection lost contact Error 3135 for archive log file 2 to 'ora11gdg' Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_nsa2_27302.trc: ORA-03135: connection lost contact LNS: Failed to archive log 2 thread 1 sequence 50 (3135) Errors in file /u01/app/oracle/diag/rdbms/ora11g/ora11g/trace/ora11g_nsa2_27302.trc: ORA-03135: connection lost contact
บันทึกการแจ้งเตือนฐานข้อมูลสำรองสำหรับ Oracle 11g:
Mon Mar 19 18:46:26 2012 alter database convert to snapshot standby Starting background process RVWR Mon Mar 19 18:46:26 2012 RVWR started with pid=26, OS id=8824 Allocated 3981204 bytes in shared pool for flashback generation buffer Created guaranteed restore point SNAPSHOT_STANDBY_REQUIRED_03/19/2012 18:46:26 krsv_proc_kill: Killing 3 processes (all RFS) Begin: Standby Redo Logfile archival End: Standby Redo Logfile archival RESETLOGS after complete recovery through change 1472476 Resetting resetlogs activation ID 4174194338 (0xf8cd26a2) Online log /u01/app/oracle/oradata/ora11gdg/redo01.log: Thread 1 Group 1 was previously cleared Online log /u01/app/oracle/oradata/ora11gdg/redo02.log: Thread 1 Group 2 was previously cleared Online log /u01/app/oracle/oradata/ora11gdg/redo03.log: Thread 1 Group 3 was previously cleared Standby became primary SCN: 1472474 Mon Mar 19 18:46:29 2012 Setting recovery target incarnation to 5 CONVERT TO SNAPSHOT STANDBY: Complete - Database mounted as snapshot standby Completed: alter database convert to snapshot standby
ข้อความสำคัญระบุว่า "Created guaranteed restore point SNAPSHOT_STANDBY_REQUIRED_03/19/2012 18:46:26" ซึ่งบ่งชี้ถึงช่วงเวลาที่เราเปลี่ยนเป็นภาพถ่าย เพื่ออำนวยความสะดวกในการย้อนกลับในขั้นตอนถัดไป
7. การทดสอบการรับบันทึกจากฐานข้อมูลหลักของฐานข้อมูลสำรองแบบสแนปช็อต
แม้ว่าฐานข้อมูลหลักจะสลับบันทึก แต่ฐานข้อมูลสำรองยังคงดำเนินการรับบันทึกต่อไป แม้จะไม่นำบันทึกเหล่านั้นมาใช้ก็ตาม
1) เปลี่ยนลอจ์ในฐานข้อมูลหลัก
sys@ora11g> alter system switch logfile; System altered.
2) เนื้อหาบันทึกการแจ้งเตือนที่ถูกบันทึกโดยฐานข้อมูลหลัก
บันทึกการแจ้งเตือนฐานข้อมูลหลักสำหรับ Oracle 11g:
Mon Mar 19 18:52:00 2012 Thread 1 cannot allocate new log, sequence 52 Private strand flush not complete Current log# 3 seq# 51 mem# 0: /u01/app/oracle/oradata/ora11g/redo03.log Mon Mar 19 18:52:00 2012 ARC3: Standby redo logfile selected for thread 1 sequence 50 for destination LOG_ARCHIVE_DEST_2 Thread 1 advanced to log sequence 52 (LGWR switch) Current log# 1 seq# 52 mem# 0: /u01/app/oracle/oradata/ora11g/redo01.log Mon Mar 19 18:52:03 2012 Archived Log entry 91 added for thread 1 sequence 51 ID 0xf8cd26a2 dest 1: Mon Mar 19 18:52:03 2012 LNS: Standby redo logfile selected for thread 1 sequence 51 for destination LOG_ARCHIVE_DEST_2 LNS: Standby redo logfile selected for thread 1 sequence 52 for destination LOG_ARCHIVE_DEST_2
บันทึกการแจ้งเตือนฐานข้อมูลสำรองสำหรับ Oracle 11g:
Mon Mar 19 18:52:00 2012 RFS[5]: Assigned to RFS process 9174 RFS[5]: Identified database type as 'snapshot standby': Client is ARCH pid 27296 Mon Mar 19 18:52:00 2012 RFS[6]: Assigned to RFS process 9176 RFS[6]: Identified database type as 'snapshot standby': Client is ARCH pid 27300 RFS[6]: Selected log 4 for thread 1 sequence 50 dbid -120744030 branch 778023141 Mon Mar 19 18:52:00 2012 Archived Log entry 47 added for thread 1 sequence 50 ID 0xf8cd26a2 dest 1: Mon Mar 19 18:52:03 2012 RFS[7]: Assigned to RFS process 9180 RFS[7]: Identified database type as 'snapshot standby': Client is LGWR ASYNC pid 27302 RFS[7]: Selected log 4 for thread 1 sequence 51 dbid -120744030 branch 778023141 Mon Mar 19 18:52:04 2012 Archived Log entry 48 added for thread 1 sequence 51 ID 0xf8cd26a2 dest 1: RFS[7]: Selected log 4 for thread 1 sequence 52 dbid -120744030 branch 778023141
3) การตรวจสอบเนื้อหาของไฟล์บันทึกในไดเรกทอรีเก็บถาวรของฐานข้อมูลหลักและฐานข้อมูลสำรอง
(1) แฟ้มบันทึกประวัติของฐานข้อมูลหลัก:
ora11g@secdb /home/oracle/arch/ora11g$ ls -ltr total 879M ...omitted... -rw-r----- 1 oracle oinstall 1.1M Mar 19 18:51 1_50_778023141.arc -rw-r----- 1 oracle oinstall 363K Mar 19 18:52 1_51_778023141.arc
(2) ไฟล์บันทึกการเก็บถาวรของฐานข้อมูลสำรอง:
ora11g@secdb /home/oracle/arch/ora11gdg$ ls -ltr total 847M ...omitted... -rw-r----- 1 oracle oinstall 1.1M Mar 19 18:52 1_50_778023141.arc -rw-r----- 1 oracle oinstall 363K Mar 19 18:52 1_51_778023141.arc
ตามที่สังเกต ฐานข้อมูลสำรองได้รับไฟล์บันทึกที่ส่งมาจากฐานข้อมูลหลักเรียบร้อยแล้ว
8. การสร้างผู้ใช้ ตาราง และการเริ่มต้นข้อมูลในฐานข้อมูลสำรองแบบสแนปช็อต
sys@ora11gdg> create user ocmu identified by ocmu;
User created.
secooler@ora11gdg> grant dba to ocmu;
Grant succeeded.
secooler@ora11gdg> conn ocmu/ocmu
Connected.
ocmu@ora11gdg> create table t (x varchar2(8));
Table created.
ocmu@ora11gdg> insert into t values ('Secooler');
1 row created.
ocmu@ora11gdg> commit;
Commit complete.
ocmu@ora11gdg> select * from t;
X
Secoolerในขณะนี้ ฐานข้อมูลสำรองอยู่ในสถานะที่สามารถปรับเปลี่ยนได้ ซึ่งสอดคล้องกับโหมด "READ WRITE" ที่ต้องการ
สิ่งสำคัญคือต้องทราบว่าการใช้งานฟังก์ชันฐานข้อมูลแบบ Snapshot Standby นั้นขึ้นอยู่กับหลักการของข้อมูลแฟลชแบ็คอย่างพื้นฐาน ดังนั้นควรหลีกเลี่ยงการดำเนินการใด ๆ ที่อาจทำให้ไม่สามารถแฟลชแบ็คฐานข้อมูลได้ มิฉะนั้น ฐานข้อมูลแบบ snapshot standby จะไม่สามารถกลับสู่สถานะการกู้คืนแบบสแตนด์บายก่อนหน้าได้
9. การกู้คืนฐานข้อมูลสำรองแบบสแนปช็อตกลับเป็นฐานข้อมูลสำรองทางกายภาพ
1) รีสตาร์ทฐานข้อมูลสำรองใหม่ในสถานะ MOUNTED
ocmu@ora11gdg> conn / as sysdba Connected. sys@ora11gdg> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. sys@ora11gdg> startup mount ORACLE instance started. Total System Global Area 313860096 bytes Fixed Size 1336232 bytes Variable Size 268438616 bytes Database Buffers 37748736 bytes Redo Buffers 6336512 bytes Database mounted. sys@ora11gdg> select database_role,open_mode from v$database; DATABASE_ROLE OPEN_MODE SNAPSHOT STANDBY MOUNTED
2) ดำเนินการคำสั่งเพื่อกู้คืนอัตลักษณ์เดิมของฐานข้อมูลสำรองทางกายภาพ
sys@ora11gdg> alter database convert to physical standby; Database altered.
3) บันทึกการแจ้งเตือนของฐานข้อมูลสำรองได้จดบันทึกกระบวนการเปลี่ยนผ่านนี้อย่างละเอียดถี่ถ้วน
Mon Mar 19 19:30:24 2012 alter database convert to physical standby ALTER DATABASE CONVERT TO PHYSICAL STANDBY (ora11gdg) Flashback Restore Start Flashback Restore Complete Stopping background process RVWR Deleted Oracle managed file /u01/app/oracle/flash_recovery_area/ORA11GDG/flashback/o1_mf_7pg3n2jc_.flb Deleted Oracle managed file /u01/app/oracle/flash_recovery_area/ORA11GDG/flashback/o1_mf_7pg52yst_.flb Guaranteed restore point dropped Clearing standby activation ID 4174523254 (0xf8d22b76) The primary database controlfile was created using the 'MAXLOGFILES 30' clause. There is space for up to 27 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 52428800; ALTER DATABASE ADD STANDBY LOGFILE 'srl2.f' SIZE 52428800; ALTER DATABASE ADD STANDBY LOGFILE 'srl3.f' SIZE 52428800; ALTER DATABASE ADD STANDBY LOGFILE 'srl4.f' SIZE 52428800; Completed: alter database convert to physical standby
จากบันทึกการแจ้งเตือน สามารถสรุปได้ว่า วิธีการกู้คืนใช้คุณลักษณะ Flashback Database สิ่งนี้แสดงให้เห็นว่าแม้ฐานข้อมูลสำรองจะไม่ได้ทำงานในโหมด flashback database การเปลี่ยนบทบาทของฐานข้อมูลสำรองก็ยังสามารถดำเนินการได้โดยใช้ฟังก์ชันการทำงานของ Flashback Database
4) รีสตาร์ทฐานข้อมูลสำรองใหม่ในโหมดการกู้คืนล็อกอัตโนมัติ
(1) ณ จุดนี้ ฐานข้อมูลอยู่ในสถานะ NOMOUNTED และจำเป็นต้องเริ่มต้นใหม่
โปรดทราบว่าต้องมีการรีสตาร์ทฐานข้อมูล แทนการใช้คำสั่ง ALTER มิฉะนั้นจะพบข้อความแสดงข้อผิดพลาดดังต่อไปนี้:
sys@ora11gdg> alter database mount; alter database mount l ERROR at line 1: ORA-00750: database has been previously mounted and dismounted sys@ora11gdg> shutdown immediate; ORA-01507: database not mounted ORACLE instance shut down. sys@ora11gdg> startup mount; ORACLE instance started. Total System Global Area 313860096 bytes Fixed Size 1336232 bytes Variable Size 268438616 bytes Database Buffers 37748736 bytes Redo Buffers 6336512 bytes Database mounted. sys@ora11gdg> alter database recover managed standby database disconnect; Database altered.
(2) ด้วยการตรวจสอบบันทึกการแจ้งเตือนของฐานข้อมูลสำรอง สามารถสังเกตกระบวนการกู้คืนได้อย่างชัดเจน
Mon Mar 19 19:43:48 2012 Managed Standby Recovery not using Real Time Apply Parallel Media Recovery started with 4 slaves Waiting for all non-current ORLs to be archived... All non-current ORLs have been archived. Clearing online redo logfile 1 /u01/app/oracle/oradata/ora11gdg/redo01.log Clearing online log 1 of thread 1 sequence number 1 Completed: alter database recover managed standby database disconnect Clearing online redo logfile 1 complete Clearing online redo logfile 2 /u01/app/oracle/oradata/ora11gdg/redo02.log Clearing online log 2 of thread 1 sequence number 2 Clearing online redo logfile 2 complete Media Recovery Log /home/oracle/arch/ora11gdg/1_49_778023141.arc Media Recovery Log /home/oracle/arch/ora11gdg/1_50_778023141.arc Media Recovery Log /home/oracle/arch/ora11gdg/1_51_778023141.arc Media Recovery Log /home/oracle/arch/ora11gdg/1_52_778023141.arc Media Recovery Log /home/oracle/arch/ora11gdg/1_53_778023141.arc Media Recovery Log /home/oracle/arch/ora11gdg/1_54_778023141.arc Media Recovery Waiting for thread 1 sequence 55
(3) ตรวจสอบสถานะการใช้งานบันทึกโดยการตรวจสอบมุมมองประสิทธิภาพแบบไดนามิก V$ARCHIVED_LOG
sys@ora11gdg> select sequence#, first_time, next_time, applied from v$archived_log order by sequence#; SEQUENCE# FIRST_TIME NEXT_TIME APPLIED ...omitted... 49 20120319 18:32:32 20120319 18:38:03 YES 50 20120319 18:38:03 20120319 18:51:00 YES 51 20120319 18:51:00 20120319 18:52:03 YES 52 20120319 18:52:03 20120319 19:09:57 YES 53 20120319 19:09:57 20120319 19:10:15 YES 54 20120319 19:10:15 20120319 19:10:25 YES 52 rows selected.
10. การเปิดใช้งานฐานข้อมูลสำรองเพื่อเข้าสู่สถานะ READ ONLY เพื่อยืนยันว่าการดำเนินการที่ทำไว้กับฐานข้อมูลสำรองแบบ snapshot ก่อนหน้านี้ได้ถูกย้อนกลับเรียบร้อยแล้ว
sys@ora11gdg> alter database recover managed standby database cancel; Database altered. sys@ora11gdg> alter database open read only; Database altered. sys@ora11gdg> select database_role,open_mode from v$database; DATABASE_ROLE OPEN_MODE PHYSICAL STANDBY READ ONLY sys@ora11gdg> select username from dba_users where username = 'OCMU'; no rows selected
ผลสรุปได้รับการยืนยันแล้ว เนื่องจากผู้ใช้ทดสอบ "OCMU" ที่สร้างไว้ก่อนหน้านี้ไม่มีอยู่จริง
ปกป้องฐานข้อมูล Oracle ของคุณด้วยโซลูชันระดับมืออาชีพ
Oracle Snapshot Standby มีประโยชน์อย่างยิ่งสำหรับการทดสอบ อย่างไรก็ตาม เพื่อเพิ่มการป้องกันสภาพแวดล้อมฐานข้อมูลของคุณ ขอแนะนำให้สำรองข้อมูลฐานข้อมูล Oracle ด้วยโซลูชันสำรองข้อมูลและการกู้คืนระบบภัยพิบัติระดับมืออาชีพ

Vinchin Backup & Recovery มีฟังก์ชันการทำงานที่ทรงพลังเพื่อปกป้องฐานข้อมูลของคุณทั้งในเครื่องเสมือนและเซิร์ฟเวอร์จริง ซึ่งค่อนข้างอัตโนมัติ มีความยืดหยุ่น และมีประสิทธิภาพ ยังให้การป้องกันฐานข้อมูลหลายประเภท ได้แก่ Oracle DB, MySQL, SQL Server, Postgres Pro และ MariaDB รองรับการบีบอัดฐานข้อมูล การจัดการงานแบบรวมศูนย์ กลยุทธ์การสำรองข้อมูลอัจฉริยะ การสำรองข้อมูลขณะใช้งาน (hot database backup) และการรองรับขั้นสูงสำหรับ SQL Server/Oracle นอกจากนี้ยังรองรับฟีเจอร์การป้องกันแรนซัมแวร์ที่ทรงพลัง และการโยกย้าย V2V ข้ามแพลตฟอร์มเสมือนมากกว่า 10 แพลตฟอร์ม
Vinchin Backup & Recovery ได้รับการคัดเลือกจากบริษัทหลายพันแห่ง และคุณก็สามารถเริ่มใช้งานระบบที่ทรงพลังนี้ด้วย ทดลองใช้งานฟีเจอร์ครบถ้วนฟรี 60 วัน นอกจากนี้ ติดต่อ Vinchin โดยตรง และแจ้งความต้องการของคุณ จากนั้นคุณจะได้รับโซลูชันที่สอดคล้องกับสภาพแวดล้อม IT ของคุณ
บทสรุป
คุณสมบัติที่โดดเด่นของฐานข้อมูล snapshot standby ช่วยให้ฐานข้อมูลสำรองสามารถกลายเป็นฐานข้อมูลอิสระที่อ่านและเขียนได้ชั่วคราว สิ่งนี้ทำให้ขยายความเป็นไปได้ในการใช้งานฐานข้อมูลสำรองอย่างมาก โดยการใช้ความสามารถพิเศษของฐานข้อมูลสำรองนี้ คุณสามารถทดสอบและจำลองปัญหาที่อาจมีความ "เสี่ยง" ในการจำลองและทำซ้ำในสภาพแวดล้อมการผลิตได้อย่างปลอดภัย เมื่อการทดสอบเสร็จ คุณสามารถกู้คืนสถานะเป็นฐานข้อมูลสแตนด์บายทางกายภาพและดำเนินการกู้คืนจากบันทึกต่อไปได้
แชร์บน: