Specifying CREATE DATABASE Statement Clauses
نشر بواسطة : Obay Salah , November 19, 2024
عند تنفيذ العبارة CREATE DATABASE تقوم الOracle Database بتنفيذ العديد من العمليات، وتعتمد العمليات التي يتم إجراؤها علي الينود التي تم تحديد عند عبارة CRAETE DATABASE وقيم التهئية التي قمت بتعيينها.
About CREATE DATABASE Statement Clauses:
يتم إنشاء قاعدة البيانات بعبارة CREATE DATABASE وعند تنفيذ هذه العبارة تقوم الORACLE DATABASE بتنفيذ علي الاقل هذه العمليات:
- إنشاء الDATA FILES لقاعدة البيانات.
- إنشاء ملفات الCONTROL FILES لقاعدة البيانات.
- إنشاء ملفات الONLINE REDO LOGS لقاعدة البيانات.
- إنشاء الSYSTEM TABLESPACE.
- إنشاء الSYSAUX TABLESPACE.
- إنشاء الDATA DICTIONARY.
- وضع الCHARACTER SET بتخزين البيانات في قاعدة البيانات.
- وضع الTIME ZONE.
- فتح قاعدة البيانات في الوضع MOUNT.
Protecting Your Database: Specifying Passwords for SYS and SYSTEM Users:
لحماية قاعدة البيانات قم بعمل Password للمستخدم SYS والمستخدم SYSTEM.
عند تنفيذ العبارة CREATE DATABASE وباستخدام الشرط IDENTIFIED BY يتم تعيين كلمات المرور للمستخدمين SYS & SYSTEM.
USER SYS IDENTIFIED BY password
USER SYSTEM IDENTIFIED BY password
عند إختيارك لكلمة المرور، ضع في إعتبارك أن كلمة المرور حساسة لحالة الحروف، بالإضافة الي ذلك قد تكون هناك متطلبات لتنسيق كلمة المرور لقاعدة البيانات الخاصة بك.
- Creating a Locally managed SYSTEM Tablespace:
اثناء إنشاء قاعدة البيانات يتم إنشاء Locally Managed SYSTEM Tablespace.
Locally Managed Tablespace يستخدم الbitmap المخزنة في كل الData File لإدارة الExtents.
حدد الجملة EXTENT MANAGEMENT LOCAL في العبارة CREATE DATABASE لإنشاءLocally Managed SYSTEM Tablespace.
إذا لم تقم بتحديد الجملة EXTENT MANAGEMENT LOCAL فسوف تقوم قاعدة البيانات بإنشاء الوضع الإفتراضي DICTIONARY-MANAGED SYSTEM TABLESPACE.
إذا قمت بإنشاء قاعدة البيانات مع Locally Managed SYSTEM Tablespace ولم تقم بإستخدام Oracle Managed Files (OMF) فتأكد من إستيفاء الشروط التالية:
- تحديد الجملة DEFAULT TEMPORARY TABLESPACE في العبارة CRAETE TABLESPACE.
- قم بتضمين جملة UNDO TABLESPACE في عبارة CRAETE DATABASE.
Specify Data File Attributes for the SYSAUX Tablespace:
SYSAUX TABLESPACE يتم إنشاؤه بشكل إفتراضي اثناء إنشاء قاعدة البيانات ولكن يمكنك تحديد السمات للDATA FILES الخاصة به وذلك من خلال تضمين الجملة SYAUX DATAFILE
في العبارة CRAETE DATABASE.
إذا قمت بتضمين الجملة DTATFILE للSYSTEM TABLESPACE فيجب عليك كذلك تضمين الجملة SYSAUX TABLESAPCE اثناء إنشاء قاعدة البيانات او ستفشل عملية إنشاء قاعدة البيانات،
هذا الشرط لا يوجد إذا كنت تستخدم الميزة ORACLE MANAGED FILES (OMF).
دائماً ما يتم إنشاء الSYSAUX TABLESPACE اثناء إنشاء قاعدة البيانات وهو TABLESPACE مساعد للSYSTEM TABLESPACE.
SYSAUX TABLESPACE هو TABLESPACE الإفتراضي لعدد من ميزات ومنتجات اوركل التي كانت في السابق تحتاج لTABLESAPCE خاصة بها.
فهو يقلل عدد الTABLESPACES التي تحتاجها قاعدة البيانات كما أنه يقلل الحمل علي الSYSTEM TABLESPACE.
ومن خصائص هذا الSYSAUX TABLESPACE:
- PERMANENT
- READ WRITE
- EXTENT MANAGMENT LOCAL
- SEGMENT SPACE MANAGMENT AUTO
لا يمكنك تغيير هذه الخصائص من خلال الأمر ALTER TABLESPACE واي محاولة لتغيير هذه الخصائص ستحصل علي رسالة خطأ.
يتم تحديد حجم الSYSAUX TABLESPACE حسب حجم مكونات قاعدة البيانات التي تشغل الSYSAUX.
يمكنك عرض قائمة بهذه المكونات عن طريق الإستعلام V$SYSAUX_OCCUPANTS.
Using Automatic Undo Management: Creating an Undo Tablespace:
يتم إستخدام AUTOMATIC UNDO MANAGEMENT لإدارة الUNDO TABLESPACE.
لتفعيل ال AUTOMATIC UNDO MANAGEMENT قم بوضع المتغير UNDO_MANAGEMENT ليأخذ القيمة AUTO في ملف المتغيرات او قم بحذف هذا المتغير وسوف تقوم
قاعدة البيانات بوضع القيمة الإفتراضية الي AUTOMATIC UNDO MANAGEMENT.
في هذا الوضع UNDO DATA يتم تخزينها في الUNDO TABLESPACE ويتم إدارتها بواسطة قاعدة البيانات.
لتحديد وتسمية الUNDO TABLESPACE يجب تضمين الجملة UNDO TABLESPACE في العبارة CREATE DATABASE اثناء إنشاء قاعدة البيانات.
إذا لم تقم بتضمين هذه الجملة وتم تفعيل الAUTOMATIC UNDO MANAGEMENT فسوف تقوم قاعدة البيانات بإنشاء TABLESPACE إفتراضي يسمي SYS_UNDOTBS.
Creating a Default Permanent Tablespace:
اوركل توصي بقوة بإنشاء DEFAULT PERMANENT TABLESPACE.
قاعدة البيانات اوركل تقوم بتعيين هذا الTABLESPACE لجميع الNON-SYSTEM USERS الذين لم تحدد لهم TABLESPACE مختلفة بصورة صريحة.
لتحديد ال DEFAULT PERMANENT TABLESPACEيجب تضمين الجملة DEFAULT TABLESPACE في العبارة CRAEATE DATABASE.
إذا لم يتم تحديد جملة الDEFAULT TABLESPACE فإن الSYSTEM TABLESPACE هو ال PERMANENT TABLESPACE الإفتراضي لجميع المستخدمين NON-SYSTEM USERS.
Creating a Default Temporary Tablespace:
عندما تقوم بإنشاء DEFAULT TEMORARY TABLESAPCE فإن قاعدة البيانات تقوم بتعيين هذا الTABLESPACE للمستخدمين الذين لم يتم تعيين TEMPORARY TABLEAPACE
لهم بشكل صريح.
لإنشاء الDEFAULT TEMPORARY TABLESPACE في قاعدة البيانات قم يتضمين الجملة DEFAULT TEMPORARY TABLESPACE في العبارة CREATE DATABASE.
يمكن تعيين TEMPORARY TABLESPACE للمستخدم أثناء إنشاء المستخدم CREATE USER،
لكن حتي إذا لم تقم بتعيين ذلك أثناء إنشاء المستخدم أو حتي لم يتم تعيين DEFAULT TEMORARY TABLESAPCE اثناء إنشاء قاعدة البيانات ففي الوضع الإفتراضي يتم تعيين
الSYSTEM TABLESPACE كTEMPORARY TABLESPACE, ليس ممارسة جيدة أن تقوم بتخزين البيانات المؤقتة في الSYSTEM TABLESPACE, كما يكون الأمر مرهقا بأن
تقوم بتعيين الTEMPORARY TABLESPACE بشكل فردي لكل مستخدم لذا توصي اوركل بتضمين الجملة DEFAULT TEMORARY TABLESAPCE في العبارة CREATE DATABASE.
Specifying Oracle Managed Files at Database Creation:
يمكنك تقليل عدد الجمل والمتغيرات التي تستخدمها اثناء إنشاء قاعدة البيانات بالأمر CREATE DATABASE وذلك بإستخدام الميزة ORACLE MANAGED FILES (OMF) .
وذلك من خلال المتغيرات:
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST_n
DB_RECOVERY_FILE_DEST
هذه المتغيرات موجودة في ملف المتغيرات تقوم بإرشاد قاعدة البيانات لإنشاء وإدارة ملفات قاعدة البيانات علي مستوي نظام التشغيل.
قاعدة البيانات تقوم بشكل الي بإنشاء وإدارة ملفات قاعدة البيانات علي مستوي نظام التشغيل وهذه الملفات هي:
- Tablespaces and their data files
- Temporary tablespaces and their temp files
- Control files
- Online redo logs
- Archived redo log files
- Flashback logs
- Block change tracking files
- RMAN backups
انظر كيف تقوم OMF بإختصار جملة إنشاء قاعدة البيانات.
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE undotbs1
DEFAULT TEMPORARY TABLESPACE tempts1
DEFAULT TABLESPACE users;
Supporting Bigfile Tablespaces During Database Creation:
تعمل قاعدة البيانات أوركل علي تبسيط إدارة الTablespace وتقدم الدعم لقواعد البيانات الكبيرة للغاية وذلك من خلال السماح بإنشاء BIGFILE TABLESPACES.
يحتوي الBIGFILE TABLESPACE علي ملف واحد ولكن يمكن أن يحتوي هذا الملف علي ما يصل الي 4G BLOCKS.
الحد الأقصي لملفات الDATA FILES في قاعدة البيانات محدود (غالباً 64K Files). لذلك يمكن للBIGFILE TABLESPACES تحسين السعة التخزينية في قاعدة البيانات بشكل كبير.
الجملة SET DEFAULT...TABLESPACEاثناء إنشاء قاعدة البيانات CREATE DATABASE تحدد نوع الDEFAULT TYPE OF TABLESPACE.
يجب أن يكون احد النوعين:
- SET DEFAULT BIGFILE TABLESPACE
- SET DEFAULT SMALLFILE TABLESPACE
إذا تم إهمال هذه الجملة ولم يتم ذكرها فإن SMALLFILE TABLESPACE هو النوع الإفتراضي والتقليدي لإنشاء الTABLESPACES في قاعدة البيانات.
SMALLFILE TABLESPACE يمكن أن يحوي الي 1022 FILES مع حجم BLOCK الي 4M.
CREATE DATABASE mynewdb
USER SYS IDENTIFIED BY sys_password
USER SYSTEM IDENTIFIED BY system_password
SET DEFAULT BIGFILE TABLESPACE
UNDO TABLESPACE undotbs1
DEFAULT TEMPORARY TABLESPACE tempts1;
يمكن تغيير نوع الTABLESPACE الإفتراضي حتي بعد إنشاء قاعدة البيانات وذلك من خلال الأمر.
ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;
كما يمكن الإستعلام عن الCURRENT DEFAULT TABLESAPCE وذلك من خلال الاإستعلام.
SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME = 'DEFAULT_TBS_TYPE';
Overriding the Default Tablespace Type:
يجب التنبيه الي أن SYSTEM and SYSAUX TABLESPACES دائماً ما يتم إنشاؤهم بالDEFAULT TABLESPACE TYPE، لكن يمكن إختيارياً تجاوز الDEFAULT TABLESAPCE TYPE
لكل من ال UNDO and DEFAULT TEMPORARYإثتاء إنشاء قاعدة البيانات CRAETE DATABASE.
علي سبيل المثال يمكنك إنشاء BIGFILE UNDO TABLESAPCE في قاعدة البيانات مع أن قاعدة البيانات تعمل علي DEFAULT SMALLFILE TABLESPACE.
CREATE DATABASE mynewdb ... BIGFILE UNDO TABLESPACE undotbs1 DATAFILE '/u01/oracle/oradata/mynewdb/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
ايضاً يمكنك إنشاء smallfile DEFAULT TEMPORARY tablespace في قاعدة البيانات رغم أن قاعد البياناتع تعمل علي BIGFILE DEFAULT TEMPORARY tablespace.
Specifying the Database Time Zone and Time Zone File:
يمكنك تعيين الTime Zone وذلك من خلال تضمين الجملة SET_TIME_ZONE في العبارة CREATE DATABASE أثناء إنشاء قاعدة البيانات.
إذا لم تقم بتعيين الTime Zone فإنه سوف يتم إختيار ذلك إفتراضياً من خلال نظام التشغيل.
كما يمكنك تغيير الTime Zone لSession معينة من خلال الأمر ALTER SESSION SET TIME_ZONE.
هناك ملفان للTime Zone موجودان في الOracle Home Directory يحتويان علي اسماء الValid Time Zone.
يمكنك الوصول للملفين من خلال المسار الإفتراضي التالي:
ORACLE_HOME/oracore/zoneinfo/timezlrg_11.dat
ORACLE_HOME/oracore/zoneinfo/timezone_11.dat
للإستعلام عن الTime Zone Names في الملف التي تستخدم من خلال قاعدة البيانات:
SELECT * FROM V$TIMEZONE_NAMES;
Specifying FORCE LOGGING Mode:
بعض الDDL Statements مثل (CREATE TABLE) تسمح بالNOLOGGING، التي تجعل عمليات في قاعدة البيانات لا تنشئ Redo Records في الRedo log، بالطبع الNOLOGGING
تسرع العميات في قاعدة البيانات ولكن تؤثر سلباً علي عمليات الإسترجاع (Media Recovery).
يمكنك فرض عمليات كتابة الRedo Record حتي ولو تم تعيين الNOLOGGING لعمليات الDDL في قاعدة البيانات وذلك من خلال تضمين الجملة FORCE LOGGING في الجملة CREATE DATABASE
اثناء إنشاء قاعدة البيانات.
ايضاً يمكنك فرض هذا النمط بعد إنشاء قاعدة البيانات وذلك من خلال الأمر:
ALTER DATABASE FORCE LOGGING
ولكن يمكن أن يستغرق هذا الامر وقتاً طويلاً ليكتمل.
كما يمكنك إالغاء هذا النمط من خلال الامر:
ALTER DATABASE NO FORCE LOGGING;
الوضع FORCE NOLOGGING نمط ثابت, حتي إذا قمت بإغلاق قاعدة البيانات وتشغيلها مرة اخري سيظل هذا الوضع، ولكن إذا قمت بإعادة إنشاء الملف CONTROL FILE فإنه لا يتم إعادة
تشغيل قاعدة البيانات في الوضع FORCE LOGGING الا إذا قمت بتحديد جملة FORCE LOGGING في عبارة CREATE CONTROL FILE.
إبتداءً من الإصدار Oracle Database 18c فإنه تم تقديم جملتين للNOLOGGIN:
- STANDBY NOLOGGING FOR DATA AVAILABILIT
- STANDBY NOLOGGING FOR LOAD PERFORMANCE
والتي تتيح تفعيل الNON-LOGGED وفي نفس الوقت تسمح بتلقي جميع البيانات في قواعد البيانات الإحتياطية ACTIVE DATA GUARD وايضاً تمنع تدهور الأداء الناتج عن إنشاء عدد كبير من
الRedo Log بواسطة الوضع FORCE LOGGING.
Comments
لايوجد تعليق حتى الان