المقدمة
يصف هذا المستند إجراء خطوة بخطوة لحل مشكلة النسخ المتماثل لقاعدة البيانات أو المزامنة في شبكة Prime من خلال إعادة إنشاء قاعدة بيانات الاستعداد من قاعدة البيانات الأساسية.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- أستخدم هذا الإجراء لإعادة إنشاء قاعدة البيانات الثانوية فقط في حالة وجود SWITCHOVER_STATUS لقاعدة البيانات الأساسية في GAP غير القابلة للحل.
- تأكد من أن قاعدة البيانات الأساسية في READ WRITEand Secondary Database موجودة في READ ONLY أو READ فقط مع APPLYmode.
- تأكد من تحديد بوابة/قاعدة بيانات Prime المركزي الأساسية والثانوية الصحيحة.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:
- Prime Central الإصدار 1.2 وما بعده
- إصدار 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;
3. أستخدم هذا الأمر لمعرفة Oracle_SID الخاص بقاعدة البيانات الأساسية والثانوية:
على البوابة الأساسية من مستخدم Oracle:
echo $ORACLE_SID -> output should be “primedb”
على البوابة الثانوية من مستخدم Oracle:
echo $ORACLE_SID -> output should be “primstdb”
المشكلة
يفشل إجراء تجاوز الفشل/الفشل ل Prime Central GEO HA عندما تصبح مصارف البيانات النشطة والاحتياطية غير متزامنة مع بعضها البعض. وهذا يؤدي إلى أن تصبح قواعد البيانات الأساسية والاحتياطية إما نشطة أو جاهزة في نفس الوقت.
استكشاف الأخطاء وإصلاحها
قبل أن تتبع الحل، يمكنك تنفيذ الخطوات الأساسية لاستكشاف الأخطاء وإصلاحها:
1. تحقق من المشاكل المتعلقة باتصال الشبكة و/أو زمن الوصول بين بوابة الشبكة الأساسية والثانوية.
2. تحقق من سجل قاعدة البيانات هذا في "أساسي" للعثور على أي أخطاء 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. السبب الرئيسي لنسخ قاعدة البيانات هو في الغالب مشكلة اتصال الشبكة بين قاعدة البيانات المركزية الأساسية والثانوية أو الأخطاء المتعلقة بقاعدة البيانات الفاسدة أو قاعدة البيانات المماثلة.
الحل
الخطوة 1. تحقق من Oracle_SID على كل من البوابة/قواعد البيانات الأساسية والثانوية.
في البوابة الأساسية/قاعدة البيانات Oracle_SID = primedb
في البوابة الثانوية/قاعدة البيانات Oracle_SID = primdtdb
إذا لم يكن Oracle_SID الموجود على أي من البوابة الأساسية أو الثانوية كما هو مذكور مسبقا، فاستخدم هذا الأمر لتكوين SID الصحيح:
setenv ORACLE_SID = <value>
ملاحظة: هنا <value > = primedb أو primstdb تستند إلى الأساسي أو الثانوي.
الخطوة 2. عند تسجيل الدخول إلى قاعدة البيانات النشطة والاحتياطية ك sysdba والعثور على مسار الدليل إلى ملف البيانات وإعادة السجلات وأرشفة ملفات السجل.
استعملت من هذا أمر:
للبحث عن ملفات البيانات:
SQL> select name from v$datafile;
للعثور على ملفات سجل إعادة العمل:
SQL> select member from v$logfile;
للعثور على سجل الأرشيف:
SQL> show parameter log_archive_dest_1;
الخطوة 3. لإعادة إنشاء قاعدة البيانات، قم بتشغيل هذا البرنامج النصي في بناء جملة صحيح بعد تحديد السيناريو الصحيح الموضح في الخطوة 4.
sh PCoracleADG.ksh [PRIMARY] [STANDBY] [DB_TO_BE_DROPPED] [SYSTEM_PASSWD] [ORACLE_BASE]
[ORACLE_USER] [ARCHIVED_LOG_LOCATION] [ORACLE_DATA_FILES_LOCATION] [REDO_LOG_LOCATION]
ملاحظة: يتم نسخ البرنامج النصي تحت مجلد Oracle_BASE/Standby ويجب تشغيله كمستخدم Oracle.
الخطوة 4. حدد أي سيناريو بالحالة الحالية لإعدادك وتابع وفقا لذلك:
ملاحظة: كمثال، يفترض أن HA1 عبارة/قاعدة بيانات أساسية و HA2 عبارة/قاعدة بيانات ثانوية
السيناريو 1: HA1 نشطة وتحتاج إلى إعادة إنشاء قاعدة بيانات إحتياطية على HA2. أستخدم هذه المعاملات وقم بتشغيل النص البرمجي المذكور في الخطوة 3. على HA2.
PRIMARY = primedb
STANDBY = primstdb
DB_TO_BE_DROPPED = primstdb
SYSTEM_PASSWD = use Step 5
ORACLE_BASE = /orahome/oracle
ORACLE_USER = oracle
ARCHIVED_LOG_LOCATION = output of ‘show parameter log_archive_dest_1;&rsquo
ORACLE_DATA_FILES_LOCATION = output of ‘select name from v$datafile;&rsquo
REDO_LOG_LOCATION = output of ‘select member from v$logfile;’
السيناريو 2: HA2 نشطة وتحتاج إلى إعادة إنشاء قاعدة بيانات إحتياطية بشأن HA1. أستخدم هذه المعلمات وقم بتشغيل البرنامج النصي المذكور في الخطوة 3. على HA1.
PRIMARY = primedb
وضع الاستعداد = primstdb db_to_BE_drop = primedb system_passWd = إستخدام الخطوة 5 Oracle_base = /orahome/oracle_user = oracle archived_log_location = إخراج 'show parameter log_archive_dest_1؛&rsquo oracle_data_files_location = إخراج 'تحديد الاسم من v$datafile؛&rsquo redo_log_location = إخراج 'تحديد عضو من v$logFile؛'
الخطوة 5. أستخدم هذا الإجراء لمعرفة <system_passWd>:
SU - Prime على HA1 أو HA2
grep embedded_system_pass= install/conf/.db.conf
على سبيل المثال، إذا كان يحتوي على Embedded_SYSTEM_PASS=90f8006cd6bc0dde، بعد ذلك:
- java -cp install/utils/encryptionUtil.jar فك تشفير EncodeDecode 90f8006cd6bc0dde.
- ترجع Prime Central سلسلة الإخراج التي يتم إستخدامها ك SYSTEM_PASSWD في الخطوة 4.
التحقق من الصحة
التحقق من قاعدة البيانات على بوابة الشبكة الأساسية والثانوية ل Prime:
1. تحقق من أن عدد وأسماء ملفات سجل إعادة العمل هي نفسها الموجودة على قاعدة البيانات "نشط" و"إستعداد".
2. تحقق من تطابق عدد وحجم ملفات البيانات الموجودة على قاعدة البيانات النشطة والاحتياطية.
3. أستخدم هذا الأمر على كل من قاعدة البيانات النشطة والاحتياطية لإظهار أن SCN الحالي على قاعدة بيانات الاستعداد يمكن أن يلحق ب SCN على قاعدة البيانات الأساسية:
sqlplus / as sysdba
SQL>select current_scn from v$database;
4. تحقق من أن قاعدة البيانات_roleof Active هي قاعدة البيانات الأساسية وقاعدة البيانات الاحتياطية هي LOGICAL_STANDBY.
sqlplus / as sysdba
SQL>select database_role from v$database;
5. تحقق من أن Open_mode الخاص بقاعدة البيانات النشطة هو READ WRITE AND READ READ WRITE AND READ ONLY مع APPLY على قاعدة بيانات الاستعداد.
sqlplus / as sysdba
SQL>select open_mode from v$database;
6. تحقق من أن switchover_status الخاص ب Active هو إلى وضع الاستعداد وغير مسموح به في قاعدة بيانات الاستعداد:
sqlplus / as sysdba
SQL>select switchover_status from v$database;
7. تأكد من نقل سجلات الأرشيف:
في Activedatabase:
SQL> alter system switch logfile;
في قاعدة البيانات الاحتياطية:
تحقق للتأكد من إنشاء ملف جديد في ~/arch