Database-(SQL & MySQL) Savepoint

 SAVEPOINT

কাজ চলাকালীন সময়ে অস্থায়ী এই কাজের কিছু অংশকে /অংশ বিশেষ একটি নাম দিয়ে Save করা যেতে পারে। আংশিক সেভের এই বিষয়টিকে বলা হয় SAVEPOINT.

 

ধরা যাক উপরের চিত্রের ন্যায় সর্ব উপরের commit লেখা পর্যন্ত সমস্ত কাজ আমরা সেভ করেছি। এখন নতুন কাজ শুরুর পূর্বে আমরা একটিSAVEPOINT (A) তৈরী করলাম।

Database-(SQL & MySQL) Savepoint
Database-(SQL & MySQL)Savepoint

SQL> savepoint A;

Savepoint created.

 

এখন এখানে আমরা কয়েক রো ডাটা এন্ট্রি করলাম। মনে করি ৮ রো ডাটা

এন্ট্রি করলাম বা ১০ মিনিট কাজ করলাম এবং আমরা আরো একটি

SAVEPOINT (B) তৈরী করলাম।

 

SQL> savepoint B;

 

Savepoint created.

 

একইভাবে পুনারয় ৫ রো আপডেট করলাম বা ৮ মিনিট কাজ করার পরে

আরো একটি
SAVEPOINT (C) তৈরী করলাম।

SQL> savepoint C; 

Savepoint created.

 

একই পদ্ধতিতে কিছু রো মুছে বা কিছু সময় পরে আরো একটি

SAVEPOINT (D) তৈরী করলাম।

 

SQL> savepoint D; 

Savepoint created.

 

এখন যদি কোন কারনে কমান্ড ROLLBACK cÖ‡qvM প্রয়োগ করি তবে  উপরে উলে­খিত commit এর পূর্ব পর্যন্ত  সকল কাজ মুছে যাবে বা ROLLBACK হয়ে যাবে।

কিন্তু আমরা যেহেতু SAVEPOINT তৈরী করেছি সেহেতু ইচ্ছা করলে আমরা প্রয়োজন মত ROLLBACK পারি।

** Savepoint is not ANSI standard SQL

ধরে নিলাম এখন আমাদের কাজ শেষ এবং SELECT কমান্ড দিয়ে ডাটা দেখলাম। দেখা গেল কিছু ভুল হয়ে গেছে। সুতরাং আমরা যদি এখানে Rollback কমান্ড দেই তাহলে কি হবে? আমরা প্রথম কমিট যেখানে করেছিলাম সেই পর্যন্ত চলে যাবো। অর্থাৎ এপর্যন্ত যা করেছি সব কিছু মুছে যাবে।

 

কিন্তু আমরা আসলে সব মুছতে চাই না। যদি শেষ Insert ভুল হয় তবে নিচের মত কমান্ড দিতে হবে।

 

SQL>rollback to D;

তদ্রুপ তার পুর্বের Delete কমান্ড পর্যন্ত ভুল হয়, তবে নিচের মত কমান্ড দিতে হবে।

SQL>rollback to C;

 

তবে মনে রাখতে হবে- ডিফল্ট সেটিং অনুযায়ী পাচঁটি পর্যন্ত ROLLBACK তৈরী করা যাবে। তবে ডিফল্ট সেটিং পরিবর্তন করে নেয়া যেতে পারে।

Read consistency

Read consistency is an automatic implantation. It keeps a partial copy of the database in rollbacke segment

When insert, update or delete made by the database the Oracle server take a copy of the data before it is changed and write to a rollback segment.

 

1.    The purpose of read consistency is to ensure that each user sees data as it existed at the last commit, before a DML operation started.

2.    Read consistency guarantees a consistent view of the data at all times.

3.    Changes made by one user do not conflict with the changes of others user.

4.    Readers do not wait for writer.

5.    Writers do not wait for reader.

 

There are Two types of SQL operation:

1.   Select statement (read Operation)

2.   Insert, update, delete (Write Operation)

a.  The database reader and writer ensured a consistent view of data

b.  Readers do not view data that is in process of being change.

c.  Changes made by one writer dot not disrupt or conflict with the changes of another writer is making.

 

    Lock

  1. It's a DBA scope of work and it is an Oracle Server internal process.
  2. Prevent destructive interaction between current transactions.
  3. Require no user action and automatically use the lowest level of restrictions
  4. Oracle also allows the user to lock data manually
It has two mode, one is exclusive and the other is share.

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন