• 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 إجابة على هذا السؤال .

  • 1

أهلاً بالأخوين {عيسى} و Aboalnoor-Delphi7 . و أتمنى أن يستفيد الجميع .

إدارة السماحيات :

بكلمتين : السماحية هي قدرة المستخدم على فعل شيء ما .

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

تقسم الصلاحيات إلى نوعين :

1-على مستوى النظام System Level : تسمح بتنفيذ عمليات على القاعدة بشكل عام كإنشاء الجدوال و حذفها .... إلخ .

2- على مستوى الغرض Object : تسمح بتنفيذ عمليات على غرض محدد . مثلاً : حذف سجلات من الجدجول emp .

يتم منح السماحيات إلى السمتخدم عن طريق :

1- مباشر بمنح الصلاحية و تسميته .

2- عن طريق Role ( مجموعة سماحيات سنتعرف إليها لاحقاً ) .

3- عن طريق اسناد السماحية لجميع المستخدمين public .

و لنبدأ بــ

1-System Privilege :

يوجد حوالي 100 صلاحية مختلفة ضمن هذا المستوى تتضمن العمليات على مستوى القاعدة للتعامل مع الأغراض المختلفة مثل الجداول و الفهارس و المتسلسلة Sequence و الفضاءات الجدولية TableSpaces .....

مثال :

تذكرون مثالنا السابق حيث سمحنا للمستخدم Arabteam بتسجيل الدخول ؟

grant create session to arabteam;

فالسماحية Create Session هي على مستوى النظام System Level .

بشكل عام يتم منح الصلاحيات بالشكل :

GRANT {system_privilege|role}
[, {system_privilege|role} ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]

مثال آخر :

- ما رأيكم أن نجعل المستخدم arabteam قادراً على إنشاء جدول ؟؟

grant create table to arabteam;

يمكنك أن تمنح المستخدم أكثر من سماحية في نفس الوقت :

مثال لنجعل المستخدم arabteam قادراً على تنفيذ تعليمة select و Update على أي جدول يريده في القاعدة :

grant select Any table , update any table to arabteam;

لحظة واحدة : ما ذا تعني كلمة Any ؟ و لماذا وضعناها ؟

السبب : عندما نضع Any فهذا يعني الصلاحية المطلقة الكاملة للمستخدم على مستوى القاعدة بشكل عام .

للتوضيح :

عندما نمنح المستخدم صلاحية إنشاء جدول create table فإنه يستطيع فيما بعد حذف الجدول الذي أنشأه فقط . ما ذا لو أردنا إطلاق يده ليعتدي على جداول الأخرين و يقوم بالحذف ؟

grant drop any table to arabteam;

- حسناً : ماذا لو أردنا أن نجعل المستخدم arabteam قادراً على منح الصلاحية التي منحناها له لمستخدم آخر ؟

يمكننا ذلكك إذا أرفقنا with admin option .

أي :

grant create table to arabteam with admin option ;

و بذلك يستطيع المستخدم arabteam منح هذه الصلاحية إلى مستخدم آخر ليكن arabteam2 ....

ماذا لو غضبنا من المستخدم arabteam و أردنا سحب الصلاحية ؟

revoke drop any table from arabteam;

الآن سأذكر الصلاحيات الشائعة مقسمة حسب نوع object الذي نتعامل معه :

  الفئة													   الصلاحية 
INDEX CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX

TABLE CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE

SESSION CREATE SESSION
ALTER SESSION
RESTRICTED SESSION

TABLESPACE CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE

إذا أردت أن تعرف جميع الصلاحيات اكتب الإستعلام التالي ( بعد تسجيل الدخول بإحد الحسابين SYSTEM أو SYS ) :

select distinct privilege 
from dba_sys_privs;

2- على مستوى الغرض Object Level :

هنا الصلاحية تطبق على غرض محدد: جدول –مشهد view – متسلسلة sequence - إجرائية procedure .

هذه الصلاحيات معدودة على الأصابع :

1- Alter : تطبق على جدول– متسلسلة sequence - إجرائية procedure .

2- Delete : تطبق على جدول – مشهد view .

2-Execute : تطبق على : إجرائية procedure .

3 – Index : أي فهرسة : جدول – مشهد view .

4- Insert : جدول –مشهد view .

5- References : جدول .

6-Select : جدول –مشهد view – متسلسلة sequence .

7- Update : جدول –مشهد view .

مثال : لنجعل مستخدمنا arabteam قادراً على القراءة select من الجدول emp :

SQL> grant select on scott.emp to arabteam;

Grant succeeded.

و لنجعله قادراً على تنفيذ الحزمة dbms_output :

SQL> grant Execute  on dbms_output to arabteam;

Grant succeeded.

بشكل عام :

يتم منح صلاحية object privilege بالشكل التالي :

GRANT { object_privilege [(column_list)]
[, object_privilege [(column_list)] ]...
|ALL [PRIVILEGES]}
ON [schema.]object
TO {user|role|PUBLIC}[, {user|role|PUBLIC} ]...
[WITH GRANT OPTION]

ماذا لو أردنا أن نجعل arabteam قادراً على منح الصلاحية لمستخدم آخر ؟؟

SQL> grant select on scott.emp to arabteam with grant option;

Grant succeeded

هنا يجب أن نتوقف عند مقارنة صغيرة :

ما الفرق بين grant option التي استخدمناها مع Object Level و Admin option التي استخدمناها مع System LeveL ؟

تخيلوا السيناريو التالي :

1- قمنا بمنح سماحية ما إلى المستخدم arabteam .

2-قام المستخدم arabteam بمنح هذه الصلاحية إلى المستخدم arabteam2 .

3- سحبنا الصلاحية من المستخدم arabteam .

و السؤال : هل سيتأثر المستخدم arabteam2 بعملية السحب ؟؟

و الجواب :

إذا تم استخدام admin option فإنه لن يتأثر مطلقاً و بوسعه استخدام الصلاحية .

إذا تم إستخدام grant option فإن الصلاحية ستسحب منه أيضاً .

الآن ملاحظة هامة جداً للمطورين :

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

الآن بدأت أشعر بالنعاس -_- و أصبحت أرى عبارات Oracle على الجدران :blink: ..

لذلك سأتوقف الآن و سأقوم بتجهيز القسم الثالث الذي يشرح ـمجموعات السماحيات Roles على الأغلب غداً إن شاء الله ..

1

شارك هذا الرد


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

اخي انفورمات هل من الممكن ان تضع اندكس أو فهرس معين للدوره

عشان نفهمها هنا ونفهمها من الكتب الأخرى

والف شكر على هالدوره اللي ننتظرها من زمان . . .

0

شارك هذا الرد


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

شكراً للجميع ..

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

1-إدارة السمتخدمين .

2-إدارة البنية الفيزيائية و المنطقية للقاعدة :

2-1- إدارة Oracle Instance .

2-2 - إيقاف و تشغيل القاعدة .

2-3- إنشاء قاعدة جديدة .

2-4- التعامل مع Control file و Data file و Redo log .

2-5- الفضاءات الجدولية .

2-6 - إنشاء الجداول و الفهارس و المشاهد .

3- النسخ الإحتياطي للقاعدة :

3-1- النسخ اليدوي .

3-2 - استخدام RMAN .

4- إستخدام الأدوات الخاصة من أوراكل :

4-1- Sql Loader .

4-2- Log Miner .

4-3- Export And Import .

بالنسبة لمرجعي الأساسي فهو منهاج شهادة إدارة قواعد بيانات أوراكل Oracle Certified Database Administratio ( التي و بحمد الله قد حصلت على OCA في هذا المجال و بإنتظار Ocp بعون الله )

أنصح بكتب Oracle University سواء أكانت :

1- Oracle 9i Database Administration fundamentals 1 And 2

2- Oracle 10g DBA workshop 1 and 2 .

0

شارك هذا الرد


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

السلام عليكم :

تحدثنا في الأجزاء السابقة عن إنشاء المستخدمين و منح الصلاحيات ،و لكن ما رأيكم بالتالي :

لديك حوالي 100 مستخدم جديد نريد إنشاءهم ، ثم منح صلاحيات إنشاء الجدوال و المشاهد للجميع ، فالسؤال كم سطراً من التعلميات تحتاج ؟ و في الجهة الأخرى إذا أردت سحب صلاحية معينة من هؤلاء المئة فكم سطراً أخر ستكتب من أجل ذلك ؟ و هل أنت متأكد من أنك لم تنسى أي مستخدم ؟؟

الحل : مجموعة السماحيات Rols .

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

تتميز role بسهولة إستخدامها المرة تلو الأخرى بحيث يتم إسنادها إلى المستخدم و سحبها منه ، كما أن سحب الصلاحية من role تؤدي إلى سحبها من المستخدم الذي أسندنا له تلك role . يمكن أن تسند أكثر من role إلى مستخدم ما ، كما يمكنك اسناد role واحدة إلى أكثر من مستخدم .

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

SQL> create role arabteam_role;

Role created.

بشكل عام :

CREATE ROLE role [NOT IDENTIFIED | IDENTIFIED
{BY password | EXTERNALLY | GLOBALLY | USING package}]

- ماذا لو أردنا منح role مشروطة لمستخدم ما ؟ أي يجب عليه كتابة كلمة سر لتمكين هذه role ؟؟

 SQL> create role arabteam_role  
identified by arabteam_pass;

Role created.

ماذا لو أردنا مصادقة نظام التشغيل ( كما فعلنا مع المستخدمين ) لتمكين role ؟

 SQL> create role arabteam_role  
identified Externally;

كيف نسند السماحيات إلى role ؟

بالطريقة نفسها التي أسندنا فيها السماحيات للمستخدمين :

 SQL> grant create table to arabteam_role; 
Grant succeeded

الآن كيف نسند role إلى المستخدمين ؟

SQL> grant  arabteam_role to arabteam; 
Grant succeeded

حتى أننا نستطيع إسناد role إلى أخرى ، فتصبح الثانية تحوي صلاحيات الأولى :

SQL> grant  arabteam_role1 to arabteam_rol2; 
Grant succeeded

بشكل عام :

GRANT role [, role ]...
TO {user|role|PUBLIC}
[, {user|role|PUBLIC} ]...
[WITH ADMIN OPTION]

تمكين و إلغاء تمكين Roles :

يستطيع المستخدم arabteam أن يفعل أو يلغي عمل role معينة قام مدير القاعدة أو أي مستخدم آخر بإسنادها إليه . قد يسأل البعض: أي مجنون يلغي صلاحيات ممنوحة إليه ؟؟؟

الجواب سيدركه مطوري التطبيقات أكثر من غيرهم : في التطبيقات قد يتشارك الموظفون اسم مستخدم واحد لإستعمال التطبيق ، و لكن نريد فرض مستويات من الحماية على مستوى السمتخدم الواحد ، أي قد نسمح لموظف (س) بسماحيات أكثر من الموظف (ع) رغم أن الإثنين يقومان بتسجيل الدخول بالمستخدم arabteam .

أرجو أن الفكرة قد وصلت .

كيف نستطيع التفعيل :

بإستخدام التعليمة set :

Set role arabteam_role;

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

set role arabteam_role identified by arabteam_pass;

ماذا لو أراد المستخدم تفعيل جميع roles التي يملكها ماعدا role معينة ؟

set role all except arabteam_role;

لمطوري التطبيقات :

هناك dbms_session.set_role لتمكين role معينة ، و لكن إنتبه فلا يمكنك استعمال في PL/SQL Stored Procedure بل نستطيع إستعمالها فقط عن طريق Anonymous block أو عن طريق TRIGGER على مستوى الفورم .

أي :

SQL> begin
2 dbms_session.set_role('arabteam_role');
3 end;
4 /

PL/SQL procedure successfully completed.

إنظر إلى التالي:

SQL> create or replace procedure  set_proc
2 is
3 begin
4 dbms_session.set_role('role1');
5 end;
6 /

Procedure created.

SQL> execute set_proc;
BEGIN set_proc; END;

*
ERROR at line 1:
ORA-06565: cannot execute SET ROLE from within stored procedure
ORA-06512: at "SYS.DBMS_SESSION", line 124
ORA-06512: at "SYSTEM.SET_PROC", line 4
ORA-06512: at line 1

أرجو أن الفكرة قد وصلت .

ماذا لو أردنا إنشاء role لا يمكن تفعيلها إلا عن طريق تنفيذ package معينة ؟؟؟؟

ننشىء role خاصة نسميها Application Role بالطريقة التالية :

 create role arabteam_approle 
identified using arabteam.SetRole_package;

ملاحظة هامة جداً : كل عمليات set التي تجريها سوف يتم التراجع عنها عند تسجيل الخروج بحيث تعود مجموعة السماحيات الإفتراضية التي يتم إسنادها بالشكل :

SQL> alter user arabteam
2 default role arabteam_role;

User altered.

- يتم سحب الصلاحية من role بنفس الطريقة التي إستعملناها مع user :

revoke create table from arabteam_role;

- حذف الصلاحية يتم بالتعليمة التالية :

 drop role arabteam_role;

أخيراً : توجد مجموع من Roles التي يتم إنشاءها إفتراضياً مع تنصيب أوراكل :

1- CONNECt : للتوافقية مع الإصدارات المختلفة من الأوراكل سيرفر و تضم صلاحية واحدة فقط هي create session >

2- Resource : و هي role قوية تضمن صلاحيات تتيح للمستخدم إنشاء جداوله بأي مساحة على أي table space بالإضافة إلى مميزات أخرى . في رأيي إن هذه role تمنح للمستخدمين المميزين في القاعدة . تحوي هذه role على :

CREATE SESSION
UNLIMITED TABLESPACE

بالإضافة إلى سماحيات إنشاء الجدوال و المشاهد و إجرائيات PL/SQL ....

3- dba : و هي role الشهيرة جداً و هي تحوي جميع السماحيات التي تجعل من المستخدم "معلم الداتا بيس " أو المستخدم الذي لا يخضع إلا للمستخدم sys . هذه role خطيرة جداً فهي تجعل المستخدم قادراً على كل شيء في القاعدة حتى عملية التخريب المقصودة أو غير المقصودة و في العادة لا تمنح هذه role إلا لشخص و احد فقط و هي مدير القاعدة الرئيسي أما البقية فيتم منحهم أجزاء من هذه role . تحوي هذه role على السماحيات التالية :

ADVISOR ,AUDIT ANY ,DROP USER ,RESUMABLE ,ALTER USER , CREATE JOB , ANALYZE ANY , BECOME USER , CREATE ROLE , CREATE RULE , CREATE TYPE , CREATE USER , CREATE VIEW ,  ALTER SYSTEM , AUDIT SYSTEM , CREATE  TABLE , DROP PROFILE ,ALTER PROFILE , ALTER SESSION , DROP ANY ROLE,
DROP ANY RULE,DROP ANY TYPE,DROP ANY VIEW ,QUERY REWRITE ,ALTER ANY ROLE , ALTER ANY RULE , ALTER ANY TYPE , ALTER DATABASE , CREATE ANY JOB , CREATE CLUSTER , CREATE LIBRARY , CREATE PROFILE , CREATE SESSION , CREATE SYNONYM , CREATE TRIGGER , DROP ANY INDEX , DROP ANY TABLE , GRANT ANY ROLE , LOCK ANY TABLE ,UNDER ANY TYPE ,UNDER ANY VIEW ,ALTER ANY INDEX , ALTER ANY TABLE , CREATE ANY RULE , CREATE ANY TYPE ,CREATE ANY VIEW ,CREATE OPERATOR ,CREATE RULE SET ,CREATE SEQUENCE ,DROP TABLESPACE , UNDER ANY TABLE ,ALTER TABLESPACE ,BACKUP ANY TABLE ,CREATE ANY INDEX , CREATE ANY TABLE , CREATE DIMENSION
CREATE INDEXTYPE ,CREATE PROCEDURE ,DELETE ANY TABLE ,DROP ANY CLUSTER ,DROP ANY CONTEXT ,DROP ANY LIBRARY ,DROP ANY OUTLINE ,DROP ANY SYNONYM ,DROP ANY TRIGGER ,EXECUTE ANY RULE ,EXECUTE ANY TYPE ,INSERT ANY TABLE ,MANAGE ANY QUEUE ,MANAGE SCHEDULER ,SELECT ANY TABLE ,UPDATE ANY TABLE ,ALTER ANY CLUSTER ,ALTER ANY LIBRARY ,ALTER ANY OUTLINE ,ALTER ANY TRIGGER ,COMMENT ANY TABLE ,CREATE TABLESPACE
DEQUEUE ANY QUEUE ,DROP ANY OPERATOR ,DROP ANY RULE SET ,DROP ANY SEQUENCE ,ENQUEUE ANY QUEUE ,EXECUTE ANY CLASS ,FORCE TRANSACTION ,MANAGE TABLESPACE ,ON COMMIT REFRESH ,ALTER ANY RULE SET ,ALTER ANY SEQUENCE,CREATE ANY CLUSTER ,CREATE ANY CONTEXT ,CREATE ANY LIBRARY , CREATE ANY OUTLINE ,CREATE ANY SYNONYM ,CREATE ANY TRIGGER ,DROP ANY DIMENSION ,DROP ANY DIRECTORY ,DROP ANY INDEXTYPE ,DROP ANY PROCEDURE
RESTRICTED SESSION

توجد العديد من roles الأخرى التي سيكون الحديث حولها طويلة ...

إذا أردت أن تعلم ما هي roles الموجودة و السماحيات على مستوى النظام التي تحويها :

 select role , privilege from role_sys_privs;

إذا أردت أن تعلم ما هي roles الموجودة و السماحيات على مستوى الغرض التي تحويها :

 select role , privilege from role_obj_privs;

ماذا لو أراد مستخدمنا arabteam أن يعرف ماهي الصلاحيات التي يملكها ؟

على مستوى النظام :

select * from user_sys_privs;

على مستوى الأغراض :

 select *  from user_obj_privs;

و هكذا انتهى القسم الخاص بــroles .

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

إستفتاء

0

شارك هذا الرد


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

مع أنني لم أجد التفاعل المطلوب كما كنت آمل و لكنني سأستمر عسى أن يصبح الأمر أفضل مع تتالي الدروس (كما آتمنى ) .

اليوم سيكون لدينا جولة مع إدارة الموارد Resources .. و لكن لماذا ؟

تخيلوا السيناريو التالي :

لنفترض أنك مدير للقاعدة في إحدى البنوك أو شركات الإتصالات و تصادف وجود جدول بملايين السجلات ( جدول الإتصالات الهاتفية التي يتم إجراءها ) و جاء موظف جديد ليس له خبرة و نفذ تعليمة select أو Update بدون شرط where أو كانت نتيجة التعليمة التي نفذها تحوي على مليون أو أكثر من السجلات ؟ فما رأيك ؟ ما الذي سيحدث على السيرفر ؟ و هل ستتحمل الشبكة أو السيرفر هذا الضغط ؟ ماذا لو لم يكن موظفا واحداً و كان هناك مجموعة أخرى من الموظفين لن أقول أغبياء و لكن مستهترين و لا يبالون ماذا سوف يحدث ؟ لأنك الوحيد الذي سيلام على توقف القاعدة ...

ما الحل ؟؟

Resource Limit Profiles :

هي مجموعة من القيم التي نضعها لكي نتحكم بحجم الذاكرة أو كمية البيانات التي يستطيع المستخدم إستغلالها ضمن جلسته الحالية ، حيث يتم وضع هذه القيم داخل مانسميه Profile و يتم إسناده إلى مستخدم أو أكثر عن طريق تعليمات create user أو alter user .

ليتم تفعيل هذه الإدارة نحتاج لأن نضع القيمة TRUE إلى البارامتر resource_limit بالطريقة التالية :

Enter user-name: system/oracle

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

SQL> alter system set resource_limit=true;

System altered.

و الآن لنذكر البارامترات التي نستطيع إستخدامها :

1- cpu_per_sesison : و فيها نحدد الوقت الزمني المخصص لكل جلسة و التي تستطيع إستهلاكه من زمن المعالج ، يقاس هذا الوقت بالثانية .

2- session_per_user : كم عدد الجلسات التي يمكن لمستخدم ما أن يقوم بفتحها . (يعلم الجميع بأننا نستطيع تشغيل SQL plus أكثر من مرة و بنفس اسم المستخدم ، كل نسخة من sql plus مفتوحة ندعوها جلسة ) ..

3- connect_time : كم الوقت الزمني الذي تسمح به للمستخدم للإتصال بالقاعدة .

4-IDLE_TIME : الوقت الزمني الذي ستمح به للمستخدم أن يبقي جلسته مفتوحة دون أن يقوم بأي شيء .

5- LOGGICAL_READS_PER_SESSION : كم كمية البيانات التي تريد لمستخدم ما أن يقوم بقراءتها خلال الجلسة الكاملة .. تقاس هذه الكمية بعدد بلوكات البيانات Data Block .. و لكي نفهمها بطريقة مبسطة لإغنها المعادلة التالية : العدد * 4 كيلو بايت ( في العادة ) ...

6- Private_SGA : و هي المساحة المخصصة من الذاكرة لكل جلسة يقوم بفتحها .

7- CPU_PER_CALL : و هو الزمن الأقصى الذي يسمح لتعليمة المستخدم أن تأخذ من زمن المعالج .

8- LOGICAL_READS_PER_CALL : كم كمية البيانات التي تريد لمستخدم ما أن يقوم بقراءتها خلال التعليمة الواحدة .

لنتقل إلى التطبيق العملي :

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

CREATE PROFILE profile LIMIT
[SESSIONS_PER_USER max_value]
[CPU_PER_SESSION max_value]
[CPU_PER_CALL max_value]
[CONNECT_TIME max_value]
[IDLE_TIME max_value]
[LOGICAL_READS_PER_SESSION max_value]
[LOGICAL_READS_PER_CALL max_value]
[COMPOSITE_LIMIT max_value]
[PRIVATE_SGA max_bytes]
where:
profile is the name of the profile
max_value is an integer, UNLIMITED, or DEFAULT
max_bytes is an integer optionally followed by K or M UNLIMITED, or
DEFAULT

ما رأيكم بالمثال التالي :

سنسمح للمستخدم arabteam بأن يفتح جلستين فقط و سنسمح له بأن يستهلك من وقت المعالج في التعليمة الواحدة دقيقتين فقط و سنسمح له بقراءة 1 ميغا بايت فقط من البيانات في التعليمة الواحدة و سنسمح له بفتح جلسة فقط لمدة ثلاثين دقيقة :

SQL> create profile arabteam_prof limit
2 sessions_per_user 2
3 cpu_per_call 120
4 logical_reads_per_call 1073741824
5 connect_time 1800;

Profile created.
SQL> alter user arabteam profile arabteam_prof;

User altered.

في القسم القادم إن شاء الله سنتحدث عن إدراة كلمات السر .

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

1

شارك هذا الرد


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

السلام عليكم

الموضوع اشوي غامض بس بغيت انشاء roleهل تكون قبل انشاء القاعدة المخصصة للبيانات

وبغيت اسال في الدورة هذي لم تذكر كيفية انشاء القاعدة خصوصا عندي مشروع تخرج وهو يتكلم عن نظام نتائج

حبيت اعرف كيف يتم انشاء القاعد بواسطة برنامج اوراكل 10

0

شارك هذا الرد


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

بالنسبة لأخي عيسى وفقك الله في إتمام أعمالك ...

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

0

شارك هذا الرد


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

أولاً الله يوفقك أخي وتأخذ OCP

وثانياً اتمنى ان تساعدني لكي أكمل مسيرة الدوره ( مازلت في بدايتها )

لا استطيع الدخول بـالحساب

sys

change_on_install

sysdba

يرفض الsqlplus

ERROR:

ORA-12154: TNS: áÇ íãßä ÊÍáíá ÇÓã ÇáÎÏãÉ

عدم وضوح الكلام لأن الترميز عربي في sqlplus

لكني استطعت ان ادخل بالWorkSheet

ونفذت العمليه

alter system set OS_AUTHENT_PREFIX='' scope=spfile;

واعطاني خطأ

ORA-32001: تم طلب الكتابة في SPFILE ولكن لا يوجد SPFILE محدد عند بدء التشغيل

مالفرق بين DBA & DEVELOPER ?

من الذي لديه صلاحيات أكبر system or sys ?

تم تعديل بواسطه {عيسى}
0

شارك هذا الرد


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

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

المهم بدلاً من كثرة الكلام دعني أجب على أسئلتك :

1- بالنسبة لمشكلتك مع SYS :

إذهب إلى المسار التالي : Oracle Home\network\admin\tnsnames.ora هذا الملف إفتحه ستجد بارامترات كالتالي :

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = host-machine)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

ستجد service_name =X حيث X بشكل إفتراضي هي orcl .. المهم إذهب إلى Services لديك و تأكد من وجود نفس قيمة X في اسم السيرفيس التالي OracleServiceX أي بالنسبة إلي ستكون اسم السيرفيس OracleServiceORCL .. إذا لم يكونا متطابقين فأكتب القيمة الموجودة في السيرفس داخل ملف tnsnames.ora .. إذا كانت الأمور تمام في كلا الاسمين ، فاكتب عند تسجيل دخولك ب_Sql Plus داخل connection String القيمة orcl ...

بالنسبة إلى مشكلة Unicode لديك :

إفتح الريجستري regedit ،إدخل على HKEY_LOCAL_MACHINE ثم Software ثم Oracle ستجد key اسم nls_lang إفتحه و ضع القيمة التالية : AMERICAN_AMERICA.AR8MSWIN1256 إذا فشلت الطريقة أعد القيمة إلى ARABIC_SAUDI

ARABIA.AR8MSWIN1256 و بعينك الله ..

2-بالنسبة لمشكلة spfile :

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

create spfile from pfile;

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

3- بالنسبة للمقارنة بين sys , system ليست القضية المقارنة بين صلاحيات الإثنين فالإثنين يتمتعون بصلاحيات واسعة و لكن لكل مستخدم عمله :

يعتبر sys مع نمط الدخول sysdba المستخدم الأقوى من ناحية أنه المسؤول الأول عن صيانة القاعدة ، حيث أنه عندما لا يوجد أوراكل (Oracle not available( لا يستطيع أي مستخدم من الدخول و إعادة تشغيل القاعدة سوى sys بصلاحيات sysdba و أيضاً sys يعتبر المالك لـ data Dictionary الذي هو مجموعة من الجداول و المشاهد التي توصف القاعدة " من رأسها إلى رجليها " .

يعتبر System مدير القاعدة من ناحية إدارة المستخدمين و الصلاحيات ..

4 بالنسبة للفرق بين DBA و developer :

developer : وظيفته إنشاء تطبيقات بواسطة Pl/sql أو forms بأنواعها .

dba : هو مدير القاعدة : بحيث هو المسؤول عن إدراتها ، عن إنشاء المستخدمين ، المحافظة عليها من عبث المطورين ... يعتبر وجود DBA مهماً أكثر من المطور في شركات الإتصالات و البنوك و المستودعات و الشركات التجارية الكبرى ... إلخ أكثر من المطورين و هو المسؤول الأول عن القاعدة و" يخضع " له المطورون رغم أنوفهم ، لأنه الضحية الرئيسية في أي خطأ أو مشكلة في القاعدة ... فالمطور له عمله و مدير القاعدة له عمله و المطور مطالب دوماً بإلتزام القواعد التي يضعها المدير لأنه أدرى بقاعدته ... أرجو الفكرة قد وصلت ..

و بالتوفيق

1

شارك هذا الرد


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

ماعليش تحملني أخوي

انا عرفت service عند تنصيب أوراكل باسم eisa

وهذا اللي وجدته بالملف متطابق مع السيرفس الموجوده في ادوات الادمن

EISA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = DJ36262J)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = eisa)
)
)

جميل حتى الآن دخلت على الsqlplus وكتبت التالي :

اسم المستخدم : sys

كلمة السر : change_on_install

سلسلة المضيف : EISA ، والنتيجه :

ERROR:
ORA-28009: connection to sys should be as sysdba or sysoper

غيرت سلسة المضيف إلى sysdba كما فهمت منه والنتيجه :

ERROR:
ORA-12154: TNS: لايمكن تحليل اسم الخدمة

تجاهلت مشكلة sqlplus وذهبت إلى WorkSheet وكتبت الأمر

create spfile from pfile;

تم تكوين الملف

ثم

alter system set OS_AUTHENT_PREFIX='' scope=spfile
*
يوجد خطأ عند سطر 1:
ORA-32001: تم طلب الكتابة في SPFILE ولكن لا يوجد SPFILE محدد عند بدء التشغيل

يبدو أنني اصبحت مكروهاً ، لكثرة أسألتي واخطائي :blink:

0

شارك هذا الرد


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

مجهود رااااااااااائع جزاك الله كل خير

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

لسهوله التصفح به

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

شارك هذا الرد


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

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

بالنسبة لــ Sql Plus نفذ هذه الطريقة :

1- إذهب إلى ملف tnsnames.ora و غير اسمه إلى أي شيء تريد ( و إذا بينحذف بيكون أحسن ) ..

2- إذهب إلى

Start->programs->oracl-Eaisa->Integration and Migrtion tool ->net Configration Assistant

3- تظهر واجهة : إختار منها Local net service name configration ..

4- تظهر واجهة إختر منها add ..

5-يطلب منك اسم السيرفس :اكتبه EISA ..

6- يطلب منك البرتوكول : إختر tcp ..

7-يطلب منك اسم جهازك ... ضعه ثم next ..

8-يطلب منك إجراء إختبار : أجب بالموافقة ثم التالي ..

9- سيقوم بعملية إختبار .. إذا لم ينجح أول مرة إختر change login ثم ضع المستخدم System و كلمة مروره ثم test ... و سينجح بإذن الله ... إختر التالي و أنهي البرنامج ...

بالنسبة إلى spfile :

إعذرني أنني نسيت خطوة :

بعد تنفيذ التعليمة

create spfile from pfile;

يجب إغلاق القاعدة :

shutdown immediate;

ثم إعادة تشغيلها من جديد :

startup ;

ثم نفذ التعليمات التي تريد ..

إذا كنت تبحث عن مصادقة نظام التشغيل للمستخدمين على نظام ويندوز فإنه لا ينج على منصة XP Service pack و إنما نسبة نجاحه على Unix هي مئة بالمئة ...

بالتوفيق ...

0

شارك هذا الرد


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

الله يجزاك الفردوس الاعلى

ألف شكر يالغالي

انحلت مشكلة spfile واستطيع تكملة الدوره بدون ان ادخل على sqlplus بحساب sys

لأني حقيقة لم انجح في الدخول بالحساب .

كل الـ9 خطوات اشتغلت عليها وتمام شغاله ،

و استطيع الدخول فيه عن طريق WORKSHEET .

بالنسبه لمصداقية التشغيل هي لاتدعم Xp لكن هل تدعم 2000 server

أم أن نسخ ويندوز كلها لاتدعمها ؟

أخي informat بامكانك التغاضي عن أسئلتي إذا كنت أعطل الدوره :)

0

شارك هذا الرد


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

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

ملاحظة مهمة للجميع : سيكون بعض المواضيع القادمة خاصة بالأوراكل 10g لذلك أفضل من الجميع تنصيبه من الآن ....

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

0

شارك هذا الرد


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

أولاً : أريد أن أرحب بمن أنضموا إلينا في هذه الدورة الأخوة ABnet و طالب حيران و GENIUS-IT ..... و بإنتظار تفاعلكم معنا ....

القسم الأخير من فصل إدارة المستخدمين :

إدارة كلمات السر :

تعتبر إدراة كلمات السر في أوراكل مشابهة لإدارة كلمات السر في local policy في الويندوز ، فهي تتحكم بعمر كلمة السر ( أي الفترة الزمنية التي يجب على المستخدم تغيير الكلمة بعدها ) أو هل يجب تكرار الكلمة أو عدد الأحرف الأصغري لها ..... إلخ و تهدف هذه الإدارة إلى جعل المستخدمين يلتزمون بقواعد تكفل لكلمات مرورهم السلامة و تقليل إحتمالات سرقتها من قبل أعضاء آخرين ... إلخ .

يتم التعامل مع إدراة كلمات السر كما تعاملنا سابقاً مع إدارة الموارد فلا بد من وجود profile نضع فيه الإعدادات التي نريد للتحكم ..

ما هي البارامترات التي نستطيع إستخدامها :

1- FAILED_LOGIN_ATTEMPTS : عدد مرات التي سيخطء فيها المستخدم بإدخال كلمة السر و عندها سيتم إغلاق الحساب .

2- PASSWORD_LOCK_TIME : عدد أيام الفترة الزمنية للإغلاق ..

3-PASSWORD_LIFE_TIME : عدد الأيام التي يجب على السمتخدم أن يقوم بتغيير كلمة مروره بعدها ..

4- PASSWORD_GRACE_TIME : ما هي عدد الأيام التي تريد إعطاءها للمستخدم حتى يقوم بتغيير كلمة سره بعد إنقضاء الفترة التي حددناها في المثال السابق ..

5- PASSWORD_REUSE_TIME : عدد الأيام التي ستسمح للمتخدم بعدها أن يعيد إستخدام كلمة مرور قديمة ..

للتوضيح : لنفرض أن السمتخدم arabteam وضعنا له القيم التالية :

FAILED_LOGIN_ATTEMPS 3

PASSWORD_LOCK_TIME 2

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

إذا وضعنا القيم التالية :

PASSWORD_LIFE_TIME : 15

PASSWORD_GRACE_TIME : 2

PASSWORD_REUSE_TIME : 15

لنفرض أننا الآن يوم 31/7/2006 و كلمة المرور الآن pass1 عندها :

في اليوم 14/8 يجب على المستخدم أن يغيير كلمة السر بحيث لديه مهلة حتى 16/8 لعملية التغيير و لن يستطيع إستعمال كلمة سره القديمة pass1 بل يجب أن يضع كلمة مرور جديدة و لن يستطيع إعادة كلمة السر القديمة pass1 ( أي يعيد إستخدامها ) إلا بعد التاريخ 31/8 ... أرجو أن تكون الفكرة قد وصلت .

لجماعة المطورين :

يمكن أن يتم إجبار السمتخدم على كتابة كلمة سر تتوافق مع خوارزمية معينة تكتب بكود PL?SQL حيث يتم تمرير كلمة السر التي وضعها المستخدم إلى function الذي يتأكد من كونها متوافقة مع القواعد فيقوم بإرجاع true و إلا فيعيد false .

ما رأيكم بمثال :

دعونا نجبر مستخدمنا arabteam على أن تكون كلمة سره تبدأ ب'a' و أن لا تكون مثل إسمه أي 'arabteam' أو أن لا تساوي 'pass' :

SQL> connect sys/oracle as sysdba
Connected
SQL>.
create or replace function Check_pass(userid_param in varchar2 , pass in varchar2 , old_pass varchar2) return boolean
as
ch char;
begin
ch:=substr(pass,1,1);
if ( ch='a') and (pass <> 'pass' ) and (pass<>'arabteam') then
return true;
else
return false;
end if;
end;
/
Function created.

SQL> create profile arabteam_pro
2 limit password_verify_function Check_pass;

Profile created.

SQL> alter user arabteam
2 profile arabteam_prof;

User altered.

SQL> alter user arabteam
2 password expire;

User altered.

SQL> connect arabteam/arabteam;
ERROR:
ORA-28001: the password has expired


Changing password for arabteam
New password: arabteam
Retype new password: arabteam

ERROR:
ORA-28003: password verification for the specified password failed
ORA-28003: password verification for the specified password failed


Password unchanged

رائعة أليس كذلك ؟؟؟؟

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

الفصل الثاني سوف نبدأ فيه بـ "الدسم " كما يقولون ، لأنه فعلياً سنبدأ بالتعرف على أوراكل في الداخل : كيف تعمل ؟ أين القاعدة و البيانات و الجدوال ...إلخ ؟؟؟ فتجهزوا للمعركة القادمة ....

بالتوفيق ... و لا تنسونا من الدعاء ....

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

شارك هذا الرد


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

مشكووووور اخوي على الموضوع

وبصراحة طبقت المذكور انا كنت داخلة على البرانم scott اسم للمستخدم

والحين لمن افتح البرنامج تغير اسم المستخدم وايضا حولت ان ادخل system/ manager ايضا نفس المشكلة

انا مو عارفة بأي اسم مستخدم ادخل

مشكووووووووووووور

0

شارك هذا الرد


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

صباح الخير

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

جميل جداً انا لدي ( التباس ) بسيط في فهم الفرق بين session & profile .

من خلال الشرح فهمت أن الفرق بأنه لايمكن أن يكون للمستخدم أكثر من profile .

ولكن بإمكانه ان يكون له sessions بحسب ماهو محدد في البراميتر session_per_user

هل كلامي صحيح ؟

0

شارك هذا الرد


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

أخي عيسى :

ما هي session ?

عندما تقوم بتشغيل برنامج مثل SQLPLUS و تضع له كلمة سر و اسم المستخدم ما الذي يحدث برأيك ؟؟

بكلمات بسيطة :

1- يقوم SQL plus بفتح قناة إتصال مع ما يسمى Oracle instance أو ( متنسخ الأواكل ) الذي هو النظام الفعلي لأوراكل و يزوده بكلمة السر و اسم المستخدم التي وضعتها ...

2-يقوم هذا Oracle instance بالتأكد من صحة كلمة السر و اسم المستخدم فإذا كانا صحيحين فيقوم بإنشاء قناة خاصة بين تطبيقك و تطبيق صغير آخر يتولى تنفيذ أوامرك و إحضار البيانات ...إلخ هذه القناة تدعى session أو جلسة ...

3-يستطيع المستخدم الواحد فتح أكثر من جلسة في نفس الوقت سواء على نفس الجهاز أو جهاز آخر ... عن طريق تشغيل أكثر من تطبيق .. أي حاول تشغيل work sheet لديك و سجل الدخول فتصبح لدك جلسة ثم شغل البرنامج مرة أخرى و قم بتسجيل الدخول بنفس اسم المستخدم فتصبح لديك جلسة ثانية ... و هكذا .....

أختي شووق :

بالنسبة لدورتنا لا نحتاج فيها للمستخدم scott لأنه لا يملك صلاحيات كثيرة ... لذلك يجب أن تسجلي الدخول باسم المستخدم system أو sys as sysdba و استخدام كلمة مرور التي وضعتيها أو الإفتارضية :

system : manager

sys : change_on_instal

إذا لم تفلح الطريقتين :

حاولي الدخول بالشكل التالي :

user name : sys/pp as sysdba

لا تضعي أي شيء في مربع password بشرط أن تكوني قد نصبت الأوراكل على نفس المستخدم الذي تعملين عليه حالياً ...

إذا نجحت الأمور نفذي التعليمة التالية :

alter user system 
identified by manager;

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

0

شارك هذا الرد


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

جوزيت عنا خيرا ومن البر نهرا.

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

0

شارك هذا الرد


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

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

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

على كل حال :

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

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

و لنبدأ :

هل سأل أحد منكم كيف تعمل أوراكل ؟ و لماذا هذه الشهرة ؟ و لما ذا لا نعتمد على أكسس أو النظم الآخرى ؟؟ لماذ سعر License لأوراكل دائماً مرتفعة ( حوالي 3500 دولار أمريكي ؟ ) ... لماذا أوراكل الخيار الأول للنظم الضخمة مثل وكالة ناسا أو شركات الإتصالات الخلوية ... ؟

هل سأل أحد أين القاعدة ؟؟ و لماذا نحتاج إلى SQL?PLUS للتعامل معها ؟ و هل سنتطيع نقلها كما نفعل مع ملفات أكسس أو MYSQL بمجرد عملية نسخ بسيطة ؟؟.؟؟ كل هذه الأسئلة سنجيب عليها في هذا القسم فإستعدوا لخوض غمار هذا العالم الرائع : أواركل لاند .... (أصلح لأن أكون مدير تسويق في أوراكل ) ....

ماهي Oracle ؟

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

تضم الأوراكل مجالاً واسعاً من المنتجات :

1- أوراكل داتايبيس سيرفر Oracle Database Server : و هو نظام إدارة قواعد البيانات حيث يتم تخزين البيانات و إدارتها و تنظيم المستخدمين ... إلخ و هو محور بحثنا في هذه الدورة .

2- أوراكل ديفيلوبر تولز Oracle Developer Tools : و هي أدوات تمكنك من تصميم تطبيقات تعتمد على قاعدة بيانات أوراكل و تضم الأمر الشائعة التالية :

1- Oracle Forms Builder : و هو الأداة الأساسية لتصميم واجهات برامج كالتي نراها و لكن موجهة نحو تطبيقات مستعرض الإنترنت .

2- Oracle Reports : و هي أداة رائعة لإنتاج التقارير و هي تشابه كريستال ريبورت التي إعتاد عليها مطورو منصة .net .

3- Oracle Designer : و هو أداة رائعة تتيح لك تصميم قاعدة البيانات بأسلوب منهجي يعتمد على رسم كائنات Entity .

4- JAVA developer : و هي أداة تطوير برامج الجافا التي تعتمد على قاعدة البيانات أوراكل و هي مشابه لبيئة JBUILDER التي إعتاد عليها مطورو الجافا في بناء تطبيقاتهم ..

5- ORACLE provider for .net Developer : و هي مجموعة من الأدوات الموجهة لمطوري .net الذين يرغبون ببناء تطبيقاتهم إعتماداً على قاعدة بيانات أوراكل ..

3- Oracle application Server : و هو المنصة التي نقوم بعملية النشر لتطبيقات Oracle forms و Oracle reports عليها بحيث تصبح متاحة للجميع ، و هي تشبه مخدم الويب IIS لنشر صفحات ASP أو Apache لصفحات php ..

4-Oracle Collaboration Suite : و هي مجموعة من الخدمات المختصة بالإتصالات الصوتية أو الإلكترونية أو fax ......

ما هي SQL و PL?SQL ؟

SQL Structered Query Language : لغة الاستعلامات البنوية ..

هي لغة للتعامل مع نظم قواعد البيانات المختلفة فهي ليست خاصة بــOracle و إنما هي عامة و شاملة نجدها في الأكسس و في Mysql و في SQL Server ... إلخ ...

PL?SQL :

و هي لغة برمجة تستخدم لكتابة إجرائيات برمجية تخزن داخل القاعدة و تعتمد على SQL في التعامل مع البيانات و تعديلها ..

أوراكل سيرفر Oracle Server :

يتألف الأوراكل سيرفر Oracle server من مكونين أساسيين :

1- Oracle Instance : و هو "البرنامج " أو Software الذي يمثل النظام : مهمته إستقبال طلبات السمتخدمين و التعالمل مع القاعدة ... إلخ .

يتألف Oracle Instance من :

1- بنية ذاكرية : و تسمى SGA (System Global Area)

و تتألف من /

Shared pool ، library cache ، Data Dictionary ، Database Buffer Cache ، Redo Log Buffer Cache ..

2- مجموعة من العمليات الخلفية Background Process : : وظيفتها "السهر " على أمن القاعدة و منحها أداء متوازن و التدخل في حالات Crashes كإنهيار نظام التشغيل و إنقطاع التيار ...إلخ .

2- Oracle Database : و هي مجموعة من الملفات المتنوعة بين ثلاثة فئات :

1- Control File : و هو الملف الحيوي و أساس القاعدة : يحوي على التوصيف الكامل للقاعدة من ناحية تواجد ملفات البيانات Datafile و ملفات سجل الإعادة Redo log file ... إلخ و هذا ما سنوضحه خلال الدروس القادمة إن شاء الله .

2- Data file : و هي الملفات التي تخزن Data (البيانات ) ..

3- Redo Log file : و هي سجلات الإرجاع ( إعذروني على الترجمة السيئة ) وظيفتها تسجيل البينات المؤقتة التي تقوم بإجراء التعديلات عليها ، و من أجل أي عملية "إصلاح " قد تحدث بعد أي مشكلة ...

3- مجموعة من key file : و هي ملفات لإعدادات معينة :

1- parameter file : و هو ما تعاملنا معه في قسم إدارة المستخدمين (Spfile ) ، يضم قيم معينة لتحديد سلوك Oracle instance (لم يفهم أحد شيئاً ؟؟؟ سنوضح الأمور في وقتها ) ..

2- password file : يستخدم لإختبار صلاحية المستخدمين الذين يتمتعون بصلاحيات DBA .

3- Archived log files : هي نسخ من Redo log files تسخدم في حالة إسترجاع نسخ إحتياطية ...

أعلم أن كلامي حالياً غامض بشكل كبير ، و لكن سيتوضح كل شيء بوقته فالصبر ثم الصبر ....

إنشاء القاعدة :

سنتعلم في هذا الجزء كيف نقوم بإنشاء قاعدة أوراكل ، و لكي ننشىء القاعدة يجب أن نعود لما تحدثنا عنه في الفقرة القادمة و نتحدث عن :

1- Control file :

كما قللت : هو الملف الأساسي للقاعدة ، و لا قاعدة بدونه ، لماذا ؟

السبب أن Oracle Instance يتعرف على القاعدة عن طريق هذا الملف ، أي عند تشغيل النظام و في مرحلة نسميها mount يقوم Instance بقراءة هذا الملف لكي ؟؟؟

لكي يعرف أين الملفات التي تخزن البيانات Data الخاصة بالجدوال التي نتعامل معها .، أين سجلات الإرجاع .. إلخ هل وصلت الفكرة .. أتمنى ذلك .

بما أن هذا الملف هو مهم لهذه الدرجة فيجب دوماُ أن نقوم بعملية نسميها multiplex أي الإحتفاظ بأكثر من نسخة منه في عدة أقسام .. لماذا ؟؟ ببساطة إذا حدث أي شيء لهذا الملف : حذف أو عطب ... إلخ ضاعت كل القاعدة و لن يستطيع Oracle instance التعامل معها .. لذلك نحتفظ بأكثر من نسخة فإذا حذث أي شيء لأي نسخة فتوجد نسخة أخرى للتعامل معها ...

يتم تحديد مسار Control file داخل ملف parameter file (Spfile , Pfile ) ....

2- Redo log :

و هي ملفات الإرجاع ... شو يعني ؟؟

كلنا يعرف برنامج وورد مثلاً : يمكنك التعامل مع المستند بأن تكتب ما تشاء و تحذف ما تشاء و في النهاية يمكنك التراجع عن ما فعلته .. صحيح ؟؟؟

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

إن Oracle instance في هذه الحالة يستخدم هذه الملفات لإعادة كل شيء لطبيعته السابقة ...

3- Data file

: و هنا موضع الفرس .. و أخيراً : ملفات تخزين البيانات ، أي جميع البيانات التي تضعها في الجداول المختلفة تجدها في هذه الملفات ...

إذاً ما نفهمه من الكلام السابق القاعدة في أوراكل ليست كما في أكسس ملف واحد يمكنك نقله إينما كان ووضعه ثم العمل عليه ، إضافة إلى ذلك كثير من المطورين سألون : هل أنا مضطر إلى تنصيب أوراكل عندما أريد أن يعمل برنامجي على جهاز آخر و يكفي أن أنقل بعض الملفات ؟ الجواب : لا ... يجب أن يوجد : Oracle Instance و Database files و هذا لا يتم إلا بتنصيب Oracle Server ...

الآن : كفانا من الكلام النظري و لننشء قاعدة جديدة :

سنتخدم في إنشاء القاعدة أداة رائعة و هي Database Configuration Assistants ) : DBCA ) : تضمن هذه الأداة إنشاء قاعدة جديدة أو إزالة قاعدة بيانات موجودة أو تعديل قاعدة بيانات ... إلخ .

لنفذ الخطوات التالية :

1- من

start->programs ->Oracle10g->Configuration and Migration Tools -> Database Configuration Assistants .

تظهر الواجهة مرحبة بنا على طريقة أوراكل ( بدون القهوة العربية ) نختار Next .

2- نختار الخيار الأول Create Database .

3- تظهر لنا أنواع من قواعد البيانات دعوني أشرحها :

1- Data Ware House : من أروع الأنواع التي أحب التعامل معها ( بفعل خبرتي العملية ) .. هذه النوع موجه نحو القواعد التي تحوي على كميات ضخمة من البيانات التي تضمن سرعة خارقة في جلب البيانات من جدوال قد تحوي بلايين من السجلات ... لهذا النوع أبحاث كثيرة نظراً لأهميته البالغة

2-Transaction Processing : و هي موهة للقواعد التي تخضع لضغط عالي من التعديلات و الإدخالات الجديدة و تضم القليل من عمليات إحضار البيانات ..

3- General Purpose : موجهة إلى القواعد العادية ذات الغرض العام ( كما في حالتنا مثلاً ) ...

لذلك نختار General Purpose ثم التالي ..

4- لدينا قيمتين :

1- اسم القاعدة : Global Database Name ..

2- SID : اسم instance الذي سيتعامل مع هذه القاعدة ..

يمكن أن يختلف الإسمين عن بعضهما :

مثال : في عملي لدي شبكة دومين Aledari.com لذلك أستطيع تسمية القاعدة بالشكل : Accounting.aledari.com بينما اسم Instance لدي هو AccInst ..

للتذكير فقط : في الوضع الإفتراضي فإنك عندما تنصب أوراكل فإنه ينشئ قاعدة بيانات و Instance اسميهما متطابقين أي orcl ...

لنتفق على اسم واحد لإستعماله :

Global Database Name : DBACLASS.arabteam.com

SID : DBACLASS

ثم Next ..

5- يوجد عدد من الخيارات :

لنتأكد من أن الخيار Configure the database using enterprise manger مفعلاُ حين أن Enterprise Manager هي أداة رائعة تمكننا من إدارة القاعدة بواجهة تفاعلية ممتازة ..

ثم Next ..

6- يطلب منا وضع كلمة السر واحدة للمستخدمين :Sys , System , SYSMAN أو أن نضع لكل مستخدم كلمة مرور خاصة به ...

ضع ما تشاء ثم Next ..

7- نختارFile System ( أي نظام الملفات الحالي الذي يستخدمه نظام التشغيل ) ... ثم Next ..

8-نختار توضع ملفات القاعدة :

1- use file allocations from Template : هنا يجب وجود إعدادات مسبقة قمنا بنجهيزها من قبل داخل Template ..

2- Use Common Location for all Database Files : هنا نحدد مسار مجلد ما ليكون الحاوي لجمييع ملفات القاعدة ..

3- Use Oracle-Manged Files : هناك طريقة نسميها OMF و هي طريقة Standard تتبعها أوراكل في تسمية الملفات الخاصة بالقاعدة أي أن DBA يتنحى جانباً و تقوم أوراكل بتسمية الملفات و تحديد مواقعها بدلاً عنه ...

لنختر الخيار الثاني ثم Next ..

9 – تظهر لنا خيارات النسخ الإحتياطي للقاعدة Backup سواء بالنسبة إلى Flash Recovery ( من أروع الإضافات التي شهدها الإصدار 10g ) أو Archiving Redo log ..

نضغط على Next ..

10-تظهر واجهة يمكننا إختيار Sample Schema لتثبيت مخططات مثل Scott-hr ...

نختار Next ..

11- نحدد بارامترات خاصة ب Oracle instance ... ما يهمنا هنا هو characterset و هي الترميز الذي سيتم إستخدامه في تخزين البيانات داخل القاعدة و هو يلعب دوراً كبيراً في مسألة تخزين البيانات العربية أو لغات الشرق الأقصى مثل اليابانية و غيرها ... المهم بالنسبة لنا أن يكون هذا الترميز مناسباً للبيانات العربية لذلك من القسم Database Character Set يمكننا :

1- إختيار Using Unicode : من أجل الترميز Unicode الذي يلائم لغتنا العربية ..

2- إختيار Choose from a list of character set : و بوسعنا إختيار هنا AR8MSWIN1256 من أجل العربية ...

من الخيارين Default Language و Default Data Format نحدد بهما لغة الرسائل و تنسيق التاريخ ...

ثم Next ..

12- تظهر واجهة مهمة : إضغط على الزر File Allocation Variable : ستجد هناك مجموعة من المسارات المخزنة داخل متحولات : Oracle_Base .. Oracle Home .. SID .. إلخ يجب أن تحفظ هذه المسارات عن ظهر قلب لأنها مواقع الملفات التي سنتعامل معها لاحقاً ...

إخرج من هذه الواجهة ثم next ..

13- تظهر لك خيارات :

create Database : من أجل إنشاء قاعدة جديدة و هذا ما نريده ..

save As Database Template : أي نحفظ الإعدادات التي نقد نستعملها لاحقاً في إنشاء قاعدة أخرى ...

نضغط على زر finish ( و أخيراً ) للبدء في إنشاء القاعدة ....

عندما ينتهي يظهر لك واجهة تخبرك عن أمور هامة و يجب حفظها و أولها مسار Enterprise Manager

الذي سيكون في الغالب على الشكل :

 http://pc_name:5501\\em

إكتب هذا المسار على الحيط أو على جبينك أو على الشاشة أو مكان ما تريد ... المهم لا تنساه ....

يمكنك الضغط على الزر Password Management لكي ترى Users الذين تم إنشاءهم إفتراضياُ و بذلك يمكنك تغيير كلمات سرهم أو فيتح حساباتهم المقفلة بشكل إفتراضي .. إفعل ماشئت ثم إضغط على الزر Ok ثم Exit و بذلك يكون قد أصبح لديك قاعدة جديدة ... " ألف مبروك تتربى في دلالك و عزك " ....

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

و السؤال الذي يطرح نفسه : كيف نحدد من هي القاعدة التي نتعامل معها عند تشغيل تطبيق مثل SQL plus مثلاً ...

الجواب :

نذهب إلى المسار التالي :

 Oracle _Home \ Network\admin\tnsnames.ora

سأضع لكم ما يحويه tnsnames.ora في جهازي :

Accounting =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = Accounting.aledari.com
)
)
DBCLASS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBCLASS.arabteam.com)
)
)

بحيث تأخذ الشكل التالي :

 Connection_Host=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC_NAME "اسم الجهاز الذي يحوي القاعدة " )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =GLOBAL_DATABASE_NAME)
)

كما تلاحظون فلدي قاعدتين : Accounting و DBCLASS التي قمنا بإنشاءها ...

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

 connection Host				DBCLASS

أما إذا أردت الدخول على القاعدة الثانية Accounting :

connection Host			   Accounting

أرجو أن تكون الفكرة قد وصلت .....

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

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

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

شارك هذا الرد


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

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

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

أدوات الإدارة في Oracle10g :

فعلاُ يمكننا أن نقول أن شركة أوراكل قد خطت خطوة رائعة مع إصدارها 10g بأن توجهت إلى مديري القواعد و أمدتهم بعدد من الأدوات التي سهلت العمل كثيراً ، فمثلاً كنت مضطر إلى أن أحفظ مجموعة ضخمة من التعليمات لإنشاء مكونات القاعدة مثل الفضاءات الجدولية و المقاطع segments و الإمتدادات Extents .. بالإضافة إلى تعليمات إنشاء المستخدمين و حفظ الصلاحيات ... إلخ لذلك فإن دليل المديرين كان لا يفارق حقيبتي ...

الآن : وفرت أواركل أداة هي Enterprise Manager التي طورتها عن الإصدار 9i و أصبحت هذه الأداة تعمل عبر مستعرض الانترنت بالاستفادة من مكونات Application Server (ليس موضوعنا الآن ) ..

بالإضافة إلى Enterprise Manager ظهرت iSQL PLUS بأدائها المطور عن الإصدار 9i ...

بالإضافة إلى أدوات أخرى سنتعرف عليها لاحقاً بعون الله ...

الآن لنعد إلى الأداتين لنتعلم كيف نقوم بتشغيلها و إغلاقها ( ملاحظة كل التعليمات التالية يتم تنفيذها عبر محرر الأوامر Dos أو Shell الخاص بــlinux (نظام أوراكل المفضل ) ) :

1- ISQL PLUS :

لتشغيل الأداة :

isqlplusctl start

لإيقافها :

isqlplusctl stop

كيف نستعرضها :

تتذكرون المسار الذي طلبت منكم حفظه على الجبين ...إلخ ؟؟؟ اكتبه بالشكل التالي :

http://pc_name:port/isqlplus

مثلاً ( في العادة ) :

http://localhost:5560/isqlplus/

إذا نسيته : يمككنك الذهاب إلى المسار التالي :

Oracle_home\install\portlist.ini

ستجد " iSQL*Plus HTTP port number =5560 " ....

2- Enterprise Manager :

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

لتشغيل الأداة :

emctl start dbconsole

لإيقافها :

emctl stop dbconsole

لإظهار حالتها :

 emctl status dbconsole

لأخذ العلم لمحبي الويندوز :

الأداتين السابقتين يتم إنشاء Services خاصة بها تجدونها في Services داخل Administrative Tools .. و لا داعي لتشغيلها لأن تشغليها يتم أتوماتيكياً عند بدء التشغيل ..

لتشغيل الأداة عبر المستعرض : تماماً كما فعلنا مع ISQL PLUS :

http://pc_name:port/em

مثلاً ( في العادة ) :

http://localhost:5500/em

إذا نسيته : يمكنك الذهاب إلى المسار التالي :

Oracle_home\install\portlist.ini

ستجد Enterprise Manager Console HTTP Port (dbclass) = 5500" " ..

عند تشغيلها ستظهر لنا واجهة لتسجيل الدخول ، من الآن و لآخر الدورة نحتاج إلى المستخدم SYS من أجل ما نريد تنفيذه ، لذلك نضع :

User Name : SYS
Password : oracle
Connect AS : SYSDBA

بعد تسجيل الدخول : نرى ما كنا نحتاج إلى آلاف الأكواد و التعليمات التي كنا مضطرين لكتابتها داخل SQL PLUS ....

ما يهمنا الآن هو الضغط على Administration لتظهر لنا صفحة سنتعامل معها دائماً ....

سأكتفي اليوم إلى هذا الحد على أن أكمل غداً إن شاء الله ..

0

شارك هذا الرد


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

أولاً : أهلاً بك أخي عيسى و بالجميع و أتمنى أن عالم 10g قد أعجبك و أتمنى أن تكون هذه الدروس تعطي هذا الإصدار حقه ...

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

ستجدون نقلة نوعية في الدروس القادمة فقد قررت أن أدعم الدروس ببعض الصور حتى يصبح الفهم أفضل و لأن الدروس تتطلب ذلك في الأيام القادمة ، و لكن قد يؤثر ذلك على سرعة تجهيز الدروس لأن خط الانترنت الذي استخدمه هو Dial up بالإضافة إلى أخذ الصور .. إلخ و لكن لا مشكلة ..

الآن كفانا كلاماً و لنبدأ ا ليوم بمواضيع شيقة :

ماهو المتنصت Listener :

طبعاً لسنا في عالم الجاسوسية و ليس في عالم سي أي إيه و إنما نحن في عالم أوراكل ..

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

الحل :

أن تقوم بتنصيب Oracle Database على الجهاز الرئيسي أو أي جهاز آخر ... و البقية ؟؟؟ تقوم بتنصيب مايسمى Oracle Client (يوجد مع نفس قرص Oracle Server و تقوم بإختياره ضمن خيارات التنصيب ) .. فعلياً الأوراكل الكلاينت ليس سوى عبارة عن مجموعة من برامج SQL PLUS و بقية الأدوات التي تتيح لك الإتصال بالأوراكل داتابيس Oracle Database ... ما دخل المتنصت بكل هذا الكلام ؟؟؟

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

يمكن أن يتواجد أكثر من متنصت واحد و ذلك إذا كان عدد أجهزة الشبكة كثيرة .. و السؤال كيف نتعامل مع المتنصت ؟؟

إضافة متنصت جديد :

1- من Start->Programs->oracle10g->migration and configuration tools->Net Configuration Assistant

2- تظهر واجهة نختار منها Listener Configuration ثم Add ..

3- نضع اسم Listener ..

4-نضع البروتكول Protocol الذي نريد أن يستمع إليه المتنصت : في العادة ً نختار tcp لشبكات الويندوز و حتى شبكات Linux ، من يريد التوسع فإن الأخوة في منتدى الشبكات يمكن أن يسهموا في ذلك ...

5- نختار port الذي نريد للمتنصت أن يعمل عليه ، عند اختياره يجب عليك سؤال مدير النظام لأن هذا المدير قد يكون قد أغلق Ports من أجل حماية السيرفر .. في العادة أختار منفذ أوراكل الافتراضي 1521 ...

5-يسألنا هل نريد أن نقوم بإعداد متنصت آخر : نشكره على ذلك و نقول له لا ... ثم Next ..

6-يطلب منا هل نريد تشغيل متنصتنا الجديد .. يمكن أن نختاره ثم نضغط Next ..

7- يظهر رسالة إنتهاء العمل .... نضغط على التالي ثم نخرج من الواجهة ...

سهلة أليس ذلك ؟ ...

للعلم : فإن أوراكل عند تنصيبه فإنه ينشئ متنصب إفتراضي يسميه Listener يتنصت على port : 1521 ..

الآن :

ماذا لو أردت عدم إستقبال أي مستخدم للإتصال عبر الشبكة ؟؟؟ ماذا تفعل ؟؟؟

ببساطة تغلق المتنصت listener ، كيف ؟؟

من محرر الأوامر أو Shell :

lsnrctl stop listner_name;

ماذا لو أردنا إعادة تشغيله :

lsnctl start listner_name

ما لو أردنا معرفة حالته :

lsnctl status listener_name;

انتهينا ....

لنرى الآن Enterprise Manager ما الذي سيعرضه لنا حول Listener :

1- إفتح Enterprise Manager و سجل الدخول بالمستخدم Sys as sysdba كما تحدثنا البارحة .

2- من القسم General ستوف تشاهد اسم المتنصت إضغط عليه كما ترى في الصورة .

pic1.JPG

3- ستظهر لك صفحة جديدة تعرض لك الخيارات الخاصة بالتعامل مع المتنصت ، يمكنك الضغط على زر Stop لإيقاف listener أو يمكنك الضغط على زر edit لتعديل البارامترات الخاصة به كما ترى في الصور ..

pic2.JPG

ملاحظة هامة جداً : إن Enterprise Manager يحتاج دوماً إلى وجود listener .....

بعد جميع هذه العمليات أصبح السيرفر جاهزاً .. ما رأيكم بالمتابعة و تجهيز بقية اجهزة الشبكة ؟؟؟

ما أتفقنا عليه أنه في أجهزة الكلاينت نحتاج إلى تنصيب أوراكل كلاينت Oracle Client و هذا ما تستطيع تنصيبه في نفس القرص الخاص بالأوراكل سيرفر Oracle Server سواء الإصدار 10g أو حتى 9i (لن تجده في قرص Oracle Database ) ...

بعد تنصيبه يجب أن نخبر التطبيقات المختلفة أين ستوجد القاعدة ، و السؤال كيف ؟؟

يتم ذلك بواسطة ما يسمى Local Net Services Naming الذي نستخدمه لكي نحدد طرق الإتصال بالقاعدة ... دقيقة واحدة : هل يذكر أحد أين استعملناه ؟؟؟ هل يذكر أحد tnsnames.ora ؟؟؟ آمل أنك تذكرتموه ...

فعلياً فإن tnsnames.ora يحوي Local Net بالبنية التالية :

Connection_Host=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC_NAME "اسم الجهاز الذي يحوي القاعدة " )(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME =GLOBAL_DATABASE_NAME)
)

الآن لنتقل إلى الخطوات العملية التي يجب تنفيذها على أجهزة client :

1- نقوم بتشغيل Net Configuration Assistant ...

2- من الواجهة نختار كما في الصورة :

pic3.JPG

3- تظهر واجهة نختار منها add .

4-نضع اسم Service Name .. تتذكرون Global Name الذي وضعناه مع اسم SID ؟؟؟ هذا هو .. في مثالنا نضع dbclass.arabteam.com ..

5- نضع اسم البرتوكول الذي سنعتمد عليه ... ضع TCP ..

6- ضع اسم الجهاز الذي يحوي القاعدة و رقم port الذي يعمل عليه المتنصت ...

7- تظهر واجهة يسأل فبها هل نريد تجربة الإتصال .. طبعاً نختار Yes ثم تظهر واجهة تبين لنا نجاح الإتصال أم عدمه .. إضغط على زر change Login و ضع كلمة المرور لــSYS أو System ثم Ok إذا نجح الإتصال فمبروك إذا لم ينجح تأكد من إعدادات الشبكة لديك ....المهم يجب أن تظهر الصورة التالية :

pic4.JPG

8- عند الإنتهاء يطلب منك اسم NET SERVICE NAME و هو الاسم الذي ستعامل معه مستخدموك في برامجهم أي عندما سيسجلون الدخول إلى برامج Sql Plus سيضعون في Connection String ما تضعه أنت في NET SERVICE NAME .... وصلت الفكرة ؟؟ ...

و بذلك نكون قد انتهينا من موضوعنا اليوم .. آمل أن تكون جميع الأمور واضحة ...

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

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

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

شارك هذا الرد


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

اليوم سيكون موضوعنا شيقاً جداً حول إغلاق و تشغيل القاعدة و سنضمنه جميع العمليات التي ترافقها ، لذلك أريد من الجميع أن يتمعن التفكير في درسنا اليوم حتى تصبح الأمور واضحة جداً :

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

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

بكلمات مبسطة جداً :

ما معنى إغلاق القاعدة ؟

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

ماذا عن تشغيلها ؟

يعني التشغيل أنك أولاً تقوم بتشغيل Oracle Instance الذي يقوم بفتح ملفات القاعدة ...

لنتحدث عن العمليات التي تحدث عند تشغيل Instance و أرجو من الجميع فهمها بشكل جيد :

تتوزع العمليات بين ثلاثة مراحل :

المرحلة الأولى nomount :

1- يقوم أولاً بقراءة ملف البارمترات Parameters File .. هذه البارامترات على سبيل المثال تذكر ما سم القاعدة التي سيتعمل معه instance و أين هو Control file الخاص بالقاعدة ما هو حجم الذاكرة التي سيحجزها .. إلخ ( سيكون لنا جولة مع هذه البارامترات لا حقاً ) ...

2-يقوم بحجز الذاكرة .

3- يشغل Background process ..

4-يفتح ملف alertSID.log و هو أهم ملف يعتمد عليه مدير القاعدة لكي يكتشف الأعطال و المشاكل الذي تحدث للقاعدة إضافة إلى معلومات مهمة جدا سنراها لاحقاً ..... يوجد هذا الملف في المسار التالي :

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

المرحلة الثانية : Mount :

يقوم بقراءة ملف Control File لكي يحدد أين توجد ملفات البيانات Data files و ملفات الإرجاع Redo Files .... إلخ و لكنه لا يتأكد من وجود تلك الملفات ..

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

المرحلة الثالثة : Open :

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

إذاً سألخص ما تحدثت عنه :

تتم مراحل التشغيل وفق ثلاث مراحل تضم المرحلة الأولى قراءة ملف البارامترات ، الثانية قراءة ملف Control File ، الثالثة فتح ملفات البيانات و ملفات الإرجاع لتصبح القاعدة جاهزة ....

يمكن لمدير القاعدة أن يحدد أي مرحلة يريد قاعدته أن تعمل بها و ذلك تبعاً للعملية التي يريد تنفيذها و سأذكر أمثلة فقط :

1- إذا كانت هناك مشكلة في Control file فيقوم بتشغيل القاعدة في مرحلة no mount ..

2- إذا كانت هنالك مشلكلة في ملفات البيانات أو ملفات الإرجاع أو أراد أخذ نسخة إحتياطية للقاعدة فإنه يقوم بتشغيل القاعدة في وضع Mount ..

الصورة التالية ستوضح ما تحدثنا عنه :

pic6.JPG

يتم أمر التشغيل كالتالي :

1- تسجيل الدخول أولاً بالحساب SYS AS SYSDBA على برنامج SQLPLUS .

2- تنفيذ الأمر :

 startup Level_name;

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

startup nomount;

لتشغيل القاعدة في وضع Mount :

startup mount;

لتشغيل القاعدة لتصبح في الوضع الطبيعي :

startup;

ما ذا لو أردنا الإنتقال بين المراحل ؟

1- نشغل القاعدة بالوضع nomount :

startup nomount;

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

alter database mount;

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

alter database open;

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

إغلاق القاعدة :

يتم إغلاق القاعدة بعكس العمليات التي تنفذ ضمن عملية التشغيل :

1- يتم إغلاق ملفات البيانات Data files ومسجلات الإرجاع Redo Files ..

2-يتم إغلاق ملف Control file ..

3- يتم تحرير الذاكرة و إيقاف Background Process و إنهاء instance ( و يأخذ الجهاز نفساً عميقاً بعد أن أزال عن كاهله الأوراكل الغليظ  ... ) ...

قبل أن أبدأ بشرح الإغلاق دعوني أتحدث عن موضوع مهم :

المناقلات Transactions :

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

يمكنك تجربة المناقلة ببساطة :

نفذ بعض تعليمات insert أو update أو delete على جدول ما ثم نفذ التعليمة التالية :

rollback;

فتجد أن جميع التعديلات التي أدخلتها قد ولت أدراج الرياح و كأنك لم تفعل شيئاً .. إذاً ما الذي فعلته التعليمة Rollback ؟؟

ماقامت به التعليمة هي مجرد التراجع عن المناقلة التي قمت بها و أعادت كل شيء إلى طبيعتها ...

حسناً : ماذا لو أردت تثبيت التعديلات لتصبح دائمة ؟

commit;

لنعد إلى إغلاق القاعدة :

لإغلاق القاعدة تحتاج إلى تنفيذ التعليمة التالية :

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

لنبدأ بالشرح :

1- Normal :

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

جربوا هذه المسألة :

1-شغل SQLPLUS و سحل الدخول مثلاً بالحساب Scott ..

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

shutdown normal;

فتجد أنه ينتظر ...

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

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

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

4- ABORT :

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

كيف نستطيع استخدام Enterprise Manager في موضوعنا هذا ؟؟

1- شغل Enterprise Manager و سجل الدخول بالحساب SYS AS SYSDBA ..

2- من القسم General إضغط على الزر shutdown كما في الصورة :

pic1.JPG

3- تظهر لك صفحة :

pic6.JPG

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

بالنسبة لسمتخدمي الليونكس فالأمر تمام أما بالنسبة لسمتخدمي الويندوز فسوف تظهر الرسالة التالية :

pic7.JPG

مع العلم أنك قد وضعت كلمة السر صحيحة تماماً .... ما العمل ؟؟؟

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

إدخل على Local Security Policy داخل Administrative Tools في لوحة التحكم ... إختر كما في الصورة :

pic8.JPG

بالنقر المزدوج ستجد النافذة التالية ... قم بإضافة المستخدم الذي تعمل عليه (لقد قمت بإضافة مجموعة Administrators في جهازي .. ) من الزر Add :

pic9.JPG

الآن كرر الخطوات من 1-3 مرة أخرى ... يجب أن ينجح الأمر و تظهر الصورة التالية :

pic10.JPG

لا حظ أن الخيار الافتراضي هو إغلاق immediate ..

يمكنك الضغط على زر Advanced Options لتغير الخيار إلى Abort أو Transactional أو normal كما تحدثنا سابقاً ...

كيف نقوم بإعادة تشغيلها ؟؟؟

1-شغل الأداة Enterprise Manger و سجل الدخول بالحساب SYS AS SYSDBA ..

2- سيظهر لك زرين فقط .. إضغط على Startup ..

3- سيظهر لك الواجهة :

pic6.JPG

التي تعاملنا معها سابقاً ... سجل المعلومات نفسها ..

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

5- إضغط على زر ok عندما تنتهي ..

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

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

إني أحتاج إلى رأيكم : هل أعجبتكم الصور ؟ و هل تلبي الغرض ؟؟ هل شرحي مازال واضحاً ؟؟؟ أتمنى إجاباتكم في أسرع وقت ..

بالتوفيق ....

0

شارك هذا الرد


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

السلام عليكم

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

لدي سؤال و لو جاء متأخر قليلا ً ... كيف يمكنك عمل unlock لمستخدم ... لأن المستخدم scott لا أستطيع الدخول إليه ... :rolleyes:

مشكور أخي informat

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

شارك هذا الرد


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

أخي informat

عندما حاولت تشغيل الخدمة Enterprise Manager :

كتبت السطر التالي في محرر الأوامر

emctl start dbconsole

فظهرت لي هذه الرسالة ...

Environment variable ORACLE_SID not defined . please defined it;

و الشئ الثاني هو أن جهازي أصبح عجوزا ً أمام الـ service للتي تعمل ...

أظن أن الـ 512 رام لم تعد تكفي هذه الأيام ... سبحان الله

0

شارك هذا الرد


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

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

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



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

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

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