الجمعة، 14 مارس 2014

Installing Oracle ASM 11g R2 on Windows

السلام عليكم

قمت بعمل فيديو صغير لشرح تنزيل ال ASM على نظام ويندوز
ان شاء الله الفيديو يكون مفيد



Oracle Database: Interactive Quick Reference (11g , 12c)

بسم الله الرحمن الرحيم

ان شاء الله هعرض عليكم ملفين من اوراكل
و هما تقديم لاوراكل داتابيز 11g , 12c
ملفين مهمين و مفيدين جدا و يعتبروا كمرجع فيه جزء كبير من Architecture, Top DBA Views , background Processes

التحميل
ORACLE Database 11g Quick Reference
ORACLE Database 12c Quick Reference

السبت، 1 فبراير 2014

Get all connected Users

بسم الله الرحمن الرحيم

ازاى اجيب كل ال Users ال Connected على ال Database

ال Query بتاعنا ان شاء الله معتمد على:

V$SESSION_CONNECT_INFO
V$SESSION

النتيجه منه هقدر اشوف كل المستخدمين و طريقة ال Authentication يعنى 'Database ولا OS' مثلا
و هشوف اسم المستخدم للجهاز نفسه و اسم الجهاز اللى داخل بيه

SELECT Conn.sid, Conn.authentication_type, Conn.osuser, Sess.USERNAME, Conn.network_service_banner, Ses.MACHINE, Ses.PROGRAM
FROM v$session_connect_info Conn
JOIN v$session Ses
ON (Ses.SID = Conn.SID);

للإطلاع اكثر


الجمعة، 31 يناير 2014

Lock in Oracle Database

بسم الله الرحمن الرحيم

ان شاء اله هنتكلم على ال Lock

عندنا نوعين من ال Lock بيحصلوا
فى حالة ان User1 بيعمل الجمله الآتيه
UPDATE Employees
SET Salary =5000;
دا اسمه Table Level lock
و دا بيسبب ان User2 او اى حد هيشتغل على اى Row فى ال Table هيفضل منتظر لحد ما User1 يقفل ال Transaction المفتوحه ب Commit او Rollback

و النوع التانى
فى حالة ان User1 بيعمل الجمله الآتيه
UPDATE Employees
SET Salary =5000
WHERE employee_id=150;
دا اسمه Row Level lock
و دا بيسبب ان User2 او اى حد هيشتغل على اى نفس ال  Row فى ال Table هيفضل منتظر لحد ما User1 يقفل ال Transaction المفتوحه ب Commit او Rollback

و هنعرف دلوقتى ازاى نجيب ال Session اللى عامله Lock و اسم المستخدم و اسم مستخدم الجهازو هو داخل و عمل ال Lock ببرنامج ايه SQL*Plus ولا SQL Developer مثلا و جمله ال SQL اللى عامله Lock
دا سكريبت فيه اغلب اللى هنحتاجه 
السكريبت مبنى على اكتر من Dynamic View و هم
v$lock, v$session, v$sql
و تقدروا تشوفوا معلومات اكتر عنهم من:

SELECT L.SID, S.SERIAL#, S.STATE, S.EVENT, S.WAIT_TIME, S.USERNAME, S.OSUSER, 
S.MACHINE, S.PROGRAM, C.SQL_FULLTEXT
FROM V$lock L 
JOIN V$session S
ON (L.SID = S.SID)
JOIN V$sql C
ON (C.SQL_ID = S.SQL_ID)
WHERE L.block > 0;

و بعد ما نعرف كل المعلومات عن ال Lock لو ال User ما عملش Commit او Rollback
لازم ادخل اعمل Kill لل Session اللى مسببه ال Lock
عشان اعمل Kill بحتاج من السكريبت السابق حاجتين
L.SID & S.SERIAL#

و بستخدمهم فى الأمر اللى تحت
Alter System Kill session 'L.SID,S.SERIAL#' immediate;

Disable Connect with / as sysdba

بسم الله الرحمن الرحيم

ازاى نخلى اى شخص يعمل Connect بطريقة Connect / as SYSDBA يطلب منه كلمة السر

عشان اقدر الغيها لازم اعدل فى باراميتر اسمه 'SQLNET.AUTHENTICATION_SERVICES'
و دا وظيفته انه بيحدد طريقة ال Authentication 
و دا موجود داخل فايل sqlnet.ora
مكانه C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

فى العادى بيكون واخد القيمة  NTS و دى معناها Windows NT native authentication
فبالتالى بيقدر يدخل مجرد ما دخل على السيرفر اللى فيه الداتابيز

و الحل بيكون انى اغير فيه و اخلى القيمة None او احط # قبل السطر اللى فيه SQLNET.AUTHENTICATION_SERVICES

و لو حاولت ادخل ب Conn / as sysdba بيطلع error


و للمزيد من المعلومات حول sqlnet.ora

الاثنين، 20 يناير 2014

[Tutorial] In-line View

بسم الله الرحمن الرحيم

ان شاء هنتناول شرح ال In-line View فى ال SQL

ايه و ظيفتها و اهميتها ؟؟
ال In-line View هى طريقة لكتابة SELECT Statement عند FROM
يعنى اكتب FROM (SELECT * FROM ) و بمعنى تانى انى استخدم ال Sub Query زى ال Table
الطريقة دى مفيده جدا فى حالة انى بعمل Complex Query
ممكن استخدمها فى انى اعمل Join معاها

امثله على ال In-Line View

اول مثال لو عايز اجيب الموظفين اللى عندهم اعلى مرتب فى كل اداره
SELECT a.last_name, a.salary, a.department_id, b.maxsal
  FROM employees a,
       ( SELECT department_id, max(salary) maxsal
         FROM employees
         GROUP BY department_id ) b
 WHERE a.department_id = b.department_id   AND a.salary = b.maxsal;

هنا انا بستخدم Agg Function جوا ال In-Line view عشان اقدر اجيب ال Maxsal و بدى ال Function اسم تانى "Alias" و ال In-Line View بديها Alias و فى ال Main Select Statement بكتب  Inline veiw Alias.Function Alias عشان استخدمها بدون Group by و اقدر اعرض معاها اكتر من Column

مثال
SELECT * 
  FROM ( SELECT deptno, count(*) emp_count
         FROM emp
         GROUP BY deptno ) emp,
       dept
 WHERE dept.deptno = emp.deptno;

و دا مثال Advanced لل DBA عشان تحسب المساحه الفاضيه فى Tablespace
column "Tablespace" format a13 column "Used MB" format 99,999,999 column "Free MB" format 99,999,999 column "Total MB" format 99,999,999 select fs.tablespace_name "Tablespace", (df.totalspace - fs.freespace) "Used MB", fs.freespace "Free MB", df.totalspace "Total MB", round(100 * (fs.freespace / df.totalspace)) "Pct. Free" from (select tablespace_name, round(sum(bytes) / 1048576) TotalSpace from dba_data_files group by tablespace_name ) df, (select tablespace_name, round(sum(bytes) / 1048576) FreeSpace from dba_free_space group by tablespace_name ) fs where df.tablespace_name = fs.tablespace_name;

ان شاء نلتقى فى تدوينه اخرى

الأربعاء، 1 يناير 2014

Lecture 1 - Intorduction to SQL



بسم الله الرحمن الرحيم

ان شاء الله هبدأ اول محاضرة تمهيدية لل SQL و هنتكلم فيها على شوية نقط:

  • ما هو ال SQL و نبذه عن تاريخه
  • نبذة عن المنهج
  • البرامج المستخدمه لكتابة SQL  و شرحهم
  • مواقع و كتب مهمة لل SQL
ما هو ال SQL


لغة الاستعلامات البنائية, بالإنجليزية: Structured Query Language أو SQL (لغة قواعد البيانات) هي لغة برمجة غير إجرائية Non Procedural Language، وهي بذلك تختلف عن لغات البرمجة المعتادة مثل سي أو جافا، حيث أن اللغات غير الإجرائية هي لغات متخصصة. ولذلك فإن تركيب لغة الاستعلامات البنائية هي لغة للتعامل والتحكم مع قواعد البيانات المترابطة من خلال التعامل مع تراكيب البيانات وإجراء عمليات إدخال البيانات والحذف والفرز والبحث والتصفية و التعديل وخلافه.



تاريخ تطور لغة الاستعلامات البنائية


في يونيو 1970 نشر العالم البريطاني إدجار كود ورقة علمية بعنوان "نموذج مترابط للبيانات في مستودعات البيانات الضخمة المشتركة A Relational Model of Data for Large Shared Data Banks" قدم فيها نموذجا لإنشاء وإدارة قواعد البيانات عرف باسم نموذج قاعدة البيانات المترابطة Relational Database Model، ووفقا لهذا النموذج يتم الاحتفاظ بالبيانات في جداول متفرقة ترتبط فيما بينها بعلاقات. حقق نموذج قاعدة البيانات المترابطة نجاحًا سريعًا بين المختصين، لكنه كان من الصعب التعامل مع هذا النموذج من خلال لغات البرمجة المألوفة آنذاك مثل لغة سي ولغة بيزيك، لذلك سعى المختصون في ابتكار لغة برمجة جديدة تكون قادرة على إنشاء قواعد البيانات والتعامل معها وفق نموذج قاعدة البيانات المترابطة. قامت جماعة من الباحثين في مختبرات شركة IBM بإنتاج أول لغة برمجة تحقق هذا الهدف وأطلقوا عليها الاسم SEQUEL وهذا اللفظ اختصار لعبارة اللغة الإنجليزية للاستعلامات البنيوية Structured English Query Language لكنهم تخلوا عن هذا الاسم سريعًا عندما اكتشفوا أنه علامة تجارية لشركة بريطانية تعمل في حقل الطيران واستبدلوه بالاسم الذي أصبح مستخدم حتى اليوم وهو تركيب لغة الاستعلامات البنائية SQL. قامت شركة IBM باستخدام تركيب لغة الاستعلامات البنائية في إنتاج عدد من نظم إدارة قواعد البيانات المترابطة وتوزيعها مثل النظام System R والنظام System/38 والنظام SQL/DS وأخيرًا النظام DB2. لكن النظام الذي حقق النجاح الأكبر هو النظام الذي اعتمدته شركة أوراكل Oracle وحمل اسمها والذي طرحته لأول مرة عام 1979. منذ ابتكار لغة الاستعلامات البنيوية في مطلع السبعينات، خضعت للعديد من التعديلات والتطويرات، كما قامت العديد من الشركات والمؤسسات البحثية بتصميم نسختها الخاصة من تركيب لغة الاستعلامات البنائية، ولمجابهة هذا الموقف قام المعهد الوطني الأمريكي للمعايير American National Standards Institute ANSI بإصدار أول نسخة معيارية من تركيب لغة الاستعلامات البنائية عام 1987 وهي التي عرفت باسم SQL1987، ثم توالت التعديلات والطبعات المعيارية، وحاليًا فإن اللغة المعيارية المعتمدة هي SQL2003.
  


نبذة عن المنهج

ان شاء الله سيتم شرح ما سبق ذكره فى البوست السابق و دى صوره لجمل السيكول


البرامج المستخدمه:

ان شاء الله سيتم الشرح على SQL PLUS و على SQL Developer و ان شاء الله هنتعرف عليهم اكتر مع اول فيديو المره القادمه مع بداية ال SQL 

مواقع و كتب مهمة مع دراسة ال SQL

كتاب رائع من اوراكل فيه كل اللى هتحتاجه عشان توصل لدرجه كويسه جدا فى ال SQL و هنشرح فى جزء منه ان شاء الله

الكتاب التانى  Mastering Oracle SQL and SQL*Plus
كتاب مفيد من Apress لل SQL

مجموعه من ال Sites مفيده
Oracle Documentation
SQL Tutorial
W3School

ان شاء الله هيتم رفع اول فيديو قريب و هيكون فيه شرح لأول نقطتين + شرح البرامج اللى هنشتغل عليها
  • Introduction to SQL & How to use (SQL Plus, SQL Developer)
  • Retrieving Data Using Select Statement