Creating a Database with the CREATE DATABASE Statement
نشر بواسطة : Obay Salah , November 19, 2024
اسلوب يدوي لإنشاء قاعدة البيانات بدلاً من استخدام الأداة DBCA ولكن بعد إنشاء قاعدة البيانات بإستخدام Create Database Statement يجب إكمال إجراءات إضافية قبل استخدام قاعدة البيانات،
وتشمل هذه الإجراءات بناء الViews علي الData Dictionary ويمكنك تنفيذ هذه الإجراءات عن طريق تشغيل الScripts المزودة.
إليك الخطوات اللازمة لا‘نشاء قاعدة البيانات بصورة يدوية:
:Specify an Instance Identifier (SID)
يتم إستخدام environment variable وهو(ORACLE_SID) لتمييز هذه الInstance الحالية عن الInstances الاخري التي تعمل علي نفس الخادم.
- حدد معرف اوركل الوحيد Oracle System Identifier(SID) للInstance الخاصة بك.
- افتح نافذة الأوامر.
- قم بتعين متغير البيئة ORACLE_SID من الشائع جداً تعيين الSID ليكون مساوياً لاسم قاعدة البيانات DB_NAME، كما تجب الإشارة إلي أن أقصي عدد أحرف لإسم قاعدة البيانات هو ثمانية.
يتم تعيين الSID في نظام التشغيل ويندوز WINDOWS كالاتي (set ORACLE_SID=mynewdb)
أما علي نظام التشغيل لينكس Linux (export ORACLE_SID=mynewdb)
Ensure That the Required Environment Variables Are Set:
إعتماداً علي نظام التشغيل الخاص بك، قبل أن تتمكن من تشغيل الSQL*Plus قد تضطر الي تعيين متغيرات البيئة (environment variable) أو علي الأقل التحقق من تعيينها بصورة صحيحة،
علي سبيل المثال في معظم أنظمة التشغيل يجب تعيين (ORACLE_SID & ORACLE_HOME) بالإضافة الي ذلك ينصح بضبط المتغير PATH ليشمل ال(ORACLE_HOME\bin)،
علي أنظمة التشغيل (UNIX & Linux) يجب عليك تعيين هذه المتغييرات يدوياً أما علي نظام التشغيل Windows تقوم OUI بتعيين القيم (ORACLE_SID & ORACLE_HOME) تلقائياً في الWindows registry.
إذا لم تقم بإنشاء قاعدة البيانات اثناء التثبيت فإن الOUI لا يقوم بتعيين ORACLE_SID في الWindows registry وسيتعين عليك تعيين المتغير ORACLE_SID عند إنشاء قاعدة البيانات الخاصة بك لاحقاً.
Choose a Database Administrator Authentication Method:
يجب أن تتم مصادقتك ومنحك امتيازات النظام المناسبة من أجل إنشاء قاعدة بيانات، ويمكن المصادقة عليك كمسؤول بالامتيازات المطلوبة بالطرق التالية:
- password file
- operating system authentication
Create the Initialization Parameter File:
عند بدء تشغيل الOracle Instance فإنه يقرأ ملف التهيئة (initialization parameter file)، يمكن أن يكون هذا الملف ملف نصي يمكن إنشاؤه وتعديله بواسطة محرر نصوص (PFILE)،
أو ملف ثنائي ، والذي يتم إنشاؤه وتعديله ديناميكيًا بواسطة قاعدة البيانات وهو المفضل ويسمي Server Parameter File (SPFILE).
سنقوم في هذه الخطوة بإنشاء text initialization parameter file (PFILE) وفي خطوة لاحقة سنقوم بإنشاء server parameter file (SPFILE).
احد الطرق لإنشاء ملف PFILE هو تعديل ملف الSample لملف الPFILE (init.ora) والموجود غالباً في المسار $ORACLE_HOME/dbs علي نظام التشغيل لينكس أو يمكنك إنشاء ملف
نصي جديد وتأكد من أنه يضم المتغيرات التالية، أما باقي المتغيرات فلها قيم افتراضية:
- DB_NAME: لابد من تعريف هذا المتغير في ملف المتغيرات وهو معرف قاعدة البيانات ويجب ان يكون متوافق مع قيمة المستخدمة في إنشاء قاعدة البيانات CREATE DATABASE statement.
- CONTROL_FILES: ينصح بشدة تحديد اسم الControl File، إذا لم يتم تحديد قيم لهذا المتغير فإن الأوركل تقوم بإنشاء ملف Control File واحد في نفس مسار ملف المتغيرات، ولكن تعيين قيم لهذا المتغير يوفر لك خيار أن تعمل قاعدة البيانات بأكثر من Control File واحد.
- MEMORY_TARGET: لتحديد اجمالي مقدار الذاكرة التي تستخدمها الInstance.
يفصضل أن يتم تخزين ملف المتغيرات في المسار الإفتراضي وان تتم تسميته كذلك بالإسم الإفتراضي حتي لا تحتاج لتحديد اسم ملف المتغيرات عند تشغيل قاعدة البيانات وذلك لأن الاوركل يقوم بقراءة ملف المتغيرات بشكل الي من المسار الإفتراضي.
: (Windows Only) Create an Instance
في نظام التشغيل Wndows قبل ان تتصل بالInstance يجب عليك إنشاؤها بصورة يدوية بإستخدام الامر ORADIM.
لإنشاء الInstance:
اكتب الامر
oradim -NEW -SID sid -STARTMODE MANUAL -PFILE file
Connect to the Instance:
قم بتشغيل ال SQL*Plusللإتصال بالInstance من خلال الامتياز SYSDBA.
للتحقق من خلال الPassword file قم بكتابة الأمر
Sqlplus /nolog
Connect sys as sysdba
للتحقق من خلال نظام التشغيل
Sqlplus /nolog
Connect / as sysdba
سوف تظهر لك الرسالة التالية
Connected to an idle instance.
Create a Server Parameter File:
يمكنك ملف الServer Parameter File (SPFILE) من تغيير المتغييرات من خلال الامر ALTER SYSTEM ويمكنك إنشاء ملف المتغيرات SPFILE من ملف المتغيرات PFILE.
CREATE SPFILE FROM PFILE;
هذا الامر يقوم بقراءة ملف المتغيرات PFILE بالإسم الإفتراضي في المسار الإفتراضي وإنشاء SPFILE من ملف المتغيرات PFILE وحفظه بالإسم الإفتراضي في المسار الإفتراضي.
يمكنك ايضاً تحديد ايم الملف والمسار لكل من (PFILE & SPFILE) إذا كنت لا تريد استخدام الاسماء والمسارات الإفتراضية.
يجب إعادة تشغيل قاعدة البيانات قبل ان يصبح ملف المتغيرات SPFILE ساري المفعول.
علي الرغم من إنشاء ملف المتغيرات SPFILE امراً اختياياً في هذه المرحلة أثناء إنشاء قاعدة البيانات الا انه يعد امراً موصي به، ولكن إذا لم يتم إنشاء ملف المتغيرات SPFILE فإن
الINSTANCE تستمر في القراءة من ملف المتغيرات PFILE.
Start the Instance:
تشغيل الInstance في الوضع NOMOUNT، يتم تشغيل الInstance في هذا الوضع اثناء إنشاء قاعدة البيانات أو عند عمل صيانة لقاعدة البيانات، ولاننا نقوم بتخزين ملف المتغيرات في المسار
الإفتراضي وبالإسم الإفتراضي فلا نحتاج لتحديد اسم الملف اثناء تشغيل الInstance.
في هذه اللحظة يتم يت تخصيص الذاكرة للInstance وبدء عملياتها بالرغم من أن قاعدة البيانات نفسها لم يتم إنشاؤها بعد.
Issue the CREATE DATABASE Statement:
لإنشاء قاعدة البيانات استخدم CREATE DATABASE Statement.
علي سبيل المثال:
CREATE DATABASE mynewdb USER SYS IDENTIFIED BY sys_password USER SYSTEM IDENTIFIED BY system_password LOGFILE GROUP 1 ('/u01/logs/my/redo01a.log','/u02/logs/my/redo01b.log') SIZE 100M BLOCKSIZE 512, GROUP 2 ('/u01/logs/my/redo02a.log','/u02/logs/my/redo02b.log') SIZE 100M BLOCKSIZE 512, GROUP 3 ('/u01/logs/my/redo03a.log','/u02/logs/my/redo03b.log') SIZE 100M BLOCKSIZE 512 MAXLOGHISTORY 1 MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 1024 CHARACTER SET AL32UTF8 NATIONAL CHARACTER SET AL16UTF16 EXTENT MANAGEMENT LOCAL DATAFILE '/u01/app/oracle/oradata/mynewdb/system01.dbf' SIZE 700M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED SYSAUX DATAFILE '/u01/app/oracle/oradata/mynewdb/sysaux01.dbf' SIZE 550M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED DEFAULT TABLESPACE users DATAFILE '/u01/app/oracle/oradata/mynewdb/users01.dbf' SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/u01/app/oracle/oradata/mynewdb/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED UNDO TABLESPACE undotbs1 DATAFILE '/u01/app/oracle/oradata/mynewdb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED USER_DATA TABLESPACE usertbs DATAFILE '/u01/app/oracle/oradata/mynewdb/usertbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
- إسم قاعدة البيانات mynewdb, أما بالنسبة للglobal database name فسيكون us.example.com حيث (us.example.com) هو اسم الDomain.
- سيتم إنشاء ثلاث ملفات Control Files كما تم تحديدها في المتغير CONTROL_FILES.
- تم تحديد كلمات المرور بالنسبة للمستخدم SYS and SYSTEM وهي كلمات مرور حساسة، ليس من الضروري تحديد كلمات المرور للمستخدم SYS and SYSTEM هنا اثناء إنشاء قاعدة البيانات في الإصدار oracle 19c ولكن إذا قمت بتحديد كلمة المرور فيجب أن يكون لكلا المستخدمين SYS and SYSTEM.
- لقاعدة البيانات ثلاث Redo Log File groups ولكل مجموعة Two Members, تم تحديد بعض الشروط لإنشاء الRedo Log وهي (MAXLOGFILES, MAXLOGMEMBERS, MAXLOGHISTORY), أيضا تم تحديد الBlock Size للRedo Log File وهو 512 Bytes, وهو نفس الPhysical Sectors on Disk، تحديد الBLOCKSIZE إختياري إذا كان نفس Sector Size وهو الوضع الإفتراضي.
- أيضاً تم تحديد عدد ملفات الDATAFILES المسموح بفتحها في قاعدة البيانات وذلك من خلال المتغير MAXDATAFILES, وهذا الرقم يؤثر علي الحجم
- الأولي للControl File (يمكنك تعيين عدة حدود أثناء إنشاء قاعدة البيانات. بعض هذه الحدود محدودة ومتأثرة بحدود نظام التشغيل)
- AL32UTF8 هو الCharcter Set الذي يستخدم لتخزين البيانات في قاعدة البيانات.
- AL16UTF16 وهو الCharacter Set المحدد ك NATIONAL CHARACTER SET يستخدم لتخزين البيانات في الحقول المعرفة ك(NCHAR, NCLOB, or NVARCHAR2).
- SYSTEM Tablespace يحتوي علي ملف DATA FILE واحد موجود علي نظام التسغيل كما تم إنشاؤه وادارته بواسطة Locally Managed Tablespace.
- كذلك الحال بالنسبة لل SYSAUX Tablespace تم إنشاء الDATA FILE في نظام التشغيل.
- تم تحديد الTablespace الإفتراضي في قاعدة البيانات ياستخدام الامر DEFAULT TABLESPACE.
- DEFAULT TEMPORARY TABLESPACE تم إستخدام هذا الأمر لتحديد الTablespace الإتراضي لتخزين البيانات المؤقتة.
- UNDO TABLESPACE وذلك لإنشاء الUndo Tablespace الذي يتم فيه تخزين التغييرات التي تحدث في قاعدة البيانات.
- USER_DATA TABLESPACE وذلك لإنشاء Tablespace لتخزين بيانات المستخدمين.
- يجب التنبيه الي أ عبارة Create Database لا تقوم بإنشاء الDirectories او المسارات لذا وجب عليك التأكد من وجود المسارات الصحيحة.
- عند إنشاء قاعدة البيانات بإستخدام Oracle Managed Files(OMF) فيجب وضع قيمة للمتغير DB_CREATE_FILE_DEST وذلك لتحديد مسارات قاعدة البيانات والتسمية الالية للملفات.
Create Additional Tablespaces:
لجعل قاعدة البيانات تعمل بكفاءة يجب إنشاء Tablespaces اخري لبيانات التطبيقات والمستخدمين، كل ما عليك هو استخدام الأمر CREATE TABLESPACE.
علي سبيل المثال:
CREATE TABLESPACE appstbs LOGGING DATAFILE '/u01/app/oracle/oradata/mynewdb/apps01.dbf' SIZE 500M REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
Run Scripts to Build Data Dictionary Views:
نفيذ الScripts الضرورية لبناء الData Dictionary Views, Synonyms and PL/SQL Packages.
يجب تنفيذ الScripts التالية بعد الإتصال بالصلاحية SYSDBA.
@?/rdbms/admin/catalog.sql @?/rdbms/admin/catproc.sql @?/rdbms/admin/utlrp.sql
تنفيذ الScript التالية بعد الإتصال بالمستخدم SYSTEM.
@?/sqlplus/admin/pupbld.sql
Run Scripts to Build Data Dictionary Views:
الجدول ادناه يوضح وصف لهذه الScripts:
catalog.sql Creates the views of the data dictionary tables, the dynamic
performance views, and public synonyms for many of the views. Grants
PUBLIC access to the synonyms.
catproc.sql Runs all scripts required for or used with PL/SQL.
utlrp.sql Recompiles all PL/SQL modules that are in an invalid state, including
packages, procedures, and types.
pupbld.sql Required for SQL*Plus. Enables SQL*Plus to disable commands by
user.
catpcat.sql Builds the data dictionary. This script runs using the catctl.pl
program (and not using SQL*Plus) and internally runs the scripts
catalog.sql and catproc.sql with parallel processes, thus
improving the performance of building the data dictionary.
(Optional) Run Scripts to install additional Options:
قد تحتاج لتنفيذ بعض الScripts الأخري، ويتم ذلك بناء علي الميزات زالخيارات التي تحتاجها.
إذا كنت تخطيط لتثبيت بعض المنتجات التي تعمل مع قاعدة البيانات فبعض هذه المنتجات تحتاج لAdditional Data Dictionary Tables.
Backup the Database:
بعد الإنتهاء من إنشاء قاعدة البيانات قم بأخذ نسخة إحتياطية لقاعدة البيانات للتأكد من أن لديك مجموعة كاملة من الملفات والتي يمكن إستردداها في حال حدوث مشكلة.
:(Optional) Enable Automatic Instance Startup
قد تحتاج لتهيئة الInstance للتشغيل بصورة الية بعد عمل إعادة تشغيل للخادم.
علي سبيل المثال عند إنشاء الInstance علي نظام التشغيل ويندوذ تحتاج لاستخدام الخيار
ORADIM -EDIT -SID sid -STARTMODE AUTO -SRVCSTART SYSTEM [-SPFILE]
Comments
لايوجد تعليق حتى الان