Orcale Tutorial Content

Loading...

Getting Started - البدء مع إدارة قواعد البيانات
  • أنواع مستخدمي قواعد البيانات:
  • مهام مسؤول قاعدة البيانات:
  • SQL Statements:
  • Identifying Your Oracle Database Software Release - تحديد إصدار اوركل
  • About Database Administrator Security and Privileges- أمان وامتيازات مسؤول قاعدة البيانات
  • Database Administrator Authentication - مصادقة مسؤول قاعدة البيانات
  • Creating and Maintaining a Database Password File - إنشاء ملف كلمة المرور
  • Oracle Architectural Components - مكونات قاعدة البيانات أوركل
  • ﻤﻜﻭﻨﺎﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • Oracle Instance
  • Oracle Database
  • Installing Oracle Database - تثبيت الأوركل
  • Installing oracle database 10g in windows
  • Creating and Configuring Database - إنشاء قاعدة البيانات
  • ﺍﻟﺘﺨﻁﻴﻁ ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • ﺇﻨﺸﺎﺀ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺎﻟﻁﺭﻴﻘﺔ ﺍﻟﻴﺩﻭﻴﺔ علي Windows:
  • ﺇﻨﺸﺎﺀ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻁﺭﻴﻕ ﺍل(DBCA)
  • About Creating an Oracle Database
  • About Selecting a Character Set
  • Prerequisites for Database Creation
  • Creating a Database with the CREATE DATABASE Statement
  • Specifying CREATE DATABASE Statement Clauses
  • Specifying Initialization Parameters
  • Controlling The Database -التحكم في قاعدة البيانات
  • التحكم في قاعدة البيانات - Controlling The Database
  • ﺘﺸﻐﻴل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • ﺇﻏﻼﻕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • Opening a Database in Read-Only Mode
  • Opening a Database in Restricted Mode
  • Managing Tablespaces and Data files
  • ﻤﻔﺎﻫﻴﻡ ﻋﺎﻤﺔ ﻋﻥ ﺍل: Tablespaces
  • عملي
  • Control File & Redo Log Files
  • Control File
  • ﺘﻐﻴﻴﺭ ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • Redo Log Files
  • Administrating Users - إدارة المستخدمين
  • ﺇﻨﺸﺎﺀ ﻭﺇﺩﺍﺭﺓ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ
  • Quota
  • ﻭﺴﻴﻠﺔ ﺍﻟﺘﺤﻘﻴﻕ
  • ﺍﻟﺼﻼﺤﻴﺎﺕ - Privileges
  • ROLES
  • PROFILES
  • Database Security & Monitoring - تأمين ومراقبة قاعدة البيانات
  • Database Security
  • ﻤﺭﺍﻗﺒﺔ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ - AUDITING
  • Oracle Net Services & Database Link & Metrlized Viewِ
  • Oracle Net Services
  • ﺍﻟﺘﺤﻜﻡ ﻓﻲ ﺍﻟﻭﺼﻭل ﻟﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
  • External Procedures
  • Clients Side
  • Database Link
  • Materialized Views
  • Undo Management & Flashback Technology
  • UNDO MANAGEMENT
  • Flashback Query
  • Flashback Table
  • Flashback Versions Query
  • Flashback Transaction
  • Flashback Drop
  • Flashback Database
  • Managing Shared Servers
  • Why Shared Server
  • Dedicated Server
  • Shared Server Architecture
  • ﻤﺘﻰ ﻨﺴﺘﺨﺩﻡ ﺍل Shared Server ؟
  • Using Globalization Support
  • Globalization
  • ﺍﺨﺘﻴﺎﺭ وتغيير ﺍل Character Set
  • ﻤﺴﺘﻭﻴﺎﺕ ﺍل Globalization
  • ﺍﺴﺘﺨﺩﺍﻡ ﺍل Zones Time
  • Logical Backup & Recovery
  • Use Export Utilities to Export Data
  • TABLES EXPORT Using Export Utilities
  • SCHEMAS EXPORT Using Export Utilities
  • TABLESPACE EXPORT Using Export Utilities
  • DATABASE EXPORT Using Export Utilities
  • Use Import Utilities to Import Data
  • TABLES IMPORT Using Import Utilities
  • SCHEMAS IMPORT Using Import Utilities
  • DATABASE IMPORT Using Import Utilities
  • DATA PUMP
  • TABLES EXPORT Using Data Pump
  • SCHEMAS EXPORT Using Data Pump
  • DATABASE EXPORT Using Data Pump
  • TABLES IMPORT Using Data Pump
  • SCHEMAS IMPORT Using Data Pump
  • DATABASE IMPORT Using Data Pump
  • SQL*Loader
  • Physical Backup & Recovery
  • Physical Backup
  • ﻜﻴﻑ ﻨﻬﻴﺊ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﺘﻌﻤل ﻓﻲ ﺍﻟﻨﻤﻁ ARCHIVELOG؟
  • Cold Backup
  • Full Database Recovery
  • Loss of a Non-SYSTEM Data File
  • Loss of a SYSTEM Data File
  • Loss of an Un-archived Online Log Files
  • Loss of Control Files
  • Loss Unbackup Datafile
  • Damage Tempfile
  • Damage Temporary Tablespace
  • Damage Online Logfile Member
  • Point in Time Recovery
  • Backup and Recovery Options
  • Hot Backup
  • Recovery Manager (RMAN)
  • مقدمة
  • مكونات ال Recovery Manager (RMAN)
  • ﺃﻨﻭﺍﻉ ﺍﻻﺘﺼﺎل ﺒﺎل RMAN
  • ﺨﻴﺎﺭﺍﺕ وأنماط ﺍﻟﻨﺴﺦ ﺍﻹﺤﺘﻴﺎﻁﻰ
  • RMAN Configuration Setting
  • Recovery Catalog
  • RMAN Backups
  • Data Files Backup
  • Tablespaces Backup
  • Archived Redo Log Files Backup
  • Control File Backup
  • Database Backup
  • Incremental Backups
  • RMAN Commands
  • Complete Recovery
  • Incomplete Recovery
  • Restore ControlFile and spfile
  • Managing Resources
  • Consumer Groups
  • Resource Manager Plans
  • Resource Manager Configuration
  • Create Consumer Group
  • Update Consumer Group
  • Delete Consumer Group
  • Privileges & Resource Manager
  • Join To Consumer Group
  • Move Active User To Other Consumer Group
  • Create Resource Manager Plans & Directive
  • Update Resource Manager Plans
  • Update Resource Manager Plan Directives
  • Delete Resource Manager Plan Directives
  • Delete Resource Manager Plans
  • Create Simple Plan
  • Consumer Group Mapping
  • Automating Tasks with the Scheduler
  • The Scheduler Architecture
  • Jobs
  • Programs
  • Schedules
  • Using Programs and Schedules
  • Job Classes
  • Windows
  • (Privileges) ﺍﻟﺼﻼﺤﻴﺎﺕ
  • Job Logs
  • Dealing with Locking
  • Shared & Exclusive Locks
  • Manual Lock Table
  • The Enqueue Mechanism
  • Lock Contention
  • Deadlocks
  • Diagnostic Sources
  • Alert Log
  • Background Trace Files
  • Server-Generated Alerts
  • Editing Thresholds
  • User Trace Files
  • Instance-Level SQL Tracing
  • Session-Level SQL Tracing
  • Dealing With Database Corruption
  • Block Corruption
  • ﺍﻜﺘﺸﺎﻑ ﺍﻟﻜﺘل ﺍﻟﻔﺎﺴﺩﺓ (Detecting Block Corruptions)
  • The DBVERIFY Utility
  • The ANALYZE Command
  • DBMS_REPAIR Backage
  • ﺍﺴﺘﺭﺠﺎﻉ ﺍﻟﻜﺘل ﺍﻟﻔﺎﺴﺩﺓ ﺒﻭﺍﺴﻁﺔ ﺍل:RMAN
  • Managing & Monitoring Memory
  • The System Global Area
  • The Shared Pool
  • The Database Buffer Cache
  • The Default, Keep, and Recycle Pools
  • The Nonstandard Block Size Pools
  • Sizing the Database Buffer Cache
  • The Log Buffer
  • The Large Pool
  • The Java Buffer
  • The Steams Buffer
  • Automatic Shared Memory Management
  • Enable Automatic Shared Memory Management
  • The Program Global Area (PGA)
  • Performance Tunning
  • Invalid Objects
  • Unusable Indexes
  • Rebuild Invalid Inexes
  • Optimizer Statistics
  • Gathering Statistics
  • The Automatic Workload Repository (AWR)
  • The Automatic Database Diagnostic Monitor (ADDM)
  • The SQL Tuning Advisor
  • The SQL Access Advisor
  • The Mean Time to Recover Advisor
  • The Segment Advisor
  • The Undo Advisor
  • Dealing with Locking

    Shared & Exclusive Locks

    ﺍﻟﻔﻜﺭﺓ ﺍﻟﺴﺎﺌﺩﺓ ﺘﻘﻭل ﺃﻨﻪ ﻻ ﻴﻤﻜﻥ ﻷﻜﺜﺭ ﻤﻥ ﻤﺴﺘﺨﺩﻡ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻌﻤل ﻋﻠﻲ ﻨﻔﺱ ﺍﻟﺼﻑ ﻓﻲ ﻨﻔﺱ ﺍﻟﺠﺩﻭل ﻓﻲ ﻨﻔﺱ ﺍﻟﻭﻗﺕ،

    ﻫﺫﺍ ﻏﻴﺭ ﻤﻘﺒﻭل ﻤﻨﻁﻘﻴﺎﹰ ﻭﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺘﻤﻨﻊ ﺫﻟﻙ ﻋﻥ ﻁﺭﻴﻕ ﻤﻨﻊ ﺃﻜﺜﺭ ﻤﻥ ﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺍﻟﻌﻤل ﻋﻠﻲ ﻨﻔﺱ ﺍﻟﺼﻑ ﻓﻲ ﻨﻔﺱ ﺍﻟﻭﻗﺕ ﺃﻭ ﻓﻴﻤﺎ ﻴﻌﺭﻑ ﺒﺎلLock،

    ﺒﺎﻟﻁﺒﻊ ﻋﻤﻠﻴﺔ ﺍﻹﺴﺘﻌﻼﻡ (SELECT) ﺘﺴﺘﻁﻴﻊ ﺍﻟﻌﻤل ﺤﺘﻲ ﻟﻭ ﻜﺎﻥ ﺫﻟﻙ ﺍﻟﺼﻑ ﺍﻟﻤﺴﺘﻌﻠﻡ ﻋﻨﻪ ﻤﻘﻔل ﻋﻥ ﻁﺭﻴﻕ ﻤﺴﺘﺨﺩﻡ ﺃﺨﺭ ﻭﺫﻟﻙ ﻷﻨﻬﺎ ﺴﺘﻌﺭﺽ ﻟﻙ ﺍﻟﻘﻴﻡ ﻤﻥ ﺍلUndo Information.

    ﻤﺎﺩﺍﻡ ﺃﻥ ﺫﻟﻙ ﺍﻟﺤﻘل ﻟﻡ ﻴﺤﺭﺭ ﺒﻌﺩ ﻋﻥ ﻁﺭﻴﻕ ﺘﺜﺒﻴﺕ ﺍﻟﺘﻌﺩﻴل ﺃﻭ ﺍﻟﺘﺭﺍﺠﻊ ﻋﻨﻪ، ﻭﺍﻟﺤﻘﻴﻘﺔ ﺃﻥ ﻫﻨﺎﻙ ﻨﻭﻋﺎﻥ ﻤﻥ ﺍﻷﻗﻔﺎل (Exclusive and Shared Locks)،

    ﻓﻠﺤﻅﺔ ﺇﺠﺭﺍﺀ ﻋﻤﻠﻴﺔ DML ﻋﻠﻲ ﺤﻘل ﻤﻌﻴﻥ ﻴﺘﻡ ﺘﻤﻜﻴﻥ ﻨﻭﻋﻴﻥ ﻤﻥ ﺍﻷﻗﻔﺎل Exclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺤﻘل ﺃﻭ ﺍﻟﺤﻘﻭل ﻟﻤﻨﻊ ﺃﻱ ﻤﺴﺘﺨﺩﻡ ﺃﺨﺭ ﺃﻭ ﺒﻤﻌﻨﻲ ﺃﺼﺢ ﺃﻱ Session ﺃﺨﺭﻱ ﻤﻥ ﺍﻟﻭﺼﻭل

    ﻟﻨﻔﺱ ﺍﻟﺤﻘل، ﻭﺍﻟﻨﻭﻉ ﺍﻷﺨﺭ Shared Lock ﻟﻠﺠﺩﻭل ﻟﻤﻨﻊ ﺃﻱ ﻋﻤﻠﻴﺔ DDL ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺠﺩﻭل ﻜﺘﻌﺩﻴل ﺘﺭﻜﻴﺒﺔ ﺍﻟﺠﺩﻭل ﺃﻭ ﺤﺫﻓﻪ ﻤﺜﻼﹰ، ﻴﺘﻡ ﺫﻟﻙ ﺒﺸﻜل ﺃﻟﻲ ﻋﻥ ﻁﺭﻴﻕ ﺍﻷﻭﺭﻜل.

    ﺇﺫﺍﹰ ﺍلExclusive Lock ﻴﺘﻡ ﻟﻤﻨﻊ ﺍﻟﻭﺼﻭل ﻟﻠﺤﻘل ﺃﻭ ﺍﻟﺠﺩﻭل ﺃﺜﻨﺎﺀ ﺇﻨﺸﻐﺎﻟﻪ ﺏSession ﺃﺨﺭﻱ، ﻭSession ﻭﺍﺤﺩﺓ ﻫﻲ ﺍﻟﺘﻲ ﺘﻘﻭﻡ ﺒﻌﻤل ﺍلExclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺤﻘﻭل ﺃﻭ ﺍﻟﺠﺩﻭل،

    ﺍلShared Lock ﻓﻌﺩﺩ ﻤﻥ ﺍلSessions ﻴﻤﻜﻥ ﺃﻥ ﺘﺘﺸﺎﺭﻙ ﻓﻲ ﻋﻤل Shared Lock ﻟﻨﻔﺱ ﺍﻟﺠﺩﻭل ﻟﻤﻨﻊ ﺃﻱ Session ﺃﺨﺭﻱ ﻟﻌﻤل Exclusive Lock ﻋﻠﻲ ﺍﻟﺠﺩﻭل.

    ﻋﻤﻭﻤﹰﺎ ﺘﺩﻋﻡ ﺍﻷﻭﺭﻜل ﻋﻤل ﺍلLock ﺒﺸﻜل ﺃﻟﻲ ﻭﻴﻤﻜﻥ ﺃﻥ ﻴﺘﻡ ﺫﻟﻙ ﺒﻁﺭﻴﻘﺔ ﻴﺩﻭﻴﺔ. ﺇﺫﺍﹰ ﺃﻨﺕ ﻻ ﺘﺴﺘﻁﻴﻊ ﻋﻤل Exclusive Lock ﻟﺠﺩﻭل ﻫﻭ ﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ ﻓﻲ ﺍﻟﻭﻀﻊ Shared Lock.

      ﺒﻜل ﺒﺴﺎﻁﺔ ﻨﺴﺘﻁﻴﻊ ﺍﻟﻘﻭل ﺃﻨﻪ ﻓﻲ ﺤﺎﻟﺔ ﻋﻤل ﺘﻌﺩﻴل ﻟﺒﻌﺽ ﺍﻟﺤﻘﻭل ﻓﻲ ﺠﺩﻭل ﻤﻌﻴﻥ ﻓﺈﻨﻪ ﻴﺘﻡ ﻋﻤل Exclusive Lock ﻟﺘﻠﻙ ﺍﻟﺤﻘﻭل ﺤﺘﻲ ﻻ ﺘﺴﺘﻁﻴﻊ Session ﺃﺨﺭﻱ ﺍﻟﻜﺘﺎﺒﺔ ﻓﻲ ﻫﺫﻩ ﺍﻟﺤﻘﻭل

    ﺤﺘﻲ ﺘﻨﺘﻬﻲ ﺍلSession ﺍﻷﻭﻟﻲ ﻤﻥ ﻋﻤﻠﻬﺎ؛ ﻤﻊ ﺍﻟﻌﻠﻡ ﺃﻥ ﻋﻤﻠﻴﺔ ﺍﻟﻘﺭﺍﺀﺓ ﻓﻘﻁ ﻤﺘﺎﺤﺔ ﺤﺘﻲ ﻓﻲ ﺤﺎل ﺍلExclusive Lock ﻭﺫﻟﻙ ﻷﻥ ﺍﻟﻘﺭﺍﺀﺓ ﺘﺘﻡ ﻤﻥ ﺍلUndo Data،

    ﻭﺃﻴﻀﺎﹰ ﺃﺜﻨﺎﺀ ﻋﻤل ﺍﻟﺘﻌﺩﻴل ﻓﻲ ﺤﻘﻭل ﻤﻌﻴﻨﺔ ﻴﺘﻡ ﻋﻤل Shared Lock ﻟﻠﺠﺩﻭل ﻭﺫﻟﻙ ﻟﻤﻨﻊ ﻋﻤل Exclusive Lock ﻟﻠﺠﺩﻭل ﺍﻟﺘﻲ ﻴﺘﻤﻜﻥ ﻤﻥ ﺨﻼﻟﻬﺎ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺇﻨﺠﺎﺯ ﻋﻤﻠﻴﺎﺕ ﺍلDDL ﻜﻌﻤﻴﺎﺕ ﺍﻟﺤﺫﻑ

    ﻭﺘﻐﻴﺭ ﻫﻴﻜﻠﺔ ﺍﻟﺠﺩﻭل.

    ﺇﺫﺍﹰ ﻹﻨﺠﺎﺯ ﻋﻤﻠﻴﺎﺕ ﺍلDDL ﻋﻠﻲ ﺠﺩﻭل ﻤﻌﻴﻥ ﻷﺒﺩ ﻤﻥ ﻋﻤل Exclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺠﺩﻭل ﺃﻱ Session ﺃﺨﺭﻱ ﻤﻥ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺠﺩﻭل، ﻭﻻ ﻨﺴﺘﻁﻴﻊ ﻋﻤل Exclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺠﺩﻭل

    ﺤﺘﻲ ﺘﺘﻡ ﺠﻤﻴﻊ ﻋﻤﻠﻴﺎﺕ ﺍلDML ﻋﻠﻲ ﺍﻟﺠﺩﻭل ﺃﻭ ﺒﻤﻌﻨﻲ ﺃﺨﺭ ﺤﺘﻲ ﻴﺘﻡ ﺇﻨﻬﺎﺀ ﺍلExclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺤﻘﻭل ﻭﻜﺫﻟﻙ ﺍلShared Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺠﺩﻭل،

    ﺇﺫﺍﹰ ﺍﻟﻬﺩﻑ ﻤﻥ ﺍلShared Lock ﻫﻭ ﻤﻨﻊ ﻋﻤﻠﻴﺎﺕ ﺍلDDL ﻋﻠﻲ ﺍﻟﺠﺩﻭل ﺃﻭ ﺒﻤﻌﻨﻲ ﺍﺨﺭ ﻤﻨﻊ ﺍلExclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺠﺩﻭل.

    ﻟﻨﻔﺘﺭﺽ ﺍﻻﻥ ﺃﻥ ﻤﺴﺘﺨﺩﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻗﺎﻡ ﺒﻔﺘﺢ Session ﻋﻥ ﻁﺭﻴﻕ ﺍلSQL*PLUS ﻭﻗﺎﻡ ﺒﺈﻨﺸﺎﺀ ﺠﺩﻭل ﻴﺴﻤﻲ TEST ﻭﻗﺎﻡ ﺒﺈﻀﺎﻓﺔ ﺴﺠل ﻭﺍﺤﺩ ﻟﻠﺠﺩﻭل.

     

    CREATE TABLE TEST (NO NUMBER(5));

    INSERT INTO TEST VALUES(1);

    SELECT * FROM TEST;

     

    ﺜﻡ ﻗﺎﻡ ﻨﻔﺱ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﻔﺘﺢ Session ﺃﺨﺭﻱ ﻭﻗﺎﻡ ﺒﻌﻤل ﺇﺴﺘﻌﻼﻡ ﻋﻠﻲ ﺍﻟﺠﺩﻭل TEST.

     

    SELECT * FROM TEST;

     

    ﻻﺤﻅ ﺃﻥ ﺍﻹﻀﺎﻓﺔ ﻓﻲ ﺍﻟﺠﺩﻭل ﻟﻡ ﺘﻅﻬﺭ ﻤﻥ ﺨﻼل ﻫﺫﻩ ﺍلSession ﻷﻨﻪ ﻟﻡ ﻴﺘﻡ ﺘﺜﺒﻴﺕ ﻫﺫﻩ ﺍﻟﻌﻤﻠﻴﺔ ﺒﻌﺩ.

    ﺍﻷﻥ ﻟﻭ ﺘﻡ ﺘﺜﺒﻴﺕ ﻫﺫﻩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺨﻼل ﺍلSession ﺍﻷﻭﻟﻲ ﻋﻥ ﻁﺭﻴﻕ ﺍﻷﻤﺭ Commit ﻭﻗﻤﺕ ﺒﺈﻋﺎﺩﺓ ﺍﻹﺴﺘﻌﻼﻡ ﻤﻥ ﺨﻼل ﺍلSession ﺍﻟﺜﺎﻨﻴﺔ ﻓﺈﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺴﺘﻅﻬﺭ

    ﻭﺫﻟﻙ ﻷﻨﻪ ﻟﺤﻅﺔ ﻋﻤل ﺍلCommit ﻴﺘﻡ ﺘﺜﺒﻴﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﺇﻁﻼﻕ ﺍلLock.

    ﻻﺤﻅ ﺃﻨﻪ ﻟﻭ ﺘﻡ ﻋﻤل ﺘﻌﺩﻴل ﻤﻥ ﺨﻼل ﺍلSession ﺍﻷﻭﻟﻲ ﻭﻟﻡ ﻴﺘﻡ ﺘﺜﺒﻴﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺜﻡ ﻤﻥ ﺨﻼل ﺍلSession ﺍﻟﺜﺎﻨﻴﺔ ﻗﻤﺕ ﺒﻌﻤل ﺇﺴﺘﻌﻼﻡ ﻓﺈﻥ ﺍﻹﺴﺘﻌﻼﻡ ﺴﻭﻑ ﻴﺄﺘﻲ ﻟﻙ

    ﺒﺎﻟﻘﻴﻤﺔ ﺍﻟﻘﺩﻴﻤﺔ من الUndo Data.

    ﺍﻷﻥ ﻟﻭ ﻗﻤﻨﺎ ﺒﻌﻤل ﺘﻌﺩﻴل ﻟﻠﺤﻘل ﻓﻲ ﺍﻟﺠﺩﻭل TEST ﻤﻥ ﺨﻼل ﺍلSession ﺍﻷﻭﻟﻲ ﻭﻟﻡ ﻨﻘﻡ ﺒﺘﺜﺒﻴﺕ ﺍﻟﺘﻌﺩﻴل.

     

    UPDATE TEST SET NO=2 WHERE NO=1;

     

    ﺜﻡ ﻤﻥ ﺨﻼل ﺍلSession ﺍﻟﺜﺎﻨﻴﺔ ﻟﻭ ﻗﻤﻨﺎ ﺒﻌﻤل ﺘﻐﻴﻴﺭ ﻓﻲ ﻫﻴﻜﻠﺔ ﺍﻟﺠﺩﻭل ﻤﻥ ﺨﻼل ﺍﻷﻤﺭ ALTER ﻭﻫﻲ ﺘﺩﺨل ﻤﻥ ﻀﻤﻥ ﻋﻤﻠﻴﺎﺕ ﺍلDDL.

     

    ALTER TABLE TEST ADD (NAME VARCHAR2(40));

     

    ﻫل ﺘﻌﺭﻑ ﻟﻤﺎﺫﺍ ﻟﻡ ﺘﺴﺘﻁﻴﻊ ﻓﻌل ﺫﻟﻙ؟

    ﺍﻟﺭﺴﺎﻟﺔ ﺘﻘﻭل ﻟﻙ ﺃﻥ ﺍﻟﺠﺩﻭل ﻤﺸﻐﻭل ﺒﻌﻤﻠﻴﺔ ﺃﺨﺭﻱ ﻭﻫﺫﺍ ﺼﺤﻴﺢ ﻷﻨﻪ ﻟﻡ ﻴﺘﻡ ﺒﻌﺩ ﺘﺜﺒﻴﺕ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻌﺩﻴل ﻤﻥ ﺨﻼل ﺍلSession ﺍﻷﻭﻟﻲ ﺇﺫ مازل ﺍلExclusive Lock ﻗﺎﺌﻤﺎﹰ

    ﻋﻠﻲ ﺤﻘل ﺍﻟﺠﺩﻭل ﻭﻻ ﺘﺴﺘﻁﻴﻊ ﺇﺠﺭﺍﺀ ﻋﻤﻠﻴﺎﺕ ﺍلDDL ﺤﺘﻲ ﻴﺘﻡ ﺇﻨﻬﺎﺀ Exclusive Lock ﻤﻥ ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺤﻘل ﻭﺃﻴﻀﺎﹰ ﺇﻨﻬﺎﺀ ﺍلShared Lock ﻤﻥ ﻋﻠﻲ ﺍﻟﺠﺩﻭل،

    ﻭﺫﻟﻙ ﻷﻥ ﻋﻤﻠﻴﺎﺕ ﺍلDDL ﺘﺤﺘﺎﺝ ﻟﻌﻤل Exclusive Lock ﻋﻠﻲ ﻤﺴﺘﻭﻱ ﺍﻟﺠﺩﻭل ﻭﺍلShared Lock ﻴﻤﻨﻊ ﺫﻟﻙ.

    ﺍﻻﻥ ﻟﻭ ﻗﻤﺕ ﺒﺘﺜﺒﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺃﻭ ﺍﻟﺘﺭﺍﺠﻊ ﻋﻨﻬﺎ ﻤﻥ ﺨﻼل ﺍلSession ﺍﻷﻭﻟﻲ ﻭﺃﻋﺩﺕ ﻋﻤﻠﻴﺔ ﺍلAlter ﻓﺈﻥ ﺍﻟﻌﻤﻠﻴﺔ ﺴﺘﻨﺠﺢ.

    ﺒﺎﻟﻁﺒﻊ ﺠﻤﻴﻊ ﻋﻤﻠﻴﺎﺕ ﺍلLock ﺍﻟﺘﻲ ﺘﺤﺩﺜﻨﺎ ﻋﻨﻬﺎ ﺴﺎﺒﻘﺎﹰ ﺘﺤﺩﺙ ﺒﺸﻜل ﺃﻟﻲ ﻋﻥ ﻁﺭﻴﻕ ﺍﻷﻭﺭﻜل،

    ﻟﻜﻥ ﻗﺩ ﻴﻘﻭﻡ ﻤﺩﻴﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻌﻤل Lock ﻟﻠﺠﺩﺍﻭل ﻴﺩﻭﻴﺎﹰ ﻋﻨﺩﻤﺎ ﻴﺤﺘﺎﺝ ﻟﺫﻟﻙ ﻜﻤﻨﻊ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﻤﻥ ﺍﻟﺘﻌﺩﻴل ﻓﻲ ﺒﻌﺽ ﺍﻟﺠﺩﻭل ﺃﺤﻴﺎﻨﺎﹰ.

     

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