ترحيل Oracle RAC

لإجراء ترحيل قاعدة بيانات Oracle RAC من خادم Oracle Cloud Infrastructure Classic إلى نظام Oracle Cloud Infrastructure Database، يمكنك استخدام Oracle Data Guard. يجب تكوين قاعدة البيانات على Oracle Cloud Infrastructure Classic كقاعدة بيانات أساسية (قاعدة البيانات المصدر )، والتي تقوم بترحيلها إلى قاعدة بيانات بديلة (قاعدة البيانات الهدف) على Oracle Cloud Infrastructure بالأنظمة الظاهرية.

تكوين قاعدة البيانات الأساسية (المصدر)

لتكوين قاعدة البيانات الأساسية (قاعدة البيانات المصدر )، عليك تكوين Oracle Data Guard وتعديل ملفي listener.ora و tnsnames.ora لقاعدة البيانات البديلة (قاعدة البيانات الهدف).

تكوين قاعدة البيانات الأساسية لقاعدة البيانات البديلة

في هذا التكوين ، يتم تكوين قاعدة بيانات (المصدر) الأساسية لاستخدام Oracle Data Guard.

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات الأساسي (قاعدة البيانات المصدر).
  2. في قاعدة البيانات البديلة (قاعدة البيانات الهدف )، اتصل بمالك برنامج قاعدة البيانات oracle.
    sudo su - oracle
  3. قم بتنفيذ اسكربت oraenv ، والذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  4. قم بتسجيل الدخول إلى طبعة قاعدة البيانات كمستخدم لديه امتيازات مسئول. على سبيل المثال:
    sqlplus / as sysoper
  5. تأكد من وجود قاعدة البيانات في وضع ARCHIVELOG.
    ARCHIVE LOG LIST
  6. إذا كانت مخرجات Database log mode هي No Archive Mode ومخرجات Automatic archival هي Disabled، فقم بما يلي:
    1. خروج من SQL*Plus
      SQL> exit
    2. إغلاق قاعدة البيانات.
      srvctl stop database -db db_unique_name
    3. إعادة تشغيل قاعدة البيانات في وضع التوصيل
      srvctl start database -db db_unique_name -o mount
    4. قم بتسجيل الدخول إلى طبعة قاعدة البيانات كمستخدم لديه امتيازات مسئول. على سبيل المثال:
      sqlplus / as sysoper
    5. تمكين وضع أرشيف الحفظ.
      ALTER DATABASE ARCHIVELOG;
    6. تأكد من أن قاعدة البيانات الآن في وضع أرشيف الحفظ.
      ARCHIVE LOG LIST
      يجب أن تكون مخرجات وضع أرشيف قاعدة البيانات Archive Mode ومخرجات Automatic archival ممكنة .
    7. افتح قاعدة البيانات.
      ALTER DATABASE OPEN;
  7. اتصل بامتيازات مسئول SYSDBA.
    CONNECT / AS SYSDBA
  8. بالنسبة لبيئة متعددة العملاء ، قم بما يلي:
    1. تحقق من حالة مجموعات البيانات القابلة للتركيب.
      SHOW PDBS
    2. إذا لم تكن ملفات PDBS مفتوحة ، فقم بفتحها.
      ALTER PLUGGABLE DATABASE ALL OPEN;
  9. تأكد أن قاعدة البيانات في وضع فرض الأرشفة. على سبيل المثال:
    SELECT NAME, OPEN_MODE, FORCE_LOGGING FROM V$DATABASE;
  10. عند الضرورة ، قم بتمكين force logging.
    ALTER DATABASE FORCE LOGGING;
  11. تحقق من التكوين.
    SELECT NAME, CDB, OPEN_MODE, FORCE_LOGGING FROM V$DATABASE;
    يجب أن يكون عمود FORCE_LOGGING هو YES.
  12. استخدم الأمر SHOW PARAMETER للتحقق من معلمات قاعدة البيانات التالية:
    1. DB_NAME و DB_UNIQUE_NAME: تأكد من اختلاف هذه الأسماء عن الأسماء المستخدمة في قاعدة البيانات الهدف.
    2. REMOTE_LOGIN_PASSWORDFILE: يجب تعيين هذه المعلمة إلى EXCLUSIVE.

إضافة خدمات ثابتة إلى استماع قاعدة البيانات الأساسية. ملف ora

في هذا القسم ، يجب إضافة مستمع ثابت جديد إلى الاستماع. أو وإعادة تشغيل المستمع.

  1. استخدم SSH للدخول إلى أول نقطة توصيل لقاعدة البيانات الأساسية (المصدر).
  2. في سطر الأوامر ، اتصل بـ grid user.
    sudo su - grid
  3. قم بتعديل /u01/app/12.2.0.1/ network/network/admin/listener.ora ملف لتضمين المستمع الثابت. يوضح المثال التالي الصيغة المستخدمة لمستمع ثابت واحد:
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SDU=65535)
          (GLOBAL_DBNAME = source_db_unique_name.source_db_domain)
          (ORACLE_HOME = source_oracle_home)
          (ENVS="TNS_ADMIN= source_oracle_home/network/admin")
          (SID_NAME = source_db_name)
        )
      )
  4. قم بإيقاف المستمع.

    ملاحظة:

    يمكن أن يؤثر إيقاف المستمع الثابت وتشغيله على الاتصالات الجديدة بقاعدة البيانات لبضع ثوان.
    srvctl stop listener -l LISTENER
  5. أعد تشغيل المستمع.
    srvctl start listener -l LISTENER
  6. راجع حالة المستمع.
    lsnrctl status
  7. تحقق من وجود إدخالات في المخرجات بالحالة UNKNOWN.
  8. كرر الخطوات السابقة لنقطة التوصيل الثانية الخاصة بقاعدة البيانات الأساسية (قاعدة البيانات المصدر).

تكوين معلمات قاعدة البيانات الأساسية

بعد تكوين قاعدة البيانات الأساسية (المصدر) وإضافة خدمات ثابتة إلى ملف listener.ora ،يمكنك تكوين معلمات Oracle Data Guard في قاعدة البيانات الأساسية.

  1. استخدم SSH للدخول إلى أول نقطة توصيل RAC لقاعدة البيانات الأساسية (قاعدة البيانات المصدر).
  2. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSDBA.
    sqlplus / as sysdba
    Enter password: password
  3. تمكين إدارة الملفات البديلة التلقائية.
    ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT=AUTO SID='*' SCOPE=BOTH;
  4. تعيين هدف فترة تأخر الأرشيف.
    ALTER SYSTEM SET ARCHIVE_LAG_TARGET=1800 SID='*' SCOPE=BOTH;
  5. تحديد أسماء ملفات تكوين Oracle Broker وموقعها. تعتمد الجمل التالية على نوع مخزن قاعدة البيانات.
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='/u02/app/oracle/oradata/<db_unique_name>/dr1<db_unique_name>.dat' SID='*' SCOPE=BOTH; SCOPE=BOTH;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='/u03/app/oracle/fast_recovery_area/<db_unique_name>/dr2<db_unique_name>.dat' SID='*' SCOPE=BOTH;
  6. قم بتمكين عملية DMON لتطبيق Oracle Broker لقاعدة البيانات.
    ALTER SYSTEM SET DG_BROKER_START=TRUE SCOPE=BOTH;
  7. (اختياري) قم بتعيين معلمات DB_BLOCK_CHECKING و DB_BLOCK_CHECKSUM.
    ALTER SYSTEM SET DB_BLOCK_CHECKING=FULL SID='*' SCOPE=BOTH;
    ALTER SYSTEM SET DB_BLOCK_CHECKSUM=FULL SID='*' SCOPE=BOTH;
  8. (اختياري) قم بتعيين ذاكرة السجل الوسيطة إلى 256 ميجابايت.
    ALTER SYSTEM SET LOG_BUFFER=268435456 SID='*' SCOPE=BOTH;
  9. قم بتعيين معلمة DB_LOST_WRITE_PROTECT على TYPICAL.
    ALTER SYSTEM SET DB_LOST_WRITE_PROTECT=TYPICAL SID='*' SCOPE=BOTH;
  10. تمكين ميزة ارتداد قاعدة البيانات. الحد الأدنى للقيمة الموصى بها لـ DB_FLASHBACK_RETENTION_TARGET هو 120 دقيقة.
    ALTER DATABASE FLASHBACK ON;
    ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=120; 
    ALTER SYSTEM ARCHIVE LOG CURRENT;
  11. أضف أرشيفات الإعادة البديلة ، بناءً على أرشيف الإعادة المتصل. يمكن استخدام الاستعلام أدناه لتحديد عدد وحجم (بالبايت) من قوائم Orl. يجب أن يكون حجم أرشيفات الإعادة البديلة مثل أرشيفات الإعادة المتصلة ، ولكن يجب إضافة سجل إعادة بديل إضافي أو أكثر من هناك سجلات إعادة متصلة. في المثال التالي ، توجد أربعة أرشيفات إعادة متصلة ، لذلك يجب عليك إضافة خمسة أرشيفات إعادة بديلة على الأقل. أي أنه بالنسبة لكل سلسلة عمليات ، يجب تحديد سجلات الإعادة الحالية بالإضافة إلى سجل واحد على الأقل ، ثم استخدام نفس الحجم لسجلات الإعادة الأصلية.
    1. نفذ الاستعلام التالي لتحديد العدد والحجم بالبايت من سجلات إعادة Oracle.
      SELECT GROUP#, BYTES FROM V$LOG;
      يجب أن تكون المخرجات مشابهة لما يلي.
      GROUP# BYTES
      ------ ----------
      1      1073741824
      2      1073741824
      3      1073741824
      4      1073741824
    2. بالنسبة لسلسلة العمليات الأولى ، حدد سجلات الإعادة الحالية بالإضافة إلى واحدة ، واستخدم نفس حجم أرشيفات الإعادة الحالية. على سبيل المثال:
      ALTER DATABASE ADD STANDBY LOGFILE THREAD 1
      GROUP 5 SIZE 1073741824,
      GROUP 6 SIZE 1073741824, 
      GROUP 7 SIZE 1073741824,
      GROUP 8 SIZE 1073741824,
      GROUP 9 SIZE 1073741824;
    3. بالنسبة لسلسلة العمليات الثانية ، حدد سجلات الإعادة الحالية بالإضافة إلى واحدة ، واستخدم نفس حجم أرشيفات الإعادة الحالية. على سبيل المثال:
      ALTER DATABASE ADD STANDBY LOGFILE THREAD 2
      GROUP 10 SIZE 1073741824,
      GROUP 11 SIZE 1073741824, 
      GROUP 12 SIZE 1073741824,
      GROUP 13 SIZE 1073741824,
      GROUP 14 SIZE 1073741824;
    4. تحقق من تكوين العدد الصحيح من سجلات الإعادة البديلة.
      SELECT GROUP#, BYTES FROM V$STANDBY_LOG;
      يجب أن تظهر المخرجات المشابهة لما يلي:
          GROUP#      BYTES
      ---------- ----------
               5 1073741824
               6 1073741824
               7 1073741824
               8 1073741824
               9 1073741824
              10 1073741824
              11 1073741824
              12 1073741824
              13 1073741824
              14 1073741824
      10 rows selected.

تكوين قاعدة البيانات البديلة (الهدف)

لتكوين قاعدة البيانات البديلة (الهدف )، يجب إسقاط قاعدة البيانات البديلة ثم تعديل ملفات oratab و listener.ora و tnsnames.ora .

إضافة إدخالات لطبعات قاعدة البيانات

قم بتحديث ملف /etc/oratab في نقاط توصيل Oracle RAC وأضف إدخالاً لطبعة قاعدة البيانات على النحو التالي:

  1. استخدم SSH للدخول إلى نقطة التوصيل الأولى الخاصة بقاعدة البيانات المصدر (قاعدة البيانات الأساسية) التي سيتم ترحيلها.
  2. قم بتحديث /etc/oratab لإضافة معرف طبعة قاعدة البيانات إلى إدخال قاعدة البيانات عن طريق القيام بالتالي:
    1. تحرير /etc/oratab:
      sudo vi /etc/oratab
    2. أضف إدخالاً لقاعدة البيانات بالصيغة التالية:
      $ORACLE_SID:$ORACLE_HOME:N
      مثال لنقطة التوصيل 1:
      orcl1:/u01/app/oracle/product/12.1.0.2/dbhome_1:N
      مثال لنقطة التوصيل 2:
      orcl2:/u01/app/oracle/product/12.1.0.2/dbhome_1:N
  3. قم بتشغيل اسكربت oraenv لتعيين متغيرات البيئة الخاصة بقاعدة البيانات مثل $ORACLE_HOME:
    . oraenv
  4. كرر الخطوات السابقة لنقطة توصيل Oracle RAC الثانية.

إسقاط قاعدة البيانات البديلة (الهدف)

  1. استخدم SSH للدخول إلى الخادم البديل (الهدف).
  2. قم بالتبديل إلى مستخدم oracle المالك لقاعدة البيانات.
  3. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSDBA.
    sqlplus / as sysdba
    Enter password: password
  4. قم بإلغاء تركيب قاعدة البيانات كما يلي:
    alter system set cluster_database=false sid='*' scope=spfile;
    System altered.
  5. خروج من SQL*Plus:
     exit
  6. إيقاف قاعدة البيانات باستخدام srvctl:
    srvctl stop database -db database_unqiue_name
  7. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSDBA.
    sqlplus / as sysdba
    Enter password: password
  8. بدء تشغيل قاعدة البيانات وتحميلها في وضع مقيد:
     startup mount restrict
    ORACLE instance started.
    Total System Global Area 7516192768 bytes
    Fixed Size                  2941872 bytes
    Variable Size            1409289296 bytes
    Database Buffers         6073352192 bytes
    Redo Buffers               30609408 bytes
    Database mounted.
  9. إسقاط قاعدة البيانات البديلة:
     drop database;
    Database dropped.

إضافة خدمات ثابتة إلى استماع قاعدة البيانات البديلة. ملف ora

بعد إضافة خدمات ثابتة إلى قاعدة البيانات البديلة (قاعدة البيانات المصدر) ملف listener.ora، يجب إعادة تشغيل المستمع.

  1. استخدم SSH للدخول إلى أول نقطة توصيل Oracle RAC لخادم قاعدة البيانات البديلة (قاعدة البيانات المصدر).
  2. في سطر الأوامر ، قم بالاتصال كمستخدم grid.
    sudo su - grid
  3. قم بتعديل ملف $ORACLE_HOME/ network/admin/listener.ora لتضمين static listener. يوضح المثال التالي الصيغة المطلوب استخدامها مع static listener:
    SID_LIST_LISTENER=
     (SID_LIST=
      (SID_DESC=
      (SDU=65535)
      (GLOBAL_DBNAME = standby_db_unique_name.standby_db_domain)
      (SID_NAME = standby_db_sid)
      (ORACLE_HOME= standby_oracle_home)
      (ENVS="TNS_ADMIN= standby_oracle_home/network/admin")
      )
    )
  4. استخدم البرنامج المساعد srvctl لإيقاف المستمع.
    srvctl stop listener -l LISTENER
  5. أعد تشغيل listener.
    srvctl start listener -l LISTENER
  6. تحقق من حالة listener.
    lsnrctl status

    ملاحظة:

    المخرجات هي المستمع الجديد بالحالة UNKNOWN
  7. كرر هذه الخطوات لنقطة توصيل Oracle RAC الثانية.

نسخ حوائط TDE من قاعدة البيانات الأساسية إلى قاعدة البيانات البديلة

يمكنك نسخ ملفات حافظة TDE يدويًا من قاعدة البيانات الأساسية (قاعدة البيانات المصدر) إلى نظام قاعدة البيانات البديلة (قاعدة البيانات الهدف) باستخدام بروتوكول النسخ الآمن (SCP).

ضغط حافظة TDE

يجب إجراء هذه العملية في قاعدة البيانات الأساسية (قاعدة البيانات المصدر).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات الأساسي (قاعدة البيانات المصدر).
  2. في سطر الأوامر ، اتصل بمالك برنامج قاعدة البيانات oracle.
    sudo su - oracle
  3. قم بتنفيذ اسكربت oraenv ، والذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  4. للبحث عن موقع الحافظة ، قم بتسجيل الدخول إلى طبعة قاعدة البيانات الأساسية (قاعدة البيانات المصدر) باستخدامامتياز مسئول SYSDBA .
    sqlplus / as sysdba
  5. استعلم عن عمود WRL_PARAMETER في طريقة عرض V$ENCRYPTION_WALLET الديناميكية للعثور على الدليل الذي يوجد به الحافظة.
    SELECT * FROM V$ENCRYPTION_WALLET;
  6. الخروج من SQL*Plus.
    exit
  7. انتقل إلى الدليل حيث توجد ملفات الحافظة. على سبيل المثال:
    cd /u02/app/oracle/admin/source_db_unique_name
  8. استخدم أمر tar لضغط حافظة TDE. على سبيل المثال:
    tar cvf tde_wallet.tar ./tde_wallet
    تظهر المخرجات المشابهة لما يلي:
    ./tde_wallet/
    ./tde_wallet/ewallet.p12
    ./tde_wallet/cwallet.sso
    ./tde_wallet/ewallet_2018021607225910.p12
نسخ حافظة TDE وإعداد الأذونات على دليل الحافظة

بعد النسخ الاحتياطي لملف حافظة TDE ، يجب تكوين دليل للحافظة وإعداد الأذون على هذا الدليل.

  1. قم بنسخ ملف wallet tar إلى دليل tmp. على سبيل المثال:
    cp tde_wallet.tar /tmp/
  2. خروج ليصبح مستخدم OPC.
    $ exit
  3. انسخ المفتاح الخاص من المضيف المحلي إلى قاعدة البيانات الأساسية.
    بشكل افتراضي ، لا يتم تخزين المفاتيح الخاصة في قواعد البيانات
    scp -i /home/opc/.ssh/privateKey opc@<Primary DB IP>:/home/opc/.ssh/
  4. استخدم SCP لنسخ ملفات الحافظة من قاعدة البيانات الأساسية (قاعدة البيانات المصدر) إلى قاعدة البيانات البديلة (قاعدة البيانات الهدف )، في الدليل /opt/oracle/dcs/commonstore/wallets/tde/ORACLE_UNQNAME. على سبيل المثال:
    scp -i /home/opc/.ssh/privateKey /tmp/tde_wallet.tar opc@<Standby DB IP>:/tmp/
    تظهر المخرجات المشابهة لما يلي:
    tde_wallet.tar
    100% 20KB 20.0KB/s 00:00
  5. استخدم SSH للدخول إلى خادم قاعدة البيانات الهدف.
  6. قم بتسجيل الدخول كمالك برنامج قاعدة بيانات oracle.
    sudo su - oracle
  7. قم بتنفيذ اسكربت oraenv ، والذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  8. للبحث عن موقع الحافظة ، قم بعرض محتويات sqlnet.ora:
    cat $ORACLE_HOME/network/admin/sqlnet.ora
  9. تعرضالمعلمة ENCRYPTION_WALLET_LOCATION موقع الحافظة. على سبيل المثال:
    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  10. انتقل إلى دليل الحافظة الهدف. على سبيل المثال:
    cd /opt/oracle/dcs/commonstore/wallets/tde
  11. تحقق من وجود الحافظة الصحيحة في هذا الدليل.
    ls target_db_unique_name
  12. قم بعمل نسخة احتياطية من ملف الحافظة. على سبيل المثال:
    mv target_db_unique_name target_db_unique_name.old
  13. قم بتكوين دليل يمكن فيه تخزين الحافظة. على سبيل المثال:
    mkdir target_db_unique_name
  14. تحقق من الأذون في دليل الحافظة.
    ls -ld target_db_unique_name
  15. إذا لزم الأمر ، فقم بمنح مالك برنامج قاعدة البيانات أذون قراءة وكتابة وتنفيذ.
    chmod 700 target_db_unique_name
  16. تحقق من الأذون مرة أخرى.
    ls -ld target_db_unique_name
  17. قم بنسخ ملف الحافظة wallet tar إلى الدليل الحالي.
    cp /tmp/tde_wallet.tar .
  18. تحقق من الأذون.
    ls -rlt
    تظهر المخرجات المشابهة لما يلي:
    total 124
    drwx------ 2 oracle oinstall 20480 Feb 16 09:25 target_db_unique_name.old
    drwx------ 2 oracle oinstall 20480 Feb 16 10:16 target_db_unique_name
    -rw-r--r-- 1 oracle oinstall 20480 Feb 16 10:17 tde_wallet.tar
إتمام عملية حافظة TDE

يجب استخراج الصفحة الرئيسية لملف حافظة TDE ثم نقل محتوياته إلى دليل الحافظة بقاعدة البيانات البديلة (قاعدة البيانات الهدف).

  1. في قاعدة البيانات البديلة (قاعدة البيانات الهدف )، تأكد من أنك في دليل الحافظة الصحيح. على سبيل المثال:
    pwd
     
    # Output similar to the following should appear:
    /opt/oracle/dcs/commonstore/wallets/tde
  2. استخراج ملف المنشأة.
    tar xvf tde_wallet.tar
    يجب أن تظهر المخرجات المشابهة لما يلي:
    ./tde_wallet/ewallet.p12
    ./tde_wallet/ewallet_2018050819024979.p12
    ./tde_wallet/cwallet.sso
  3. انقل محتويات tde_wallet إلى دليل الحافظة في قاعدة البيانات البديلة (قاعدة البيانات الهدف).
    mv ./tde_wallet/* ./target_db_unique_name
  4. قم بإزالة محتويات tde_wallet من قاعدة البيانات البديلة (قاعدة البيانات الهدف).
    rm -rf ./tde_wallet

تكوين ملف معلمة تهيئة البديل وبدء الطبعة في وضع Nomove

بعد تكوين ملف التهيئة البديل ، يمكنك إعادة تشغيل قاعدة البيانات في وضع NOMOUNT.

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. قم بالدخول باعتبارك مالك برنامج قاعدة البيانات oracle.
    sudo su - oracle
  3. قم بتنفيذ سكريبت oraenv، الذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  4. انتقل إلى دليل dbs.
    cd $ORACLE_HOME/dbs
  5. قم بتكوين ملف معلمة تهيئة مؤقت ، بالاسمinit_< sid>.ora حيث يكون <sid> هو SID الخاص بقاعدة البيانات الهدف كما يلي:
    echo "*.db_name='db_name'" > $ORACLE_HOME/dbs/init<sid>.ora
    echo "*.db_unique_name='target_db_unique_name'" >> $ORACLE_HOME/dbs/init<sid>.ora
  6. عمل نسخة احتياطية لملف كلمة السر الموجود ، إن وجد. على سبيل المثال:
    mv $ORACLE_HOME/dbs/orapw<sid> $ORACLE_HOME/dbs/orapw<sid>.old
  7. تكوين ملف كلمة سر جديد. على سبيل المثال:
    orapwd file=$ORACLE_HOME/dbs/orapwtarget password=admin_password_for_primary entries=5
  8. قم بتغيير ملف كلمة السر في المجموعة إلى ملف كلمة سر non-ASM:
    $ srvctl modify database -d <oci_db_unique_name> -pwfile $ORACLE_HOME/dbs/orapw<oci_oracle_sid>
    $ srvctl config database -d <oci_db_unique_name>
  9. قم بالاتصال بقاعدة البيانات البديلة (قاعدة البيانات الهدف) كمستخدم يمتلك امتياز مسئول sysdba. على سبيل المثال:
    sqlplus / as sysdba 
  10. إغلاق قاعدة البيانات. على سبيل المثال:
    shutdown immediate
  11. أعد تشغيل قاعدة البيانات في وضع NOMOUNT باستخدام ملف معلمة تهيئة init<sid>.ora.
    startup force nomount PFILE=?/dbs/init<sid>.ora

تكرار قاعدة البيانات الهدف للبديل من قاعدة البيانات النشطة

يمكنك تنفيذ اسكربت لتكرار قاعدة البيانات البديلة (قاعدة البيانات الهدف). إذا كانت قاعدة البيانات الأساسية (قاعدة البيانات المصدر) كبيرة الحجم ، فيمكنك تخصيص قنوات إضافية لتحسين أدائها. بالنسبة لقاعدة البيانات المثبتة حديثًا ، تقوم قناة واحدة بتشغيل تكرار قاعدة البيانات بشكل نموذجي في أقرب دقيقة. تأكد من عدم حدوث أخطاء بعد تشغيل عملية تكرار Oracle Recovery Manager (Oracle RMAN). في حالة حدوث أخطاء ، أعد تشغيل قاعدة البيانات باستخدام ملف معلمة التهيئة (وليس spfile) وفي حالة تكوينها ضمن دليل $ORACLE_HOME/dbs كجزء من عملية تكرار Oracle RMAN.

  1. قم بالاتصال بقاعدة البيانات البديلة (قاعدة البيانات الهدف) باعتبارك مالك برنامج قاعدة البيانات oracle.
    su - oracle
  2. قم بتنفيذ اسكربت oraenv ، والذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  3. تكوين dup.rcv
    vi dup.rcv
    لصق محتويات الاسكربت أثناء تحديث المتغيرات المطلوبة.
  4. مع قاعدة البيانات البديلة (قاعدة البيانات الهدف) في وضع NOMOUNT، اتصل بـ Oracle RMAN.
    rman
    RMAN> connect target sys@<primary_db_tnsnames_name>
    target database Password: password
    RMAN> connect auxiliary sys@<standby_db_tnsnames_name>
    auxiliary database Password: password
  5. نفذ الاسكربت التالي لتكرار قاعدة البيانات الهدف لقاعدة بيانات بديلة من قاعدة بيانات نشطة. يوضح المثال التالي اسكربت dup.rcv الذي يجب أن يكون مكونًا بواسطة المستخدم ويعتمد على ملاحظة My Oracle Support 2369137. عمليات تشغيل التكرار النشطة في RMAN في طريقة RMAN-06217 -- PUSH & PULL الشرح (معرف المستند 2369137.1). في هذا المثال ، تم تخصيص سكربت dup.rcv لإرسال التكرار (نسخ الصور) من نظام الملفات إلى Oracle Automatic Storage Management (Oracle ASM). تتطلب الخيارات الأخرى مثل تلك الخيارات الواردة من نظام الملفات إلى نظام Oracle Automatic Storage Management Cluster File System أو Oracle ASM إلى Oracle ASM إجراء تغييرات على معلمات وجهة الملف ومعلمات تحويل اسم الملف.
    @dup.rcv
    Output similar to the following appears:
    
    RMAN> run {
    2> allocate channel prmy1 type disk;
    3> allocate channel prmy2 type disk;
    4> allocate channel prmy3 type disk;
    5> allocate channel prmy4 type disk;
    6> allocate auxiliary channel stby1 type disk;
    7> allocate auxiliary channel stby2 type disk;
    8> allocate auxiliary channel stby type disk;
    9> duplicate target database for standby from active database dorecover
    10> spfile
    11> parameter_value_convert '/u02/app/oracle/oradata/source_db_name','+DATA'
    12> Set CLUSTER_DATABASE='FALSE'
    13> set db_unique_name='<target_db_unique_name>'
    14> set db_create_file_dest='+DATA'
    15> set db_create_online_log_dest_1='+RECO'
    16> set db_recovery_file_dest='+RECO'
    17> set audit_file_dest='/u01/app/oracle/admin/db_name/adump'
    18> set control_files='+DATA','+RECO'
    19> set dg_broker_config_file1='+DATA/<target_db_unique_name>/dr1<target_db_unique_name>.dat'
    20> set dg_broker_config_file2='+RECO/<target_db_unique_name>/dr2<target_db_unique_name>.dat'
    21> set dispatchers='(PROTOCOL=TCP) (SERVICE=<target_db_name>XDB)'
    22> set instance_name='<target_db_name>'
    23> set db_domain='<target_db_domain>'
    24> set db_recovery_file_dest='+RECO'
    25> ;
    26> }

خطوات ترحيل تكرار Oracle Recovery Manager

بعد إكمال عملية تكرار Oracle Recovery Manager (Oracle RMAN)، يجب تنفيذ مهام التنظيف هذه في قاعدة البيانات البديلة (قاعدة البيانات الهدف).

تحديث ملف كلمة السر

قم بتحديث ملف كلمة السر كما يلي:

  1. انقل ملف كلمة السر إلى ASM مرة أخرى:
    [oracle@oci_node1 ~]$ cp $ORACLE_HOME/dbs/orapw<oci_node1_oracle_sid> /tmp/orapw<oci_node1_oracle_sid>
  2. خروج إلى مستخدم opc:
    [oracle@oci_node1 ~]$ exit
  3. تبديل إلى مستخدم grid:
    [opc@oci_node1 ~]$ sudo su - grid
  4. التبديل إلى موجه ASMCMD:
    [grid@oci_node1 ~]$ asmcmd
  5. انسخ كلمة السر في ASMCMD:
    ASMCMD> pwcopy --dbuniquename <oci_db_unique_name> '/tmp/orapw<oci_node1_oracle_sid>' '+DATA'

    ملاحظة:

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

  6. انتقل إلى الدليل +DATA /<OCI_DB_UNIQUE_NAME>/ PASSWORD/للعثور على system_generated_id المطلوب استخدامه في الخطوة 9.
    ASMCMD> cd +DATA/<OCI_DB_UNIQUE_NAME>/PASSWORD/ 
    ASMCMD> ls -lt
  7. الخروج من ASMCMD ومستخدم grid:
    ASMCMD> exit
    [grid@oci_node1 ~]$ exit
  8. التبديل إلى مستخدم أوراكل :
    [opc@oci_node1 ~]$ sudo su - oracle
  9. قم بتنفيذ اسكربت oraenv ، والذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  10. تعديل ملف كلمة السر في مجموعة إلى ASM:
    [oracle@oci_node1 ~]$ srvctl modify database -d <oci_db_unique_name> -pwfile +DATA/<OCI_DB_UNIQUE_NAME>/PASSWORD/pwd<oci_db_unique_name><system_generated_id>
    [oracle@oci_node1 ~]$ rm $ORACLE_HOME/dbs/orapw<oci_node1_oracle_sid>
تمكين Oracle Flashback

يتعين عليك تمكين Oracle Flashback.

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. قم بالدخول باعتبارك مالك برنامج قاعدة البيانات oracle.
    sudo su - oracle
  3. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSOPER. على سبيل المثال:
    sqlplus / as sysoper
    Enter password: password
  4. تمكين Oracle Flashback.
    ALTER DATABASE FLASHBACK ON;
  5. اتصل كمستخدم ذي امتياز مسئول SYSDBA.
    CONNECT / AS SYSDBA
  6. تعيين هدف احتفاظ الارتداد.
    ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=120;
نقل ملف spfile إلى Oracle Automatic Storage Management

يجب نقل ملف spfile إلى Oracle Automatic Storage Management.

  1. استخدم SSH للاتصال بخادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSOPER.
  3. قم بتكوين ملف spfile ونقله إلى Oracle Automatic Storage Management.
    1. قم بتكوين الملف المضغوط.
      create pfile='/tmp/init<sid>.ora' from spfile;
    2. خروج من SQL*Plus:
      SQL> exit
    3. تحرير pfile:
      vi /tmp/init<sid>.ora
    4. قم بحذف السطر التالي من الملف:
      *.instance_name=<sid_for_node1>
    5. قم بإضافة السطور التالية لكل نقطة توصيل:
      <sid_for_node1>.instance_name='<sid_for_node1>'
      <sid_for_node2>.instance_name='<sid_for_node2>'
    6. سجل الدخول إلى SQL*Plus كمستخدم مسئول. على سبيل المثال:
      sqlplus sys / as sysdba
      Password: password
    7. إغلاق قاعدة البيانات
      shutdown immediate
    8. أعد تشغيل قاعدة البيانات في وضع MOUNT باستخدام ملف initdb_name.ora الذي قمت بتكوينه للتو.
      startup mount pfile='/tmp/init<sid>.ora';
    9. قم بتكوين ملف spfile.
      create spfile='+DATA' from pfile='/tmp/init<sid>.ora';
  4. الخروج من SQL*Plus.
  5. كمستخدم grid، ابحث عن ملف spfile في Oracle Automatic Storage Management باستخدام الأمر asmcmd.
    asmcmd
    ASMCMD> cd +DATA/target_db_unique_name/PARAMETERFILE/
    ASMCMD> ls -lt
    تظهر المخرجات المشابهة لما يلي:
    Type           Redund  Striped  Time             Sys  Name
    PARAMETERFILE  UNPROT  COARSE   APR 09 16:00:00  Y    spfile.262.973010033
    قم بتدوين اسم ASM (spfile .262.973010033)، الذي تحتاج إليه في المهمة التالية.
تغيير ملف inittarget_db_name.ora للإشارة إلى ملف spfile

يمكنك تعديل ملف init<sid>.ora للإشارة إلى ملف spfile.

  1. استخدم SSH للاتصال بخادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. قم بالدخول باعتبارك مالك برنامج قاعدة البيانات oracle.
    su - oracle
  3. قم بتنفيذ اسكربت oraenv لتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  4. انتقل إلى دليل $ORACLE_HOME/dbs.
    cd $ORACLE_HOME/dbs
  5. تأكد من وجود ملف init<sid>.ora في هذا الدليل.
    ls *.ora
  6. قم بتغيير ملف inittarget_db_name.ora للإشارة إلى ملف spfile. على سبيل المثال:
    mv spfiletarget_db_name.ora spfiletarget_db_name.ora.stby
    mv init<sid>.ora init<sid>.ora.stby
    echo ''SPFILE='+DATA/target_db_unique_name/PARAMETERFILE/spfile.262.973010033'' > init<sid>.ora
    cat init<sid>inittarget_db_name.ora--To check the file
    في هذه المخرجات ، يكون spfile.262.973010033 هو اسم الملف الذي قمت بتكوينه عند نقلملف spfile إلى Oracle Automatic Storage Management في المهمة السابقة.
    تظهر المخرجات المشابهة لما يلي:
    SPFILE='+DATA/target_db_unique_name/PARAMETERFILE/spfile.262.973010033'
تعديل وبدء قاعدة البيانات البديلة في وضع MOUNT

يمكنك استخدام srvctl لتعديل قاعدة البيانات البديلة والبدء منها (قاعدة البيانات الهدف).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. قم بالدخول باعتبارك مالك برنامج قاعدة البيانات oracle.
    su - oracle
  3. قم بتنفيذ اسكربت oraenv ، والذي يقوم بتعيين متغير بيئة $ORACLE_HOME.
    . oraenv
  4. استخدم srvctl لتعديل قاعدة البيانات البديلة والبدء منها (قاعدة البيانات الهدف) في وضع MOUNT. على سبيل المثال:
    srvctl modify database -db target_db_unique_name -role /
    PHYSICAL_STANDBY -s "READ ONLY"  -spfile /
    +DATA/target_db_unique_name/PARAMETERFILE/spfile.262.973010033
    
    srvctl config database -db target_db_unique_name
  5. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSOPER.
    sqlplus / as sysoper
  6. إغلاق قاعدة البيانات ،
    SQL*Plus
    SHUTDOWN IMMEDIATE
  7. بدء تشغيل قاعدة البيانات عند التوصيل
    STARTUP MOUNT
  8. تبديل معلمة cluster_database
    
    alter  system set cluster_database=True  sid='*' scope=spfile;
  9. إغلاق قاعدة البيانات
    SHUTDOWN IMMEDIATE
  10. الخروج من SQL*Plus.
    EXIT
  11. قم ببدء قاعدة البيانات في وضع MOUNT باستخدام srvctl.
    srvctl start database -db target_db_unique_name -o mount
  12. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSDBA.
    sqlplus / as sysdba
  13. استعلم عن طريقة عرض V$DATABASE الديناميكية للتأكد من وجود قاعدة البيانات في وضع MOUNT.
    SELECT NAME, OPEN_MODE FROM V$DATABASE;
    يظهر #Output مشابهًا لما يلي:
    NAME              OPEN_MODE
    --------------    ---------
    source_db_name    MOUNTED
قم بإعداد معاملات تحويل اسم ملف الأرشيف وقاعدة البيانات على قاعدة البيانات الأساسية

يجب تعيين معلمات التحويل لقاعدة البيانات واسم ملف السجل على قاعدة البيانات الأساسية (قاعدة البيانات المصدر).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات الأساسي (قاعدة البيانات المصدر).
  2. التبديل إلى مستخدم أوراكل:
    sudo su - oracle
  3. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSDBA. على سبيل المثال:
    sqlplus / as sysdba
    Enter password: password
  4. تحقق من معلمة CONVERT.
    SHOW PARAMETER CONVERT
    تظهر المخرجات المشابهة لما يلي:
    NAME                         TYPE        VALUE
    ------------------------------------ ----------- ------
    db_file_name_convert                 string
    log_file_name_convert                string
    pdb_file_name_convert                string
    يجب أن يكون عمود VALUE فارغًا (خاليًا). إذا كانت هناك قيمة ، فقم بتدوين قيمة هذه القيمة حتى بعد اكتمال الترحيل. بعد اكتمال الترحيل ، يتم تعيين هذه القيم إلى قيمة خالية.
  5. استخدم المعلومات الواردة من هذه المخرجات لتعيين معلمة DB_FILE_NAME_CONVERT.

    ملاحظة:

    لاحظ أنه في هذه الخطوة ، يجب أن يكون SOURCE_DB_NAME بأحرف كبيرة.
    ALTER SYSTEM SET DB_FILE_NAME_CONVERT='+DATA','/u02/app/oracle/oradata/SOURCE_DB_NAME/'' SID='*' SCOPE=SPFILE;
  6. قم بتعيين معلمة LOG_FILE_NAME_CONVERT. على سبيل المثال:
    ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='+RECO','/u04/app/oracle/redo/' SID='*' SCOPE=SPFILE;
  7. أعد تشغيل قاعدة البيانات.
    srvctl stop database -db source_db_name
    srvctl start database -db source_db_name
إعداد معاملات تحويل اسم ملف الأرشيف وقاعدة البيانات على قاعدة البيانات البديلة

يجب تعيين معلمات التحويل لقاعدة البيانات واسم ملف السجل على قاعدة البيانات البديلة (قاعدة البيانات الهدف).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. التبديل إلى مستخدم أوراكل:
    sudo su - oracle
  3. قم بالدخول إلى طبعة قاعدة البيانات كمستخدم يمتلك امتياز مسئول SYSDBA. على سبيل المثال:
    sqlplus / as sysdba
    Enter password: password
  4. تحقق من معلمة CONVERT.
    SHOW PARAMETER CONVERT
    تظهر المخرجات المشابهة لما يلي:
     NAME                        TYPE        VALUE
    ------------------------------------ ----------- ------
    db_file_name_convert                 string
    log_file_name_convert                string
    pdb_file_name_convert                string
    يجب أن يكون عمود VALUE فارغًا (خاليًا). إذا كانت هناك قيمة ، فقم بتدوين قيمة هذه القيمة حتى بعد اكتمال الترحيل. بعد اكتمال الترحيل ، يتم تعيين هذه القيم إلى قيمة خالية.
  5. استخدم المعلومات الواردة من هذه المخرجات لتعيين معلمة DB_FILE_NAME_CONVERT. على سبيل المثال:

    ملاحظة:

    لاحظ أنه في هذه الخطوة ، يجب أن يكون SOURCE_DB_NAME بأحرف كبيرة.
    ALTER SYSTEM SET DB_FILE_NAME_CONVERT='/u02/app/oracle/oradata/SOURCE_DB_NAME/','+DATA' SID='*' SCOPE=SPFILE;
  6. قم بتعيين معلمة LOG_FILE_NAME_CONVERT. على سبيل المثال:
    ALTER SYSTEM SET LOG_FILE_NAME_CONVERT='/u04/app/oracle/redo/','+RECO'
    SID='*' SCOPE=SPFILE;
  7. أعد تشغيل قاعدة البيانات.
    srvctl stop database -db target_db_unique_name
    srvctl start database -db target_db_unique_name -o mount

تكوين قاعدة البيانات باستخدام Oracle Data Guard Broker

يمكنك استخدام البرنامج المساعد dbmgrl لتكوين قاعدة البيانات الأساسية (قاعدة البيانات المصدر) أو قاعدة البيانات البديلة (قاعدة البيانات الهدف) مع وسيط Oracle Data Guard.

  1. استخدم SSH للدخول إلى قاعدة البيانات الأساسية (قاعدة البيانات المصدر) أو خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. بدء البرنامج المساعد لسطر أوامر dgmgrl:
    dgmgrl
  3. اتصل كمستخدم SYS من نظام قاعدة البيانات الأساسي أو قاعدة البيانات البديلة. على سبيل المثال ، للدخول إلى قاعدة بيانات رئيسيةباسم TNS الخاص بها هو OCIC-ORCL:
    connect sys@ocic-orcl
    Enter password: password
  4. باستخدام البرنامج المساعد dbmgrl، قم بتكوين هوية وتكوين Oracle Data Guard لقواعد البيانات الأساسية والبديلة. على سبيل المثال:
    create configuration configuration_name as primary database is source_db_unique_name connect identifier is OCIC-ORCL; -- Uses the source TNS name
     
    add database target_db_unique_name as connect identifier is OCI-ORCL; --Uses the target TNS name
  5. تمكين التكوين.
    enable configuration
  6. إظهار تكوين Oracle Data Guard في قاعدة البيانات البديلة.
    show configuration
    تظهر المخرجات المشابهة لما يلي:
    Configuration - configuration_name
      Protection Mode: MaxPerformance
      Members:
      source_db_unique_name           - Primary database
        target_db_unique_name         - Physical standby database
    
    Fast-Start Failover: DISABLED
    
    Configuration Status:
    SUCCESS   (status updated 12 seconds ago)

قم بتدقيق Oracle Data Guard Broker في قاعدة البيانات الأساسية وقاعدة البيانات البديلة

يمكنك استخدام SQL*Plus لتدقيق وسيط Oracle Data Guard في قاعدة البيانات الأساسية (قاعدة البيانات المصدر) وقاعدة البيانات البديلة (قاعدة البيانات الهدف).

مراجعة Oracle Data Guard Broker في قاعدة البيانات الأساسية

يمكنك استخدام SQL*Plus لتدقيق وسيط Oracle Data Guard في قاعدة البيانات الأساسية (قاعدة البيانات المصدر).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات الأساسي (قاعدة البيانات المصدر).
  2. اتصل كمستخدم يمتلك امتياز مسئول SYSDBA. على سبيل المثال ، بالنسبة لقاعدة بيانات رئيسية يكون اسم TNS الخاص بها هو OCIC-ORCL:
    connect sys@ocic-orcl as sysdba
    Enter password: password
  3. استعلم عن عرض V$DATABASE الديناميكي.
    SELECT FORCE_LOGGING, FLASHBACK_ON, OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, DATAGUARD_BROKER, PROTECTION_MODE FROM V$DATABASE;
    
  4. تظهر المخرجات المشابهة لما يلي:
    
    FORCE_LOGGING                           FLASHBACK_ON       OPEN_MODE
    --------------------------------------- ------------------ -----------
    DATABASE_ROLE    SWITCHOVER_STATUS    DATAGUAR PROTECTION_MODE
    ---------------- -------------------- -------- --------------------
    YES                                     YES                READ WRITE
    PRIMARY          TO STANDBY           ENABLED  MAXIMUM PERFORMANCE
    في المخرجات ، يجب أن يكون DATABASE_ROLE هو PRIMARY ويجب أن يكون OPEN_MODEهو READ WRITE.

تدقيق Oracle Data Guard Broker في قاعدة البيانات البديلة

يمكنك استخدام SQL*Plus لتدقيق وسيط Oracle Data Guard في قاعدة البيانات البديلة (قاعدة البيانات الهدف).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. اتصل كمستخدم يمتلك امتياز مسئول SYSDBA.
  3. استعلم عن عرض V$DATABASE الديناميكي.
    SELECT FORCE_LOGGING, FLASHBACK_ON,
    OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS,
    DATAGUARD_BROKER, PROTECTION_MODE
    FROM V$DATABASE;
    تظهر المخرجات المشابهة لما يلي:
    FORCE_LOGGING                           FLASHBACK_ON       OPEN_MODE
    --------------------------------------- ------------------ -----------
    DATABASE_ROLE    SWITCHOVER_STATUS    DATAGUAR PROTECTION_MODE
    ---------------- -------------------- -------- --------------------
    YES                                     YES                MOUNTED
    PHYSICAL STANDBY NOT ALLOWED          ENABLED  MAXIMUM PERFORMANCE
    ويجب أن تعرض المخرجات DATABASE_ROLE على أنه PHYSICAL STANDBY و OPEN_MODE على هيئة MOUNTED.
  4. تحقق من بدء عمليات Oracle Data Guard في قاعدة البيانات البديلة.
    SELECT PROCESS,PID,DELAY_MINS FROM V$MANAGED_STANDBY;
    تظهر المخرجات المشابهة لما يلي:
    PROCESS   PID                      DELAY_MINS
    --------- ------------------------ ----------
    ARCH      9207                              0
    ARCH      9212                              0
    ARCH      9216                              0
    ARCH      9220                              0
    RFS       1065                              0
    RFS       1148                              0
    RFS       1092                              0
    MRP0      972                               0
    RFS       1208                              0
    يجب أن تشير المخرجات إلى أن العمليات قيد التشغيل مع قليل أو بدون تأخير. في حالة مزامنة DELAY_MINS الخاص بـ MRP0، تتم مزامنة قواعد البيانات.
  5. تحقق من معلمة LOG_ARCHIVE_DEST.
    SHOW PARAMETER LOG_ARCHIVE_DEST_
    تظهر المخرجات المشابهة لما يلي:
    NAME                         TYPE      VALUE
    ---------------------------- --------- -----------------------------
    log_archive_dest_1           string       
                                           location=USE_DB_RECOVERY_FILE_
                                           DEST, valid_for=(ALL_LOGFILES,
                                           ALL_ROLES)
    log_archive_dest_10          string
    log_archive_dest_11          string
    log_archive_dest_12          string
    log_archive_dest_13          string
    log_archive_dest_14          string
    log_archive_dest_15          string
    ...
    log_archive_dest_2           string    service="oci-orcl", ASYNC
                                           NOAF FIRM delay=0 optional
                                           compression=disable
                                           max_failure=0 max_connections
                                           =1 reopen=300 db_unique_name=
                                           "source_db_unique_name"
                                           net_timeout=30, valid_for=
                                           (online_logfile,all_roles)
    ...
    
    ويجب أن تكون المخرجات مشابهة لمخرجات log_archive_dest_2، بحيث تشير الخدمة إلى قاعدة البيانات البديلة (قاعدة البيانات الهدف )، والتي في هذا المثال هي oci-orcl.
  6. تحقق من معلمة LOG_ARCHIVE_CONFIG.
    SHOW PARAMETER LOG_ARCHIVE_CONFIG#
    تظهر المخرجات المشابهة لما يلي:
    
    NAME                         TYPE      VALUE
    ---------------------------- --------- -----------------------------------------------------------
    log_archive_config           string    dg_config=(source_db_unique_name,target_db_unique_name)
    
  7. تحقق من معلمة FAL_SERVER.
    SHOW PARAMETER FAL_SERVER
    تظهر المخرجات المشابهة لما يلي:
    
    NAME                        TYPE      VALUE
    --------------------------- --------- ----------
    fal_server                  string    <tns_entry_of_primary>  
  8. تحقق من معلمة LOG_ARCHIVE_FORMAT.
    SHOW PARAMETER LOG_ARCHIVE_FORMAT
    تظهر المخرجات المشابهة لما يلي:
    
    NAME                        TYPE      VALUE
    --------------------------- --------- --------------
    log_archive_format          string    %t_%s_%r.dbf

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

يمكنك استخدام dgmrgl لإكمال تدقيق وسيط Oracle Data Guard في قاعدة البيانات الأساسية (قاعدة البيانات المصدر).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات الأساسي (قاعدة البيانات المصدر).
  2. كرر الخطوات من 5 إلى 8 في الموضوع تدقيق وسيط Oracle Data Guard في قاعدة البيانات البديلة في قاعدة البيانات الأساسية (قاعدة البيانات المصدر).
  3. بدء البرنامج المساعد لسطر أوامر dgmgrl:
    dgmgrl
  4. اتصل كمستخدم SYS من نظام قاعدة البيانات الأساسي أو قاعدة البيانات البديلة. على سبيل المثال ، للدخول إلى قاعدة بيانات رئيسية باسم TNS الخاص بها هو OCIC-ORCL:
    connect sys@primary_db_tnsnames_name
    Enter password: password
  5. تحقق من تكوين Oracle Data Guard.
    show configuration verbose
    تظهر المخرجات المشابهة لما يلي:
    Configuration - configuration_name
     
      Protection Mode: MaxPerformance
      Members:
      source_db_unique_name           - Primary database
        target_db_unique_name         - Physical standby database
     
      Properties:
        FastStartFailoverThreshold      = '30'
        OperationTimeout                = '30'
        TraceLevel                      = 'USER'
        FastStartFailoverLagLimit       = '30'
        CommunicationTimeout            = '180'
        ObserverReconnect               = '0'
        FastStartFailoverAutoReinstate  = 'TRUE'
        FastStartFailoverPmyShutdown    = 'TRUE'
        BystandersFollowRoleChange      = 'ALL'
        ObserverOverride                = 'FALSE'
        ExternalDestination1            = ''
        ExternalDestination2            = ''
        PrimaryLostWriteAction          = 'CONTINUE'
     
    Fast-Start Failover: DISABLED
  6. تحقق من الحالة في قاعدة البيانات البديلة (قاعدة البيانات الهدف). على سبيل المثال:
    show database verbose target_db_unique_name
    بعد إكمال هذه الخطوات ، يجب أن تقوم باختبار أن تكوين Oracle Data Guard يعمل كما هو متوقع من خلال تنفيذ عمليات التبديل في كلا الاتجاهين.

تنفيذ الترحيل

لإكمال الترحيل ، يجب تنفيذ عملية تبديل من قاعدة البيانات الأساسية (قاعدة البيانات المصدر) إلى قاعدة البيانات البديلة (قاعدة البيانات الهدف).

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات الأساسي (قاعدة البيانات المصدر).
  2. بدء البرنامج المساعد لسطر الأوامر dgmgrl.
    dgmgrl 
  3. الاتصال كمستخدم SYS من نظام قاعدة البيانات البديل أو الأساسي على سبيل المثال ، للدخول إلى قاعدة بيانات أساسية يكون اسم TNS الخاص بها هو oci - orcl:.
    connect sys@ocic-orcl
    Enter password: password
  4. تحقق من التكوين.
    show configuration verbose
  5. في مخرجات التكوين المطولة ، تحقق من أن إعداد حالة قاعدة البيانات يقول SUCCESS.
  6. تحقق من تكوين قاعدة البيانات الأساسية (قاعدة البيانات المصدر).
    show database verbose source_db_unique_name
    يجب أن توضح مخرجات مطول قاعدة البيانات أن يكون الدور أساسيًا وأن يكون إعداد StaticConnectIdentifier هو نفسه DGConnectIdentifier.
  7. تنفيذ عملية تبديل إلى قاعدة البيانات البديلة (قاعدة البيانات الهدف).
    switchover to target_db_unique_name
    يجب أن تشير المخرجات إلى حدوث عملية التبديل بين قاعدتي البيانات.
  8. قم بتشغيل إظهار التكوين للتحقق من عدم وجود أخطاء أو تحذيرات:
    show configuration;

خطوات ما بعد الترحيل

بعد إكمال ترحيل قاعدة بيانات Oracle من خادم Oracle Cloud Infrastructure Compute Classic إلى خادم Oracle Cloud Infrastructure الذي يستخدم نظام قاعدة بيانات جهاز ظاهري ، يجب تدقيق الترحيل ثم إزالة التكوين من قاعدة البيانات الأساسية (قاعدة البيانات المصدر).

اختبار تكوين Oracle Data Guard في قاعدة البيانات البديلة

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

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

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف).
  2. ابدأ تشغيل البرنامج المساعد dgmgrl. على سبيل المثال:
    dgmgrl sys@target_db
    Enter password: password
  3. تنفيذ عملية تبديل إلى قاعدة البيانات المصدر ، والتي ستأخذ قاعدة البيانات الهدف الدور البديل.
    switchover to source_db_unique_name;
    يجب أن تشير المخرجات إلى حدوث عملية التبديل بين قاعدتي البيانات.
  4. (اختياري) لمنع التغييرات في قاعدة البيانات البديلة الجديدة حتى يتم تحديد قاعدة البيانات الأساسية الجديدة لتكون عمل كامل ، قم بتعطيل ميزة Redo Apply بشكل مؤقت.
    edit database source_db_unique_name set state = 'APPLY-OFF';
    إذا قمت بتنفيذ عملية تبديل أخرى بحيث تصبح قاعدة البيانات الهدف الآن هي قاعدة البيانات البديلة ، فيمكنك تنفيذ عملية APPLY-OFF لمنع تحديث قاعدة البيانات المصدر. يتيح هذا إمكانية وضع قاعدة البيانات الهدف في الخدمة ، كما يحتفظ بقاعدة البيانات المصدر كنسخة احتياطية من نقطة زمنية في حالة فشل منطقي في التكوين الجديد.
  5. (اختياري) لإعادة بدء سمة التطبيق:
    edit database source_db_unique_name set state = 'APPLY-ON';
  6. الخروج من dgmgrl.
    exit
  7. تنفيذ عملية تبديل إلى قاعدة البيانات الهدف ، والتي ستجعل قاعدة البيانات المصدر الدور البديل.
    switchover to target_db_unique_name;
    يجب أن تشير المخرجات إلى حدوث عملية التبديل بين قاعدتي البيانات.
  8. اختبار الاتصال بقاعدة البيانات الأساسية الجديدة. على سبيل المثال ، بعد تصدير الاسم الفريد للهدف ، اتصل كمستخدم SYS وحدد من مساحة جدول مشفرة. في هذا المثال ، جدول HR.EMPLOYEES مشفر.
    exit
  9. اختبار الاتصال بقاعدة البيانات الأساسية الجديدة. على سبيل المثال ، بعد تصدير الاسم الفريد للهدف ، اتصل كمستخدم SYS وحدد مساحة جدول مشفرة. في هذا المثال ، جدول HR.EMPLOYEES مشفر.
    export ORACLE_UNQNAME=target_db_unique_name
     
    sqlplus sys@target_TNS_name
    Password: password
     
    SQL> ALTER SESSION SET CONTAINER = PDB1;
    SQL> SELECT * FROM HR.EMPLOYEES;
     
    SQL> EXIT

تنظيف قاعدة البيانات البديلة

بعد إكمال الترحيل واختباره ، يمكنك إزالة تكوين Oracle Data Guard من قاعدة البيانات البديلة (قاعدة البيانات الهدف). لا يلزم إزالة قاعدة البيانات المصدر الأصلية. في هذه المرحلة ، تكون قاعدة البيانات البديلة هي قاعدة البيانات المصدر الجديدة.

  1. استخدم SSH للدخول إلى خادم قاعدة البيانات البديلة (قاعدة البيانات الهدف) وقم بتسجيل الدخول إلى Oracle Data Guard dgmgrl utility.
  2. تحقق من التكوين.
    show configuration
  3. إذا لم يقم التكوين بإظهار Protection Mode: MaxPerformance، فقم بتعيين Oracle Data Guard لاستخدام وضع حماية MaxPerformance.
    edit configuration set protection mode as maxperformance
  4. قم بتعطيل التكوين ثم إزالته.
    edit database source_db_unique_name set state = 'APPLY-OFF';
     
    disable configuration;
     
    remove configuration;
     
    exit
  5. اتصل بطبعة قاعدة البيانات كمستخدم يمتلك امتيازات مسئول SYSDBA.
    sqlplus / as sysdba
  6. تحقق من معلمات DG_BROKER_CONFIG_FILE.
    SHOW PARAMETER DB_BROKER_CONFIG_FILE
    ويجب أن تعرض المخرجات ملفات البيانات والاستعادة المقترنة بهذا التكوين ، والتي تسمى dg_broker_config_file1 و dg_broker_config_file2.
  7. ابدأ نافذة نهاية طرفية أخرى وقم بتسجيل الدخول إلى asmcmd كمستخدم شبكة.
  8. قم بإزالة ملفات تكوين Oracle Data Guard التي تم سردها عند إيداع معلمات DG_BROKER_CONFIG_FILE.
  9. الرجوع إلى النافذة التي تقوم بتشغيل SQL*Plus.
  10. قم بتنفيذ جمل ALTER SYSTEM التالية:
    ALTER SYSTEM SET DG_BROKER_START=FALSE SID='*' SCOPE=BOTH;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1='' SID='*' SCOPE=SPFILE;
    ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2='' SID='*' SCOPE=SPFILE;
    ALTER SYSTEM RESET LOG_ARCHIVE_CONFIG SID='*' SCOPE=SPFILE;
  11. تحقق من المعلمات التالية:
    SHOW PARAMETER DB_FILE_NAME_CONVERT
    SHOW PARAMETER LOG_FILE_NAME_CONVERT
    SHOW PARAMETER LOG_ARCHIVE_DEST
    SHOW PARAMETER LOG_ARCHIVE_DEST_STATE
    SHOW PARAMETER STANDBY_ARCHIVE_DEST
    SHOW PARAMETER FAL
  12. إذا تم تعيين أي من المعلمات السابقة ، فقم بإعادة تعيين المعلمات لاستخدام قيم فارغة. على سبيل المثال ، لـ STANDBY_ARCHIVE_DEST:
    ALTER SYSTEM SET STANDBY_ARCHIVE_DEST='' SID='*' SCOPE=SPFILE;
  13. أعد تشغيل قاعدة البيانات.
    SHUTDOWN IMMEDIATE
    STARTUP
  14. قم بإسقاط السجلات البديلة من قاعدة البيانات الأساسية (قاعدة البيانات المصدر).
    1. ابحث عن أرقام المجموعة لسجلات إعادة قاعدة البيانات البديلة الموجودة في قاعدة البيانات الأساسية الجديدة (التي كانت قاعدة البيانات الهدف سابقًا).
      SELECT GROUP# FROM V$STANDBY_LOG;Output similar to the following appears:    GROUP#
      ----------
               5
               6
               7
               8
               9
    2. إزالة السجلات البديلة. على سبيل المثال:
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 5;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 6;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 7;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 8;
      ALTER DATABASE DROP STANDBY LOGFILE GROUP 9;
  15. (اختياري) قم بتغيير معلمات DB_BLOCK_CHECKSUM و DB_BLOCK_CHECKING.
    القيم الافتراضية هي DB_BLOCK_CHECKSUM=TYPICAL و DB_BLOCK_CHECKING=FALSE.
  16. الخروج من SQL*Plus.
    EXIT