31
ي ب أ لاح ص ي ن غ ر مي) ا اش ب لأ( [email protected] ام ظ ن ألBusiness وم ي ل أ ب ظل% ت ي( ن أ( ون ك% ت% اعدة% ق% ات ات ب2 لب أ% احة% ب م ي عل ألدوأم،% ات حظ ل ق ألDowntime د% ق ف ل ك% ت% ركات ش ل أ( نD ي ي لا م، % دولارأت أل ال قOracle Data Guard ( ن م ض% نL لك وي% ي س م ي ل عا( ن م% احة% تR أ

Oracle Data Guard

  • Upload
    dayasc

  • View
    184

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Oracle Data Guard

)الباشا( ميرغني صالح أبي[email protected]

ال فلحظات الدوام، علي متاحة البيانات قاعدة تكون أن يتطلب اليومBusinessال نظامDowntimeفال الدوالرات، ماليين الشركات تكلف قدOracle Data Guardمستوي لك تضمن

لقواعد تحدث التي الكوارث علي والتغلب البيانات حماية وكذلك البيانات إتاحة من عالي.Standby Databaseال من أكثر أو واحد ومراقبة وإدارة إنشاء خالل من وذلك البيانات

تكون بحيثStandby Databases والPrimary Databaseال بإدارة تقومOracle Data Guardالال في مشكلة حدوث فلحظةPrimary Databaseال مع متزامنةStandby Databasesال

Primary Databaseال إلي مباشرة التحول يتمStandby Databaseال هي لتكونPrimary Database،بين التحول يتم أن كذلك يمكن لحظات، سواء تستغرق ال اإلجراءات هذه الجديدة

أخري. ألغراض أو الصيانة بغرضStandby Database والPrimary Databaseالتسع. إلي تصلStandby Databaseال من عدد إدارةData Guard 10g Release 1ال وتدعم

Page 2: Oracle Data Guard

التالي: والسيناري السلسلة هذه في سنتبع

السيرفر علي تعملPRIM تسميPrimary Database أساسية بيانات قاعدة لدينا ستكونServer1 تسميPrimary Databaseال منStandby Database أخري بيانات قاعدة بإنشاء سنقومSTANالسيرفر علي تعمل Server2.

الخطوات: واليكم Standby ال إلنشاء Primary Database ال تهيئة من األولي: التأكد الخطوة

Database .

:Primary Databaseال في التالية الخطوات عمل يجبStandby Databaseال إنشاء قبل:Forced Logging ال - تفعيل1

ALTER DATABASE FORCE LOGGING

يوجد: لم إذاPassword Fileال - إنشاء2C:\orapwd file=D:\oracle\product\10.1.0\Db_1\database\PWDprim.ora entries=10 Password=SYS force=y

:Primary Databaseال في المتغيرات ملف - تهيئة3 Standbyال معPrimary Databaseال تتعامل كيف تعرف هل المتغيرات ملف تهيئة قبل ولكن

Databaseال مع مباشرة المستخدمون يتعامل بالطبع ؟Primary Databaseإرسال يتم ولكن Redo Dataال إلي مباشرةStandby Databaseيوجد أنه إلي التذكير يجب ولكن تطبيقها، ليتم

:Standby Databaseال من نوعان 1 -Physical Standby Databaseال من إنشاؤها يتم بيانات قاعدة : وهيPrimary Database

ال هيكلة تكون (،Primary Databaseلل االحتياطي النسخ من إنشاؤها يتم أنه )بمعنيPhysical Standby Databaseمشابهة b .Primary Database (Block-for-Block)ال لهيكلة تماما

أوLog Writer Process (LGWR)ال عبرPrimary Databaseال منRedo Dataال إرسال يتمال فيRedo Dataال استقبال يتم ،Standby Database للArchiver Process (ARCH)ال

Standby Databaseال طريق عنRemote File Server Process (RFS)ال تطبيق يتم ثمRedo

Page 3: Oracle Data Guard

Dataال فيPhysical Standby Databaseال طريق عنManaged Recovery Process (MRP) السيناريو(. في سنستخدمه النوع )وهذا ،Redo Applyبال يعرف فيما

2 -Logical Standby Databaseال من كذلك إنشاؤها يتم بيانات قاعدة : هيPrimary Databaseهيكلتها تغيير يتم أن يمكن ولكن b ال في الموجودة البيانات تظل ولكن الحقا

Primary Databaseوال Logical Standby Databaseمتماثلة ،b Redo عمل يتم ال هنا تماماApplyال في الحال هو كماPhysical Standby Databaseعمل يتم ولكن SQL Applyبحيث

عنSQL Applyال عمل يتم ، SQL Statements طريق عن البيانات قاعدة علي التعديل يتم.Logical Standby Process(LSP)ال طريق

Database DB_UNIQUE_NAME Oracle Net Service Name

Primary PRIM PRIMNET

Physical standby STAN STANNET

Primary Databaseال في المتغيرات ملف تهيئة

DB_NAME=PRIMDB_UNIQUE_NAME=PRIMSERVICE_NAMES=PRIMINSTANCE_NAME=PRIMLOG_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=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVEFAL_SERVER=STANFAL_CLIENT=PRIMSTANDBY_FILE_MANAGEMENT=AUTO

حيث:DB_NAMEاستخدم حروف8 من اسم : وهو( ال لجميع االسم نفسStandby Databases)

DB_UNIQUE_NAMEقاعدة في يظل االسم هذا بيانات، قاعدة لكل الفريد االسم : لتحديد .Standby Database والPrimaryال بين األدوار تغيرت لو حتى يتغير وال البيانات

Page 4: Oracle Data Guard

INSTANCE_NAMEال اسم يختلف أن : ويجبInstanceال بينPrimaryوال Standby Databaseالجهاز. نفس في كانا إذا

LOG_ARCHIVE_CONFIGال : لتحديدDB_UNIQUE_NAMEال من لكلPrimary Databaseوال Standby Databases، البيانات قاعدة بتفعيل يقوم األصل في المتغير هذا

.Redoال واستقبال إلرسالLOG_ARCHIVE_DEST_1ال : ألرشفةRedo Dataال بواسطة إنشاؤها تم التيPrimary

Databaseال فيLocal Archived Redo Log Files LOG_ARCHIVE_DEST_2ال : لتحديدRemote Physical Standby Databaseسيتم التي

لها.Redo Dataال إرسالLOG_ARCHIVED_DEST_STATE_nالقيمة : يأخذ ENABLEال لنقل للسماحRedo Data

المحدد. لالتجاهREMOTE_LOGIN_PASSWORDFILEالمتغير هذا يأخذ أن : يجب (EXCLUSIVE or

Shared.)FAL_SERVERال : لتحديدOracle Net Service Nameلل FAL Serverهذه تكون )عادة

ال دور فيPRIMال تكون فعندما (،Primary Databaseال دور تعمل التي البيانات قاعدةStandby Databaseاستخدام يتم kالSTAN Databaseك FAL SERVER، المتغير هذا يستخدم

Standby للRedoال إرسال عن عجزPrimary Database(STAN)ال أن حال فيDatabase(PRIM)ال بجلب فيقوم Archived Log Files.المفقودة

FAL_CLIENTال : لتحديدOracle Net Service Nameلل PRIM Database، ال يقوم حيثFAL Server (STAN)لل المفقودة األرشيف لملفات نسخ بعملPRIM Standby Database.

STANDBY_FILE_MANAGEMENTالقيمة وضع تم : إذا AUTOتم فإذا المتغير هذا في تستجيبStandby Databaseال فإنPrimary Databaseال فيData File حذف أو إضافةآلية بصورة للتغيير

DB_FILE_NAME_CONVERTال مسارات يحول المتغير : هذاPrimary Database Datafilesلل Standby Database Datafiles Path Names، ال كانت إذا الملف هذا لتهيئة نحتاج

Standby Databaseوال Primary Databaseال كان إذا أو الجهاز نفس فيStandby Database إذا أما الفيزيائية، الهيكلة في يختلفان ولكن مختلفين جهازين فيPrimary Databaseوال

في متشابهان ولكن مختلفين جهازين فيPrimary Database والStandby Databaseال كانتb متشابهتان القاعدين كال فيData Filesال ملفات أن بمعني الفيزيائية الهيكلة هو كما تماماالمتغير. هذا لتهيئة نحتاج فال الحالة هذه مثل ففي سنتبعه الذي والسيناري في الحال

LOG_FILE_NAME_CONVERT: هذا أن غير السابق المتغير في قيل ما يقال أن ويمكن .Data Filesال وليسRedo Log Filesبال يختص المتغير

:Primary Databaseال في األرشيف - تفعيل4SHUTDOWN IMMEDIATE;STARTUP MOUNT;ALTER DATABASE ARCHIVELOG;ALTER DATABASE OPEN;

Page 5: Oracle Data Guard

. Standby Database ال الثانية: إنشاء الخطوة المهمة هذه وستستغرقPhysical Standby Databaseال بإنشاء المرحلة هذه في سنقوم خطوة:14 حوالي

:Primary Databaseال فيDatafilesال لملفات (Backup) احتياطي نسخ - عمل1 Physical Standbyال إلنشاءPrimary Databaseال منDatafilesال ملفات لنسخ نحتاج

Database، نستخدم أن يمكن بالطبع RMAN or Physical Database، الطريقة اخترت أنا لكن الخطوات: واليكم ،Physical Backup األسهل

البيانات. قاعدة بإغالق أ- قم.Datafilesال ملفات جميع بنسخ قم التشغيل نظام طريق ب- عن

االحتياطي. النسخ قضية من انتهينا قد نكون هكذا

:Standby Database للControl Fileال ملف - إنشاء2ال بإنشاء قمSql*Plusال طريق عن ثمMount الوضع فيPrimary Databaseال بتشغيل قم

Standby Control File

ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘D:\BACKUP\’;

:Standby Databaseلل المتغيرات ملف - إنشاء3.Primary Databaseال منStandby Databaseلل المتغيرات ملف بإنشاء قم

CREATE PFILE='D:\BACKUP\initSٍTAN.ora' FROM SPFILE;

ملف شكل سيكون ،Standby Databaseال مع ليتوافق الجديد المتغيرات ملف بتهيئة قم ثمكاألتي: التعديل بعد المتغيرات

DB_NAME=PRIMDB_UNIQUE_NAME=STANSERVICE_NAMES=STANINSTANCE_NAME=STANLOG_ARCHIVE_CONFIG='DG_CONFIG=(PRIM,STAN)'CONTROL_FILES=' D:\oracle\product\10.1.0\oradata\PRIM\control1.ctl', ‘D:\oracle\product\10.1.0\oradata\PRIM\control2.ctl’, ‘D:\oracle\product\10.1.0\oradata\PRIM\control3.ctl’LOG_ARCHIVE_FORMAT=log%t_%s_%r.arcLOG_ARCHIVE_DEST_1= 'LOCATION=D:\oracle\product\10.1.0\flash_recovery_area\ VALID_FOR= (ALL_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME=STAN'LOG_ARCHIVE_DEST_2= 'SERVICE=PRIMNET VALID_FOR= (ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME=PRIM'LOG_ARCHIVE_DEST_STATE_1=ENABLELOG_ARCHIVE_DEST_STATE_2=ENABLEREMOTE_LOGIN_PASSWORDFILE=EXCLUSIVESTANDBY_FILE_MANAGEMENT=AUTOFAL_SERVER=PRIMFAL_CLIENT=STAN

يختلفان لكنPrimary and Standby Databaseال كم لكل واحد هوDB_NAMEال أن الحظ. DB_UNIQUE_NAMEال في

Page 6: Oracle Data Guard

:Standby Databaseلل المطلوبة المسارات بإنشاء - قم4b متشابهة مسارات والسيناري هذا في سنتبع Primary and Standbyال من لكل تماما

Database، ال لملفات المسارات بإنشاء قم لذاData Filesوال Redo Log Fileال فيStandby Siteال في الحال هو كماPrimary Site، ال بين المسارات تختلف قد ولكنPrimary

and Standby Databaseالمتغيرين بتهيئة تقوم أن وقتها عليك يجب ولكن (DB_FILE_NAME_CONVERT & LOG_FILE_NAME_CONVERT .)

:Standby Databaseال في الصحيحة المسارات إلي االحتياطي النسخ ملفات بنقل - قم5initstan.orab المتغيرات وملفData Filesال ملفات جميع ذلك في بما Standbyال وأيضا

Controlfileالمتغيرات. ملف في المحددة النسخ بعدد تسميته إعادة بعد

:Standby Databaseبال الخاصةInstanceال بإنشاء - قم6Windowsال فيServiceال إنشاء خالل من وذلك

D:\ oradim -NEW -SID STAN -INTPWD password -STARTMODE manual

:Password Fileال بإنشاء - قم7orapwd file= D:\oracle\product\10.1.0\Db_1\database\PWDSTAN.ora password=sys force=y entries=5

:Primary and Standby Databaseال من لكلlisteners ال - تهيئة8 كالتالي:Primary Databaseلل بالنسبةListenerال شكل سيكون

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER1)(PORT = 1521))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

Page 7: Oracle Data Guard

(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ال شكل فسيكونStandby Databaseلل بالنسبة أما

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = SERVER2)(PORT = 1521))

)

Page 8: Oracle Data Guard

)

)

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)

)

.Listenerال وتشغيل بإيقاف قم ثمD:\> lsnrctl stopD:\> lsnrctl start

:Primary and Standby Databaseال من لكلTnsnamesال ملف - تهيئة9Primary Siteلل بالنسبة

PRIMNET = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = SERVER1)(PORT = 1521)) )

Page 9: Oracle Data Guard

(CONNECT_DATA = (SID = PRIM_DGMGRL) ) )

STANNET = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = SERVER2)(PORT = 1521)) ) (CONNECT_DATA = (SID = STAN_DGMGRL) ) )

Standby Siteلل بالنسبة

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) ) )

:Standby Databaseال فيBroken Connection Detection ال - تفعيل10 2 القيمة ليأخذ SQLNET.ORA الملف في SQLNET.EXPIRE_TIME المتغير بتهيئة ذلك

)دقيقة(SQLNET.EXPIRE_TIME=2

:Standby Databaseال - تشغيل11PFILEال ملف منSPFILEال بإنشاء قمStandby Databaseال تشغيل قبل ولكن

CREATE SPFILE FROM PFILESTARTUP READ ONLY

Standbyال تظل أن يجب للمستخدمين البيانات قاعدة تفتح ال Databaseالوض||ع في Mount .Redo Dataال الستقبالRead Only أو

:Standby Databaseلل جديدTemporary File - إنشاء12Standby قاعدة ألن مهمة الخطوة هذه Databaseل|ل تحت|اج ق|دTemporary Fileللعملي|ات

b وغ||يره الترتيب مثل المؤقتة OPEN الوض||ع في فتحه||ا يتم عن||دما خصوص||ا READ ONLY

Page 10: Oracle Data Guard

b يمكن كم||ا االس||تعالم عملي||ات ببعض المس||تخدمون فيقوم Standbyال دور يتح||ول أن أيض||اDatabase.b الحقا

Temporary Files يحوي أن يجب الذيTablespaceال من بالتحقق أ- قم

SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE CONTENTS = 'TEMPORARY';

Standby Databaseلل جديدTemp File ب- أضف

ALTER TABLESPACE TEMP1 ADD TEMPFILE ‘D:\oracle\product\10.1.0\oradata\orcl\temp01.dbf'

SIZE 40M REUSE;

:Redo Applyال - تشغيل13b ذكرنا Primary Databaseال منRedo Dataال باستقبال تقومStandby Databaseال أن سابقا.Redo Applyبال يعرف فيماDataال هذه تطبيق ييتم ثم ومن

Standby Databaseال علي األمر هذا بتنفيذ قمRedo Applyال لتشغيلALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

:Standby Databaseلل السليم األداء من - التحقق14 في ،Log Switchال حدوث بعد إال تتم الStandby Database للRedo Dataال نقل عملية

Log Switchال عمل يمكن لكنRedo Log Fileال امتالء لحظة يحدثLog Switchال األصلاألمر طريق عن يدوية بصور

ALTER SYSTEM SWITCH LOGFILE;

باألتي: قمStandby Databaseال في سليمة بصورةRedo Dataال استقبال من للتأكداالستعالم طريق عنStandby Databaseال في الحالية األرشيف ملفات من أ- تأكد

SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

األمر بتنفيذ قمPrimary Databaseال ب- فيALTER SYSTEM ARCHIVE LOG CURRENT;

Online Redo Log File Groupال وأرشفةLog Switchال بعملية بعمل يقوم األمر هذاالحالية.

باالستعالم قمStandby Databaseال في أرشفتها تم قدNew Redo Dataال أن من ج- للتأكدStandby Databaseال في التالي

SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

:Standby Databaseلل إرساله تم الذي األرشيف تطبيق من - التحقق15 Redo) تطبيقه من التأكد يجبStandby Databaseلل األرشيف وصول من تأكدنا بعدما

Apply) ال فيStandby Databaseاالستعالم طريق عن وذلكSELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

Page 11: Oracle Data Guard

. Broker Configuration الثالثة: الخطوة Brokerال ومراقبة وإدارة إلنشاءData Guard command-line interface (CLI) سنستخدم

onfigurationالخطوات: واليكم:Data Guard Brokerال - تشغيل1

true القيمة ليأخذ DG_BROKER_START المتغير تهيئة يجبData Guard Brokerال لتشغيل القيمة المتغير هذا يأخذ االفتراضي الوضع في ،Primary and Standby Databaseال من لكل

false، ال استخدام يجب كذلكServer Parameter (SPFILE).ALTER SYSTEM SET DG_BROKER_START=true;

Data Guard Brokerbال تشغيل ويتمSPFILEال في حفظه يتم التغيير هذا أول عند آليا.Instanceلل تشغيل

التالية: الخطوات إتباع يجبConfigurationال : إلنشاءConfigurationال - إنشاء2Data Guard Command Line Interface (CLI)ال أ- تشغيل

C:\> DGMGRLDGMGRL for Solaris: Version 10.1

Copyright (c) 2000, 2003, Oracle. All rights reserved.

Welcome to DGMGRL, type "help" for information.DGMGRL>

Primary Databaseبال ب- االتصالDGMGRL> CONNECT sys/sys@PRIMNET;

Connected

Broker Configuration ال ج- إنشاءDGMGRL> CREATE CONFIGURATION 'TEST' AS PRIMARY DATABASE IS 'PRIM' CONNECT IDENTIFIER IS PRIMNET;

Page 12: Oracle Data Guard

ال هذا فيPrimary Databaseال بتحديد وقمناTEST يسميConfiguration بإنشاء قمناConfigurationوهي PRIM Databaseال هنا استخدمنا أننا الحظDB_UNIQUE_NAME.

التالية: المعلومات بإرجاعCLIال سيقومConfiguration "TEST" created with primary database "PRIM"

التهيئة: من د- التحققDGMGRL> SHOW CONFIGURATION;

التالية: المعلومات بإرجاعCLIال سيقومConfiguration Name: TEST Enabled: NO Protection Mode: MaxPerformance Databases: PRIM - Primary database

Current status for "TEST":DISABLED

:Configuration للStandby Databaseال - إضافة3DGMGRL> ADD DATABASE 'STAN' AS CONNECT IDENTIFIER IS STANNET MAINTAINED AS PHYSICAL;

بإرجاعCLIال وسيقومConfiguration للPhysical Standby Databaseال بإضافة قمنا هكذاالتالية: المعلومات

Database "STAN" added.

للStandby Databaseال إضافة من للتأكدSHOW CONFIGURATION األمر إعادة يمكنConfiguration

DGMGRL> SHOW CONFIGURATION;

التالية: المعلومات بإرجاعCLIال سيقومConfiguration Name: TEST Enabled: NO Protection Mode: MaxPerformance Databases: PRIM - Primary database STAN - Physical standby database

Current status for "TEST":DISABLED

4 -Setting Database Properties: Primary or Standby) البيانات قاعدة خصائص تغيير تستطيعConfigurationال إنشاء بعد

Databaseلحظة. أي ( فيPrimary Databaseال خصائص لمشاهدة

DGMGRL> SHOW DATABASE VERBOSE 'PRIM';

Standby Databaseال خصائص ولمشاهدة

Page 13: Oracle Data Guard

DGMGRL> SHOW DATABASE VERBOSE 'STAN';

األمر طريق عن البيانات قاعدة خصائص في التغيير تستطيعDGMGRL> EDIT DATABASE 'DB_UNIQUE_NAME' SET PROPERTY 'PROPERTY_NAME'=’NEW VALUE';

حيث: DB_UNIQUE_NAMEخصائصها. تغيير تريد التي البيانات قاعدة : اسم

:PROPERTY_NAMEال جميع مشاهدة تستطيعPropertiesقاعدة في تغييرها يمكن التي 'SHOW DATABASE VERBOSE 'DB_UNIQUE_NAME األمر طريق عن البيانات

:Configurationال - تفعيل5 األمر طريق عن ذلك من التأكد ويمكن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.

’;SHOW DATABASE ‘STAN األمر طريق عن التفعيل من التأكد تستطيع

:Protection Modeال - اختيار6:Protection Modeال من أنواع ثالثةData Guardال توفر

حدوث حال في بيانات أي تفقد لن أنك لك يضمنك النمط : هذاMaximum Protectionأ- ال من كل في ستكتب عملية أليRedo Dataال ألن وذلكPrimary Databaseال في مشكلة

Local Online Redo Logوال Standby Redo Logفي األقل علي Standby Databaseواحدة (.Commit) تثبيتها يتم أن قبل

قادرة غير أنها حال فيPrimary Databaseال إغالق سيتم بيانات أي تفقد لن أنك ولضمان واحد.Remote Standby Redo Logل األقل عليRedo Dataال إرسال علي دون ولكن البيانات لحماية مستوي أعلي لك يوفر النوع : هذاMaximum Availabilityب-

أن حيث منProtection Modeال ال يشبه فهو ،Primary Databaseال بإتاحة المساس Localال من كل في العمليات لهذهRedo Dataال كتابة يتم حتى تثبيتها يتم ال العمليات

Online Redo Logوال Standby Redo Logفي األقل علي Standby Database، هذا ولكن حال في إغالقها يتم الPrimary Databaseال ألن وذلكProtection Modeال عن يختلف النمط

ال تعمل وإنماRemote Standby Redo Logال فيRedo Dataال كتابة عن عجزت أنهاPrimary Databaseال في Maximum Performanceعالج يتم وسوف المشكلة عالج يتم حتى

ستعملRedo Log Filesال في الثغرات جميع عالج . ولحظةRedo Log Filesال في الثغرات.Maximum Availability النمط في آلية وبصورة أخري مرهPrimary Databaseال

b لك يضمن النمط هذا Primaryال في مشكلة حدوث حال في بيانات أي تفقد لن أنك أيضاDatabase.

وهو ،Configurationال إنشاء لحظة االفتراضي النمط : وهوMaximum Performanceج- وذلكPrimary Databaseال أداء علي التأثير دون البيانات لحماية ممكن مستوي أعلي يوفر

Page 14: Oracle Data Guard

،Local Online Redo Logال فيRedo Dataال تثبيت يتم حالما العمليات تثبيت يتم بأنال فيRedo Dataال استقبال يتم أن تنتظر الPrimary Databaseال في العمليات أن بمعني

Standby Databaseال في تثبيتها ليتمPrimary Database، أي أصبحت إذا بل Standby Databasesال في طبيعي بشكل ستستمر العمليات فإن متاحة غيرPrimary Database

.Alert Logال في تحذيرية رسائل إرسال وسيتمb مشكلة حدثت وإذا ،Primary and Standby Databasesال بين متزامنة تكون ال قد العمليات إذا ولمPrimary Databaseال في تثبيتها تم التي البيانات بعض نفقد قدPrimary Databaseال في كمية فإن جيد بشكل تعمل الشبكة كانت إذا ولكنStandby Databaseال في تثبيتها يتم

b صغيرة ستكون المفقودة البيانات صفر. أو جدا.Standby Redo Logلل يحتاج ال النمط هذا

الخطوات إتباع ( يجب Maximum Protection or Maximum Availability) النمط لتفعيلالتالية:

Standby Redo Logال - إنشاء1 واحدة.Standby Database في األقل عليStandby Redo Logال إنشاء من البد

STARTUP OPEN READ ONLY

ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIM\REDO4.LOG’size 10M;

ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\PRIM\REDO5.LOG’size 10M;

.Primary Redo Logال يساويStandby Redo Logال حجم أن من تأكد

LogXptMode property ال - تهيئة2.Standby Databaseال جميع فيSYNC القيمة لتأخذLogXptMode property ال تهيئة يجب

DGMGRL> EDIT DATABASE 'STAN' SET PROPERTY 'LogXptMode'='SYNC';

3b Protection Modeال تفعيل - أخيراDGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

7 -Switchover Operations:ال خالل من تستطيع حيث ،Standby Database والPrimary Databaseال بين األدوار لتغيير

Switchoverال تحويلPrimary Databaseلتكون Standby Databaseأي نقد أن دون والعكس b قليلDowntime مع بيانات ال من ( لكلRestart) تشغيل إعادة عمل سيتم حيث جدا

Primary and Standby Databaseنستخدم كنا إذا Physical Standby Database، كنا إذا أما لذلك. نحتاج فالLogical Standby Database نستخدم

من لغيرها أو وتطويرهاPrimary Databaseال صيانة لعمليةSwitchoverال لعملية نحتاج.Primary Databaseال في مشكلة حدوث بسبب وليس األسباب

قبل ولكنNew Primary Databaseال دور ستعلب التيStandby Databaseال لتحديد نحتاجاألتي: مراعاة يجب التحويل عملية إجراء

.Online الوضع فيPrimary and Standby Databaseال أن من أ- التأكد رسائل أي ودون جيد بشكل تعملConfigurationال في المشاركة البيانات قواعد ب- جميع

خطأ.

Page 15: Oracle Data Guard

األمر. لزم إذا ،Primary Databaseال فيStandby Redo Log وجود من ج- التأكد:Switchoverال تنفيذ خطوات وإليك

Primary Databaseال من أ- التحققDGMGRL> SHOW DATABASE VERBOSE 'PRIM';

الجديدةPrimary Databaseال ستصبح التيStandby Databaseال من ب- التأكدDGMGRL> SHOW DATABASE VERBOSE 'SٍTAN';

Switchoverال ج- تنفيذDGMGRL> SWITCHOVER TO "STAN";Performing switchover NOW. Please wait...Operation requires shutdown of instance "PRIM" on database"PRIM".Shutting down instance "PRIM"...ORA-01109: database not open

Database dismounted.ORACLE instance shut down.Operation requires shutdown of instance "STAN" on database"STAN".Shutting down instance "STAN"...database not mountedORACLE 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"

STAN والStandby Databaseال هيPRIMال تصبح فسوف األدوار بتبديل سيقوم األمر هذا ،Primary Databaseبال االتصال بعد األمر هذا تنفيذ سيتم بالطبع ،Primary Databaseال هي

b ستقومData Guard Brokerال أن الحظ البيانات. قواعد وفتح بإغالق أليا

التحول عملية من د- التأكدDGMGRL> SHOW CONFIGURATION;

بسالم. تمت التحول عملية أن من تأكدDGMGRL> SHOW CONFIGURATION;

Configuration Name: TEST Enabled: YES Protection Mode: MaxPerformance Databases:PRIM - Physical standby database STAN - Primary database

Current status for "TEST":SUCCESS

Page 16: Oracle Data Guard

8 -Failover Operations: Failoverال تنفيذ ويجب ،New Primary Database لتكونStandby Databasesال أحد لجلب

Primaryال إلرجاع إمكانية هناك وليسPrimary Databaseال في ذريع فشل حدوث حال فيDatabaseال هذه تجاهل يتم الحالة هذه مثل ففي المناسب، الوقت فيPrimary Database

New Primaryال دور لتلعبTarget Standby Databaseال جلب ويتم مشكلة بها التيDatabase .

،New Primary Database ستصبح التيStandby Databaseال فيFailoverال عملية تنفيذ يتمال وPrimary Database ستصبحStandby Databaseال فإنFailoverال عملية انتهاء وبعد

Primary Databaseك استخدامها يمكن ال المشكلة فيها حدثت التي األصليةStandby Databaseال بواسطة إرجاعها أو إنشاؤها إعادة يتم لم ماFlashback Databaseفمن لذا

.Primary and Standby Databaseال من كل فيFlashback Databaseال تفعيل األفضل

:Failoverال تنفيذ خطوات واليكTarget Standby Databaseبال أ- االتصال

DGMGRL> CONNECT sys/sys@STANNETConnected.

Failoverال أمر ب- تنفيذDGMGRL> FAILOVER TO "STAN";Performing failover NOW. Please wait...Operation requires shutdown of instance "STAN" on database"STAN".Shutting down instance "STAN"...database not mountedORACLE instance shut down.Operation requires startup of instance "STAN" on database "STAN".Starting instance "STAN"...ORACLE instance started.Database mounted.Failover succeeded. New primary is "STAN"

Page 17: Oracle Data Guard

Failoverال عملية نجاح من ج- التأكدDGMGRL> SHOW CONFIGURATION;

Configuration Name: TEST Enabled: YES Protection Mode: MaxPerformance Databases: PRIM - Physical standby databaseSTAN - Primary database

Current status for "TEST":SUCCESS

األصليةPrimary Databaseال من د- التحققDGMGRL> SHOW DATABASE 'PRIM';

Database Name: PRIM Role: PHYSICAL STANDBY Enabled: NO Intended State: ONLINE Instance(s): PRIM

Current status for "PRIM":

Error: ORA-16795: Database resource guard detects that database reinstantiation is required

القديمة.Primary Database للDisable بعمل قامتData Guard Brokerال أن الحظ

تستطيع البيانات، قواعد ومراقبة إلدارة األوامر من مجموعةOracle Data Guardال * توفر.HELP األمر طريق عن استعراضها

DGMGRL> HELP

The following commands are available:

Add: Add a standby database into the broker configurationConnect: Connect to an Oracle instanceCreate: Create a broker configurationDisable: Disable broker control of a configuration or databaseEdit: Edit a configuration, database or instanceEnable: Enable broker control of a configuration or databaseExit: Exit the programFailover: Change a standby database to be the primary databaseHelp: Display description and syntax for a given commandQuit: Exit the programRem: Comment to be ignored by DGMGRLRemove: Remove a configuration, database or instanceShow: Display information of a configuration, database or instanceShutdown: Shut down a currently running Oracle instanceStartup: Start an Oracle database instanceSwitchover: Switch roles between the primary database and a standby database

Page 18: Oracle Data Guard

Use "help <command>" to see syntax for individual commands.

األمر ثمhelp أكتب األوامر هذه استخدام طرق لمعرفةDGMGRL> HELP CREATECreate a broker configuration Syntax: CREATE CONFIGURATION <configuration name> AS PRIMARY DATABASE IS (database name> CONNECT IDENTIFIER IS <connect identifier>;

Fast-start failover : الخاصية هذهFast-start failover تسمي جديدة خاصية Oracle 10g Release 2 اإلصدار يوفر

فيStandby Databaseلل تزامن وعمل وآلية تلقائية بصورةFailover عمل علي القدرة لها لعمل المعقدة اليدوية الخطوات إتباع دون كله هذا ،Primary Databaseال فقدان حال

Failoverb Primary Databaseال تهيئة إعادة يتم آلية وبصورةFailoverال انتهاء بعد . وأيضا جديدة.Standby Database لتكون القديمة

Page 19: Oracle Data Guard

التالية: الحاالت فيFast-start failover ويعمل1 -Database instance failure

2 -Shutdown abort 3 -Datafiles taken offline due to I/O errors .Primary Databaseبال االتصالObserveال وStandby Databaseال يفقد - عندما4

:Fast-start failover ال تهيئة خطوات:Primary and Standby Databaseال من كل فيStandby Redo Logsال تهيئة من - التأكد1b تحدثنا .Standby Redo Logsال عن سابقا

Primary and Standby الفي SYNC القيمة ليأخذ LogXptMode المتغير - تهيئة2Database:

DGMGRL> EDIT DATABASE 'PRIM' SET PROPERTY 'LogXptMode'='SYNC';Property "LogXptMode" updated

DGMGRL> EDIT DATABASE 'STAN' SET PROPERTY 'LogXptMode'='SYNC';Property "LogXptMode" updated

:FastStartFailoverTarget - تحديد3 FastStartFailoverTarget المتغير بتهيئة قم لذا Standby Database من أكثر لديك تكون قد

لآلخر. منهم كل ليشيرPrimary and Standby Databaseال من كل في

DGMGRL> EDIT DATABASE 'PRIM' SET PROPERTY FastStartFailoverTarget='STAN';Property "FastStartFailoverTarget" updated

DGMGRL> EDIT DATABASE 'STAN' SET PROPERTY FastStartFailoverTarget='PRIM';Property "FastStartFailoverTarget" updated

. :Real Time Applyال - تفعيل4 Failoverال عملية وقت لتقليلStandby Databaseال فيReal Time Applyال تفعيل يفضل انتظار دون استقبالها بمجردStandby Databaseال في تطبيقها يتمRedo Dataال ألن وذلك

Log Switchال فيPrimary Database.ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

:MAXAVAILABILITY إلي النمط - تحويل5

Page 20: Oracle Data Guard

DGMGRL> EDIT CONFIGURATION SET PROTECTION MODE AS MAXAVAILABILITY;

:Flashback Databaseال تفعيل من - التأكد6ال ألن وذلكPrimary and Standby Databaseال من كل فيFlashback Databaseال تفعيل

Data Guard Brokerال إلعادة تستخدمPrimary Databaseلتكون آلي بشكل Standby Database.جديدة

STARTUP MOUNT;ALTER DATABASE FLASHBACK ON;ALTER DATABASE OPEN;

:fast start failover - لتفعيل7DGMGRL> ENABLE FAST_START FAILOVER;Enabled.

:observer ال - تشغيل8 Primary or Standby Siteال غير آخر جهاز في يكون أن واألفضل بالمراقب يعرف ما وهو

Instance الجهاز في يكون أن يتطلب وال ،Primary and Standby Databaseال مراقبة ومهمته .Oracle Client Administrator فقط بل

وقمobserverال جهاز منGuard Configurationبال باالتصال قمobserverال ولتشغيل.Observerال بتشغيل

DGMGRL> CONNECT sys/password@PRIMNET;DGMGRL> START OBSERVER;Observer started

:fast start failover ال تهيئة من - التأكد9DGMGRL> SHOW CONFIGURATION VERBOSE;

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 Current status for "TEST":

Page 21: Oracle Data Guard

SUCCESS

ال من كل بمراقبةObserverال يقوم اآلن ،fast start failover ال تهيئة من انتهينا لقد إذاPrimary and Standby Databaseال في مشكلة حدوث حال وفيPrimary Databaseسيقوم

Failoverb بعملية ثانية30 بعد جديدةPrimary Database عن عبارةSTANال لتصبح أليا جديدة.Standby Database لتكونPRIMال إعادة ويحاول

b ثانية45 إلي ثانية30 من الزمن تغيير يمكن كاألتي: مثالDGMGRL> EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = 45;