1 / 35

ما معنى إغلاق القاعدة أو تشغيلها ؟

ما معنى إغلاق القاعدة أو تشغيلها ؟.

astra
Télécharger la présentation

ما معنى إغلاق القاعدة أو تشغيلها ؟

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ما معنى إغلاق القاعدة أو تشغيلها ؟ • أن الأوراكل سيرفر الذي نتعامل معه مؤلف من قسمين : Oracle instance و القاعدة Oracle Database .. رأينا أن Instance هو فعلياً برنامج Software يستجيب لطلباتنا و يقوم بتنفيذها و يعبد إلينا النتائج إضافة إلى وظائفه الأخرى في الحفاظ على القاعدة .... إلخ .. أما القاعدة فقد وجدنا أنها عبارة عن ملفات فيزيائية تفتح و تدار من قبل Oracle instance ..

  2. ما معنى إغلاق القاعدة ؟ المعنى أنك أولاً تغلق ملفات القاعدة المفتوحة ثم تقوم بإيقاف Oracle instance ...ماذا عن تشغيلها ؟ يعني التشغيل أنك أولاً تقوم بتشغيل Oracle Instance الذي يقوم بفتح ملفات القاعدة ...لنتحدث عن العمليات التي تحدث عند تشغيل Instance

  3. تتوزع العمليات بين ثلاثة مراحل : المرحلة الأولى nomount : 1- يقوم أولاً بقراءة ملف البارمترات Parameters File .. هذه البارامترات على سبيل المثال تذكر ما سم القاعدة التي سيتعمل معه instance و أين هو Control file الخاص بالقاعدة ما هو حجم الذاكرة التي سيحجزها .. إلخ ( سيكون لنا جولة مع هذه البارامترات لا حقاً ) ... 2-يقوم بحجز الذاكرة . 3- يشغل Background process .. 4-يفتح ملف alertSID.log و هو أهم ملف يعتمد عليه مدير القاعدة لكي يكتشف الأعطال و المشاكل الذي تحدث للقاعدة إضافة إلى معلومات مهمة جدا سنراها لاحقاً ..... يوجد هذا الملف في المسار التالي : كود • Oracle home\admin\dbclass\bdumb\alert_dbclass.log

  4. المرحلة الثانية : Mount : يقوم بقراءة ملف Control File لكي يحدد أين توجد ملفات البيانات Data files و ملفات الإرجاع Redo Files .... إلخ و لكنه لا يتأكد من وجود تلك الملفات .. هذه المرحلة مهمة جداً لأن عملية أخذ النسخ الاحتياطية و إصلاح ملفات البيانات و ملفات الإرجاع يتم في هذه المرحلة ... كما سنرى لاحقاً .

  5. المرحلة الثالثة : Open : يقوم بفتح ملفات البيانات Data files و ملفات الإرجاع Redo log في هذه المرحلة .. نجاح هذه المرحلة يعني أن القاعدة قد أصبحت جاهزة تماماُ لإستقبال الطلبات ...

  6. إذاً سألخص ما تحدثت عنه : تتم مراحل التشغيل وفق ثلاث مراحل تضم المرحلة الأولى قراءة ملف البارامترات ، الثانية قراءة ملف Control File ، الثالثة فتح ملفات البيانات و ملفات الإرجاع لتصبح القاعدة جاهزة .... يمكن لمدير القاعدة أن يحدد أي مرحلة يريد قاعدته أن تعمل بها و ذلك تبعاً للعملية التي يريد تنفيذها و سأذكر أمثلة فقط : 1- إذا كانت هناك مشكلة في Control file فيقوم بتشغيل القاعدة في مرحلة no mount .. 2- إذا كانت هنالك مشلكلة في ملفات البيانات أو ملفات الإرجاع أو أراد أخذ نسخة إحتياطية للقاعدة فإنه يقوم بتشغيل القاعدة في وضع Mount .. الصورة التالية ستوضح ما تحدثنا عنه :

  7. يتم أمر التشغيل كالتالي : 1- تسجيل الدخول أولاً بالحساب SYS AS SYSDBA على برنامج SQLPLUS . 2- تنفيذ الأمر : كود • startup Level_name; • لشتغيل القاعدة مثلاً في وضع No Mount : كود • startup nomount;

  8. لتشغيل القاعدة في وضع Mount : كود • startup mount; • لتشغيل القاعدة لتصبح في الوضع الطبيعي : كود • startup;

  9. ما ذا لو أردنا الإنتقال بين المراحل ؟ 1- نشغل القاعدة بالوضع nomount : كود • startup nomount; • 2- للإنتقال إلى الوضع mount : كود • alter database mount; • 3- للإنتقال إلى الوضع النهائي : كود • alter database open; • إنتبه : لا يمكنك الانتقال بالعكس أي أن تعود من مرحلة open إلى مرحلة mount أو من Mount إلى nomount ، عليك أن تغلق القاعدة ثم تنتقل إلى المرحلة التي تريد ...

  10. إغلاق القاعدة يتم إغلاق القاعدة بعكس العمليات التي تنفذ ضمن عملية التشغيل : 1- يتم إغلاق ملفات البيانات Data files ومسجلات الإرجاع Redo Files ..2-يتم إغلاق ملف Control file .. 3- يتم تحرير الذاكرة و إيقاف Background Process و إنهاء instance ( و يأخذ الجهاز نفساً عميقاً بعد أن أزال عن كاهله الأوراكل الغليظ  ... ) ... قبل أن أبدأ بشرح الإغلاق دعوني أتحدث عن موضوع مهم :

  11. المناقلات Transactions • تعني المناقلة مجموعة التعديلات بواسطة تعليمات DML التي يجريها المستخدم ضمن جلسته الحالية ... و هذه التعديلات تكون مؤقتة يمكن التراجع عنها أو تثبيتها بحسب رغبة المستخدم .. يمكنك تجربة المناقلة ببساطة : نفذ بعض تعليمات insert أو update أو delete على جدول ما ثم نفذ التعليمة التالية : كود • rollback; • فتجد أن جميع التعديلات التي أدخلتها قد ولت أدراج الرياح و كأنك لم تفعل شيئاً .. إذاً ما الذي فعلته التعليمة Rollback ؟؟ ماقامت به التعليمة هي مجرد التراجع عن المناقلة التي قمت بها و أعادت كل شيء إلى طبيعتها ... حسناً : ماذا لو أردت تثبيت التعديلات لتصبح دائمة ؟ كود • commit;

  12. لنعد إلى إغلاق القاعدة : لإغلاق القاعدة تحتاج إلى تنفيذ التعليمة التالية : كود • SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ] • لنبدأ بالشرح : 1- Normal : و هو الخيار الإفتراضي حيث ينتظر النظام جميع المستخدمين لكي ينتهوا من عملهم مع القاعدة و يقوموا بإغلاق اتصالاتهم (تسجيل الخروج من SQLPLUS أو إغلاقه أو حتى إغلاق البرامج التي تتعامل مع الأوراكل ) ... هذا الأمر يحفظ جميع المناقلات و لن يسبب لك أي مشكلة عند تشغيل القاعدة مرة أخرى .. و لكن له سيئة ضخمة : لو كان لديك موظف يتناول فطوره و يدردش على الهاتف أو مع زميله و ماذا متصلاً مع القاعدة فعندها سوف تتنظر حتى ينتهي( أو تطرده ) لكي تغلق القاعدة ... جربوا هذه المسألة : 1-شغل SQLPLUS و سحل الدخول مثلاً بالحساب Scott .. 2- شغل نسخة أخرى من SQLPLUS و سجل الدخول بالحساب SYS AS SYSDBA ...و نفذ التعليمة : كود • shutdown normal; • فتجد أنه ينتظر ... 3- أغلق نسخة SQLPLUS التي استعملتها مع Scott فستجد أنه بدأ بإغلاق القاعدة عند النسخة الثانية ....

  13. بھذه الحالة یتم التالي: Database في حالة اغلاق ال .Database -لا یسمح بدخول مستخدمیین جدد لل · قبل خروج جمیع المستخدمین منھ، أي ان الأوراكل ینتظر حتى یفرغ Database- لا یغلق ال · .Database المستخدمیین من مھامھم ثم خروجھم لكي یتم اعلاق ال .Redo Log Files الى ال Redo Log Buffer- یتم نقل بیانات ال · .Data Files الى ال Database Buffer Cache -یتم نقل بیانات ال · .ROLLBACK فیحدث لھا COMMIT -في حال وجود عملیات لم یتم حدوث · .Background Processes- انھاء وجود ال · من الذاكرة. SGA- ازالة مساحة ال · .Instance ثم اغلاق ال Database- اغلاق ال · باعتبار انھا Instance للبیانات التي كانت موجودة في ال Recovery ملاحظة: لا یستلزم ان تتم عملیة . SMON و PMON ھي العملیة المشابھھ لوظائف ال Recovery نقلت الى الملفات الفیزیائیة. وعملیة

  14. 2- Transactional :هنا ينتظر النظام المستخدمين الذي أجروا تعديلات على القاعدة و لم يثبتوا تعديلاتهم بعد ، أما أولئك المستخدمين الذين لم يجروا أي تعديلات أو ثبتوا تعديلاتهم فإنه مباشرة يقوم بقطع إتصالاتهم مع القاعدة .. لننفذ السيناريو التالي : 1-افتح نافذة SQLPLUS و سجل الدخول بالحساب Scott ثم نفذ تعليمة update أو delete أو insert على أي جدول تريد و لا تقم بعملية التثبيت ...2- افتح نافذة SQLPLUS جديدة و سجل الدخول بالحساب SYS AS SYSDBA ثم حاول إلاق القاعدة بالتعليمة التالية : كود • shutdown transactional; • ستجد أنه ينتظر ... 3- نفذ تعليمة تثبيت التعديلات في نافذة scott : كود • commit; • ستجد إن عملية الإغلاق في نافذة SYS قد بدأت و سوف تنتهي بإغلاق القاعدة ... 4- حاول تنفيذ أي تعليمة في نافذة scott فإنها ستفشل و سيعطيك إحدى الرسائل : Oracle not available أو Shutdown in progress .....

  15. 3-Immediate :هنا لن ينتظر أحد ، بل سيقوم بالتراجع عن التغييرات لدى المستخدمين الذي لم يثبتوا تعديلاتهم بعد ثم سيقطع الإتصال مع الجميع و يغلق القاعدة .... نفذ السيناريو التالي : 1- افتح نافذة SQLPLUS و سجل الدخول بالحساب Scott ثم نفذ تعليمة update مثلاً :كود • update emp set sal=0 ; • لا تقم بالتثبيت .. 2- - افتح نافذة SQLPLUS جديدة و سجل الدخول بالحساب SYS AS SYSDBA ثم حاول إغلاق القاعدة بالتعليمة التالية : كود • shutdown transactional; • ستجد أنه لن ينتظر و سيقوم بإغلاق القاعدة مباشرة .. 3- أعد تشغيل القاعدة :كود • startup normal; • 4-سجل الدخول مرة أخرى في نافذة scott ثم نفذ تعليمة select : كود • select sal from emp; • ستجد أن الأمور قد عادت إلى طبيعتها و أن التعديل الذي جعلنا فيه sal=0 قد تم التراجع عنه ...

  16. 4- ABORT :و هو أسوء خيار قد تلجأ إليه ، فهو يقوم بعملية إغلاق قسري للقاعدة دون المرور بالخطوات التي تحدثنا عنها سابقاً ، هذه العملية ستؤدي إلى آثار سلبية يتم إصلاحها بواسطة عملية نسميها Instance Recovery عند تشغيل القاعدة مرة أخرى ، لذلك لا تلجأ إليه إلا إذا كنت مضطراً إلى هذه العملية ....

  17. فوراً دون انتظار خروج المستخدمین أو انھاء مھامھم التي طلبوھا قبل أمر الاغلاق. Database یتم اغلاق ال المھمات التي تم طلبھا قبل أمر الاغلاق تلغى و أیة تعدیلات طرأت على البیانات بسببھا تزال وتمسح · .ROLLBACK (بشرط ان تكون المھمة ما تزال تعمل عند أمر الإغلاق) ولا یحدث لھا .Redo Log Files الى ال Redo Log Buffer لا یتم نقل بیانات ال · Data Files الى ال Database Buffer Cache لا یتم نقل بیانات ال · . ROLLBACK لا یحدث لھا COMMIT المھمات التي لم یحدث لھا · بشكل فوري. Instance وال Database یتم اغلاق ال ·

  18. كيف نستطيع استخدام Enterprise Manager في موضوعنا هذا ؟؟ • 1- شغل Enterprise Manager و سجل الدخول بالحساب SYS AS SYSDBA .. 2- من القسم General إضغط على الزر shutdown كما في الصورة :

  19. 3- تظهر لك صفحة :

  20. ضع في القسم Host Credentials معلومات مستخدم النظام (ويندوز أو linux ) و في القسم Database Credentials ضع اسم المستخدم Sys و كلمة سره ...ثم إضغط على زر ok .. بالنسبة لسمتخدمي الليونكس فالأمر تمام أما بالنسبة لسمتخدمي الويندوز فسوف تظهر الرسالة التالية : • مع العلم أنك قد وضعت كلمة السر صحيحة تماماً .... ما العمل ؟؟؟ يجب عليك أن تعطي الصلاحية للمستخدم الذي تعمل عليه بأن يقوم بتسجيل الدخول كــpatch jop .. كيف يتم ذلك ؟؟؟

  21. إدخل على Local Security Policy داخل Administrative Tools في لوحة التحكم ... إختر كما في الصورة :

  22. بالنقر المزدوج ستجد النافذة التالية ... قم بإضافة المستخدم الذي تعمل عليه (لقد قمت بإضافة مجموعة Administrators في جهازي .. ) من الزر Add :

  23. الآن كرر الخطوات من 1-3 مرة أخرى ... يجب أن ينجح الأمر و تظهر الصورة التالية :

  24. حظ أن الخيار الافتراضي هو إغلاق immediate .. يمكنك الضغط على زر Advanced Options لتغير الخيار إلى Abort أو Transactional أو normal كما تحدثنا سابقاً ... كيف نقوم بإعادة تشغيلها ؟؟؟ 1-شغل الأداة Enterprise Manger و سجل الدخول بالحساب SYS AS SYSDBA .. 2- سيظهر لك زرين فقط .. إضغط على Startup .. 3- سيظهر لك الواجهة :

  25. التي تعاملنا معها سابقاً ... سجل المعلومات نفسها .. 4-ستظهر لك صفحة يخبرك فيها أنه سيشغل القاعدة في وضع open .. يمكنك تغيير هذا الخيار بالضغط على زر advanced Options و تحديد مرحلة mount أو nomount .. 5- إضغط على زر ok عندما تنتهي .. 6- سيبدأ تشغيل القاعدة عند الإنتهاء سيطلب منك إعادة تشغيل الدخول

  26. :STARTUP Command في احدى الحلات المذكورة سابقاً تستعمل القاعدة التالیة: Database لتشغیل ال STARTUP [FORCE] [RESTRICT] [PFILE='location and name'] [OPEN [recover] [database’s name] | MOUNT | NOMOUNT ] ولكن یمكن للمستخدم NOMOUNT : سبق ذكر ان الأوراكل یبحث عن الملف عند بدایة مرحلة ال PFILE تحدید ملف محدد عوضاً على ان یقوم الأوراكل بالبحث عنھ. وعند استخدامھا ،MOUNT اذ لا یمكن كتابتھا مع ال OPEN : خاصة فقط بمرحلة ال RECOVER للبیانات. RECOVERY یقوم الأوراكل بعمل عملیة ال وھم من یملك ال Database : تحدد المستخدمین الذین یحق لھم الدخول الى ال RESTRICT التي سوف یتم التطرق لھا لاحقاً. Restricted Session Privilege یعمل في احد الحالات فیمكن اغلاقھ ثم تشغیلھ مباشرة في الحالة العادیة. Instance : اذا كان ال FORCE في الویندوز. "Restart" اذاً ھي مثل عملیة

  27. :ALTER DATABASE Command -1 یمكن ان تستخدم في عدد من الوظائف منھا : من : Database -تغییر حالة ال MOUNT الى NOMOUNT-· OPEN الى MOUNT-· • باتباع القاعدة التالیة: ALTER DATABASE یمكن استخدام أمر ال ALTER DATABASE [database's name] MOUNT | OPEN; مثال: • بكتابة التالي: MOUNT یمكن التحویل الى ال NOMOUNT بینما یتم استخدام حالة ال ALTER DATABASE MOUNT;

  28. :Restricted Mode في ھذه الحالة لإعطاء المجال للمستخدمین الذي یملكونة Database یمكن تشغیل ال من القیام بمھات خاصة. Restricted Session Privilege مثال : : Restricted في حالة ال Database لتشغیل ال STARTUP RESTRICTED; یمكن تحویل الحالة بشكل داینامیكي باستخدام: ALTER SYSTEM ENABLE RESTRICTED SESSION; ALTER SYSTEM DISABLE RESTRICTED SESSION;

  29. مثال : باتخاذ الخطوات التالیة: Kill Session یمكن القیام بعملیة في نفس الوقت، للقیام بذلك Database یجب أن یكون ھنالك أكثر من مستخدم یعملون على ال · مرة أخرى وادخل باسم SQLPLUS أولاً باسم مستخدم ثم افتح ال SQLPLUS ادخل الى مستخدم اخر. username = SCOTT , password =TIGER و استخدم SYSTEM استخدم :SYSTEM یتم كتابة الجملة التالیة من ال · SELECT USERNAME, SID, SERIAL# FROM V$SESSION WHERE USERNAME = 'SCOTT'; یظھر الناتج التالي (یختلف من جھاز الى أخر) · USERNAME SID SERIAL# ------------------ ---------- ------------------------------ SCOTT 9 51 التالي: SYSTEM یكتب مستخدم ال · ALTER SYSTEM KILL SESSION '9, 51';

More Related