المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

المشكلة

استكشاف الأخطاء وإصلاحها

الحل

المقدمة

يصف هذا المستند إجراء خطوة بخطوة لحل مشكلة نسخ قاعدة البيانات أو مزامنتها في شبكة Prime عند إعادة بناء قاعدة بيانات الاستعداد من قاعدة البيانات الأساسية.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- أستخدم هذا الإجراء لإعادة إنشاء قاعدة البيانات الثانوية فقط في حالة وجود SWITCHOVER_STATUS لقاعدة البيانات الأساسية في GAP غير القابلة للحل.

- تأكد من أن قاعدة البيانات الأساسية في "قراءة الكتابة" وأن قاعدة البيانات الثانوية في "قراءة فقط" أو "قراءة فقط" مع أوضاع "تطبيق".

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- شبكة Prime الإصدار 3.9 والإصدارات الأحدث

- إصدار Oracle Database الجيل الحادي عشر

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك مباشرة، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

1. أستخدم هذا الأمر لمعرفة switchover_status لقاعدة البيانات الأساسية:

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS

--------------------

UNRESOLVABLE GAP

ملاحظة: فشل تبديل Prime Central GEO HA بشكل مفاجئ في ترك حالة دور نظام Prime Central GEO HA و/أو قاعدة البيانات تالفة (سواء بشكل أولي أو في وضع الاستعداد) ثم تحتاج إلى إعادة بناء إما أساسي أو ثانوي حسب آخر حالة نشطة/إحتياطية.

ملاحظة: لجميع الحالات الأخرى، افتح SR باستخدام Cisco TAC لحل مشكلة النسخ المتماثل لقاعدة البيانات.

2. أستخدم هذا الأمر لمعرفة الوضع الحالي لقاعدة البيانات الأساسية والثانوية:

SQL> select open_mode from v$database;

المشكلة

فشل النسخ المتماثل لقاعدة بيانات الشبكة ل Prime.

يقوم تطبيق شبكة Prime بإنشاء أحداث نظام تقوم بإعلام حالات الفشل هذه، والتي تتوفر في عميل Event Vision GUI.

استكشاف الأخطاء وإصلاحها

قبل الحل، قم بتنفيذ الخطوات الأساسية لاستكشاف الوحدات الطرفية مثل:

1. تحقق من المشاكل المتعلقة باتصال الشبكة و/أو زمن الوصول بين بوابة الشبكة الأساسية والثانوية.

2. تحقق من سجلات قاعدة البيانات هذه في Primary للعثور على أي أخطاء ORA ذات صلة بقاعدة البيانات:

<database_home_directory>/diag/rdbms/anadb/anadb/trace/alert_anadb.log

3. تحقق من حالة open_mode و current_scn و switchover على قاعدة البيانات الأساسية والثانوية.

SQL> select open_mode from v$database;

SQL> select current_scn from v$database;

SQL> select switchover_status from v$database;

4. قد يرجع السبب الرئيسي لنسخ قاعدة البيانات إلى مشكلة في الاتصال بالشبكة بين "بوابة شبكة Prime الأساسية" و"بوابة الشبكة" الثانوية أو إلى وجود أخطاء متعلقة بقاعدة البيانات تالفة أو أخطاء مشابهة تتعلق بقاعدة البيانات.

الحل

تنفيذ إجراء إستعادة قاعدة البيانات على بوابة شبكة Prime الأساسية والثانوية:

الخطوة 1. تحتفظ مهام النسخ الاحتياطي المجدولة الحالية بعدة أيام من ملفات سجل الأرشيف في نظام الملفات. لتجنب إزالة ملفات سجل الأرشيف، يتم التعليق على هذا السطر في backup_daily.sh و backup_high_daily.sh و backup_weekly.sh و backup_high_weekly.sh:

غير حذف noprompt archivelog حتى الوقت ... إلى #delete noprompt archivelog حتى الوقت ...

ملاحظة: هذه البرامج النصية '.sh' مملوكة لمستخدم Oracle ويمكن العثور عليها في دليل $ORACLE_HOME/ana_SCRIPTS.

الخطوة 2. في قاعدة البيانات الأساسية، قم بتسجيل الدخول على هيئة sysdba وابحث عن عدد ملفات إعادة العمل على النظام بواسطة هذا الأمر وتنفيذه:

SQL> select member from v$logfile;

تنفيذ هذا الأمر لكل دقة سجل. لذلك إذا قام الأمر السابق بإرجاع 6 صفوف، فقم بتنفيذ الأمر التالي 6 مرات.

SQL>alter system switch logfile;

الخطوة 3. في قاعدة البيانات الاحتياطية، قم بتسجيل الدخول ك sysdba وقم بإنشاء ملف من spfile:

SQL>create pfile='$ORACLE_HOME/dbs/ana_sb_init.ora' from spfile;

الخطوة 4. في "وضع الاستعداد لقاعدة البيانات" سجل الدخول ك sysdba والعثور على مسار الدليل إلى ملف البيانات والنسخ الاحتياطي والقطع والسجلات المعاد إجراؤها وملفات سجل الأرشيف. يمكن القيام بذلك باستخدام الأوامر التالية:

للبحث عن ملفات البيانات:

SQL> select name from v$datafile;

للعثور على ملفات النسخ الاحتياطي:

rman target /

RMAN> list backup;

للعثور على ملفات سجل إعادة العمل:

SQL> select member from v$logfile;

للعثور على archiveLog:

SQL> show parameter log_archive_dest_1;

إيقاف تشغيل قاعدة البيانات:

sqlplus / as sysdba

SQL> shutdown immediate;

الخطوة 5. قم بحذف كافة ملفات ملف البيانات والنسخ الاحتياطي وملفات سجل إعادة العمل وملفات الأرشفة من الدلائل المقابلة (تم العثور على المسار في الخطوة 4.).

ثم قم بإعادة تشغيل الاسم باستخدام الملف الذي تم إنشاؤه في الخطوة 3:

sqlplus / as sysdba

SQL>startup nomount pfile='$ORACLE_HOME/dbs/ana_sb_init.ora;

الخطوة 6. في قاعدة البيانات الأساسية قم بإجراء نسخة من كافة قطع النسخ الاحتياطي الأصلية في مجلد النسخ الاحتياطي الخاص بك وتخزينها في موقع آخر.

الخطوة 7. في قاعدة البيانات الأساسية، قم بالاتصال ب RMAN واستخدم النسخ الاحتياطي للحذف لإزالة كافة قطع النسخ الاحتياطي الفعلية من نظام الملفات.

#rman target /

RMAN>delete backup;

الخطوة 8. في قاعدة البيانات الأساسية اتصل ب RMAN واحصل على نسخة إحتياطية كاملة من قاعدة البيانات وملف تحكم الاستعداد والأرشفة بهذا الترتيب. قم بتنفيذ هذه الأوامر:

#rman target /

RMAN>backup database;

RMAN>backup format '$BACKUP_DIR/Control%U' current controlfile for Standby;

RMAN>backup archivelog all;

ملاحظة: $BACKUP_DIR هو مجلد النسخ الاحتياطي الحالي الذي تم العثور عليه مع النسخ الاحتياطي للقائمة مسبقا وسيتم إستدعاء الملف Control٪U في المستقبل. إنه ليس متغيرا.

الخطوة 9. في قاعدة البيانات الأساسية اتصل ب RMAN واستخدم النسخ الاحتياطي للقائمة للعثور على CKP scn لحقل التحكم في الاستعداد الذي تم إنشاؤه في الخطوة 8. ابحث عن الملف بتنسيق الاسم $BACKUP_DIR/Control٪U.

نوع مفتاح BS LV حجم الجهاز انقضى وقت الإكمال

— — — — — — —

2358 محرك أقراص سعة 1.09 ميجا بالكامل 00:00:04 21-JAN-14

مفتاح BP: حالة 2358: متاح مضغوط: علامة نعم: العلامة 20140121T162311

اسم القطعة: /export/home/oracle/backup/control9nouks3f_1_1

ملف التحكم الاحتياطي المضمن: CKP SCN: 164541747 CKP الوقت: 21-JAN-14

ملاحظة: في هذا المثال، يكون النسخ الاحتياطي لملف التحكم في وضع الاستعداد هو /export/home/oracle/backup/control9nouks3f_1_1. في السطر أسفل اسم الملف هذا، ترى "CKP SCN: 164541747". سنستخدم الرقم "164541747" في كتلة تشغيل التكرار في الخطوة 13.

الخطوة 10. في قاعدة البيانات الأساسية قم بتفتيت كافة قطع النسخ الاحتياطي ما يتم إنشاؤه في الخطوة 8. كمستخدم جذري SCP ملف tar إلى مجلد النسخة الاحتياطية في قاعدة بيانات الاستعداد.

الخطوة 11. في "وضع الاستعداد لتسجيل الدخول إلى قاعدة البيانات" كمستخدم جذري، أستخدم الخيار لتغيير ملكية ملف tar إلى oracle:dba. ثم قم بتبديل المستخدم مرة أخرى إلى Oracle(su - oracle) وإعادة تشغيل ملف tar.

الخطوة 12. على البوابة الأساسية قم بتسجيل الدخول كمستخدم شبكة رئيسي والشريط المضغوط إلى ~/الدليل الرئيسي ثم قم بتشغيل هذا الأمر للحصول على كلمة مرور sys:

./runRegTool.sh –gs 127.0.0.1 get 127.0.0.1 persistency/general/EmbeddedDBSystemPass

ملاحظة: يتم إستخدام كلمة مرور النظام التي تم إرجاعها في الخطوة التالية للاتصال بقاعدة بيانات الاستعداد من قاعدة البيانات الأساسية.

الخطوة 13. في قاعدة البيانات الأساسية اتصل بقاعدة البيانات الهدف (أساسي) ثم بقاعدة البيانات المساعدة (إستعداد). ثم قم بتشغيل كتلة تشغيل مكررة لإنشاء قاعدة بيانات الاستعداد:

#rman target /

RMAN>connect auxiliary sys/$sys_pwd@ANADB_SB

RMAN>run {

set until scn $SCN_NUMBER;

duplicate target database

for Standby

dorecover

spfile

set "db_unique_name"="anadb_sb"

set LOG_ARCHIVE_DEST_2="Service=anadb ASYNC LGWR VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

database_unique_name=anadb"

set FAL_CLIENT="anadb_sb"

set FAL_SERVER="anadb"

set log_file_name_convert="$REDO","$REDO"

nofilenamecheck;

}

ملاحظة: $sys_pwd هي كلمة مرور sys التي حصلت عليها في الخطوة 12. يتم الحصول على $SCN_NUMBER في كتلة التشغيل في الخطوة 9. على سبيل المثال. $redo هو موقع سجل إعادة الاستخدام متبوعا ب /.

الخطوة 14. بمجرد اكتمال كتلة التشغيل في الخطوة 13. ثم عند تسجيل الدخول إلى قاعدة البيانات في وضع الاستعداد على هيئة sysdba وتشغيل هذه الأوامر لإظهار قاعدة البيانات في وضع القراءة فقط متبوعة بالقراءة فقط مع وضع التطبيق:

sqlplus / as sysdba

SQL>shutdown immediate;

SQL>startup nomount;

SQL>alter database mount Standby database;

SQL>recover managed Standby database using current logfile disconnect from session;

SQL>recover managed Standby database cancel;

SQL>alter database open read only;

SQL>recover managed Standby database using current logfile disconnect from session;

الخطوة 15. بعد التحقق من صحة قاعدة البيانات الأساسية، قم بإلغاء التعليق على هذا السطر في backup_daily.sh و backup_high_daily.sh و backup_weekly.sh و backup_high_weekly.sh:

تغيير #delete noprompt archivelog حتى الوقت ... لحذف noprompt archivelog حتى الوقت ...

التحقق من الصحة

التحقق من قاعدة البيانات على بوابة الشبكة الأساسية والثانوية ل Prime:

1. تأكد من أن عدد وأسماء ملفات سجل إعادة العمل هي نفسها على قاعدة البيانات الأساسية والاستعداد.

2. تأكد من تطابق عدد وحجم ملفات البيانات الموجودة على قاعدة البيانات الأساسية أو الاحتياطية.

3. أستخدم هذا الأمر على كل من قاعدة البيانات الأساسية وقاعدة البيانات الاحتياطية لإظهار أن SCN الحالية على قاعدة بيانات الاستعداد يمكن أن تلحق ب SCN على قاعدة البيانات الأساسية:

sqlplus / as sysdba

SQL>select current_scn from v$database;

4. تحقق من أن Open_mode لقاعدة البيانات الأساسية للقراءة والكتابة والقراءة فقط مع تطبيق على قاعدة بيانات الاستعداد.

sqlplus / as sysdba

SQL>select open_mode from v$database;

5. تحقق من أن switchover_status الخاص بالأساسي هو إلى وضع الاستعداد وغير مسموح به في قاعدة بيانات الاستعداد:

sqlplus / as sysdba

SQL>select switchover_status from v$database;

6. تأكد من أنه يتم نقل سجلات الأرشيف

في PrimaryDatabase:

SQL> alter system switch logfile;

في قاعدة البيانات الثانوية:

تحقق للتأكد من إنشاء ملف جديد في ~/arch.

7. تأكد من عدم ظهور فشل النسخ المتماثل لقاعدة البيانات في واجهة المستخدم الرسومية (GUI) ل Event Vision من الآن فصاعدا (في الدقائق العشرين التالية).