التحقق من استعداد DR

راجع أفضل الممارسات للتأهب لاستعادة القدرة على العمل بعد الكوارث وتحقق من إعداد استعادة القدرة على العمل بعد الكوارث للأحداث المخططة وغير المخططة.

حول استعداد DR

استعراض أفضل الممارسات لاستعادة القدرة على العمل بعد الكوارث.

استخدم Active Data Guard لتفريغ حمل العمل للقراءة فقط إلى قاعدة البيانات البديلة لتوفير تدقيق مستمر على مستوى التطبيق بأن البديل جاهز للإنتاج. يوفر هذا مستوى ضمان بالإضافة إلى التدقيق المستمر على مستوى كتلة Oracle الذي تقوم به عمليات تطبيق Oracle Data Guard.

استخدم قاعدة بيانات بديلة للقطة لتكوين نسخة متماثلة من قاعدة بيانات الإنتاج لأغراض التطوير والاختبار. قم بوضع البديل دوريًا في وضع القراءة/الكتابة (باستخدام بديل لقطة حارس البيانات) للتحقق من استعداده لدعم أحمال عمل إنتاج القراءة والكتابة. يمكن أيضًا استخدام بديل للقطة لمستوى نهائي من الاختبار الوظيفي واختبار الأداء للتصحيحات والتحديثات لأن حجم نظام DR مماثل لنظام الإنتاج. لا يزال بديل اللقطة يتلقى redo من قاعدة البيانات الأساسية حيث تتم أرشفته للاستخدام لاحقًا، مما يوفر حماية البيانات في جميع الأوقات. ومع ذلك، سيتم تمديد وقت الاستعادة (RTO) بمقدار الوقت اللازم لتحويل اللقطة البديلة مرة أخرى إلى قاعدة البيانات البديلة إذا كان الانتقال عقب الفشل مطلوبًا أثناء إجراء الاختبار. يلزم توفير تخزين إضافي لمنطقة الاستعادة السريعة عندما يكون البديل في وضع اللقطة (للاحتفاظ بالعودة المحفوظة المستلمة من قاعدة بيانات الإنتاج الأساسية للاستخدام لاحقًا وسجلات الإعادة والانهيار الحالية التي تم إنشاؤها بواسطة بديل اللقطة).

فيما يلي بعض مزايا استخدام قاعدة بيانات اللقطات البديلة:

  • وهي توفر نسخة متماثلة تماما من قاعدة بيانات الإنتاج من أجل تطويرها واختبارها مع الحفاظ على حماية البيانات في جميع الأوقات. يمكنك استخدام خيار Oracle Real Application Testing لالتقاط حمل عمل قاعدة البيانات الأساسي ثم إعادة تشغيله لأغراض الاختبار في بديل اللقطة.
  • يتم تجديدها بسهولة لاحتواء بيانات الإنتاج الحالية عن طريق التحويل إلى بديل مادي وإعادة التزامن.

تحويل قاعدة البيانات البديلة إلى قاعدة بيانات بديلة للقطة

عندما تريد نسخة متماثلة من قاعدة بيانات إنتاج، يمكنك استخدام Oracle Data Guard Broker لتحويل قاعدة البيانات البديلة الفعلية إلى قاعدة بيانات بديلة للقطة والتحقق من الانتقال عقب الفشل.

بديل اللقطة هو قاعدة بيانات بديلة قابلة للتحديث بالكامل يتم إنشاؤها من قاعدة بيانات بديلة فعلية. في قواعد البيانات البديلة للقطة، يتم استلام بيانات redo ولكن لا يتم تطبيقها حتى يتم تحويل قاعدة البيانات البديلة للقطة مرة أخرى إلى قاعدة بيانات بديلة فعلية.

تتيح لك واجهة سطر الأوامر Oracle Data Guard (DGMGRL) إدارة تكوين وسيط Oracle Data Guard وأعضائه المتعددين مباشرةً من واجهة سطر الأوامر.

  1. قم بتسجيل الدخول إلى جلسة عمل DGMGRL على طبعة قاعدة البيانات البديلة باسم المستخدم وكلمة السر sys.
    DGMRGL> connect
    Username: sys
    Password:
    ستبدو المخرجات مشابهة لما يلي:
    Connected to "ORCLCDB_iad1s3"
    Connected as SYSDBA.
  2. تحويل قاعدة البيانات البديلة الفعلية إلى قاعدة بيانات اللقطات البديلة.
    DGMGRL> convert database standby_database_unique_name (standbyDB) to snapshot standby;
    عند إتمام التحويل، سيكون للمخرجات سطر مشابه لما يلي:
    Converting database "standby_database_unique_name" to a Snapshot Standby database, please wait...
    Database "standby_database_unique_name" converted successfully
  3. عرض التكوين للتحقق من التحويل.
    DGMGRL> show configuration;
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremdr
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    Fast-Start Failover:  Disabled
    Configuration Status:
    SUCCESS   (status updated 26 seconds ago)
  4. تحويل بديل اللقطة مرة أخرى إلى قاعدة بيانات بديلة فعلية.
    DGMGRL> convert database standby_database_unique_name to physical standby;
    ستبدو المخرجات مشابهة لما يلي:
    Converting database "orclcdb" to a Physical Standby database, please wait...
    Operation requires a connection to database "orclcdb_iad1s3"
    Connecting ...
    Connected to "ORCLCDB_IAD1S3"
    Connected as SYSDBA.
    Operation requires shut down of instance "ORCLCDB" on database "orclcdb"
    Shutting down instance "ORCLCDB"...
    Connected to "ORCLCDB"
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Connected to "ORCLCDB"
    Continuing to convert database "orclcdb" ...
    Database "orclcdb" converted successfully
  5. عرض التكوين للتحقق من التحويل.
    DGMGRL> show configuration;
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
          Warning: ORA-16854: apply lag could not be determined
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    WARNING   (status updated 11 seconds ago)

تعيين معلمات Oracle Data Guard

قبل تنفيذ التبديل، قم بتعيين معلمات Oracle Data Guard على طبعات قاعدة البيانات الأساسية والبديلة.

  1. في قاعدة البيانات الأساسية المحلية، تحقق من رقم تغيير النظام (SCN).
    select standby_became_primary_scn from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    STANDBY_BECAME_PRIMARY_SCN
    --------------------------
                                  0
  2. تحقق من عدم تمكين الارتداد في قاعدة البيانات الأساسية.
    select flashback_on from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    FLASHBACK_ON
    ------------------
    NO
  3. في الطبعة المحلية، قم بتكوين دليل استعادة بنفس اسم قاعدة البيانات الأساسي الخاص بمستخدم Oracle.
    في هذا المثال، ORCLCDB هو اسم قاعدة البيانات المحلية.
    [oracle@bastion dbhome_1]$ cd /opt/oracle/
    [oracle@bastion oracle]$ mkdir recovery
    [oracle@bastion oracle]$ cd recovery/
    [oracle@bastion recovery]$ mkdir ORCLCDB
    [oracle@bastion oracle]$ cd ORCLCDB /
    تأكيد المسار الكامل.
    $ pwd
    /opt/oracle/recovery/ORCLCDB
  4. قم بتعيين حجم معلمة DB_RECOVERY_FILE_DEST_SIZE لاستيفاء حجم قاعدة البيانات.
    يستخدم المثال التالي 20 G كمثال لحجم البيانات. تعيين حجم البيانات استنادًا إلى قاعدة البيانات.
    SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20G;
    System altered
  5. حدد وجهة ملف استعادة قاعدة البيانات للدليل الذي قمت بتكوينه مسبقًا.
    SQL> alter system set db_recovery_file_dest = '/opt/oracle/recovery/on_premises_SID';
    System altered
  6. تمكين الارتداد في قاعدة البيانات الأساسية.
    SQL> alter database flashback on;
    Database altered
  7. تأكد من تمكين ارتداد قاعدة البيانات (تشغيل).
    SQL> select flashback_on from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    FLASHBACK_ON
    ------------------
    YES
  8. تحديد ما إذا كان الارتداد ممكنًا في قاعدة بيانات OCI البديلة في السحابة.
    SQL> select flashback_on from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    FLASHBACK_ON
    ------------------
    NO
  9. استعلم عن حالة الوضع المفتوح لقاعدة البيانات البديلة في السحابة.
    SQL> select open_mode from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    OPEN_MODE
    -------------------- 
    MOUNTED
  10. تعيين الارتداد في طبعة قاعدة البيانات في السحابة.
    SQL> alter database recover managed standby database cancel;
    Database altered
  11. استعلم عن حالة الوضع المفتوح لقاعدة البيانات البديلة في السحابة.
    SQL> select open_mode from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    OPEN_MODE
    -------------------- 
    MOUNTED
  12. تمكين الارتداد لقاعدة البيانات البديلة.
    SQL> alter database flashback on;
    Database altered
  13. قطع اتصال البديل بجلسة العمل.
    SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
    Database altered
  14. تأكد من تمكين ارتداد قاعدة البيانات (تشغيل).
    SQL> select flashback_on from v$database;
    FLASHBACK_ON
    ------------------
    YES
  15. عرض معلمات الاحتجاز.
    SQL> show parameter_retention;
    ستبدو المخرجات مشابهة لما يلي:
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_flashback_retention_target	     integer	 1440
    undo_retention			      integer	 900

تبديل قاعدة البيانات الأساسية من المحلية إلى OCI

عندما يكون لديك نشاط مخطط، مثل الصيانة، يمكنك جعل قاعدة البيانات في Oracle Cloud Infrastructure (OCI) قاعدة البيانات الأساسية مع فقدان بيانات صفرية. التبديل هو إجراء مخطط يتم بدؤه في قاعدة البيانات المحلية وإتمامه في طبعة قاعدة البيانات في السحابة.

  1. قم بتسجيل الدخول إلى جلسة عمل DGMGRL في قاعدة البيانات المحلية باسم مستخدم وكلمة سر sys.
    DGMRGL> connect
  2. في قاعدة البيانات المحلية، تحقق من أن قاعدة البيانات البديلة جاهزة للتبديل والانتقال عقب الفشل.
    في هذا المثال، قاعدة البيانات الأساسية هي orclcdb وقاعدة البيانات البديلة هي orclcdb_iadls3.
    DGMGRL> validate database orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    ستبدو المخرجات مشابهة لما يلي:
    Database Role:     Physical standby database
      Primary Database:  orclcdb
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb       :  NO             
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb...
        The static connect identifier allows for a connection to database "orclcdb".
    
      Log Files Cleared:
        orclcdb Standby Redo Log Files:         Cleared
        orclcdb_iad1s3 Online Redo Log Files:   Not Cleared
        orclcdb_iad1s3 Standby Redo Log Files:  Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on orclcdb
  3. في قاعدة البيانات المحلية (الأساسية)، قم بتنفيذ الأمر للتبديل إلى قاعدة البيانات البديلة.
    DGMGRL> switchover to orclcdb_iad1s3 (StandbyDatabaseOCIInstance)
    ستبدو المخرجات مشابهة لما يلي:
    Performing switchover NOW, please wait...
    New primary database "orclcdb_iad1s3" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB"
    Switchover succeeded, new primary is "orclcdb_iad1s3"
  4. في قاعدة البيانات المحلية، قم بعرض حالة التكوين.
    DGMGRL> show configuration
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
      orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 70 seconds ago)
  5. في قاعدة البيانات في السحابة، حدد حالة الوضع المفتوح.
    SQL> select open_mode from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    OPEN_MODE
    -------------------- 
    READ WRITE
  6. في قاعدة البيانات المحلية، حدد حالة الوضع المفتوح.
    SQL> select open_mode from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    OPEN_MODE
    -------------------- 
    READ ONLY WITH APPLY
قاعدة البيانات البديلة في السحابة هي الآن قاعدة البيانات الأساسية.

تبديل قاعدة البيانات الأساسية مرة أخرى من OCI إلى المحلية

بعد جعل طبعة قاعدة البيانات في Oracle Cloud Infrastructure (OCI) قاعدة البيانات الأساسية، استخدم واجهة سطر الأوامر Oracle Data Guard (DGMGRL) في طبعة قاعدة بيانات OCI للتبديل للخلف وجعل قاعدة البيانات المحلية الخاصة بك قاعدة البيانات الأساسية مرة أخرى.

  1. تدقيق أدوار قاعدة البيانات لقاعدة البيانات الأساسية في السحابة.
    في هذا المثال، ORCLCDB هو اسم قاعدة البيانات المحلية وorclcdb_iad1s3 هو اسم طبعة قاعدة البيانات في السحابة.
    DGMGRL> validate database orclcdb;
    قد تبدو المخرجات مشابهة لما يلي:
    Database Role: Physical standby database
      Primary Database: orclcdb_iad1s3
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
    Unable to connect to database using (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1539)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.example.com)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))
    ORA-12541: TNS:no listener
    
    Failed.
        Warning: Ensure primary database's StaticConnectIdentifier property
        is configured properly so that the primary database can be restarted
        by DGMGRL after switchover
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs

    إذا حصلت على رسالة تحذير معرف الاتصال الثابت، راجع معلمات التكوين أو اسم خدمة SID أو عنوان IP للمضيف أو عنوان المنفذ.

  2. قم بالدخول إلى جلسة عمل DGMGRL باسم مستخدم وكلمة سر sys.
    DGMRGL> connect
  3. راجع معرف الاتصال الثابت لقاعدة البيانات المحلية.
    DGMGRL> show database orclcdb StaticConnectIdentifier
    راجع المخرجات للتحقق من دقة معلمات StaticConnectIdentifier. فيما يلي مثال على ذلك:
    DGMGRL> show database orclcdb StaticConnectIdentifier
      StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)(STATIC_SERVICE=TRUE)))'
  4. راجع معرف الاتصال الثابت لطبعة قاعدة البيانات في السحابة.
    DGMGRL> show database orclcdb_iad1s3 StaticConnectIdentifier
      StaticConnectIdentifier = 
    '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.10.30.3)(PORT=1539)
    ))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB_iad1s3_DGMGRL.sub08120021431.onpremocidrvcn.examplevcn.com) 
    INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))'
    راجع المخرجات للتحقق من صحة معلمات StaticConnectIdentifier، مثل رقم المنفذ واسم الخدمة.
  5. قم بتصحيح أية معلمات StaticConnectIdentifier، مثل رقم المنفذ واسم الخدمة.
    عند تحرير الخصائص، يجب استخدام واجهة سطر الأوامر Oracle Data Guard (DGMGRL) بدون فواصل أسطر. يصحح هذا المثال رقم المنفذ واسم الخدمة لطبعة قاعدة البيانات في السحابة (orclcdb_iad1s3).
    DGMGRL> edit database 'orclcdb_iad1s3' set property StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.0.2.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=ORCLCDB)(INSTANCE_NAME=ORCLCDB)(SERVER=DEDICATED)))';
    Property "staticconnectidentifier" updated
  6. تدقيق طبعة قاعدة البيانات في السحابة.
    DGMGRL> validate database orclcdb_iad1s3;
    ستبدو المخرجات مشابهة لما يلي:
    Database Role:    Primary database
      Ready for Switchover:  Yes
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
  7. تحقق من قاعدة البيانات المحلية.
    DGMGRL> validate database orclcdb;
    ستبدو المخرجات مشابهة لما يلي:
    Database Role:     Physical standby database
      Primary Database:  orclcdb_iad1s3
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        orclcdb_iad1s3:  NO             
        orclcdb       :  NO             
        Validating static connect identifier for the primary database orclcdb_iad1s3...
        The static connect identifier allows for a connection to database "orclcdb_iad1s3".
    
      Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        2 seconds (computed 7 seconds ago)
        Apply Delay:      0 minutes
    
      Log Files Cleared:
        orclcdb_iad1s3 Standby Redo Log Files:  Cleared
        orclcdb Online Redo Log Files:          Not Cleared
        orclcdb Standby Redo Log Files:         Available
    
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb_iad1s3)        (orclcdb)                            
        1         3                       2                       Insufficient SRLs
    
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (orclcdb)               (orclcdb_iad1s3)                     
        1         3                       2                       Insufficient SRLs
  8. عرض التكوين ومراجعته.
    DGMGRL> show configuration;
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb_iad1s3 - Primary database
        orclcdb        - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 27 seconds ago)
  9. التبديل من طبعة قاعدة البيانات في OCI إلى قاعدة البيانات المحلية.
    DGMGRL> switchover to orclcdb;
    ستبدو المخرجات مشابهة لما يلي:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "orclcdb"
    Connecting ...
    Connected to "ORCLCDB"
    Connected as SYSDBA.
    New primary database "orclcdb" is opening...
    Operation requires start up of instance "ORCLCDB" on database "orclcdb_iad1s3"
    Starting instance "ORCLCDB"...
    Connected to an idle instance.
    ORACLE instance started.
    Connected to "ORCLCDB_iad1s3"
    Database mounted.
    Database opened.
    Connected to "ORCLCDB_iad1s3"
    Switchover succeeded, new primary is "orclcdb"
    بعد توصيل قاعدة البيانات، قد تتلقى التحذير التالي:
    ORA-16000: database or pluggable database open for read-only access  
    
    Please complete the following steps to finish switchover:
           start up instance "ORCLCDB" of database "orclcdb" 

    يمكنك تجاهل التحذير والانتقال إلى الخطوة التالية.

  10. على البديل، الذي يعد الآن هو الأساسي، قم بتوصيل التكوين ومراجعته.
    DGMGRL> show configuration;
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremdr
    
      Protection Mode: MaxPerformance
      Members:
      orclcdb        - Primary database
        orclcdb_iad1s3 - Physical standby database 
    
    Fast-Start Failover:  Disabled
    
    Configuration Status:
    SUCCESS   (status updated 86 seconds ago)
  11. في طبعة قاعدة البيانات الأساسية ORCLCDB، تحقق من أن الوضع read write.
    SQL> select database_role, open_mode from v$database;
    DATABASE_ROLE	 OPEN_MODE
    ---------------- --------------------
    PRIMARY 	   READ WRITE
  12. (اختياري) يمكنك استخدام الأمر verbose لعرض نسخة مكدس كاملة، بما في ذلك الدور والحالة والطبعة والخصائص وموقع سجل التنبيه وسجل وسيط حارس البيانات.
    DGMGRL> show database verbose orclcdb

يمكنك تبديل قاعدة البيانات الأساسية بين قاعدة البيانات المحلية وطبعة قاعدة بيانات OCI.