تنفيذ Oracle Golden Gate على جهاز ظاهري Azure Linux

ينطبق على: ✔️ أجهزة ظاهرية تعمل بنظام التشغيل Linux

يُستخدم "Azure CLI" لإنشاء موارد "Azure" وإدارتها من سطر الأوامر أو من خلال البرامج النصية. يوضح هذا الدليل بالتفصيل كيفية استخدام Azure CLI لنشر قاعدة بيانات Oracle 19c من صورة معرض Azure Marketplace.

يوضح لك هذا المستند خطوة بخطوة كيفية إنشاء Oracle Golden Gate وتثبيته وتكوينه على جهاز Azure الظاهري. في هذا البرنامج التعليمي، يتم إعداد جهازين ظاهريين في مجموعة توفر في منطقة واحدة. يمكن استخدام نفس البرنامج التعليمي لإعداد OracleGolden Gate للأجهزة الظاهرية في مناطق توفر مختلفة في منطقة Azure واحدة أو للأجهزة الظاهرية التي تم إعدادها في منطقتين مختلفتين.

قبل البدء، تأكد من تثبيت Azure CLI. لمزيد من المعلومات، راجع دليل تثبيت Azure CLI.

مقدمة

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

استخدم GoldenGate بشكل أساسي لحالات النسخ المتماثل غير المتجانسة، مثل نسخ البيانات من قواعد بيانات مصدر مختلفة إلى قاعدة بيانات واحدة. على سبيل المثال، مستودع بيانات. يمكنك أيضا استخدامه للترحيلات عبر الأنظمة الأساسية، مثل من بيئات SPARC و AIX إلى Linux x86، وسيناريوهات قابلية الوصول العالية وقابلية التوسع المتقدمة.

بالإضافة إلى ذلك، تعد GoldenGate مناسبة أيضا لترحيلات وقت التعطل التي تقترب من الصفر لأنها تدعم عمليات الترحيل عبر الإنترنت بأقل قدر من التعطيل لأنظمة المصدر.

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

أعِد البيئة

لإجراء تثبيت Oracle Golden Gate، تحتاج إلى إنشاء جهازين ظاهريين من Azure على نفس مجموعة التوفر. صورة Marketplace التي تستخدمها لإنشاء الأجهزة الظاهرية هي Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1.

تحتاج أيضا إلى أن تكون على دراية بمحرر Unix vi وأن يكون لديك فهم أساسي ل X Server.

الجدول التالي هو ملخص لتكوين البيئة:

الموقع الأساسي موقع النسخ المتماثل
إصدار أوراكل Oracle Database 19.3.1.0 Oracle Database 19.3.1.0
اسم الجهاز ggVM1 ggVM2
نظام التشغيل Oracle Linux 7.x Oracle Linux 7.x
Oracle SID CDB1 CDB1
مخطط النسخ المتماثل TEST TEST
النسخ المتماثل/مالك Golden Gate C##GGADMIN REPUSER
عملية Golden Gate EXTORA REPORA

تسجيل الدخول إلى Azure

  1. افتح shell المفضل لديك على Windows أو Linux أو Azure Shell.

  2. سجل الدخول إلى اشتراكك في Azure باستخدام أمر تسجيل دخول az. ثم اتبع الإرشادات التي تظهر على الشاشة.

    $ az login
    
  3. تأكد من أنك متصل بالاشتراك الصحيح عن طريق التحقق من اسم الاشتراك و/أو المعرف.

    $ az account show
    
    {
      "environmentName": "XXXXX",
      "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "id": "<SUBSCRIPTION_ID>",
      "isDefault": true,
      "managedByTenants": [],
      "name": "<SUBSCRIPTION_NAME>",
      "state": "Enabled",
      "tenantId": XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
      "user": {
        "cloudShellID": true,
        "name": "aaaaa@bbbbb.com",
        "type": "user"
      }
    }
    

إنشاء مفاتيح المصادقة

نستخدم المصادقة المستندة إلى ملف المفتاح مع ssh للاتصال بالجهاز الظاهري لقاعدة بيانات Oracle. تأكد من إنشاء ملفات المفاتيح الخاصة (المسماة id_rsa) والعامة (المسماة id_rsa.pub) على shell الخاص بك.

يعتمد موقع الملفات الرئيسية على نظام المصدر الخاص بك.

Windows: ٪USERPROFILE٪.ssh Linux: ~/.ssh

إذا لم تكن موجودة، يمكنك إنشاء زوج keyfile جديد.

ssh-keygen -m PEM -t rsa -b 4096

يتم إنشاء دليل .ssh والملفات الرئيسية. لمزيد من المعلومات، راجع إنشاء مفاتيح SSH وإدارتها للمصادقة على جهاز Linux الظاهري في Azure

إنشاء مجموعة موارد

لإنشاء مجموعة موارد، استخدم الأمر إنشاء مجموعة az: مجموعة موارد Azure عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها.

$ az group create --name GoldenGateOnAzureLab --location westus

إنشاء شبكة وتكوينها

إنشاء شبكة ظاهرية

استخدم الأمر التالي لإنشاء الشبكة الظاهرية التي تستضيف الموارد التي ننشئها في هذا المختبر.

$ az network vnet create \
  --name ggVnet \
  --resource-group GoldenGateOnAzureLab \
  --address-prefixes "10.0.0.0/16" \
  --subnet-name ggSubnet1 \
  --subnet-prefixes "10.0.0.0/24"

إنشاء مجموعة أمان الشبكة (NSG)

  1. إنشاء مجموعة أمان الشبكة (NSG) لتأمين شبكتك الظاهرية.

    $ az network nsg create \
      --resource-group GoldenGateOnAzureLab \
      --name ggVnetNSG
    
  2. إنشاء قاعدة NSG للسماح بالاتصال داخل الشبكة الظاهرية.

    $ az network nsg rule create  --resource-group GoldenGateOnAzureLab --nsg-name ggVnetNSG \
        --name ggAllowVnet \
        --protocol '*' --direction inbound --priority 3400 \
        --source-address-prefix 'VirtualNetwork' --source-port-range '*' \
        --destination-address-prefix 'VirtualNetwork' --destination-port-range '*' --access allow
    
  3. إنشاء قاعدة NSG لرفض جميع الاتصالات الواردة

    $ az network nsg rule create \
      --resource-group GoldenGateOnAzureLab \
      --nsg-name ggVnetNSG \
      --name ggDenyAllInBound \
      --protocol '*' --direction inbound --priority 3500 \
      --source-address-prefix '*' --source-port-range '*' \
      --destination-address-prefix '*' --destination-port-range '*' --access deny
    
  4. تعيين NSG إلى الشبكة الفرعية حيث نستضيف خوادمنا.

    $ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
    

إنشاء شبكة Bastion

  1. إنشاء شبكة فرعية Bastion. يجب أن يكون اسم الشبكة الفرعية AzureBastionSubnet

    $ az network vnet subnet create  \
        --resource-group GoldenGateOnAzureLab \
        --name AzureBastionSubnet \
        --vnet-name ggVnet \
        --address-prefixes 10.0.1.0/24
    
  2. إنشاء IP عام ل Bastion

    $ az network public-ip create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastionIP \
        --sku Standard
    
  3. إنشاء مورد Azure Bastion. يستغرق نشر المورد حوالي 10 دقائق.

    $ az network bastion create \
        --resource-group GoldenGateOnAzureLab \
        --name ggBastion \
        --public-ip-address ggBastionIP \
        --vnet-name ggVnet \
        --sku Standard \
        --enable-tunneling \
        --enable-ip-connect true
    

إنشاء X Server VM (ggXServer)

استبدل كلمة المرور الخاصة بك وقم بتشغيل الأمر التالي لإنشاء جهاز ظاهري لمحطة عمل Windows حيث نقوم بنشر X Server.

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggXServer \
     --image MicrosoftWindowsDesktop:Windows-10:win10-22h2-pro-g2:19045.2604.230207 \
     --size Standard_DS1_v2  \
     --vnet-name ggVnet \
     --subnet ggSubnet1 \
     --public-ip-sku Standard \
     --nsg "" \
     --data-disk-delete-option Delete \
     --os-disk-delete-option Delete \
     --nic-delete-option Delete \
     --admin-username azureuser \
     --admin-password <ENTER_YOUR_PASSWORD_HERE>

الاتصال ب ggXServer من خلال Bastion

اتصل ب ggXServer باستخدام Bastion.

  1. انتقل إلى ggXServer من مدخل Microsoft Azure.
  2. انتقل إلى نظرة عامة في الجزء الأيسر
  3. حدد Connect>Bastion في القائمة في الأعلى
  4. حدد علامة التبويب Bastion
  5. انقر فوق استخدام Bastion

إعداد ggXServer لتشغيل X Server

X Server مطلوب للخطوات اللاحقة من هذا المختبر. نفذ الخطوات التالية لتثبيت X Server وبدء تشغيله.

  1. قم بتنزيل Xming X Server لنظام التشغيل Windows إلى ggXServer وتثبيته مع جميع الخيارات الافتراضية.

  2. تأكد من عدم تحديد Launch في نهاية التثبيت

  3. تشغيل تطبيق "XLAUNCH" من قائمة البدء.

  4. تحديد عدة Windows

    لقطة شاشة لخطوة معالج XLaunch 1.

  5. حدد بدء بدون عميل

    لقطة شاشة لخطوة معالج XLaunch 2.

  6. حدد لا يوجد عنصر تحكم في الوصول

    لقطة شاشة لخطوة معالج XLaunch 3.

  7. حدد السماح بالوصول للسماح ب X Server من خلال جدار حماية Windows

    لقطة شاشة للخطوة 4 لمعالج XLaunch.

إذا قمت بإعادة تشغيل الجهاز الظاهري ggXServer ، فاتبع الخطوات من 2 إلى 6 أعلاه لإعادة تشغيل تطبيق X Server.

إنشاء أجهزة ظاهرية لقاعدة بيانات Oracle

لهذا التمرين المعملي، نقوم بإنشاء أجهزة ggVM1 ظاهرية ومن ggVM2 صورة Oracle Database 19c. إذا لم تكن موجودة بالفعل في موقع المفتاح الافتراضي، يقوم هذا الأمر أيضا بإنشاء مفاتيح SSH. ولاستخدام مجموعة محددة من المفاتيح، استخدم الخيار --ssh-key-value. إذا قمت بالفعل بإنشاء مفاتيح SSH الخاصة بك في قسم إنشاء مفاتيح المصادقة ، فسيتم استخدام هذه المفاتيح.

عند إنشاء معلمة جهاز size ظاهري جديد يشير إلى حجم ونوع الجهاز الظاهري الذي تم إنشاؤه. اعتمادا على منطقة Azure التي حددتها لإنشاء جهاز ظاهري وإعدادات اشتراكك، قد لا تتوفر لك بعض أحجام وأنواع الجهاز الظاهري لاستخدامها. يستخدم المثال التالي الحد الأدنى للحجم المطلوب لهذا المختبر Standard_DS1_v2. إذا كنت ترغب في تغيير مواصفات الجهاز الظاهري، فحدد أحد الأحجام المتوفرة من أحجام أجهزة Azure الظاهرية. لأغراض الاختبار، يمكنك الاختيار من بين أنواع الأجهزة الظاهرية للأغراض العامة (D-Series). بالنسبة إلى عمليات التوزيع الإنتاجية أو التجريبية، تعد الذاكرة المحسنة (السلسلة الإلكترونية وسلسلة M) أكثر ملاءمة.

إنشاء ggVM1 (أساسي)

$ az vm create \
     --resource-group GoldenGateOnAzureLab \
     --name ggVM1 \
     --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
     --size Standard_DS1_v2 \
     --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 1

إنشاء ggVM2 (نسخ متماثل)

$ az vm create \
    --resource-group GoldenGateOnAzureLab \
    --name ggVM2 \
    --image Oracle:oracle-database-19-3:oracle-database-19-0904:19.3.1 \
    --size Standard_DS1_v2  \
    --generate-ssh-keys \
    --admin-username azureuser \
    --vnet-name ggVnet \
    --subnet ggSubnet1 \
    --public-ip-address "" \
    --nsg "" \
    --zone 2

الاتصال ب ggVM1 (أساسي)

الاتصال ب ggVM1 باستخدام Bastion.

  1. انتقل إلى ggVM1 من مدخل Microsoft Azure.
  2. انتقل إلى نظرة عامة في الجزء الأيسر.
  3. حدد Connect>Bastion في القائمة في الأعلى
  4. حدد علامة التبويب Bastion
  5. انقر فوق استخدام Bastion

إنشاء قاعدة البيانات على ggVM1 (أساسي)

تم تثبيت برنامج Oracle بالفعل على صورة Marketplace، لذلك فإن الخطوة التالية هي إنشاء قاعدة البيانات.

  1. قم بتشغيل البرنامج كمستخدم oracle .
$ sudo su - oracle
  1. إنشاء قاعدة البيانات باستخدام الأمر التالي. قد يستغرق إكمال هذا الأمر من 30 إلى 40 دقيقة.
$ dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname cdb1 \
   -sid cdb1 \
   -responseFile NO_VALUE \
   -characterSet AL32UTF8 \
   -sysPassword OraPasswd1 \
   -systemPassword OraPasswd1 \
   -createAsContainerDatabase true \
   -numberOfPDBs 1 \
   -pdbName pdb1 \
   -pdbAdminPassword OraPasswd1 \
   -databaseType MULTIPURPOSE \
   -automaticMemoryManagement false \
   -storageType FS \
   -datafileDestination "/u01/app/oracle/oradata/" \
   -ignorePreReqs

يجب أن يبدو الإخراج مشابها للاستجابة التالية.

Copying database files
1% complete
2% complete
8% complete
13% complete
19% complete
27% complete
Creating and starting Oracle instance
29% complete
32% complete
33% complete
34% complete
38% complete
42% complete
43% complete
45% complete
Completing Database Creation
48% complete
51% complete
53% complete
62% complete
70% complete
72% complete
Creating Pluggable Databases
78% complete
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/cdb1/cdb1.log" for more details.
  1. تعيين متغيرات ORACLE_SID LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. قم بتشغيل التالي لإضافة ORACLE_SID LD_LIBRARY_PATH إلى ملف .bashrc، بحيث يتم حفظ هذه الإعدادات لتسجيل الدخول في المستقبل. يجب تعيين متغير ORACLE_HOME بالفعل في ملف .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. بدء تشغيل مستمع Oracle
$ lsnrctl start

الاتصال ب ggVM2 (النسخ المتماثل)

الاتصال ب ggVM2 باستخدام Bastion.

  1. انتقل إلى ggVM2 من مدخل Microsoft Azure.
  2. انتقل إلى نظرة عامة في الجزء الأيسر.
  3. حدد Connect>Bastion في القائمة في الأعلى
  4. حدد علامة التبويب Bastion
  5. انقر فوق استخدام Bastion

فتح منافذ جدار الحماية ل ggVM1

تكوين جدار الحماية للسماح بالاتصالات من ggVM1. يتم تشغيل الأمر التالي على ggVM2.

$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit

إنشاء قاعدة البيانات على ggVM2 (النسخ المتماثل)

  1. التبديل إلى oracle المستخدم إذا لزم الأمر
$ sudo su - oracle
  1. إنشاء قاعدة البيانات
$ dbca -silent \
   -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbname cdb1 \
   -sid cdb1 \
   -responseFile NO_VALUE \
   -characterSet AL32UTF8 \
   -sysPassword OraPasswd1 \
   -systemPassword OraPasswd1 \
   -createAsContainerDatabase true \
   -numberOfPDBs 1 \
   -pdbName pdb1 \
   -pdbAdminPassword OraPasswd1 \
   -databaseType MULTIPURPOSE \
   -automaticMemoryManagement false \
   -storageType FS \
   -datafileDestination "/u01/app/oracle/oradata/" \
   -ignorePreReqs
  1. عيّن المتغيرات ORACLE_SID ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
  1. قم بتشغيل التالي لإضافة ORACLE_SID LD_LIBRARY_PATH إلى ملف .bashrc، بحيث يتم حفظ هذه الإعدادات لتسجيل الدخول في المستقبل. يجب تعيين متغير ORACLE_HOME بالفعل في ملف .bashrc.
$ sed -i '$ a export ORACLE_SID=cdb1' .bashrc
$ sed -i '$ a export LD_LIBRARY_PATH=$ORACLE_HOME/lib' .bashrc
  1. بدء تشغيل مستمع Oracle
$ lsnrctl start

تكوين Golden Gate على ggVM1

اتبع الخطوات الواردة في هذا القسم لتثبيت البوابة الذهبية وتكوينها.

تمكين وضع سجل الأرشيف على ggVM1 (أساسي)

  1. الاتصال ب sqlplus
$ sqlplus / as sysdba
  1. تمكين سجل الأرشيف
SQL> SELECT log_mode FROM v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
  1. مكّن فرض التسجيل، وتأكد من وجود ملف سجل واحد على الأقل.
SQL> ALTER DATABASE FORCE LOGGING;
SQL> ALTER SYSTEM SWITCH LOGFILE;
SQL> ALTER SYSTEM set enable_goldengate_replication=true;
SQL> ALTER PLUGGABLE DATABASE PDB1 OPEN;
SQL> ALTER SESSION SET CONTAINER=CDB$ROOT;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SESSION SET CONTAINER=PDB1;
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> EXIT;

تحميل برنامج Golden Gate

  1. قم بتنزيل ملف 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip من صفحة تنزيل Oracle Golden Gate. تحت عنوان التنزيل Oracle GoldenGate 21.3.0.0.0 ل Oracle على Linux x86-64.

  2. بعد تنزيل ملف .zip إلى كمبيوتر العميل، يمكنك استخدام بروتوكول النسخ الآمن (SCP) لنسخ الملفات إلى أجهزتك الظاهرية (ggVM1 وggVM2). تأكد من أن scp الأمر يشير إلى مسار صحيح لملف .zip.

  3. نسخ إلى ggVM1

    1. تسجيل الدخول والتأكد من أنك تستخدم الاشتراك الصحيح حسب الضرورة كما هو موضح في تسجيل الدخول إلى Azure

    2. افتح النفق إلى الجهاز الظاهري الهدف باستخدام أمر PowerShell التالي

      $ggVM1id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM1 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM1id --resource-port 22 --port 57500
      
    3. اترك موجه الأوامر الأول قيد التشغيل وافتح موجه أوامر ثان للاتصال بالجهاز الظاهري الهدف من خلال النفق. في نافذة موجه الأوامر الثانية هذه، يمكنك تحميل الملفات من جهازك المحلي إلى الجهاز الظاهري الهدف باستخدام الأمر التالي. يجب أن يكون ملف المفاتيح الصحيح id_rsa للوصول إلى الجهاز الظاهري موجودا في .ssh الدليل أو يمكنك الإشارة إلى ملف مفتاح مختلف باستخدام -i معلمة للأمر scp .

       scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      
  4. نسخ إلى ggVM2

    1. افتح النفق إلى الجهاز الظاهري الهدف باستخدام أمر PowerShell التالي

      $ggVM2id=$(az vm show --resource-group GoldenGateOnAzureLab --name ggVM2 --query 'id' --output tsv)
      az network bastion tunnel --name ggBastion --resource-group GoldenGateOnAzureLab --target-resource-id $ggVM2id --resource-port 22 --port 57501
      
    2. اترك موجه الأوامر الأول قيد التشغيل وافتح موجه أوامر ثان للاتصال بالجهاز الظاهري الهدف من خلال النفق. في نافذة موجه الأوامر الثانية هذه، يمكنك تحميل الملفات من جهازك المحلي إلى الجهاز الظاهري الهدف باستخدام الأمر التالي. يجب أن يكون ملف المفاتيح الصحيح id_rsa للوصول إلى الجهاز الظاهري موجودا في .ssh الدليل أو يمكنك الإشارة إلى ملف مفتاح مختلف باستخدام -i معلمة للأمر scp .

      scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip"  azureuser@127.0.0.1:.
      

تثبيت برنامج Golden Gate

  1. الاتصال ب ggVM1 باستخدام Bastion.

    1. انتقل إلى ggVM1 من مدخل Microsoft Azure.
    2. انتقل إلى نظرة عامة في اللوحة اليسرى
    3. حدد Connect>Bastion في القائمة في الأعلى
    4. حدد علامة التبويب Bastion
    5. انقر فوق استخدام Bastion
  2. نقل ملف .zip إلى المجلد /opt ، ثم تغيير المالك

    $ sudo su -
    $ mv /home/azureuser/*.zip /opt
    
  3. فك ضغط الملفات (تثبيت الأداة المساعدة فك ضغط إذا لم تكن مثبتة بالفعل)

    $ yum install unzip
    $ cd /opt
    $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
    
  4. تغيير الإذن

    $ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome
    $ exit
    
  5. بدء مثبت Golden Gate

    $ sudo su - oracle
    $ export DISPLAY=10.0.0.4:0.0
    $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1
    $ ./runInstaller
    

    يفتح المثبت على ggXServer.

  6. حدد "Oracle GoldenGate for Oracle Database 21c". ثم حدد التالي للمتابعة.

    لقطة شاشة لمعالج تثبيت Golden Gate الخطوة 1.

  7. قم بتعيين موقع البرنامج إلى /u01/app/oracle/product/19.0.0/oggcore_1، وتأكد من تحديد مربع Start Manager وحدد Next للمتابعة.

    لقطة شاشة لمعالج تثبيت Golden Gate الخطوة 2.

  8. في شاشة الملخص، حدد تثبيت للمتابعة.

    لقطة شاشة لمعالج تثبيت Golden Gate الخطوة 3.

  9. انتظر حتى ينتهي التثبيت.

    لقطة شاشة لمعالج تثبيت Golden Gate الخطوة 4.

  10. حدد إغلاق للمتابعة.

لقطة شاشة لمعالج تثبيت Golden Gate الخطوة 5.

  1. الاتصال ب ggVM2 باستخدام Bastion.

    1. انتقل إلى ggVM2 من مدخل Microsoft Azure.
    2. انتقل إلى نظرة عامة في الجزء الأيسر
    3. حدد Connect>Bastion في القائمة في الأعلى
    4. حدد علامة التبويب Bastion
    5. انقر فوق استخدام Bastion
  2. كرر الخطوات من 2 إلى 10 أعلاه على ggVM2

إعداد الخدمة على ggVM1 (أساسي)

  1. إنشاء ملف tnsnames.ora أو تحديثه.

    $ sudo su - oracle
    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    عند فتح محرر vi، يجب الضغط i للتبديل إلى وضع الإدراج، ثم نسخ محتويات الملف ولصقها واضغط Esc على المفتاح، :wq! لحفظ الملف.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. إنشاء حسابات مالك ومستخدم Golden Gate.

    ملاحظة

    يجب أن يحتوي حساب المالك على بادئة C##.

    $ sqlplus / as sysdba
    
     SQL> CREATE USER C##GGADMIN identified by ggadmin;
     SQL> EXEC dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'ALL');
     SQL> GRANT DBA to C##GGADMIN container=all;
     SQL> connect C##GGADMIN/ggadmin
     SQL> ALTER SESSION SET CONTAINER=PDB1;
     SQL> EXIT;
    
  3. إنشاء حساب مستخدم اختبار Golden Gate

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> connect test/test@pdb1
    SQL> @demo_ora_create
    SQL> @demo_ora_insert
    SQL> EXIT;
    
  4. تكوين ملف معلمة الاستخراج.

    بدء تشغيل واجهة سطر أوامر Golden gate (ggsci):

    $ sudo su - oracle
    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> DBLOGIN USERID test@pdb1, PASSWORD test
    Successfully logged into database  pdb1
    GGSCI>  ADD SCHEMATRANDATA pdb1.test
    2017-05-23 15:44:25  INFO    OGG-01788  SCHEMATRANDATA has been added on schema test.
    2017-05-23 15:44:25  INFO    OGG-01976  SCHEMATRANDATA for scheduling columns has been added on schema test.
    
    GGSCI> EDIT PARAMS EXTORA
    
  5. اضغط i على المفتاح للتبديل إلى وضع الإدراج ونسخه ولصقه (انقر بزر الماوس الأيمن فوق نافذة SSH) بعد ملف معلمة EXTRACT. اضغط على مفتاح Esc، :wq! لحفظ الملف.

    EXTRACT EXTORA
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.5, MGRPORT 7809
    RMTTRAIL ./dirdat/rt
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    TABLE pdb1.test.TCUSTMER;
    TABLE pdb1.test.TCUSTORD;
    
  6. سجل extract--integrated extract.

    GGSCI> dblogin userid C##GGADMIN@cdb1, password ggadmin
    Successfully logged into database CDB$ROOT.
    
    GGSCI> REGISTER EXTRACT EXTORA DATABASE CONTAINER(pdb1)
    
    2023-03-03 19:37:01  INFO    OGG-02003  Extract group EXTORA successfully registered with database at SCN 2142014.
    
    GGSCI> exit
    
  7. إعداد استخراج نقاط التحقق وبدء استخراج في الوقت الحقيقي

    $ ./ggsci
    
    GGSCI>  ADD EXTRACT EXTORA, INTEGRATED TRANLOG, BEGIN NOW
    EXTRACT (Integrated) added.
    
    GGSCI>  ADD RMTTRAIL ./dirdat/rt, EXTRACT EXTORA, MEGABYTES 10
    RMTTRAIL added.
    
    GGSCI>  START EXTRACT EXTORA
    
    Sending START request to MANAGER ...
    EXTRACT EXTORA starting
    
    GGSCI > INFO ALL
    
    Program     Status      Group       Lag at Chkpt  Time Since Chkpt
    
    MANAGER     RUNNING
    EXTRACT     RUNNING     EXTORA      00:00:11      00:00:04
    
    GGSCI > EXIT
    

    في هذه الخطوة، يمكنك العثور على SCN البدء، والذي يتم استخدامه لاحقا، في قسم مختلف.

    $ sqlplus / as sysdba
    
    SQL> alter session set container = pdb1;
    SQL> SELECT current_scn from v$database;
    CURRENT_SCN
    -----------
       2172191
    SQL> EXIT;
    
    $ ./ggsci
    GGSCI> EDIT PARAMS INITEXT
    

    عند فتح محرر vi، يجب الضغط i للتبديل إلى وضع الإدراج، ثم نسخ محتويات الملف ولصقها واضغط Esc على المفتاح، :wq! لحفظ الملف.

    EXTRACT INITEXT
    USERID C##GGADMIN@cdb1, PASSWORD ggadmin
    RMTHOST 10.0.0.6, MGRPORT 7809
    RMTTASK REPLICAT, GROUP INITREP
    TABLE pdb1.test.*, SQLPREDICATE 'AS OF SCN 2172191';
    
    GGSCI> ADD EXTRACT INITEXT, SOURCEISTABLE
    Extract added.
    GGSCI> EXIT
    

إعداد الخدمة على ggVM2 (النسخ المتماثل)

  1. إنشاء ملف tnsnames.ora أو تحديثه.

    $ cd $ORACLE_HOME/network/admin
    $ vi tnsnames.ora
    

    عند فتح محرر vi، يجب الضغط i للتبديل إلى وضع الإدراج، ثم نسخ محتويات الملف ولصقها واضغط Esc على المفتاح، :wq! لحفظ الملف.

    cdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=cdb1)
       )
     )
    
    pdb1=
     (DESCRIPTION=
       (ADDRESS=
         (PROTOCOL=TCP)
         (HOST=localhost)
         (PORT=1521)
       )
       (CONNECT_DATA=
         (SERVER=dedicated)
         (SERVICE_NAME=pdb1)
       )
     )
    
  2. إنشاء حساب نسخ متماثل.

    $ sqlplus / as sysdba
    
    SQL> ALTER SYSTEM set enable_goldengate_replication=true;
    SQL> ALTER SESSION SET CONTAINER = pdb1;
    SQL> CREATE USER REPUSER IDENTIFIED BY REP_PASS CONTAINER=CURRENT;
    SQL> GRANT DBA TO REPUSER;
    SQL> EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('REPUSER',CONTAINER=>'PDB1');
    SQL> CONNECT REPUSER/REP_PASS@PDB1
    SQL> EXIT;
    
  3. إنشاء حساب مستخدم اختبار Golden Gate.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ sqlplus system/OraPasswd1@pdb1
    
    SQL> CREATE USER test identified by test DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP;
    SQL> GRANT connect, resource, dba TO test;
    SQL> ALTER USER test QUOTA 100M on USERS;
    SQL> CONNECT test/test@pdb1
    SQL> @demo_ora_create
    SQL> EXIT;
    
  4. نسخ ملف المعلمة نسخا متماثلا لنسخ التغييرات.

    $ cd /u01/app/oracle/product/19.0.0/oggcore_1
    $ ./ggsci
    
    GGSCI> EDIT PARAMS REPORA
    

    عند فتح محرر vi، يجب الضغط i للتبديل إلى وضع الإدراج، ثم نسخ محتويات الملف ولصقها واضغط Esc على المفتاح، :wq! لحفظ الملف.

    REPLICAT REPORA
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/repora.dsc, PURGE, MEGABYTES 100
    DDL INCLUDE MAPPED
    DDLOPTIONS REPORT
    DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
  5. إعداد نقطة تحقق النسخ المتماثل.

    GGSCI> ADD REPLICAT REPORA, INTEGRATED, EXTTRAIL ./dirdat/rt
    GGSCI> EDIT PARAMS INITREP
    

    عند فتح محرر vi، يجب الضغط i للتبديل إلى وضع الإدراج، ثم نسخ محتويات الملف ولصقها واضغط Esc على المفتاح، :wq! لحفظ الملف.

    REPLICAT INITREP
    ASSUMETARGETDEFS
    DISCARDFILE ./dirrpt/tcustmer.dsc, APPEND
    USERID repuser@pdb1, PASSWORD REP_PASS
    MAP pdb1.test.*, TARGET pdb1.test.*;
    
    GGSCI> ADD REPLICAT INITREP, SPECIALRUN
    GGSCI> EXIT
    

إعداد النسخ المتماثل (ggVM1 وggVM2)

1. إعداد النسخ المتماثل على ggVM2 (النسخ المتماثل)

تسجيل الدخول إلى ggsci.

$ cd /u01/app/oracle/product/12.1.0/oggcore_1
$ ./ggsci
GGSCI> EDIT PARAMS MGR

قم بتحديث الملف مع ما يلي.

PORT 7809
ACCESSRULE, PROG *, IPADDR *, ALLOW

أعد تشغيل خدمة Manager.

GGSCI> STOP MGR
GGSCI> START MGR
GGSCI> EXIT

2. إعداد النسخ المتماثل على ggVM1 (أساسي)

ابدأ التحميل الأولي وتحقق من وجود أخطاء.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> START EXTRACT INITEXT
GGSCI> VIEW REPORT INITEXT

3. إعداد النسخ المتماثل على ggVM2 (النسخ المتماثل)

غير رقم SCN بالرقم الذي حصلت عليه من قبل.

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
START REPLICAT REPORA, AFTERCSN 2172191

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

عرض حالة الوظيفة واستكشاف الأخطاء وإصلاحها

عرض تقارير

  • لعرض التقارير على ggVM1، قم بتشغيل الأوامر التالية.

    GGSCI> VIEW REPORT EXTORA
    
  • لعرض التقارير على ggVM2، قم بتشغيل الأوامر التالية.

    GGSCI> VIEW REPORT REPORA
    

عرض الحالة والمحفوظات

  • لعرض الحالة والمحفوظات على ggVM1، قم بتشغيل الأوامر التالية.

    GGSCI> DBLOGIN USERID C##GGADMIN@CDB1, PASSWORD ggadmin
    GGSCI> INFO EXTRACT EXTORA, DETAIL
    
  • لعرض الحالة والمحفوظات على ggVM2، قم بتشغيل الأوامر التالية.

    GGSCI> DBLOGIN USERID REPUSER@PDB1 PASSWORD REP_PASS
    GGSCI> INFO REP REPORA, DETAIL
    
    $ sqlplus test/test@pdb1
    
    SQL> select * from TCUSTMER;
    SQL> select * from TCUSTORD;
    

مراقبة النسخ المتماثل للبيانات

  1. الاتصال بقاعدة البيانات الأساسية على ggVM1

    $ sqlplus test/test@pdb1
    
  2. تحديد السجلات الموجودة من الجدول

    SQL> select * from TCUSTORD;
    
  3. قم بإنشاء سجل اختبار

    SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102);
    SQL> COMMIT;
    SQL> EXIT;
    
  4. مراقبة المعاملة التي تم التقاطها بواسطة Golden Gate (قيمة إدراج إجمالي الملاحظة )

$ cd /u01/app/oracle/product/19.0.0/oggcore_1
$ ./ggsci
GGSCI> STATS EXTORA
  Sending STATS request to Extract group EXTORA ...

  Start of statistics at 2023-03-24 19:41:54.

  DDL replication statistics (for all trails):

  *** Total statistics since extract started     ***
  Operations                           0.00
  Mapped operations                    0.00
  Unmapped operations                    0.00
  Other operations                    0.00
  Excluded operations                    0.00

  Output to ./dirdat/rt:

  Extracting from PDB1.TEST.TCUSTORD to PDB1.TEST.TCUSTORD:

  *** Total statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Daily statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Hourly statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  *** Latest statistics since 2023-03-24 19:41:34 ***
     Total inserts                              1.00
     Total updates                              0.00
     Total deletes                              0.00
     Total upserts                              0.00
     Total discards                             0.00
     Total operations                           1.00

  End of statistics.
  1. الاتصال بقاعدة البيانات الأساسية على ggVM2

    $ sqlplus test/test@pdb1
    
  2. التحقق من نسخ السجل الجديد

    SQL> select * from TCUSTORD;
    
     CUST ORDER_DAT PRODUCT_   ORDER_ID PRODUCT_PRICE PRODUCT_AMOUNT TRANSACTION_ID
     ---- --------- -------- ---------- ------------- -------------- --------------
     OLLJ 11-APR-99 CYCLE       400   16000      1    102
     WILL 30-SEP-94 CAR       144   17520      3    100
     JANE 11-NOV-95 PLANE       256  133300      1    100
    

اكتمل الآن تثبيت البوابة الذهبية وتكوينها على Oracle linux.

حذف الجهاز الظاهري ggXServer

يتم استخدام ggXServer VM فقط أثناء الإعداد. يمكنك حذفه بأمان بعد إكمال مستند المختبر هذا مع الاحتفاظ ب GoldenGate على إعداد مختبر Azure دون تغيير.

$ az vm delete --resource-group GoldenGateOnAzureLab --name ggXServer --force-deletion yes

$ az network public-ip delete --resource-group GoldenGateOnAzureLab --name ggXServerPublicIP

حذف البوابة الذهبية على إعداد Azure Lab

عندما لم تعد هناك حاجة إليه، يمكن استخدام الأمر التالي لإزالة مجموعة الموارد، الجهاز الظاهري، وجميع الموارد ذات الصلة لهذا المختبر.

$ az group delete --name GoldenGateOnAzureLab

الخطوات التالية

برنامج تعليمي لإنشاء أجهزة ظاهرية متوفرة بشكل كبير

استكشاف عينات CLI لتوزيع الأجهزة الظاهرية