-
تكوين أوراكل 11G DataGuard
إصدار Oracle Database 11g Enterprise Edition 11.1.0.6.0 - إنتاج 64 بت
الإصدار 5.3 من Red Hat Enterprise Linux Server (تيكانجا)
1. إعداد بيئة الاختبار
1. تحتوي قاعدة البيانات الرئيسية وقاعدة البيانات البديلة على نفس إصدار Oracle ويتم تشغيلهما على نفس النظام الأساسي مثل Linux، ولكن يمكن أن تكون أجهزة الخادم مختلفة.
2. يجب أن تعمل قاعدة البيانات الأساسية في وضع الأرشيف، وتأكد من فتح FORCE LOGGING على قاعدة البيانات الأساسية لمنع المستخدمين من كتابة الإعادة من خلال عدم التسجيل والطرق الأخرى، مما يتسبب في فشل نقل العمليات المقابلة إلى قاعدة البيانات البديلة.
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 لتسهيل التطبيق والإدارة. إنها معلمة بعد 10 جرام.
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=auto
#إذا كانت ملفات أو مسارات قاعدة البيانات الأساسية والثانوية مختلفة
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. تأكد من تشغيل قاعدة البيانات في وضع سجل الأرشيف
SQL> قائمة سجل الأرشيف
وضع سجل قاعدة البيانات لا يوجد وضع الأرشفة
الأرشفة التلقائية معطلة
وجهة الأرشيف USE_DB_RECOVERY_FILE_DEST
أقدم تسلسل سجل على الإنترنت 2
تسلسل السجل الحالي 4
اضبط قاعدة البيانات على وضع سجل الأرشيف
SQL> الاغلاق الفوري
SQL> جبل بدء التشغيل
SQL> تغيير أرشيف قاعدة البيانات؛
SQL> تغيير قاعدة البيانات المفتوحة؛
5. إنشاء سجل احتياطي على قاعدة البيانات الرئيسية (للتبديل)
تغيير قاعدة البيانات، استعادة قاعدة البيانات البديلة المُدارة، إلغاء؛# لم يتم التنفيذ
SQL> تغيير قاعدة البيانات إضافة مجموعة ملفات السجل الاحتياطية 4 الحجم 50M؛
SQL> تغيير قاعدة البيانات إضافة مجموعة ملفات السجل الاحتياطية 5 الحجم 50M؛
SQL> تغيير قاعدة البيانات إضافة مجموعة ملفات السجل الاحتياطية 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
-------------------------------------------------- ----------------------------------------
test01
test02
4. قم بإنشاء الدلائل المقابلة ودليل ملف التفريغ ودليل ملف البيانات ودليل الأرشيف
mkdir -p /u01/app/Oracle/oradata
mkdir -p /u01/app/Oracle/flash_recovery_area
mkdir -p /u01/app/Oracle/arch/test
5. قم بتكوين ملفات الاستماع.ora وtnsnames.ora لقاعدة البيانات البديلة لإعادة الاستماع إلى قاعدة البيانات الرئيسية والتحقق من إمكانية مرور tnsping.
6. قم بتشغيل قاعدة البيانات البديلة لحالة التحميل
SQL> رقم بدء التشغيل
7. استخدم وظيفة RMAN المكررة لإنشاء قاعدة بيانات بديلة ويمكن لـ 11g نسخها مباشرة إلى قاعدة البيانات البديلة دون عمل نسخة احتياطية:
RMAN> مساعد RMAN /
قم بتوصيل الهدف sys/test@test_db_01
قاعدة بيانات هدف مكررة لوضع الاستعداد dorecover nofilenamecheck؛
التحقق من حالة قاعدة البيانات الاحتياطية
SQL> حدد قاعدة بيانات_دور، وضع الحماية، مستوى الحماية من قاعدة بيانات $ 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> تغيير قاعدة البيانات المفتوحة للقراءة فقط؛
في هذا الوقت، يمكنك إضافة ملفات بيانات مؤقتة إلى قاعدة البيانات (لا يتم نسخها احتياطيًا أثناء النسخ الاحتياطي السريع)
يحب
تغيير درجة حرارة مساحة الجدول وإضافة ملف مؤقت '/u02/oradata/test/temp01.dbf' بحجم 100 ميجا؛
5. من وضع القراءة فقط إلى وضع الاسترداد المُدار
SQL> استعادة قطع اتصال قاعدة البيانات الاحتياطية المُدارة من الجلسة؛
5. التبديل بين قواعد البيانات النشطة والبديلة
توقف lsnrctl
SQL> التزام قاعدة البيانات بالتبديل إلى وضع الاستعداد الفعلي مع إيقاف تشغيل الجلسة؛
SQL> الاغلاق الفوري؛
SQL> جبل بدء التشغيل؛
SQL> تغيير قاعدة البيانات واستعادة قطع الاتصال بقاعدة البيانات الاحتياطية المُدارة؛
بداية lsnrctl
النسخ الاحتياطي
SQL> التزام قاعدة البيانات بالتحول إلى قاعدة البيانات الأساسية؛
SQL> الاغلاق الفوري؛
SQL> بدء التشغيل
6. المرفق أدناه هو محتوى ملف التكوين:
المستمع.ora
المستمع =
(الوصف=
(العنوان = (البروتوكول = TCP)(المضيف = Oracle6)(المنفذ = 1521))
)
tnsnames.ora
TEST_DB_02 =
(الوصف=
(ADDRESS_LIST =
(العنوان = (البروتوكول = TCP)(المضيف = 192.168.202.5)(المنفذ = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test02)
)
)
TEST_DB_01 =
(الوصف=
(ADDRESS_LIST =
(العنوان = (البروتوكول = TCP)(المضيف = 192.168.202.6)(المنفذ = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = test01)
)
)
com.pfile
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
test.__sga_target=2013265920
test.__shared_io_pool_size=0
test.__shared_pool_size=436207616
test.__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/ التحكم03.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='(PROTOCOL=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='AUTO'
*.undo_tablespace='UNDOTBS1'