انشاء قاعدة بيانات جديدة بإستخدام الأمر CREATE DATABASE
قبل أن أبدأ ذكر أي شيء أريد أن أحفظ للأخ طارق موسى حقه في ان يدعو له كل من قد يستفيد من هذه الدروس، فهو صاحب الفكرة وهو الذي دفعني للكتابة، ومع ان الفكرة قديمة، لكن كان هو المشجع الأساسي لي في هذه الدروس.
كما أريد ان اوضح شيء، وهو انني اجنح كثيرا لأستخدام المصطلحات الإنجليزية زليس العربية لسببين، الأول بسبب دراستي، ولا أريد ان اقوم بوضع ترجمه منى قد يصعب على البعض فهمها وقد لا تتبع الترجمة المعيارية للمصطلحات، والثاني، لإيماني بأن المصطلحات يجب ان لا تترجم طالما ان استخدامنا لها في قاعدة البيانات سيكون بالمسمى الأجنبي.
الأمر Create يستخدم في الأوراكل مع عدد من المعاملات، حيث عن طريقة نستطيع انشاء الجداول والفهارس وعدد من الأشياء سنقوم بتناولها كل على حده إن شاء الله، وسأبدا بالأمر الذي تمكنك من إنشاء قاعدة البيانات نفسها.
ولتعريف ليفية انشاء قاعدة البيانات وما هي المعاملات التي يجب تحديدها، يجب علينا أولا معرفة ماهي هذه المعاملات أولا.
1. CONTROLFILE
وهو الملف أو مجموعة الملفات المنوط بها حفظ البيانات الخاصة بقاعدة البيانات نفسها وكيفية تشغيلها، وهي التي تقوم بحفظ البيانات التى تقوم بتعريفها عند عملية انشاء القاعدة نفسها والتي سيلى ذكرها. وتحفظ هذه الملفات في شكل ملفات على مستوى نظام التشغيل، وتستطيع معرفة موقعها بالأمر
select * from v$controlfile
وذلك من ال SQL*PLUS وعند الدخول بالمستخدم SYSTEM
2. LOGFILE
وهي الملفات التي ستستخدم في على أساس ال redo files وتقوم أوراكل بتكوين ملفين تلقائيين إذا لم تقم بتحديد عدد الملفات المطلوب
3. MAXLOGFILE
وهو العدد الأقصى المسموح به للنظام لإنشاء عدد ملفات ال redo، وبإعطائك هذه المعلومة اثناء تكوين قاعدة البيانات، تقوم الأوراكل بتغيير ال init.ora وتحديد المعلومة الجديدة، والحد الأدى المسموح به تلقائيا هو ملفين، كما لايمكن تغيير هذا العدد مستقبلا إلا بإعادة تكوين ال controlfile وذلك لما ذكرنا ان هذا الأخير هو من يحفظ بيانات كيفية تكوين القاعدة.
4. DATAFILES
وهي لتسمية الملفات التي ستستخدمها قاعدة البيانات. وتقوم أوراكل بعمل سجل لهذه الملفات في جدول يمتلكه المستخدم SYSTEM ويسمى DBA_DATA_FILES. وفي حالة تجاهل هذا الأمر عند إنشاء قاعدة البيانات، تقوم الأوراكل بإنشاء DATAFILE واحد فقط، يعتمد إسمه وحجمه على نوع نظام التشغيل.
5. MAXDATAFILES
وهو العدد الأقصي المسموح به نشاء DATAFILES في هذه القاعدة. وتقوم الأوراكل بتغيير القيمة الموجودة على ال DB_FILE في الملف INIT.ORA
6.AUTOEXTEND, NEXT, (MAXSIZE OR UNLIMITED)
وهو امر يفيد الزيادة الحركية للداتا فايل تلقائيا عند ملئه بالبيانات ليضاف له تلقائيا حجم معين من البايتات يحدد في الأمر next، ويحدد السقف الأعلى المسموح به للداتافايل المحدد بالأمرين MAXSIZE كحد اعلى أو UNLIMITED اي لا حدود له.
7.MAXINSTANCE
وعند تحديدها تقوم الأوراكل بتصحيح القيمة الموجودة في ال INSTANCE في ملف ال INIT.ORA لتحديد العدد الأقصى من ال INSTANCES المسموح به في نفس اللحظة على هذه القاعدة.
8. ARCHIVELOG AND NOARCHIVELOG
عندما لا تقوم بتحديد أو تغير القيمة التلقائة، فنها تكون NOARCHIVELOG ، وفي هذه الحالة فإن ال REDO تقوم الأوراكل بإعادة إستخدامه دونما عمل نسخ منه في مكلن آخر، وبالتالي فإن الأوراكل تستطيع ان تقوم بعملية RECOVERY على مستوى ال INSTANCE ولكنها لن تستطيع عملها في حالة حدوث عطب ما في احد مكونات الجهاز مثل ان يتعطل القرص الصلب. وعندما نفعل الخاصية ARCHIVELOG فإن الأوراكل تقوم بنسخ ال REDO FILES على وسط آخر غير القرص الذي تقوم بكتابة البيانات عليه، مثل شريط حفظ او قرص ىخر مثلا.
ويمكن تغيير هذه المعلومة عن طريق الأمر ALTER DATABASE. وهو ما سيشرح لاحقا ان شاء الله.
9.MAXLOGMEMBER
لتحديد الحد الأقصى المسموح به من نسخ مجموعات ال REDOFILES
10. CHARACHTER SET
وهو امر لتحديد نوع ال charachters المستخدم لحفظ البيانات في القاعدة، ويعتمد على نظام التشغيل
وبهذا يمكننا تحديد القيم والمعاملات المطلوبة لتعريف قاعدة البيانات حسب الأمر التالي
CREATE DATABSE CONTROLEFILE REUSE LOGFILE GROUP 1 ('D:/ORACLEDATA/LOGFILES/LOGFILE_G101.LOG' , 'D:/ORACLEDATA/LOGFILES/LOGFILE_G102.LOG' ) SIZE 50K, GROUP 2 ('D:/ORACLEDATA/LOGFILES/LOGFILE_G201.LOG' , 'D:/ORACLEDATA/LOGFILES/LOGFILE_G202.LOG' ) SIZE 50K, MAXLOGFILES 5 MAXLOGHISTORY 200 DATAFILE 'D:/ORACLEDATA/DATAFILES/ORADBF01.DBF' SIZE 200M MAXDATAFILES 20 MAXINSTANCE 20 ARCHIVELOG
وهو مثال بسيط يمكنك تغيير المعاملات حسب الحوجة،
قبل أن أبدأ ذكر أي شيء أريد أن أحفظ للأخ طارق موسى حقه في ان يدعو له كل من قد يستفيد من هذه الدروس، فهو صاحب الفكرة وهو الذي دفعني للكتابة، ومع ان الفكرة قديمة، لكن كان هو المشجع الأساسي لي في هذه الدروس.
كما أريد ان اوضح شيء، وهو انني اجنح كثيرا لأستخدام المصطلحات الإنجليزية زليس العربية لسببين، الأول بسبب دراستي، ولا أريد ان اقوم بوضع ترجمه منى قد يصعب على البعض فهمها وقد لا تتبع الترجمة المعيارية للمصطلحات، والثاني، لإيماني بأن المصطلحات يجب ان لا تترجم طالما ان استخدامنا لها في قاعدة البيانات سيكون بالمسمى الأجنبي.
الأمر Create يستخدم في الأوراكل مع عدد من المعاملات، حيث عن طريقة نستطيع انشاء الجداول والفهارس وعدد من الأشياء سنقوم بتناولها كل على حده إن شاء الله، وسأبدا بالأمر الذي تمكنك من إنشاء قاعدة البيانات نفسها.
ولتعريف ليفية انشاء قاعدة البيانات وما هي المعاملات التي يجب تحديدها، يجب علينا أولا معرفة ماهي هذه المعاملات أولا.
1. CONTROLFILE
وهو الملف أو مجموعة الملفات المنوط بها حفظ البيانات الخاصة بقاعدة البيانات نفسها وكيفية تشغيلها، وهي التي تقوم بحفظ البيانات التى تقوم بتعريفها عند عملية انشاء القاعدة نفسها والتي سيلى ذكرها. وتحفظ هذه الملفات في شكل ملفات على مستوى نظام التشغيل، وتستطيع معرفة موقعها بالأمر
select * from v$controlfile
وذلك من ال SQL*PLUS وعند الدخول بالمستخدم SYSTEM
2. LOGFILE
وهي الملفات التي ستستخدم في على أساس ال redo files وتقوم أوراكل بتكوين ملفين تلقائيين إذا لم تقم بتحديد عدد الملفات المطلوب
3. MAXLOGFILE
وهو العدد الأقصى المسموح به للنظام لإنشاء عدد ملفات ال redo، وبإعطائك هذه المعلومة اثناء تكوين قاعدة البيانات، تقوم الأوراكل بتغيير ال init.ora وتحديد المعلومة الجديدة، والحد الأدى المسموح به تلقائيا هو ملفين، كما لايمكن تغيير هذا العدد مستقبلا إلا بإعادة تكوين ال controlfile وذلك لما ذكرنا ان هذا الأخير هو من يحفظ بيانات كيفية تكوين القاعدة.
4. DATAFILES
وهي لتسمية الملفات التي ستستخدمها قاعدة البيانات. وتقوم أوراكل بعمل سجل لهذه الملفات في جدول يمتلكه المستخدم SYSTEM ويسمى DBA_DATA_FILES. وفي حالة تجاهل هذا الأمر عند إنشاء قاعدة البيانات، تقوم الأوراكل بإنشاء DATAFILE واحد فقط، يعتمد إسمه وحجمه على نوع نظام التشغيل.
5. MAXDATAFILES
وهو العدد الأقصي المسموح به نشاء DATAFILES في هذه القاعدة. وتقوم الأوراكل بتغيير القيمة الموجودة على ال DB_FILE في الملف INIT.ORA
6.AUTOEXTEND, NEXT, (MAXSIZE OR UNLIMITED)
وهو امر يفيد الزيادة الحركية للداتا فايل تلقائيا عند ملئه بالبيانات ليضاف له تلقائيا حجم معين من البايتات يحدد في الأمر next، ويحدد السقف الأعلى المسموح به للداتافايل المحدد بالأمرين MAXSIZE كحد اعلى أو UNLIMITED اي لا حدود له.
7.MAXINSTANCE
وعند تحديدها تقوم الأوراكل بتصحيح القيمة الموجودة في ال INSTANCE في ملف ال INIT.ORA لتحديد العدد الأقصى من ال INSTANCES المسموح به في نفس اللحظة على هذه القاعدة.
8. ARCHIVELOG AND NOARCHIVELOG
عندما لا تقوم بتحديد أو تغير القيمة التلقائة، فنها تكون NOARCHIVELOG ، وفي هذه الحالة فإن ال REDO تقوم الأوراكل بإعادة إستخدامه دونما عمل نسخ منه في مكلن آخر، وبالتالي فإن الأوراكل تستطيع ان تقوم بعملية RECOVERY على مستوى ال INSTANCE ولكنها لن تستطيع عملها في حالة حدوث عطب ما في احد مكونات الجهاز مثل ان يتعطل القرص الصلب. وعندما نفعل الخاصية ARCHIVELOG فإن الأوراكل تقوم بنسخ ال REDO FILES على وسط آخر غير القرص الذي تقوم بكتابة البيانات عليه، مثل شريط حفظ او قرص ىخر مثلا.
ويمكن تغيير هذه المعلومة عن طريق الأمر ALTER DATABASE. وهو ما سيشرح لاحقا ان شاء الله.
9.MAXLOGMEMBER
لتحديد الحد الأقصى المسموح به من نسخ مجموعات ال REDOFILES
10. CHARACHTER SET
وهو امر لتحديد نوع ال charachters المستخدم لحفظ البيانات في القاعدة، ويعتمد على نظام التشغيل
وبهذا يمكننا تحديد القيم والمعاملات المطلوبة لتعريف قاعدة البيانات حسب الأمر التالي
CREATE DATABSE CONTROLEFILE REUSE LOGFILE GROUP 1 ('D:/ORACLEDATA/LOGFILES/LOGFILE_G101.LOG' , 'D:/ORACLEDATA/LOGFILES/LOGFILE_G102.LOG' ) SIZE 50K, GROUP 2 ('D:/ORACLEDATA/LOGFILES/LOGFILE_G201.LOG' , 'D:/ORACLEDATA/LOGFILES/LOGFILE_G202.LOG' ) SIZE 50K, MAXLOGFILES 5 MAXLOGHISTORY 200 DATAFILE 'D:/ORACLEDATA/DATAFILES/ORADBF01.DBF' SIZE 200M MAXDATAFILES 20 MAXINSTANCE 20 ARCHIVELOG
وهو مثال بسيط يمكنك تغيير المعاملات حسب الحوجة،