Professional Documents
Culture Documents
Oracle Data Guard
Oracle Data Guard
obaysalah@hotmail.com
نظام ال Businessاليوم يتطلب أن تكون قاعدة البيانات متاحة علي الدوام ،فلحظات ال
Downtimeقد تكلف الشركات مليين الدولرات ،فال Oracle Data Guardتضمن لك
مستوي عالي من إتاحة البيانات وكذلك حماية البيانات والتغلب علي الكوارث التي تحدث
لقواعد البيانات وذلك من خلل إنشاء وإدارة ومراقبة واحد أو أكثر من ال Standby
.Database
ال Oracle Data Guardتقوم بإدارة ال Primary Databaseوال Standby Databasesبحيث
تكون ال Standby Databasesمتزامنة مع ال Primary Databaseفلحظة حدوث مشكلة في
ال Primary Databaseيتم التحول مباشرة إلي ال Standby Databaseلتكون هي ال Primary
Databaseالجديدة ،هذه الجراءات ل تستغرق سواء لحظات ،يمكن كذلك أن يتم التحول
بين ال Primary Databaseوال Standby Databaseبغرض الصيانة أو لغراض أخري.
. تصل إلي تسعStandby Database إدارة عدد من الData Guard 10g Release 1 وتدعم ال
:واليكم الخطوات
Standby لنشاء الPrimary Database التأكد من تهيئة ال:الخطوة الولي
.Database
:Primary Database يجب عمل الخطوات التالية في الStandby Database قبل إنشاء ال
:Forced Logging تفعيل ال-1
ALTER DATABASE FORCE LOGGING
DB_NAME=PRIM
DB_UNIQUE_NAME=PRIM
SERVICE_NAMES=PRIM
INSTANCE_NAME=PRIM
LOG_ARCHIVE_CONFIG='DG_CONFIG= (PRIM, STAN)'
LOG_ARCHIVE_DEST_1=
'LOCATION=D:\oracle\product\10.1.0\flash_recovery_area\
VALID_FOR= (ALL_LOGFILES, ALL_ROLES)
DB_UNIQUE_NAME=PRIM'
LOG_ARCHIVE_DEST_2=
'SERVICE=STANNET
VALID_FOR= (ONLINE_LOGFILES, PRIMARY_ROLE)
DB_UNIQUE_NAME=STAN'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
FAL_SERVER=STAN
FAL_CLIENT=PRIM
STANDBY_FILE_MANAGEMENT=AUTO
:حيث
(Standby Databases حروف )استخدم نفس السم لجميع ال8 وهو اسم من:DB_NAME
هذا السم يظل في، لتحديد السم الفريد لكل قاعدة بيانات:DB_UNIQUE_NAME
.Standby Database والPrimary قاعدة البيانات ول يتغير حتى لو تغيرت الدوار بين ال
Standby والPrimary بين الInstance ويجب أن يختلف اسم ال:INSTANCE_NAME
. إذا كانا في نفس الجهازDatabase
Primary لكل من الDB_UNIQUE_NAME لتحديد ال:LOG_ARCHIVE_CONFIG
هذا المتغير في الصل يقوم بتفعيل قاعدة البيانات،Standby Databases والDatabase
.Redo لرسال واستقبال ال
Primary التي تم إنشاؤها بواسطة الRedo Data لرشفة ال:LOG_ARCHIVE_DEST_1
Local Archived Redo Log Files في الDatabase
التي سيتمRemote Physical Standby Database لتحديد ال:LOG_ARCHIVE_DEST_2
. لهاRedo Data إرسال ال
Redo للسماح لنقل الENABLE يأخذ القيمة:LOG_ARCHIVED_DEST_STATE_n
. للتجاه المحددData
EXCLUSIVE or) يجب أن يأخذ هذا المتغير:REMOTE_LOGIN_PASSWORDFILE
.(Shared
)عادة تكون هذهFAL Server للOracle Net Service Name لتحديد ال:FAL_SERVER
في دور الPRIM فعندما تكون ال،(Primary Database قاعدة البيانات التي تعمل دور ال
يستخدم هذا،FAL SERVER كSTAN Databaseل ٍ يتم استخدام اStandby Database
Standby للRedo ( عجز عن إرسال الPrimary Database(STAN المتغير في حال أن ال
. المفقودةArchived Log Files ( فيقوم بجلب الDatabase(PRIM
حيث يقوم ال،PRIM Database للOracle Net Service Name لتحديد ال:FAL_CLIENT
.PRIM Standby Database ( بعمل نسخ لملفات الرشيف المفقودة للFAL Server (STAN
في هذا المتغير فإذا تمAUTO إذا تم وضع القيمة:STANDBY_FILE_MANAGEMENT
تستجيبStandby Database فإن الPrimary Database في الData File إضافة أو حذف
للتغيير بصورة آلية
Primary Database هذا المتغير يحول مسارات ال:DB_FILE_NAME_CONVERT
نحتاج لتهيئة هذا الملف إذا كانت،Standby Database Datafiles Path Names للDatafiles
Standby في نفس الجهاز أو إذا كان الPrimary Database والStandby Database ال
في جهازين مختلفين ولكن يختلفان في الهيكلةPrimary Database والDatabase
في جهازين مختلفينPrimary Database والStandby Database أما إذا كانت ال،الفيزيائية
في كل القاعدينData Files ولكن متشابهان في الهيكلة الفيزيائية بمعني أن ملفات ال
متشابهتان تماما ً كما هو الحال في السيناريو الذي سنتبعه ففي مثل هذه الحالة فل نحتاج
.لتهيئة هذا المتغير
ويمكن أن يقال ما قيل في المتغير السابق غير أن:LOG_FILE_NAME_CONVERT
.Data Files وليس الRedo Log Files هذا المتغير يختص بال
:Standby Database قم بنقل ملفات النسخ الحتياطي إلي المسارات الصحيحة في ال-5
Standby وأيضا ً الinitstan.ora وملف المتغيراتData Files بما في ذلك جميع ملفات ال
. بعد إعادة تسميته بعدد النسخ المحددة في ملف المتغيراتControlfile
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS_LIST =
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.1.0)
(PROGRAM = extproc)
(SID_DESC =
(GLOBAL_DBNAME = PRIM)
(ORACLE_HOME = D:\oracle\product\10.1.0)
(SID_NAME = PRIM)
(SID_DESC =
(GLOBAL_DBNAME = PRIM_DGMGRL)
(ORACLE_HOME = D:\oracle\product\10.1.0)
(SID_NAME = PRIM)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS_LIST =
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.1.0)
(PROGRAM = extproc)
(SID_DESC =
(GLOBAL_DBNAME = STAN)
(ORACLE_HOME = D:\oracle\product\10.1.0)
(SID_NAME = STAN)
(SID_DESC =
(GLOBAL_DBNAME = STAN_DGMGRL)
(ORACLE_HOME = D:\oracle\product\10.1.0)
(SID_NAME = STAN)
STANNET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = STAN_DGMGRL)
)
)
STANNET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER2)(PORT = 1521))
)
(CONNECT_DATA =
(SID = STAN_DGMGRL)
)
)
PRIMNET =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = PRIM_DGMGRL)
)
)
آليا ً عند أولData Guard Broker ويتم تشغيل الSPFILE هذا التغيير يتم حفظه في ال
.Instance تشغيل لل
: التحقق من التهيئة-د
DGMGRL> SHOW CONFIGURATION;
: بإرجاع المعلومات التاليةCLI سيقوم ال
Configuration
Name: TEST
Enabled: NO
Protection Mode: MaxPerformance
Databases:
PRIM - Primary database
حيث:
:DB_UNIQUE_NAMEاسم قاعدة البيانات التي تريد تغيير خصائصها.
PROPERTY_NAME:تستطيع مشاهدة جميع ال Propertiesالتي يمكن تغييرها في قاعدة
البيانات عن طريق المر 'SHOW DATABASE VERBOSE 'DB_UNIQUE_NAME
-5تفعيل ال :Configuration
إلي هذه اللحظة لم يتم تفعيل ال Configurationويمكن التأكد من ذلك عن طريق المر
،SHOW CONFIGURATIONهذا المر يوضح لك حالة ال Configurationوهي .DISABLE
تفعيل ال Configurationتسمح لل Data Guard Brokerلدارة ال Configurationولجلب ال
Primary and Standby Databaseليكونا .online
هناك خياران للتفعيل:
أ -تفعيل ال Configurationبما في ذلك جميع قواعد البيانات في ال Configuration
;DGMGRL> ENABLE CONFIGURATION
Enabled.
SHOW CONFIGURATION تستطيع التأكد من التفعيل عن طريق المر
ب -تفعيل ال Standby Database
;'DGMGRL> ENABLE DATABASE 'STAN
Enabled.
:Switchover Operations -7
حيث تستطيع من خلل ال،Standby Database والPrimary Database لتغيير الدوار بين ال
والعكس دون أن نقدStandby Database لتكونPrimary Database تحويل الSwitchover
( لكل من الRestart) قليل جدا ً حيث سيتم عمل إعادة تشغيلDowntime أي بيانات مع
أما إذا كنا،Physical Standby Database إذا كنا نستخدمPrimary and Standby Database
. فل نحتاج لذلكLogical Standby Database نستخدم
وتطويرها أو لغيرها منPrimary Database لعملية صيانة الSwitchover نحتاج لعملية ال
.Primary Database السباب وليس بسبب حدوث مشكلة في ال
ولكن قبلNew Primary Database التي ستعلب دور الStandby Database نحتاج لتحديد ال
:إجراء عملية التحويل يجب مراعاة التي
.Online في الوضعPrimary and Standby Database التأكد من أن ال-أ
تعمل بشكل جيد ودون أيConfiguration جميع قواعد البيانات المشاركة في ال-ب
.رسائل خطأ
. إذا لزم المر،Primary Database في الStandby Redo Log التأكد من وجود-ج
:Switchover وإليك خطوات تنفيذ ال
Primary Database التحقق من ال-أ
DGMGRL> SHOW DATABASE VERBOSE 'PRIM';
Database dismounted.
ORACLE instance shut down.
Operation requires shutdown of instance "STAN" on database
"STAN".
Shutting down instance "STAN"...
database not mounted
ORACLE instance shut down.
Operation requires startup of instance "PRIM" on database "PRIM".
Starting instance "PRIM"...
ORACLE instance started.
Database mounted.
Operation requires startup of instance "STAN" on database "STAN".
Starting instance "STAN"...
ORACLE instance started.
Database mounted.
Switchover succeeded. New primary is "STAN"
والStandby Database هي الPRIM هذا المر سيقوم بتبديل الدوار فسوف تصبح ال
Primary بالطبع سيتم تنفيذ هذا المر بعد التصال بال،Primary Database هي الSTAN
. ستقوم أليا ً بإغلق وفتح قواعد البياناتData Guard Broker لحظ أن ال،Database
Configuration
Name: TEST
Enabled: YES
Protection Mode: MaxPerformance
Databases:
PRIM - Physical standby database
STAN - Primary database
:Failover Operations -8
Failover ويجب تنفيذ ال،New Primary Database لتكونStandby Databases لجلب أحد ال
وليس هناك إمكانية لرجاع الPrimary Database في حال حدوث فشل ذريع في ال
Primary ففي مثل هذه الحالة يتم تجاهل هذه ال، في الوقت المناسبPrimary Database
New لتلعب دور الTarget Standby Database التي بها مشكلة ويتم جلب الDatabase
.Primary Database
New Primary التي ستصبحStandby Database في الFailover يتم تنفيذ عملية ال
Primary ستصبحStandby Database فإن الFailover وبعد انتهاء عملية ال،Database
الصلية التي حدثت فيها المشكلة ل يمكن استخدامها كPrimary Database و الDatabase
لذاFlashback Database ما لم يتم إعادة إنشاؤها أو إرجاعها بواسطة الStandby Database
Primary and Standby في كل من الFlashback Database فمن الفضل تفعيل ال
.Database
Configuration
Name: TEST
Enabled: YES
Protection Mode: MaxPerformance
Databases:
PRIM - Physical standby database
STAN - Primary database
Database
Name: PRIM
Role: PHYSICAL STANDBY
Enabled: NO
Intended State: ONLINE
Instance(s):
PRIM
تستطيع، مجموعة من الوامر لدارة ومراقبة قواعد البياناتOracle Data Guard * توفر ال
.HELP استعراضها عن طريق المر
DGMGRL> HELP
:FastStartFailoverTarget تحديد-3
FastStartFailoverTarget لذا قم بتهيئة المتغيرStandby Database قد تكون لديك أكثر من
. ليشير كل منهم للخرPrimary and Standby Databaseفي كل من ال
Configuration
Name: TEST
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED
Databases:
PRIM - Primary database
STAN - Physical standby database
- Fast-Start Failover target
Fast-Start Failover
Threshold: 30 seconds
Observer: observer
بمراقبة كل من الObserver الن يقوم ال،fast start failover إذا لقد انتهينا من تهيئة ال
سيقومPrimary Database وفي حال حدوث مشكلة في الPrimary and Standby Database
جديدةPrimary Database عبارة عنSTAN أليا ً لتصبح الFailover ثانية بعملية30 بعد
. جديدةStandby Database لتكونPRIM ويحاول إعادة ال
: ثانية مثل ً كالتي45 ثانية إلي30 يمكن تغيير الزمن من
DGMGRL> EDIT CONFIGURATION SET PROPERTY
FastStartFailoverThreshold = 45;