-
การกำหนดค่า Oracle 11g DataGuard
Oracle Database 11g Enterprise Edition รีลีส 11.1.0.6.0 - การผลิต 64 บิต
Red Hat Enterprise Linux Server รีลีส 5.3 (Tikanga)
1. การเตรียมสภาพแวดล้อมการทดสอบ
1. ฐานข้อมูลหลักและฐานข้อมูลสแตนด์บายมี Oracle เวอร์ชันเดียวกันและทำงานบนแพลตฟอร์มเดียวกัน เช่น Linux แต่ฮาร์ดแวร์เซิร์ฟเวอร์อาจแตกต่างกัน
2. ฐานข้อมูลหลักจะต้องทำงานในโหมดเก็บถาวร และต้องแน่ใจว่าได้เปิด FORCE LOGGING บนฐานข้อมูลหลักเพื่อป้องกันไม่ให้ผู้ใช้เขียนซ้ำผ่าน nologging และวิธีการอื่น ๆ ทำให้การดำเนินการที่เกี่ยวข้องล้มเหลวในการส่งไปยังฐานข้อมูลสแตนด์บาย
3. สามารถใช้ทั้งฐานข้อมูลหลักและฐานข้อมูลสำรองในอินสแตนซ์เดี่ยวหรือสถาปัตยกรรม RAC และการกำหนดค่าตัวป้องกันข้อมูลเดียวกันสามารถผสมผสานการสแตนด์บายแบบลอจิคัลและการสแตนด์บายทางกายภาพได้
4. ขอแนะนำให้ฐานข้อมูลต้องใช้สถาปัตยกรรมการจัดเก็บข้อมูลเดียวกัน ตัวอย่างเช่น หากใช้ ASM/OMF สำหรับการจัดเก็บ จะต้องใช้ ASM/OMF โดยไม่คำนึงถึงระบบหลักหรือสแตนด์บาย
5. สภาพแวดล้อมของห้องสมุดสำรองจะเหมือนกับสภาพแวดล้อมของห้องสมุดหลัก
2. ปรับไลบรารีหลัก
1. เปลี่ยนฐานข้อมูลหลักเพื่อบังคับใช้โหมดบันทึก
แก้ไขการบันทึกการบังคับฐานข้อมูล
2. สร้างรหัสผ่าน
ไฟล์ orapwd=$ORACLE_HOME/dbs/orapwtest รหัสผ่าน=รายการทดสอบ=3
3. แก้ไขพารามิเตอร์การเริ่มต้นของไลบรารีหลัก
db_unique_name ='test01'
db_name ระบุชื่อของฐานข้อมูล db_unique_name ระบุชื่อที่แตกต่างกันของฐานข้อมูล (ฐานข้อมูลหลักและฐานข้อมูลสำรอง) ซึ่งเป็นการระบุเฉพาะของ db_name ที่จริงแล้วคือการแยกฐานข้อมูลด้วย db_name เดียวกันเพื่ออำนวยความสะดวกในการใช้งานและการจัดการ มันเป็นพารามิเตอร์หลังจาก 10g
log_archive_config='DG_CONFIG=(test01,test02)'
test01, test02 คือ .db_unique_name
log_archive_dest_1='location=/u01/app/oracle/arch/test/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=test01'
log_archive_dest_2='SERVICE=test_db_02 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test02'
กำหนด log_archive_dest_state_1
log_archive_dest_state_1= เปิดใช้งาน #ค่าเริ่มต้นคือเปิดใช้งาน
log_archive_dest_state_2= เปิดใช้งาน
/*ส่วนต่อไปนี้ใช้สำหรับเปลี่ยนโฮสต์เป็นฐานข้อมูลสแตนด์บาย*/
fal_server=test_db_02
fal_client=test_db_01
standby_file_management=อัตโนมัติ
#หากไฟล์หรือพาธฐานข้อมูลหลักและรองแตกต่างกัน
db_file_name_convert='/u01/app/oracle/oradata/test','/u01/app/oracle/oradata/test'
log_file_name_convert='/u01/app/oracle/oradata/test','/u01/app/oracle/oradata/test'
ขอแนะนำให้ไฟล์พารามิเตอร์ใช้ spfile เพื่อให้สามารถแก้ไขพารามิเตอร์ได้โดยใช้คำสั่งในไลบรารีที่ไม่หยุดนิ่ง
4. ตรวจสอบให้แน่ใจว่าฐานข้อมูลกำลังทำงานในโหมด archivelog
SQL> รายการบันทึกการเก็บถาวร
โหมดบันทึกฐานข้อมูล ไม่มีโหมดเก็บถาวร
การเก็บถาวรอัตโนมัติถูกปิดใช้งาน
ปลายทางการเก็บถาวร USE_DB_RECOVERY_FILE_DEST
ลำดับบันทึกออนไลน์ที่เก่าแก่ที่สุด 2
ลำดับบันทึกปัจจุบัน 4
ปรับฐานข้อมูลเป็นโหมด archivelog
SQL> ปิดเครื่องทันที
SQL> เมาท์เริ่มต้น
SQL> แก้ไขบันทึกฐานข้อมูล;
SQL> แก้ไขฐานข้อมูลที่เปิดอยู่
5. สร้างบันทึกการสแตนด์บายบนฐานข้อมูลหลัก (สำหรับการสลับ)
แก้ไขฐานข้อมูล กู้คืนฐานข้อมูลสำรองที่ได้รับการจัดการ ยกเลิก;#ไม่ได้ดำเนินการ
SQL> แก้ไขฐานข้อมูลเพิ่ม STANDBY LOGFILE GROUP 4 ขนาด 50M;
SQL> แก้ไขฐานข้อมูลเพิ่ม STANDBY LOGFILE GROUP 5 ขนาด 50M;
SQL> แก้ไขฐานข้อมูลเพิ่ม STANDBY LOGFILE GROUP 6 ขนาด 50M;
mkdir -p /u01/app/oracle/standby/test
SQL> แก้ไขฐานข้อมูลเพิ่มกลุ่มไฟล์บันทึกสแตนด์บาย 4 ('/u01/app/oracle/standby/test/stdby_redo04.log') ขนาด 50M;
SQL> แก้ไขฐานข้อมูลเพิ่มกลุ่มไฟล์บันทึกสแตนด์บาย 5 ('/u01/app/oracle/standby/test/stdby_redo05.log') ขนาด 50M;
SQL> แก้ไขฐานข้อมูลเพิ่มกลุ่มไฟล์บันทึกสแตนด์บาย 6 ('/u01/app/oracle/standby/test/stdby_redo06.log') ขนาด 50M;
SQL>แก้ไขฐานข้อมูลกู้คืนฐานข้อมูลสแตนด์บายที่ได้รับการจัดการตัดการเชื่อมต่อจากเซสชัน#ไม่ได้ดำเนินการ
3. สร้างฐานข้อมูลสแตนด์บาย
1. สร้าง pwdfile ในฐานข้อมูลสแตนด์บาย
ไฟล์ orapwd=$ORACLE_HOME/dbs/orapwtest รหัสผ่าน=รายการทดสอบ=3
รหัสผ่านจะต้องเหมือนกับฐานข้อมูลหลัก
2. แก้ไขพารามิเตอร์การเตรียมใช้งานฐานข้อมูลสแตนด์บายที่แตกต่างจากฐานข้อมูลหลักดังต่อไปนี้:
db_unique_name=test02
log_archive_dest_1='location=/u01/app/oracle/arch/test valid_for=(all_logfiles,all_roles) db_unique_name=test02'
log_archive_dest_2='service=test_db_01 ARCH ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=test01'
fal_client='test_db_02'
fal_server='test_db_01'
db_file_name_convert='/u01/app/oracle/oradata/TEST01/datafile','/u01/app/oracle/oradata/TEST02/datafile'
log_file_name_convert='/u01/app/oracle/oradata/TEST01/onlinelog','/u01/app/oracle/oradata/TEST02/onlinelog', '/u01/app/oracle/flash_recovery_area/TEST01/onlinelog','/u01 /app/oracle/flash_recovery_area/TEST01/onlinelog'
หลังจากแก้ไขแล้ว ให้ใช้ข้อความต่อไปนี้เพื่อดู
SQL> เลือก * จาก V$DATAGUARD_CONFIG;
DB_UNIQUE_NAME
-------------------------------------------------- -------------------------------------------------- --------------------------------------------
ทดสอบ01
ทดสอบ02
4. สร้างไดเร็กทอรีที่เกี่ยวข้อง ไดเร็กทอรีไฟล์ดัมพ์ ไดเร็กทอรีไฟล์ข้อมูล และไดเร็กทอรีเก็บถาวร
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oracle/flash_recovery_area
mkdir -p /u01/app/oracle/arch/test
5. กำหนดค่าไฟล์ Listener.ora และ tnsnames.ora ของฐานข้อมูลสแตนด์บายเพื่อรีสตาร์ทการฟังด้วยฐานข้อมูลหลัก และตรวจสอบว่า tnsping สามารถผ่านได้หรือไม่
6. เริ่มฐานข้อมูลสแตนด์บายเป็นสถานะ nomount
SQL> nomount เริ่มต้น
7. ใช้ฟังก์ชันซ้ำของ RMAN เพื่อสร้างฐานข้อมูลสแตนด์บาย 11g สามารถคัดลอกไปยังฐานข้อมูลสแตนด์บายได้โดยตรงโดยไม่ต้องสำรองข้อมูล:
RMAN> rman เสริม /
เชื่อมต่อเป้าหมาย sys/test@test_db_01
ฐานข้อมูลเป้าหมายที่ซ้ำกันสำหรับการสแตนด์บาย dorecover nofilenamecheck;
ตรวจสอบสถานะของฐานข้อมูลสแตนด์บาย
SQL> เลือกdatabase_role,protection_mode,protection_levelจากฐานข้อมูล v$;
SQL> เลือกลำดับ # นำไปใช้จากลำดับ v$archived_log ตามลำดับ #;
8. เริ่มไลบรารีหลักของแอปพลิเคชัน Redo
SQL> แก้ไขบันทึกการเก็บถาวรของระบบปัจจุบัน;
ฐานข้อมูลสแตนด์บาย 11g สามารถเปิดบันทึกแอปพลิเคชันฐานข้อมูลแบบอ่านอย่างเดียว
SQL> แก้ไขฐานข้อมูลที่เปิดอ่านอย่างเดียว;
SQL> แก้ไขฐานข้อมูลกู้คืนฐานข้อมูลสแตนด์บายที่ได้รับการจัดการตัดการเชื่อมต่อจากเซสชัน
คุณยังสามารถใช้แก้ไขฐานข้อมูลที่กู้คืนฐานข้อมูลสแตนด์บายที่ได้รับการจัดการโดยใช้ไฟล์บันทึกปัจจุบันที่ตัดการเชื่อมต่อจากบันทึกของแอปพลิเคชัน
หากไม่มีการใช้ไฟล์บันทึกปัจจุบัน ให้ใช้บันทึกที่เก็บไว้ในโหมดสแตนด์บาย
การใช้ไฟล์บันทึกปัจจุบันจะถูกนำไปใช้เมื่อบันทึกถูกถ่ายโอนไปยังบันทึกการทำซ้ำในโหมดสแตนด์บาย ซึ่งเป็นแบบเรียลไทม์และต้องมีบันทึกการทำซ้ำในโหมดสแตนด์บาย
4. โหมดการจัดการและโหมดอ่านอย่างเดียวของเซิร์ฟเวอร์สแตนด์บาย
1. บูตเข้าสู่โหมดการจัดการ
SQL>ปิดเครื่องทันที;
SQL>จำนวนการเริ่มต้น;
SQL>แก้ไขฐานข้อมูลสแตนด์บายเมานท์ฐานข้อมูล;
SQL>แก้ไขฐานข้อมูลกู้คืนฐานข้อมูลสแตนด์บายที่ได้รับการจัดการตัดการเชื่อมต่อจากเซสชัน
2. บูตเข้าสู่โหมดอ่านอย่างเดียว
SQL>ปิดเครื่องทันที;
SQL>จำนวนการเริ่มต้น;
SQL>แก้ไขฐานข้อมูลสแตนด์บายเมานท์ฐานข้อมูล;
SQL>แก้ไขฐานข้อมูลที่เปิดอ่านอย่างเดียว;
(3) หากคุณไปที่โหมดอ่านอย่างเดียวในโหมดการกู้คืนการจัดการ
SQL> กู้คืนการยกเลิกฐานข้อมูลสแตนด์บายที่ได้รับการจัดการ;
SQL> แก้ไขฐานข้อมูลที่เปิดอ่านอย่างเดียว;
ในขณะนี้ คุณสามารถเพิ่มไฟล์ข้อมูลชั่วคราวลงในฐานข้อมูลได้ (ซึ่งจะไม่ถูกสำรองข้อมูลระหว่างการสำรองข้อมูลแบบ hot)
ชอบ
แก้ไขอุณหภูมิของ tablespace เพิ่ม tempfile '/u02/oradata/test/temp01.dbf' ขนาด 100M;
5. จากโหมดอ่านอย่างเดียวไปจนถึงโหมดการกู้คืนที่ได้รับการจัดการ
SQL> กู้คืนฐานข้อมูลสแตนด์บายที่ได้รับการจัดการตัดการเชื่อมต่อจากเซสชัน
5. สลับระหว่างฐานข้อมูลที่ใช้งานอยู่และฐานข้อมูลสแตนด์บาย
lsnrctl หยุด
SQL> แก้ไขฐานข้อมูลเพื่อสลับไปใช้โหมดสแตนด์บายแบบฟิสิคัลโดยปิดเซสชัน
SQL> ปิดเครื่องทันที;
SQL> เมานต์เริ่มต้น;
SQL> แก้ไขฐานข้อมูลกู้คืนการเชื่อมต่อฐานข้อมูลสแตนด์บายที่ได้รับการจัดการ;
lsnrctl เริ่มต้น
สำรองข้อมูล
SQL> แก้ไขฐานข้อมูลเพื่อสลับไปใช้ระบบหลัก
SQL> ปิดเครื่องทันที;
SQL> การเริ่มต้น
6. ไฟล์แนบด้านล่างนี้คือเนื้อหาของไฟล์การกำหนดค่า:
Listener.ora
ผู้ฟัง =
(รายละเอียด=
(ที่อยู่ = (โปรโตคอล = TCP)(โฮสต์ = oracle6)(พอร์ต = 1521))
-
tnsnames.ora
ทดสอบ_DB_02 =
(รายละเอียด=
(ADDRESS_LIST =
(ที่อยู่ = (โปรโตคอล = TCP)(โฮสต์ = 192.168.202.5)(พอร์ต = 1521))
-
(CONNECT_DATA =
(SERVICE_NAME = ทดสอบ02)
-
-
ทดสอบ_DB_01 =
(รายละเอียด=
(ADDRESS_LIST =
(ที่อยู่ = (โปรโตคอล = TCP)(โฮสต์ = 192.168.202.6)(พอร์ต = 1521))
-
(CONNECT_DATA =
(SERVICE_NAME = ทดสอบ01)
-
-
ไฟล์
test.__db_cache_size=1526726656
test.__java_pool_size=16777216
test.__large_pool_size=16777216
test.__oracle_base='/u01/app/oracle'#ORACLE_BASE ตั้งค่าจากสภาพแวดล้อม
test.__pga_aggregate_target=1342177280
ทดสอบ.__sga_target=2013265920
ทดสอบ.__shared_io_pool_size=0
test.__shared_pool_size=436207616
ทดสอบ.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/test/adump'
*.audit_trail='db'
*.เข้ากันได้กับ='11.1.0.0.0'
*.control_files='/u01/app/oracle/oradata/test/control01.ctl','/u01/app/oracle/oradata/test/control02.ctl','/u01/app/oracle/oradata/test/ control03.ctl'
*.db_block_size=8192
*.db_domain='greatsky.com'
*.db_name='ทดสอบ'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='test01'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(โปรโตคอล=TCP) (บริการ=testXDB)'
*.fal_client='TEST_DB_01'
*.fal_server='TEST_DB_02'
*.log_archive_config='dg_config=(test01,test02)'
*.log_archive_dest_1='location=/u01/app/oracle/arch/test/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=test01'
*.log_archive_dest_2='SERVICE=test_db_02 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test02'
*.memory_target=3347054592
*.open_cursors=300
*.กระบวนการ=150
*.remote_login_passwordfile='พิเศษ'
*.service_names='test.greatsky.com','test01.greatsky.com'
*.standby_file_management='อัตโนมัติ'
*.undo_tablespace='UNDOTBS1'