• 1
حسام فيصل

دورة في إدارة قواعد البيانات أوراكل


سؤال

السلام عليكم و رحمة الله :

إن مجال إدراة قواعد البيانات أوركل لا يجد حقه في هذا المنتدى ، لأن أغلب المشاركات تتمحور حول تطوير التطبيقات بشكل عام ، لذلك رغبت في أن أستغل فترة الصيف لنقوم بسلسلة دروس حول إدارة القاعدة ، أي يمكن أن نعتبرها دورة متكاملة في إدارة القاعدة من المستخدمين حتى البنى الفيزيائية كـDatafiles و Redo log Files و البنى المنطقية Table Spaces ، مروراً بالنسخ الإحتياطي Backup و استخدام RMAN ... إلخ بحسب ما يسمح لنا الوقت .

أتمنى أن تأخذ هذ الدورة بأهمية و أجد التفاعل و يتم التثبيت لكي نستثمر الوقت بأفضل وسيلة للتعلم .

و بدلاً من كثرة الكلام لنبدأ الفعل مع القسم الأول إدارة المستخدمين .

ما هي الحاجة إلى وجود مستخدمين ؟

تكمن الحاجة في حتمية وجود خصوصية للبيانات بحيث يستطيع كل شخص أن يحتفظ ببيناته و قدرته على تعديلها و منح الحق لغيره بالإطلاع عليها أو إجراء العمليات المختلفة عليها .

عندما يريد أحد التعامل مع أوراكل يجب أن تكون له سماحية الدخول إلى النظام و هذه السماحية تؤخذ بالطرق : :

1- Data Dictionary قاموس البيانات .

2- Operating System نظام التشغيل .

3- Networking الشبكة .

سيكون موضوع بحثنا هو الطريقتين الأولى و الثانية .

قبل البدء بعملية إنشاء المستخدمين يجب أن أوضح المصطلحات التالية :

1- Schema المخطط : و هي مجموعة objects التي يملكها المستخدم أي الجداول – index –PL/SQL CODE ....

2- Table Space الفضاء الجدولي : منطقياً هو المكان المخصص لكل مستخدم لكي يقوم بتخزين بياناته عليه ، فيزيائياً هو مجموعة من الملفات التي تخزن البيانات ندعوها data file .

3- Privileges الصلاحية : و تعني إمكانية قيام مستخدم معين بعملية ما على البيانات أو إنشاء بنى جديدة أو حذف بنى موجودة ....إلخ .

4-Quotas : و هي السماحة المخصصة للمستخدم للتخزين على فضاء tablespace معين ...

تعليمة إنشاء user :

الشكل القياسي لها :

[color=#CC0000][b]CREATE USER user
IDENTIFIED {BY password | EXTERNALLY}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M ] | UNLIMITED } ON tablespace
]...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
[ PROFILE { profile | DEFAULT }][/b][/color]

مخيفة ، أليس كذلك ؟

بالطبع لا ، فهي بسيطة و سهلة و سنرى ذلك في سياق السلسة بإذن الله ..

لنبدأ بـ :

1- إنشاء Database User :

كما تحدثنا سابقاً فإنه توجد عدة طرق لإنشاء مستخدم منها Data Dictionary . و فيها يأخذ المستخدم صلاحية الدخول من أوركل أي يكون لديه password . لتعليمة الإنشاء المثال التالي:

create user Arabteam 
identified by arabteam_pass

إذا أردنا أن نتوسع أكثر فلنجعل لهذا المستخدم حصة على Users Tablespace و هو فضاء جدولي إفتراضي يتم إنشاءه عند تنصيب Oracle :

create user Arabteam 
identified by arabteam_pass
default tablespace users
quota 50m on users

في الحياة العملية لا يجب لمدير القاعدة أن يعرف كلمة السر الخاصة بمستخدم معين و هذا ما نشاهده في حالتنا فقد أسندنا كلمة السر التي نريد إلى المستخدم و هذا لا يصح . لذلك ما رأيكم لو أننا طلبنا من المستخدم أن يقوم بعملية تغيير قسرية لكلمة السر الخاصة به عند أول دخول ؟؟ بذلك " نصفي ذمتنا " (على الطريقة السورية ) ؟؟

create user Arabteam 
identified by arabteam_pass
default tablespace users
quota 50m on users
password Expire;

حتى الآن أظن أن الأمور بخير و لا يوجد شيء صعب على الفهم على ما أعتقد .....

ماذا لو أردنا عدم تفعيل الحساب مباشرة ؟ أي ننشء الحساب و لكن المستخدم لن يستطيع إستخدامه ؟

create user Arabteam 
identified by arabteam_pass
default tablespace users
quota 50m on users
password Expire
Account Lock;

2- إنشاء Operating System User :

و هنا يتم السماح للمستخدم إستخدام النظام بعد مصادقة نظام التشغيل . كلام غامض جداً جداً ؟؟؟؟؟؟

كلنا يعلم أننا يمكن إنشاء مستخدمين في نظام التشغيل الذي نعمل عليه سواء أكان Windows أو Linux أو أي نظام تشغيل آخر ، أفلا يمكننا إستخدام هذه الإمكانية في سماحية الدخول إلى أوراكل ؟ أي يكفي للمستخدم أن يقوم بستجيل الدخول إلى نظام التشغيل ثم يستدعي مثلاً SQL PLUS هكذا :

  c:\> sqlplus /

أي دون الحاجة إلى كتابة اسم المستخدم و كلمة المرور ؟؟؟ هذا ما ندعو بمصادقة نظام التشغيل ...

كيف نحقق ذلك ؟

create user Arabteam 
identified Externally

و ننشىء مستخدم اسمه ArabTeam على النظام ، و انتهت القصة .. سهلة أليس كذلك ؟؟

و لكن هناك شيء أساسي يجب ذكره : إن اسم مستخدم نظام التشغيل مرتبط بشكل أساسي بالبرامتر OS_AUTHENT_PREFIX ( البارامترات هي مجموعة من القيم التي تحدد طبيعة بعض العمليات الإدارية للقاعدة مثل اسماء data files و control files و النسخ الإحتياطي Backup ..... إلخ و هي مخزنة داخل ملف SPFILE أو PFILE الذين سيكون لهم نقاش طويل بإذن الله ) بحيث يجب أن تكون قيمته "" ... الآن كيف نستطيع فعل ذلك ؟؟؟ لنتبع الخطوات التالية :

1- سجل الدخول بالشكل التالي :

sys/pass as sysdba

2- نفذ التعليمة التالية :

alter system set OS_AUTHENT_PREFIX='' scope=spfile;

3- أغلق القاعدة بالشكل :

shutdown immediate

4- أعد تشغيل القاعدة بالشكل :

startup

و بذلك تم الأمر ..

و الآن لنسجل الدخول بالمستخدم الذي إنشأناه :

 

Connected to:
Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> create user arabteam
2 identified by arabteam;

User created.

SQL> connect arabteam/arabteam
ERROR:
ORA-01045: user ARABTEAM lacks CREATE SESSION privilege; logon denied


Warning: You are no longer connected to ORACLE.
SQL>

ما الذي حدث ؟؟؟؟

تحدثنا في البداية بضرورة وجود الصلاحيات التي تحكم عمل المستخدم حتى في تسجيل دخوله . لذلك نحتاج إلى منح المستخدم Arabteam القدرة على تسجيل الدخول و ذلك بالطريقة :

 SQL> connect system/pass
Connected.
SQL> grant create session to arabteam;

Grant succeeded.

SQL> connect arabteam/arabteam_pass;
Connected.
SQL>

و سيكون لنا حديث طويل جداًعن السماحيات و ذلك في الجزء القادم إن شاء الله .

التعديلات على خصائص المستخدمين :

هل نستطيع إجراء التعديلات على المستخدمين الذين أنشأناهم ؟ هل نستطيع تغيير كلمة المرور أو Quota أو الفضاء الجدولي ؟؟؟

بالطبع نستطيع و ذلك عن طريق التعليمة :

ALTER USER user
[ DEFAULT TABLESPACE tablespace]
[ TEMPORARY TABLESPACE tablespace]
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace
[ QUOTA {integer [K | M] | UNLIMITED } ON tablespace ]
...]

ما رأيكم بتغيير كلمة المرور للسمتخدم الذي أنشأناه ؟؟

SQL> alter user arabteam
2 identified by pass;

User altered.

ملاحظة : يمكن حتى للمستخدم arabteam نفسه أن ينفذ هذه التعليمة لتغيير كلمة السر الخاصة به .

ما رأيكم بتغيير المساحة المخصصة للسمتخدم للكتابة على الفضاء الجدولي USERS ؟؟؟

SQL> alter user arabteam
2 quota 50m on users;

User altered

و بذلك أنتهى الجزء الخاص بإنشاء السمتخدمين .. سوف نتحدث في الجزء القادم بإذن الله عن السماحيات ...

ملاحظة هامة جداً :

لكي تستطيع تطبيق كل التعليمات التي ذكرناها يجب أن توجد سماحيات للقيام بها ، أي لا تحاول أن تنفذ التعليمات بواسطة Scott ، و إنما أنصح تسجيل الدخول بواسطة SYSTEM ..

تم تعديل بواسطه informat
2

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

157 إجابة على هذا السؤال .

  • 0

أولاً : لقد أفرحتني بسؤالك لأنني بدأت أشعر و كأني أحدث نفسي في هذه المجموعة ...... و لا أدري لماذا ؟؟؟ و بدأت بالتفكير في إنهاء هذه السلسلة بسبب قلة التفاعل و عدم تثبيت الموضوع إلى الآن .............

بالنسبة لأسئلتك :

1- فك قفل حساب المستخدم scott يتم بالشكل :

1- سجل الدخول بحساب SYSTEM أو sys ..

2- نفذ التعليمة التالية :

alter user scott
account unlock;

2- بالنسبة إلى " تشغيل الخدمة Enterprise Manager " : نفذ التعليمة التالية في محرر الأوامر قبل تعليمة تشغيل الخدمة :

set oracle_sid=orcl

3- بالنسبة إلى الذاكرة التي لديك فهي تكفي و لكن يجب عليك إدارتها بالشكل الأمثل ... كيف ؟؟

في قسم إنشاء قاعدة البيانات الجديدة يمكنك تحيد مساحة الذاكرة التي يستخدمها Instance ... لأنه في الوضع الإفتراضي يستولي على 40% سواء أكان لديك 256 أو 2 غيغا .....

بالتوفيق أخي malek ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الـ service اشتغلت .. يعطيك العافية ..

لدي سؤال :

ما يهمنا هو connection Host (سلسة المضيف ) أي عندما أريد أن أسجل الدخول على SQL PLUS و التعامل مع قاعدتنا DBCLASS سأكتب

connection Host DBCLASS

عند الدخول إلى sql plus أين سأكتب هذه التعليمة لتحديد قاعدة البيانات الحالية

يعني عندما أكتب startup

سوف يقوم بتشغيل قاعدة بيانات واحدة ... أي قاعدة سوف تعمل و كيف يمكنني تغييرها ...

سؤال أخير .. كيف يمكننا حذف قاعدة بيانات ...

بانتظار الحلقة القادمة أخ : informat

تم تعديل بواسطه malek_sa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إلى الأمام يأخى والله الموفق

أرجو ان تستمع لراى وهو جمع هذه الدوره فى ملف pdf

لتعم الأفاده على الجميع

وجزاك الله كل خير

تم تعديل بواسطه GENIUS-IT
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بعد سؤال

بالنسبة إلى الـ listener سوف أقوم بتعريفه على port معين .. .كيف ستعرف أجهزة الـ Client لاتصال بهذا الـ port

يرجى التوضيح أكثر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالنسبة لأخي عيسى يمكنك تحميل الإصدار من الإنترنت من موقع الشركة نفسها بدلاً من إنتظار الهندي و ذلك بأن تتبع الرابط التالي :

http://www.oracle.com/technology/software/...201winsoft.html

بالنسبة لأخي GENIUS-IT أفضل أن تبقى الدورة على الموقع من أجل تنشيط هذا المنتدى ...

و الآن لنتقل إلى أخي malek المشاغب بأسئلته ( عما إمزح لا تاخدها جد ) :

1- بالنسبة لتحديد القاعدة : عند تشجيل دخولك لــSQL PLUS سيطلب منك connection String بالإضافة إلى اسم المستخدم وكلمة المرور ...

يمكنك أيضاً تحديد القاعدة :

user_name/[email protected]_string  [ AS SYSDBA ]

مثال :

sys/[email protected] as sysdba

تضع تلك التعليمات في مربع اسم المستخدم ...

عندما تنفذ تعليمة STARTUP فإنه يقوم بتنفيذ هذه التعليمة على القاعدة التي قمت بتحديدها عند تسجيل دخولك ....

2- بالنسبة إلى listner :

في قسم تعريف clients و عندما استخدمنا tnsnames.ora قمنا بتحديد port أليس كذلك ؟؟ هذا port هو port الذي يعمل عليه listner الخاص بالقاعدة ....

بإنتظار المزيد من أسئلتك أخي malek ( و بقية الأعضاء أيضاً ) ....

بالتوفيق للجميع

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سؤال و بدون شغب:

ما هو المصطلح Optimal Flexible Architecture (OFA) ... بماذا تفيد هذه التقنية ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

سأجيبك لأنك لم تشاغب :

في بعض الأحيان تصبح إدارة الملفات بالنسبة إلى مدير القاعدة مشكلة كبيرة ، حيث يشاهد على الهارد ملف ما لا يدري هل هذا الملف هو datafile و بالتالي لأي فضاء جدولي ينتمي أو هل ملف Control file .. إلخ ..

إضافة إلى ذلك عندما يريد أن يقوم بإزالة ملف بيانات مثلاً فإن الأمر الذي ينفذه عبر الأوراكل لا يقوم بحذف الملف فيزيائياً أي يستمر بإحتلال مساحة على القرص الصلب و أنت لا تحتاجه ....

لذلك OFA هي طريقة ( و ليست تقنية ) تتيح لأوراكل أن تنشأ الملفات وفق تنسيق متعارف عليه دون أن تضطر إلى كتابة اسم الملف أو حتى مساره ... مثال : إذا أردت إضافة Datafile فإنها تسميه بإسم الفضاء الجدولي الذي يتبع إليه إضافة إلى رقم مميز لهذا الملف و بلاحقة dbf .. الآن عندما تريد حذفه فإنك فقط تنفذ الأمر داخل أوراكل و هي تقوم بالباقي و حذف الملف فيزيائياً ...

بالتوفيق

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خيرا ومازلنا ننتظر درسك القادم على احر من الجمر ...

اقترح ان يكون فيه درس عن الاشياء الجديدة في النسخة 10G

------------------------------------------------------------

عندي سؤال اذا تسمح الان انا لما اخذ dump file من 8i واسويله استيراد على النسخة 9i or 10g مايقبل علشان اختلاف النسخ ( لماذا يحدث هذا ) وسمعت فيه طريقة جديدة في النسخة العاشرة تتيح لك ذلك بدون الطريقة القديمة

-------

ماعليش طولت عليك بس لو يكون فيه اشارة للأدوات المساعدة لل DBA بس تكون من غير اوراكل مثل Quest او غيرها

---

THANKS MY FRIEND

تم تعديل بواسطه baderyy
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم و رحمة الله :

أخي baderyy شكراً على تفاعلك معي بالنسبة للأشياء الجديدة في الأوراكل 10g فإنني دوماً أضمنها في هذه الدورة مثل Enterprise Manager مثلاً ..

من أجل dum file سيكون لي شرح طويل حول هذه الميزة لإستيراد البيانات من إصدارات سابقة فصبراً أخي ...

سنبدأ اليوم في الغوص عميقاً في بنية القاعدة و سيكون موضوعنا الأساسي هو الفضاءات الجدولية و ملفات البيانات ..

الفضاءات الجد ولية tablespace و ملفات البيانات Datafiles :

يتم تخزين البيانات فيزيائياً في أوراكل ضمن ما يعرف بـ Datafiles و هي ملفات بترميز ثنائي ..

ماذا لو أردنا أن نحضر البيانات ؟؟؟ عندها : إذهب إلى ملف البيانات ثم إفتح الملف إلى منتصفه و أحضر البيانات !!! يا مصيبتاه !!!!

و السبب أن القاعدة قد تتألف من عدد كبير من هذه الملفات فهل ستقوم بحفظ اسم الملف لكل جدول تقوم بإنشائه ؟؟؟؟؟ و تصور لو أن الجدول يتألف من أعداد ضخمة من السجلات : هل ستكتفي بملف واحد أم ستحتاج إلى أكثر ؟؟؟؟

و لكننا لا نفعل ذلك و إنما فقط نحدد اسم الجدول و يقوم الأوراكل بهذه المهمة ... ما فعلناه إذاً هو أننا لم نتعامل مع البنية الفيزيائية للقاعدة و إنما استخدمنا ما يسمى البنية المنطقية ..

إذاً :

البنية الفيزيائية : الملفات التي توجد على قرص التخزين تتكون هذه الملفات من datafile و ملفات الإرجاع Redolog .... إلخ

منطقية : ليس لها أي وجود فعلي و إنما هي عبارة عن تسميات تسهل على مدير القاعدة إنجاز أعماله دون أن يضطر للتعامل المباشر مع البنية الفيزيائية :

الفضاءات الجدولية tablespace : و هي البنية المنطقية التي يتم تخزين البيانات بها ، إذاً الفضاء الجدولي يتالف من مجموعة من ملفات البيانات datafile ..

تتألف القاعدة على الأقل من فضاء جدولي واحد و يمكن لفضاء جدولي أن يحوي ملف بيانات أو أكثر ( و يمكن ألا يحوي على أي ملف بيانات و لكن في هذه الحالة لا معنى له ) .. أما ملف البيانات فإنه يتبع لفضاء جدولي واحد فقط ...

عدد ملفات البيانات الأعظم الذي يمكن أن تحويه القاعدة هو 65.535 ملفاً ....

المقاطع segment : و هي اسماء الأغراض التي نقوم بإنشائها داخل القاعدة : مثال الجدول emp هو segment و الفهرس index هو segment ... إلخ

الامتدادات Extents : يتم تقسيم ملفات البيانات إلى مساحات صغيرة تدعى كل مساحة Extent .. و سميت إمتدادات لأنه في العادة يوجد حد إبتدائي لحجم ملف البيانات ماذا لو وصلنا إلى هذا الحد و أردنا إضافة بيانات جديدة ؟؟ عندها سيتم حجز مساحة فيزيائية إضافية للملف بمقدار حجم Extent المحدد بالتالي يصبح هناك مساحة لتخزين البيانات الجديدة ...

لا تشغلوا بالكم كثيراً بهذه الأمور ستتوضح بإذن الله في الأقسام القادمة ...

الآن لنعد إلى الفضاءات الجدولية :

ما رأيكم بإنشاء فضاء جديد ؟

1- شغل Enterprise Manager و سجل الدخول Sys as Sysdba ..

2- إفتح صفحة administration ثم إضغط على tablespaces كما في الصورة

pic11.JPG

3-تظهر لديك جميع الفضاءات الجدولية الموجودة في القاعدة ..

لإنشاء فضاء جديد نضغط على زر Create ..

4-تظهر الصفحة التالية :

pic12.JPG

حيث :

1- Name : هو إسم الفضاء الجدولي و لنضع arabteam_tablespace..

2- Extent Management :

تحدثنا أن Extent هي مساحات تخزينية داخل ملف البيانات ، الآن عندما نريد إضافة سجل جديد إلى الجدول emp ما الذي سيقوم Oracle بفعله ؟؟ سيقوم بالذهاب إلى الفضاء الجدولي الذي قمنا بتخزين الجدول داخله و منه سيحصل على اسم ملف البيانات و عندها سيتحقق هل يوجد أي مساحة فارغة في أي Extent ؟؟ أذا لم يوجد فإنه يقوم بحجز Extent جديد و يقوم بالتخزين داخله ...

إذاً ا عملية التأكد من وجود Extent فارغ و حجز مساحات جديدة أو إزالة مساحات فارغة نسميها إدارة الإمتدادات Extent Management ..

إن هذه الإدارة تعتمد على بنية تبين أي إمتداد Extent يحوي على مساحة فارغة بالتالي هذه البنية إما أن تكون مخزنة داخل الفضاء الجدولي نفسه و هذا ما نسميه Locally Managed Tablespace أو تكون مخزنة داخل قاموس البياناتData Dictionary ( و هو مجموعة من الجداول و المشاهد التي يملكها المستخدم sys التي توصف القاعدة من مستخدميها و صلاحياتهم إلى جدوالها و فهارسها و إجرائياتها .... إلخ ) و هنا ما يسمى Dictionary Managed tablespace ..

من لم يفهم شيئاً فلا مشكلة : من الأفضل إستخدام locally Managed tablespace ...

3-type : نوع الفضاءات الجدولية :

1- permanent : تستخدم لتخزين البيانات بشكل دائم ، و هذا ما نستخدمه معظم الأوقات ..

2- temporary : يستخدم لتخزين البيانات المؤقتة و نستخدمه إذا اردنا إستعمال مثلاً عمليات ترتيب على البيانات قبل إستخدامها ...

3- undo : مخصصة لتخزين بيانات التعديل المؤقت ( كانت هذه مهمة Rollback segments في الإصدار 8i ( و هي التعديلات التي يجريها المستخدم التي تحدثنا عنها عند شرح مفهوم المناقلة Transaction .

4-Status :

و هي حالة الفضاء الجدولي :

1- Read Write : و هي الحالة التي يسمح بها للمستخدم بقراءة و تخزين البيانات على الفضاء الجدولي و هي الحالة الإفتراضية ..

2- Read : و هنا يسمح للمستخدم فقط بالقراءة من الفضاء ..

3- offline : يصبح الفضاء الجدولي و بالتالي جميع الأغراض التي يخزنها خارج الخدمة ...

سيكون لنا أمثلة حول هذا الموضوع في نهاية هذا الدرس .

من القسم Datafiles نستطيع إضافة ملف بيانات جديد إلى هذا الفضاء و ذلك بالضغط على زر Add ..

تظهر الصفحة التالية :

pic13.JPG

1-file name : اسم الملف لنضع arabteam_ts_file1 ..

2-File Directory : المجلد الذي يحوي الملف ..

3-file size : الحجم الإبتدائي الذي نريد حجزه للملف .

من القسم storage نحدد هل نريد أن يتوسع الملف أتوماتيكياً عندما يمتلأ ؟؟

نحدد من increment مقدار الزيادة الواحدة ، يمكننا من Maximum File Size أن نجعل الملف يتوسع إلى الحد الأقصى لحجم ملف تستطيع أوراكل التعامل معه ( حوالي 4 تيرا بايت ) أو نحدد الحد الأعظم الذي لا يجب تجاوزه باختيار value ..

عندما تنتهي نضغط على زر continue ..

5- يمكنك تكرار الخطورة السابقة لإنشاء ملف بيانات آخر و لنسميه arabteam_ts_file2 ...

6- نضغط على زر ok للانتهاء من إنشاء الفضاء ...

الآن ما الفائدة من الفضاء الجدولي ؟؟؟

بالطبع تخزين البيانات و لكن يجب أن نحدد للمستخدم هذا الفضاء ..

لنشغل SQL plus و نسجل الدخول بواسطة المستخدم SYSTEM ..

SQL> alter user arabteam
2 default tablespace arabteam_tablespace
3 quota 50M on arabteam_tablespace;

User altered.

عندها أخواني فإن الجداول التي ينشأها المستخدم arabteam بشكل إفتراضي سيتم تخزين بياناتها داخل هذا الفضاء ..

و السؤال هل يستطيع المستخدم أن يستخدم أكثر من فضاء ؟؟

طبعاً ...

ما رأيكم أن تقوموا بإنشاء فضاء جدولي جديد و تسموه arabteam_tablespace2 ؟؟

الآن سنجعل مستخدمنا arabteam يستطيع إستخدام الفضائين :

SQL> r
1 alter user arabteam
2 default tablespace arabteam_tablespace
3 quota 50M on arabteam_tablespace
4* quota 50M on arabteam_tablespace2

User altered.

SQL>

و السؤال الذي سيطرح نفسه : على أي فضاء جدولي سيتم التخزين ؟؟

أي عندما ننشئ الجدول التالي ( بعد تسجيل الدخول بالحساب arabteam ) :

SQL> connect arabteam/arabteam; 
Connected.
SQL> create table test ( test_col number );

Table created.

SQL>

أين سيتم تخزين البيانات ؟؟

سيتم تخزين البيانات في الفضاء الجدولي الإفتراضي arabteam_tablespace إلا إذا حددنا فضاء آخر في تعليمة الإنشاء .. أي :

SQL>  create table test2 ( test_col number )
tablespace arabteam_tablespace2 ;

Table created.

SQL>

و بذلك نكون قد أنهينا إنشاء فضاء جدولي جديد و أسندناه إلى مستخدمنا arabteam ..

يجب الإنتباه لحذف الفضاء الجدولي لأن جميع الأغراض التي تم إنشائها عليه سيتم حذفها أيضاً ..

drop tablespace arabteam_tablespace;

سأتوقف هنا لعلني أبدأ بإدارة الفضاءات الجدولية في الدرس القادم بإذن الله ...

بالتوفيق للجميع

تم تعديل بواسطه informat
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله يعطيك العافية الدرس كان واضح ....

لكن لدي سؤال صغير : ما قصدك بـ

quota 50M

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إذا عدت إلى القمسم الأول إدارة المستخدمين لوجدت الإجابة الكاملة : quota هي المساحة القصوى المحددة للمستخدم التي يستطيع تخزين البيانات ضمنها و لايحق له تجاوزها على الفضاء الجدولي المحدد ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لدي استفسار بسيط :

لماذا أنا أضع أكثر من datafile في الـ table space ؟؟ ألا يكفي واحد فقط ...

فهمت منك أنه يمكن اختيار auto extent للـ datafile فييزيد حجمه أتوماتيكيا عند عدم وجود مساحة فارغة ؟؟؟

أيها أفضل ؟ أن أضع data file واحد أو ثُلاثة أو خمسة ؟؟؟؟ ومن ناحية سرعة الاسترجاع أيضا

تم تعديل بواسطه malek_sa
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أضع أكثر من ملف بيانات واحد في الفضاء الجدولي عندما يكون هذا الفضاء يقوم بتخزين جداول تتضمن بيانات هائلة ، فتصور لو كان لديك جدول به ملايين السجلات و السجل يتألف من سبعة أعمدة فما فوق فماذا سيكون حجم الملف ؟ تقريباً من 200 ميغا حتى 1000 ميغا ... هل تعلم الصعوبات التي ستواجهك إذا أردت أن تأخذ نسخة إحتياطية ؟؟؟ ما ذا لو كان لديك أكثر من جدول على نفس هذا الفضاء ؟؟؟؟ و أصاب شيء ما هذا الملف ؟؟؟ ماذا لوكان الضغط هائلاً على هذا الجدول كم يستطيع أن يتحمل الملف الواحد الضغط ؟؟؟؟؟

عدد الملفات التي يجب أن يحويها الفضاء تعتمد كثيراً على الجداول و الأغراض التي تخزتها على الفضاء و مقدار الضغط عليها فيمكن أن يحوي ملف بيانات واحد و يمكن أن يحوي مئة ....

تم تعديل بواسطه informat
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كلامك كتير حلو .... و الله يعينك من كثرة أسألتي

اذا كان الفضاء فيه ثلاث ملفات data و قمت بعمل auto extent للملف الأول ... ماذا سيحدث عندما يمتلأ .... سيقوم بتجاوزه إلى الملف الثاني ... أم سيظل يكتب فيه ...... ؟؟؟؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لا يوجد قول صريح من أوراكل حول مايجري و لكن : عندما تمتلأ جميع Extents في ملف البيانات الحالي فإنه يتم حجز Extent جديد و لكن لن ينتظر فإنه ينتقل إلى datafile الثاني الذي يكون جاهزاً لإستقبال البيانات ، و إذا إمتلأ الثاني سينتقل للثالث بينما تتم عملية حجز مساحة جديدة للثاتي ، عندما يمتلأ الثالث سيعود إلى الأول بينما تتم عملية حجز المساحة في الملف الثالث .. إلخ لأن أوراكل تعتمد مبدأ : إحجز مساحة أولاً ثم أضف البيانات.. أي تحجز مساحة 100 ميغا جديدة ولو لإضافة سجل بيانات واحد ...

تم تعديل بواسطه informat
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أرجو أن تشرح لنا ما هو الـ SQL Loader ...

مشكور

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ما رضيت أختار أي من الخيارات في الإستفتاء لأنه الدرس ممتاز جداً جداً جداً .

( الآن أستطيع أن أقول أنه كثير من المعلومات أترتبت ووضحت لي من ذي قبل )

شكر الله لك وجعلها في ميزان حسناتك ..

وللجميع إهداء هذا الدرس :

طريقة إنشاء المرادفات لإبراهيم بخش

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

فعلا مجهود جبار انا كنت بفكر اعمل الفكرة دى بس انت سبئتنى

وانا مكنتش هعرف اعملها فى الوقت ال انت عملتها فيه ولا طبعا بالطريقة الجميلة ال انت عملتها

مشكوور اخى لتعبك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

مشكور اخي حسام على الدرس

بالنسبة لعمل shutdown عن طريق enterprise manager انت ذكرت

ضع في القسم Host Credentials معلومات مستخدم النظام (ويندوز أو linux )

طيب لو ما كنت مستخدم يوزر نيم او باسورد للويندوز

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله يعطيك ألف عافية

بس ماشرحت كيفية فتح قاعدة جديدة انا انتظر هالموضوع على أحر من الجمر

بلييييييييييييييييييييييز لو سمحت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أختي الكريمة شووق : لقد تحدثت سابقاً عن إنشاء قاعدة جديدة و ذلك على الرابط :

http://www.arabteam2000-forum.com/index.ph...mp;#entry524038

و أرجو منك أختي أن تراجعي فهرس الدورة من أجل معلومات أكثر :

http://www.arabteam2000-forum.com/index.php?showtopic=106200

بالنسبة لأخي kad0o0ora :

أرحب بظهورك الأول في هذه الدورة و إنني أنتظر إضافاتك الكريمة عليها لزيادة الفائدة للجميع ..

لأخي المتميز :

كلنا يعلم أنك لا تستطيع العمل و خاصة في XP و 2000 و ما بعدهما إلا عن طريق مستخدمين .. أليس كذلك ؟؟؟

يلزم وضع هذه البيانات من أجل صلاحيات إغلاق القاعدة ، لأنه كما نعرف فإن إغلاق السيرفس العاملة على نظام ويندوز يحتاج إلى صلاحيات مدير نظام Administrator .. لذلك أن تحتاج إلى وضع اسم مدير النظام و كلمة سره من أجل ذلك ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يا أخي الله يرضى عليك حقيقة دورة و لا في الأحلام و شرح تشكر علية اسأل الله ان يوفقك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم أخ حسام

بالنسبة لفتح قاعدة جديدة في اوراكل 10 نفس الخطوات تطبق في في إصدار اوراكل8

وشكرا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم و رحمة الله و بركاتة

أخوي حسام فيصل أرجو مساعدتي في حل مشكلتي حتى أستطيع تنفيذ ماهو موجود في الدورة و هي كالتالي :

انا اعتقد انني عندما عملت تنصيب ل اوراكل 10g اخطئت في بعض الفقرات فأصبح بدون server و لعل بالمثال تتضح الصورة

# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = orcl)(PORT = 1521))
)
(CONNECT_DATA =
(SID = orcl)
)
)

الرجاء مساعدتي سريعا لانني لا استطيع الدخول إلى

sql plus

و تنفيذ اوامر الشرطية مع انني جربت كل شي

sys - system - sysdba - orcl -

سلام

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم يمكنك مراجعة tnsnames التي قمت بشرحها على الرابط :

http://www.arabteam2000-forum.com/index.ph...mp;#entry525030

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .