التبديل المخطط

تعمل قاعدة بيانات Oracle في أحد الدورين: أساسي أو بديل. يساعدك حارس البيانات على تغيير دور قاعدة البيانات باستخدام تبديل أو انتقال فاشل:

  • التبديل هو عكس الدور بين قاعدة البيانات الأساسية وإحدى قواعد البيانات البديلة الخاصة بها. يضمن التبديل عدم فقدان البيانات وعادة ما يتم للصيانة المخططة للنظام الأساسي. أثناء التبديل، تتحول قاعدة البيانات الأساسية إلى دور بديل، وتتحول قاعدة البيانات البديلة إلى الدور الأساسي.
  • يتم إجراء الانتقال عقب الفشل عندما تفشل قاعدة البيانات الأساسية (كل طبعات قاعدة بيانات Oracle RAC الأساسية) أو تصبح غير قابلة للوصول ويتم تحويل إحدى قواعد البيانات البديلة لتولي الدور الأساسي. قد يؤدي الفشل أو لا يؤدي إلى فقد البيانات تبعًا لوضع الحماية الساري وقت انتقال الفشل.

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

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

  1. قم بالدخول إلى جلسة DGMGRL في قاعدة البيانات المحلية باستخدام اسم المستخدم وكلمة السر sys.
    DGMRGL> connect
  2. في قاعدة البيانات المحلية، تحقق من أن قاعدة البيانات البديلة جاهزة للتبديل والفشل.
    في هذا المثال، قاعدة البيانات الأساسية هي db1 وقاعدة البيانات البديلة (StandbyDatabaseOCIInstance) هي DB1_phx3g7.
    DGMGRL> validate database DB1_phx3g7
    ستبدو المخرجات مشابهة لما يلي:
    Database Role:     Physical standby database
      Primary Database:  db1
    
      Ready for Switchover:  Yes
      Ready for Failover:    Yes (Primary Running)
    
      Managed by Clusterware:
        db1       :  YES             
        db1_phx3g7:  YES   
              
    Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        17 minutes 6 seconds (computed 42 seconds ago)
        Apply Delay:      0 minutes
      Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1)                   (db1_phx3g7)                         
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1_phx3g7
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1_phx3g7
      Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1_phx3g7)            (db1)                                
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1
  3. تدقيق قاعدة البيانات الأساسية.
    DGMGRL> validate database 'DB1';
    ستبدو المخرجات مشابهة لما يلي:
    Database Role:    Primary database
      Ready for Switchover:  Yes
      Managed by Clusterware:
        db1:  YES    
  4. تدقيق قاعدة البيانات البديلة.
    DGMGRL> validate database 'DB1_phx3g7';
    ستبدو المخرجات مشابهة لما يلي:
    
    Database Role:     Physical standby database  
    Primary Database:  db1  
    Ready for Switchover:  Yes  
    Ready for Failover:    Yes (Primary Running)  
    Managed by Clusterware:
        db1       :  YES                
        db1_phx3g7:  YES              
    Standby Apply-Related Information:
        Apply State:      Running
        Apply Lag:        32 minutes 12 seconds (computed 40 seconds ago)
        Apply Delay:      0 minutes  
    Current Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status
                  (db1)                   (db1_phx3g7)
         1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1_phx3g7
        2         2                       0                       Insufficient SRLs     
        Warning: standby redo logs not configured for thread 2 on db1_phx3g7
    
    Future Log File Groups Configuration:
        Thread #  Online Redo Log Groups  Standby Redo Log Groups Status       
                  (db1_phx3g7)            (db1)                                
        1         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 1 on db1
        2         2                       0                       Insufficient SRLs
        Warning: standby redo logs not configured for thread 2 on db1
  5. في قاعدة البيانات المحلية (الأساسية)، قم بتنفيذ الأمر للانتقال إلى قاعدة البيانات البديلة.
    DGMGRL> switchover to db1_phx3g7;
    ستبدو المخرجات مشابهة لما يلي:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "db1_phx3g7"
    Connecting ...
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    New primary database "db1_phx3g7" is opening...
    Oracle Clusterware is restarting database "db1" ...
    Connected to "db1"
    Connected to "db1"
    Switchover succeeded, new primary is "db1_phx3g7"
  6. في قاعدة البيانات المحلية، قم بعرض حالة التكوين.
    DGMGRL> show configuration
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1_phx3g7 - Primary database
          db1        - Physical standby database 
    
    Warning: ORA-16809: multiple warnings detected for the memberFast-Start
            Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 35 seconds ago)
  7. في Oracle Exadata Database Machine المحلي الأساسي، حدد وضع الفتح.
    SQL> select open_mode from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    OPEN_MODE
    -------------------- 
    MOUNTED
  8. في قاعدة بيانات Oracle Database Exadata Cloud Service في السحابة، تأكد من أن قاعدة البيانات هي READ WRITE.
    SQL> select open_mode from v$database;
    ستبدو المخرجات مشابهة لما يلي:
    OPEN_MODE
    -------------------- 
    READ WRITE
قاعدة البيانات على Oracle Database Exadata Cloud Service في السحابة هي قاعدة البيانات الأساسية.

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

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

  1. التبديل من طبعة قاعدة البيانات في OCI إلى قاعدة البيانات المحلية.
    DGMGRL> switchover to db1;
    ستبدو المخرجات مشابهة لما يلي:
    Performing switchover NOW, please wait...
    Operation requires a connection to database "db1"
    New primary database "db1" is opening...
    Oracle Clusterware is restarting database "db1_phx3g7" ...
    Connected to "DB1_phx3g7"
    Connected to "DB1_phx3g7"
    Switchover succeeded, new primary is "db1"
  2. في Oracle Exadata Database Machine المحلي، اتصل بالتكوين وراجعه.
    DGMGRL> show configuration;
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
      Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Error: ORA-12650: No common encryption or data integrity algorithm
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 899 seconds ago)
  3. في قاعدة بيانات Oracle Database Exadata Cloud Service في السحابة، قم بتكوين جدول استعادة البيانات بعد الكوارث للاختبار.
    SQL> create table testdr (a number , b number);
    Table created.
    SQL> desc testdr;
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  4. الخروج من SQL.
    SQL> exit
  5. في Oracle Exadata Database Machine المحلي الأساسي، قم بتسجيل الدخول كـ sysdba وعرض جدول الاختبار.
    $ sqlplus / as sysdba
    SQL> desc testdr;
    
     Name                                        Null?    Type
     ----------------------------------------- -------- ----------------------------
     A                                          NUMBER
     B                                          NUMBER
  6. في Oracle Exadata Database Machine المحلي الأساسي، قم بعرض التكوين ومراجعته.
    DGMGRL> show configuration;
    ستبدو المخرجات مشابهة لما يلي:
    Configuration - onpremexadr
    
      Protection Mode: MaxPerformance
      Members:
    db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 36 seconds ago)

يمكنك تبديل قاعدة البيانات الأساسية للخلف والأمام بين قاعدة البيانات المحلية وطبعة قاعدة بيانات Oracle Database Exadata Cloud Service (OCI).