تنفيذ Oracle Golden Gate على جهاز ظاهري Azure Linux (VM)
ينطبق على: ✔️ أجهزة 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
افتح shell المفضل لديك على Windows أو Linux أو Azure Shell.
سجل الدخول إلى اشتراكك في Azure باستخدام أمر تسجيل دخول az. ثم اتبع الإرشادات التي تظهر على الشاشة.
$ az login
تأكد من اتصالك بالاشتراك الصحيح عن طريق التحقق من اسم الاشتراك و/أو المعرف.
$ 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 Database VM. تأكد من إنشاء ملفات المفاتيح الخاصة بك (المسماة 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)
إنشاء مجموعة أمان شبكة (NSG) لتأمين الشبكة الظاهرية.
$ az network nsg create \ --resource-group GoldenGateOnAzureLab \ --name ggVnetNSG
إنشاء قاعدة 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
إنشاء قاعدة 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
تعيين NSG إلى الشبكة الفرعية حيث نستضيف خوادمنا.
$ az network vnet subnet update --resource-group GoldenGateOnAzureLab --vnet-name ggVNet --name ggSubnet1 --network-security-group ggVnetNSG
إنشاء شبكة Bastion
إنشاء شبكة فرعية Bastion. يجب أن يكون اسم الشبكة الفرعية AzureBastionSubnet.
$ az network vnet subnet create \ --resource-group GoldenGateOnAzureLab \ --name AzureBastionSubnet \ --vnet-name ggVnet \ --address-prefixes 10.0.1.0/24
إنشاء IP عام ل Bastion.
$ az network public-ip create \ --resource-group GoldenGateOnAzureLab \ --name ggBastionIP \ --sku Standard
إنشاء مورد 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.
- انتقل إلى ggXServer من مدخل Microsoft Azure
- تحديد موقع Overview في التنقل الأيسر
- حدد Connect>Bastion في القائمة في الأعلى
- حدد علامة التبويب Bastion
- انقر فوق استخدام Bastion
إعداد ggXServer لتشغيل X Server
X Server مطلوب للخطوات اللاحقة من هذا المختبر. نفذ الخطوات التالية لتثبيت X Server وبدء تشغيله.
قم بتنزيل Xming X Server لنظام التشغيل Windows ل ggXServer وتثبيته مع جميع الخيارات الافتراضية.
تأكد من عدم تحديد Launch في نهاية التثبيت
تشغيل تطبيق "XLAUNCH" من قائمة البدء.
تحديد Windows متعدد
حدد بدء بلا عميل
حدد بلا عنصر تحكم بالوصول
حدد السماح بالوصول للسماح ب X Server من خلال جدار حماية Windows
إذا قمت بإعادة تشغيل جهاز ggXServer الظاهري، فاتبع الخطوات من 2 إلى 6 أعلاه لإعادة تشغيل تطبيق X Server.
إنشاء أجهزة ظاهرية لقاعدة بيانات Oracle
لهذا التمرين المعملي، نقوم بإنشاء أجهزة ggVM1
ظاهرية ومن ggVM2
صورة Oracle Database 19c. إذا لم تكن موجودة بالفعل في موقع المفتاح الافتراضي، ينشئ هذا الأمر أيضا مفاتيح SSH. لاستخدام مجموعة محددة من المفاتيح، استخدم الخيار --ssh-key-value
. إذا قمت بالفعل بإنشاء مفاتيح SSH الخاصة بك في قسم إنشاء مفاتيح المصادقة، يتم استخدام هذه المفاتيح.
عند إنشاء جهاز ظاهري جديد، تشير المعلمة size
إلى حجم ونوع الجهاز الظاهري الذي تم إنشاؤه. اعتمادا على منطقة Azure التي حددتها لإنشاء جهاز ظاهري وإعدادات الاشتراك، قد لا تتوفر بعض أحجام وأنواع الجهاز الظاهري لاستخدامها. يستخدم المثال التالي الحد الأدنى للحجم المطلوب لهذا المختبر Standard_DS1_v2
. إذا كنت ترغب في تغيير مواصفات الجهاز الظاهري، فحدد أحد الأحجام المتوفرة من Azure VM Sizes. لأغراض الاختبار، يمكنك الاختيار من بين أنواع الأجهزة الظاهرية للأغراض العامة (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.
- انتقل إلى ggVM1 من مدخل Microsoft Azure.
- انتقل إلى نظرة عامة في الجزء الأيمن.
- حدد Connect>Bastion في القائمة في الأعلى
- حدد علامة التبويب Bastion
- حدد استخدام Bastion
إنشاء قاعدة البيانات على ggVM1 (أساسي)
تم تثبيت برنامج Oracle بالفعل على صورة Marketplace، لذا فإن الخطوة التالية هي إنشاء قاعدة البيانات.
- تشغيل البرنامج كمستخدم
oracle
.
$ sudo su - oracle
- إنشاء قاعدة البيانات باستخدام الأمر التالي. قد يستغرق هذا الأمر من 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.
- تعيين متغيرات ORACLE_SID LD_LIBRARY_PATH.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- قم بتشغيل التالي لإضافة 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
- بدء تشغيل مستمع Oracle
$ lsnrctl start
الاتصال ب ggVM2 (النسخ المتماثل)
الاتصال ب ggVM2 باستخدام Bastion.
- انتقل إلى ggVM2 من مدخل Microsoft Azure.
- انتقل إلى نظرة عامة في الجزء الأيمن.
- حدد Connect>Bastion في القائمة في الأعلى
- حدد علامة التبويب Bastion
- حدد استخدام Bastion
فتح منافذ جدار الحماية ل ggVM1
تكوين جدار الحماية للسماح بالاتصالات من ggVM1. يتم تشغيل الأمر التالي على ggVM2.
$ sudo su -
$ firewall-cmd --permanent --zone=trusted --add-source=10.0.0.5
$ firewall-cmd --reload
$ exit
إنشاء قاعدة البيانات على ggVM2 (النسخ المتماثل)
- التبديل إلى
oracle
المستخدم إذا لزم الأمر
$ sudo su - oracle
- إنشاء قاعدة البيانات
$ 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
- عيّن المتغيرات ORACLE_SID ORACLE_HOME.
$ export ORACLE_SID=cdb1
$ export LD_LIBRARY_PATH=$ORACLE_HOME/lib
- قم بتشغيل التالي لإضافة 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
- بدء تشغيل مستمع Oracle
$ lsnrctl start
تكوين البوابة الذهبية على ggVM1
اتبع الخطوات الواردة في هذا القسم لتثبيت البوابة الذهبية وتكوينها.
تمكين وضع سجل الأرشيف على ggVM1 (أساسي)
- الاتصال ب
sqlplus
$ sqlplus / as sysdba
- تمكين سجل الأرشيف
SQL> SELECT log_mode FROM v$database;
LOG_MODE
------------
NOARCHIVELOG
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE OPEN;
- مكّن فرض التسجيل، وتأكد من وجود ملف سجل واحد على الأقل.
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
قم بتنزيل ملف 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip من صفحة تنزيل Oracle Golden Gate، تحت عنوان التنزيل Oracle GoldenGate 21.3.0.0.0 ل Oracle على Linux x86-64.
بعد تنزيل ملف .zip إلى كمبيوتر العميل، يمكنك استخدام بروتوكول النسخ الآمن (SCP) لنسخ الملفات إلى أجهزتك الظاهرية (ggVM1 وggVM2). تأكد من أن
scp
الأمر يشير إلى المسار الصحيح لملف .zip.نسخ إلى ggVM1
سجل الدخول وتأكد من استخدام الاشتراك الصحيح حسب الضرورة كما هو موضح في تسجيل الدخول إلى Azure
افتح النفق إلى الجهاز الظاهري المستهدف باستخدام أمر 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
للاتصال بالجهاز الظاهري الهدف من خلال النفق، اترك موجه الأوامر الأول قيد التشغيل وافتح موجه أوامر ثان . في نافذة موجه الأوامر الثانية هذه، يمكنك تحميل الملفات من جهازك المحلي إلى الجهاز الظاهري المستهدف باستخدام الأمر التالي. يجب أن يتواجد ملف المفاتيح الصحيح
id_rsa
للوصول إلى الجهاز الظاهري في.ssh
الدليل أو يمكنك الإشارة إلى ملف مفتاح مختلف باستخدام-i
معلمة للأمرscp
.scp -P 57500 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
نسخ إلى ggVM2
افتح النفق إلى الجهاز الظاهري المستهدف باستخدام أمر 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
اترك موجه الأوامر الأول قيد التشغيل وافتح موجه أوامر ثان للاتصال بالجهاز الظاهري الهدف عبر النفق. في نافذة موجه الأوامر الثانية هذه، يمكنك تحميل الملفات من جهازك المحلي إلى الجهاز الظاهري المستهدف باستخدام الأمر التالي. يجب أن يتواجد ملف المفاتيح الصحيح
id_rsa
للوصول إلى الجهاز الظاهري في.ssh
الدليل أو يمكنك الإشارة إلى ملف مفتاح مختلف باستخدام-i
معلمة للأمرscp
.scp -P 57501 "213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip" azureuser@127.0.0.1:.
تثبيت برنامج Golden Gate
الاتصال ب ggVM1 باستخدام Bastion.
- انتقل إلى ggVM1 من مدخل Microsoft Azure.
- انتقل إلى نظرة عامة في اللوحة اليسرى
- حدد Connect>Bastion في القائمة في الأعلى
- حدد علامة التبويب Bastion
- حدد استخدام Bastion
نقل ملف .zip إلى المجلد /opt ، ثم تغيير المالك
$ sudo su - $ mv /home/azureuser/*.zip /opt
فك ضغط الملفات (تثبيت الأداة المساعدة فك ضغط إذا لم تكن مثبتة بالفعل)
$ yum install unzip $ cd /opt $ unzip 213000_fbo_ggs_Linux_x64_Oracle_shiphome.zip
تغيير الإذن
$ chown -R oracle:oinstall /opt/fbo_ggs_Linux_x64_Oracle_shiphome $ exit
بدء مثبت البوابة الذهبية
$ sudo su - oracle $ export DISPLAY=10.0.0.4:0.0 $ cd /opt/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1 $ ./runInstaller
يتم فتح المثبت على ggXServer.
حدد "Oracle GoldenGate for Oracle Database 21c". ثم حدد التالي للمتابعة.
قم بتعيين موقع البرنامج إلى /u01/app/oracle/product/19.0.0/oggcore_1، وتأكد من تحديد مربع Start Manager وحدد Next للمتابعة.
في شاشة الملخص، حدد تثبيت للمتابعة.
انتظر حتى ينتهي التثبيت.
حدد إغلاق للمتابعة.
الاتصال ب ggVM2 باستخدام Bastion.
- انتقل إلى ggVM2 من مدخل Microsoft Azure.
- انتقل إلى نظرة عامة في الجزء الأيمن
- حدد Connect>Bastion في القائمة في الأعلى
- حدد علامة التبويب Bastion
- حدد استخدام Bastion
كرر الخطوات من 2 إلى 10 أعلاه على ggVM2
إعداد الخدمة على ggVM1 (أساسي)
إنشاء ملف 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) ) )
إنشاء حسابات مالك ومستخدم 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;
إنشاء حساب مستخدم اختبار 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;
تكوين ملف معلمة الاستخراج.
بدء تشغيل واجهة سطر أوامر 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
اضغط
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;
تسجيل استخراج--استخراج متكامل.
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
إعداد نقاط التحقق من الاستخراج وبدء استخراج في الوقت الحقيقي
$ ./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 (النسخ المتماثل)
إنشاء ملف 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) ) )
إنشاء حساب نسخ متماثل.
$ 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;
إنشاء حساب مستخدم تجريبي ل 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;
ملف معلمة النسخ المتماثل لنسخ التغييرات نسخا متماثلا.
$ 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.*;
إعداد نقطة تحقق النسخ المتماثل.
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;
مراقبة النسخ المتماثل للبيانات
الاتصال بقاعدة البيانات الأساسية على ggVM1
$ sqlplus test/test@pdb1
تحديد السجلات الموجودة من الجدول
SQL> select * from TCUSTORD;
قم بإنشاء سجل اختبار
SQL> INSERT INTO TCUSTORD VALUES ('OLLJ',TO_DATE('11-APR-99'),'CYCLE',400,16000,1,102); SQL> COMMIT; SQL> EXIT;
مراقبة المعاملة التي تم التقاطها بواسطة البوابة الذهبية ( قيمة إدراج إجمالي الملاحظة )
$ 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.
الاتصال بقاعدة البيانات الأساسية على ggVM2
$ sqlplus test/test@pdb1
التحقق من نسخ السجل الجديد نسخا متماثلا
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