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

?? ???? ????? ??????? ?? ??????? ? - PowerPoint PPT Presentation


  • 214 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '?? ???? ????? ??????? ?? ??????? ?' - astra


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
4330050
ما معنى إغلاق القاعدة أو تشغيلها ؟

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


4330050

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


4330050

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

  • Oracle home\admin\dbclass\bdumb\alert_dbclass.log


4330050

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


4330050

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


4330050

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


4330050

  • يتم أمر التشغيل كالتالي : ؟ 1- تسجيل الدخول أولاً بالحساب SYS AS SYSDBA على برنامج SQLPLUS . 2- تنفيذ الأمر : كود

  • startup Level_name;

  • لشتغيل القاعدة مثلاً في وضع No Mount : كود

  • startup nomount;


4330050


4330050

  • ما ذا لو أردنا الإنتقال بين المراحل ؟ 1- نشغل القاعدة بالوضع nomount : كود

  • startup nomount;

  • 2- للإنتقال إلى الوضع mount : كود

  • alter database mount;

  • 3- للإنتقال إلى الوضع النهائي : كود

  • alter database open;

  • إنتبه : لا يمكنك الانتقال بالعكس أي أن تعود من مرحلة open إلى مرحلة mount أو من Mount إلى nomount ، عليك أن تغلق القاعدة ثم تنتقل إلى المرحلة التي تريد ...


4330050
إغلاق القاعدة المراحل ؟

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


Transactions
المناقلات المراحل ؟ Transactions

  • تعني المناقلة مجموعة التعديلات بواسطة تعليمات DML التي يجريها المستخدم ضمن جلسته الحالية ... و هذه التعديلات تكون مؤقتة يمكن التراجع عنها أو تثبيتها بحسب رغبة المستخدم .. يمكنك تجربة المناقلة ببساطة : نفذ بعض تعليمات insert أو update أو delete على جدول ما ثم نفذ التعليمة التالية : كود

  • rollback;

  • فتجد أن جميع التعديلات التي أدخلتها قد ولت أدراج الرياح و كأنك لم تفعل شيئاً .. إذاً ما الذي فعلته التعليمة Rollback ؟؟ ماقامت به التعليمة هي مجرد التراجع عن المناقلة التي قمت بها و أعادت كل شيء إلى طبيعتها ... حسناً : ماذا لو أردت تثبيت التعديلات لتصبح دائمة ؟ كود

  • commit;


4330050

  • لنعد إلى إغلاق القاعدة : المراحل ؟ لإغلاق القاعدة تحتاج إلى تنفيذ التعليمة التالية : كود

  • SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

  • لنبدأ بالشرح : 1- Normal : و هو الخيار الإفتراضي حيث ينتظر النظام جميع المستخدمين لكي ينتهوا من عملهم مع القاعدة و يقوموا بإغلاق اتصالاتهم (تسجيل الخروج من SQLPLUS أو إغلاقه أو حتى إغلاق البرامج التي تتعامل مع الأوراكل ) ... هذا الأمر يحفظ جميع المناقلات و لن يسبب لك أي مشكلة عند تشغيل القاعدة مرة أخرى .. و لكن له سيئة ضخمة : لو كان لديك موظف يتناول فطوره و يدردش على الهاتف أو مع زميله و ماذا متصلاً مع القاعدة فعندها سوف تتنظر حتى ينتهي( أو تطرده ) لكي تغلق القاعدة ... جربوا هذه المسألة : 1-شغل SQLPLUS و سحل الدخول مثلاً بالحساب Scott .. 2- شغل نسخة أخرى من SQLPLUS و سجل الدخول بالحساب SYS AS SYSDBA ...و نفذ التعليمة : كود

  • shutdown normal;

  • فتجد أنه ينتظر ... 3- أغلق نسخة SQLPLUS التي استعملتها مع Scott فستجد أنه بدأ بإغلاق القاعدة عند النسخة الثانية ....


4330050

بھذه الحالة یتم التالي: المراحل ؟ 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 نقلت الى الملفات الفیزیائیة. وعملیة


4330050

  • 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 .....


4330050

  • 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 قد تم التراجع عنه ...


4330050

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


4330050

فوراً دون انتظار خروج المستخدمین أو انھاء مھامھم التي طلبوھا قبل أمر الاغلاق. Database یتم اغلاق ال

المھمات التي تم طلبھا قبل أمر الاغلاق تلغى و أیة تعدیلات طرأت على البیانات بسببھا تزال وتمسح ·

.ROLLBACK (بشرط ان تكون المھمة ما تزال تعمل عند أمر الإغلاق) ولا یحدث لھا

.Redo Log Files الى ال Redo Log Buffer لا یتم نقل بیانات ال ·

Data Files الى ال Database Buffer Cache لا یتم نقل بیانات ال ·

.

ROLLBACK لا یحدث لھا COMMIT المھمات التي لم یحدث لھا ·

بشكل فوري. Instance وال Database یتم اغلاق ال ·


4330050

  • كيف نستطيع استخدام أو انھاء مھامھم التي طلبوھا قبل أمر الاغلاق. Enterprise Manager في موضوعنا هذا ؟؟

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


4330050


4330050

  • ضع في القسم أو انھاء مھامھم التي طلبوھا قبل أمر الاغلاق. Host Credentials معلومات مستخدم النظام (ويندوز أو linux ) و في القسم Database Credentials ضع اسم المستخدم Sys و كلمة سره ...ثم إضغط على زر ok .. بالنسبة لسمتخدمي الليونكس فالأمر تمام أما بالنسبة لسمتخدمي الويندوز فسوف تظهر الرسالة التالية :

  • مع العلم أنك قد وضعت كلمة السر صحيحة تماماً .... ما العمل ؟؟؟ يجب عليك أن تعطي الصلاحية للمستخدم الذي تعمل عليه بأن يقوم بتسجيل الدخول كــpatch jop .. كيف يتم ذلك ؟؟؟


4330050

  • إدخل على أو انھاء مھامھم التي طلبوھا قبل أمر الاغلاق. Local Security Policy داخل Administrative Tools في لوحة التحكم ... إختر كما في الصورة :


4330050


4330050


4330050

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


4330050

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


4330050

  • :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" اذاً ھي مثل عملیة


4330050

:ALTER DATABASE Command -1 المعلومات نفسها ..

یمكن ان تستخدم في عدد من الوظائف منھا :

من : Database -تغییر حالة ال

MOUNT الى NOMOUNT-·

OPEN الى MOUNT-·

  • باتباع القاعدة التالیة: ALTER DATABASE یمكن استخدام أمر ال

    ALTER DATABASE [database's name] MOUNT | OPEN;

    مثال:

  • بكتابة التالي: MOUNT یمكن التحویل الى ال NOMOUNT بینما یتم استخدام حالة ال

    ALTER DATABASE MOUNT;


4330050

:Restricted Mode المعلومات نفسها ..

في ھذه الحالة لإعطاء المجال للمستخدمین الذي یملكونة Database یمكن تشغیل ال

من القیام بمھات خاصة. Restricted Session Privilege

مثال :

: Restricted في حالة ال Database لتشغیل ال

STARTUP RESTRICTED;

یمكن تحویل الحالة بشكل داینامیكي باستخدام:

ALTER SYSTEM ENABLE RESTRICTED SESSION;

ALTER SYSTEM DISABLE RESTRICTED SESSION;


4330050

مثال : المعلومات نفسها ..

باتخاذ الخطوات التالیة: 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';


ad