Database Restore এবং Point-in-Time Recovery (PITR) হল ডেটাবেস রিকভারি প্রক্রিয়া যা একটি SQL Server ডেটাবেসের ডেটা পুনরুদ্ধার করার জন্য ব্যবহৃত হয়। এই প্রক্রিয়াগুলি ডেটাবেসের ব্যাকআপ থেকে ডেটা পুনরুদ্ধার করার জন্য গুরুত্বপূর্ণ এবং নিরাপত্তার জন্য অত্যন্ত প্রয়োজনীয়। এগুলোর মাধ্যমে আপনি ডেটাবেসের পূর্ববর্তী অবস্থায় ফিরে যেতে পারেন, বিশেষত যখন ডেটাবেসে কোনো সমস্যা বা ডেটা ক্ষতি ঘটে।
1. Database Restore কী?
Database Restore হল একটি প্রক্রিয়া যার মাধ্যমে SQL Server-এর একটি ব্যাকআপ ফাইল থেকে ডেটাবেস পুনরুদ্ধার করা হয়। এটি বিভিন্ন পরিস্থিতিতে প্রয়োজনীয় হতে পারে, যেমন:
- ব্যাকআপ থেকে ডেটাবেস পুনরুদ্ধার: যখন কোনো ডেটাবেস হারিয়ে যায় বা দুর্নীতিগ্রস্ত হয়।
- Data loss recovery: যদি কোনো ভুল ডিলিট বা আপডেটের কারণে ডেটা হারিয়ে যায়।
- Server migration: ডেটাবেস একটি সার্ভার থেকে অন্য সার্ভারে স্থানান্তর করা।
Database Restore এর ধাপসমূহ:
- Restore from Full Backup: প্রথমে সম্পূর্ণ ব্যাকআপ (Full Backup) থেকে ডেটাবেস পুনরুদ্ধার করা হয়।
- Restore from Differential Backup: পরবর্তী ধাপে ডিফারেনশিয়াল ব্যাকআপ (যদি থাকে) পুনরুদ্ধার করা হয়, যা সর্বশেষ পূর্ণ ব্যাকআপের পরবর্তী পরিবর্তনগুলো ধারণ করে।
- Restore from Transaction Log Backup: যদি ট্রানজেকশন লগ ব্যাকআপ থাকে, তবে সেগুলো পুনরুদ্ধার করা হয় ডেটাবেসের নির্দিষ্ট সময়ের পরে ঘটানো সব পরিবর্তনকে ফেরত আনতে।
Database Restore করার সিনট্যাক্স:
RESTORE DATABASE database_name
FROM DISK = 'path_to_backup_file'
WITH RECOVERY;
উদাহরণ:
RESTORE DATABASE MyDatabase
FROM DISK = 'C:\Backups\MyDatabase.bak'
WITH RECOVERY;
এখানে, WITH RECOVERY ব্যাকআপ পুনরুদ্ধারের পর ডেটাবেসটি চালু করবে, অর্থাৎ আপনি ডেটাবেসে নতুন ট্রানজেকশন করতে পারবেন।
2. Point-in-Time Recovery (PITR)
Point-in-Time Recovery (PITR) হল একটি বিশেষ ধরণের রিকভারি পদ্ধতি যা নির্দিষ্ট একটি সময়ের পরে ঘটে যাওয়া পরিবর্তনগুলোকে ফিরিয়ে আনতে সাহায্য করে। উদাহরণস্বরূপ, যদি কোনো ডেটা ভুলভাবে মুছে ফেলা বা পরিবর্তিত হয়ে যায় এবং আপনি জানেন যে একটি নির্দিষ্ট সময়ের পর সেগুলো পরিবর্তিত হয়েছে, তবে PITR ব্যবহার করে সেই সময়ের আগের ডেটা পুনরুদ্ধার করা যেতে পারে।
PITR সাধারণত Transaction Log Backups এর সাথে ব্যবহার করা হয়। যদি আপনার কাছে ট্রানজেকশন লগ ব্যাকআপ থাকে, তবে আপনি নির্দিষ্ট একটি সময় বা ডেটাবেসের ব্যাকআপ নেওয়ার পর যে পরিবর্তনগুলো হয়েছে, সেগুলো রিকভার করতে পারবেন।
Point-in-Time Recovery এর বৈশিষ্ট্য:
- Precise Recovery: আপনাকে একটি নির্দিষ্ট সময়ের আগের ডেটাবেস অবস্থায় ফিরে যেতে দেয়।
- Data Loss Minimization: ডেটা হারানোর পরিমাণ কমিয়ে আনে, কারণ এটি আপনাকে ব্যাকআপ এবং ট্রানজেকশন লগের মধ্যবর্তী অবস্থায় ফিরে যেতে সহায়তা করে।
- Transactional Consistency: PITR ডেটাবেসের মধ্যে সামঞ্জস্যপূর্ণ ট্রানজেকশন পুনরুদ্ধার নিশ্চিত করে।
Point-in-Time Recovery করার সিনট্যাক্স:
- প্রথমে পুরো ব্যাকআপ পুনরুদ্ধার করুন:
RESTORE DATABASE database_name
FROM DISK = 'path_to_full_backup_file'
WITH NORECOVERY;
- এরপর, ডিফারেনশিয়াল ব্যাকআপ (যদি থাকে) পুনরুদ্ধার করুন:
RESTORE DATABASE database_name
FROM DISK = 'path_to_differential_backup_file'
WITH NORECOVERY;
- অবশেষে, ট্রানজেকশন লগ ব্যাকআপ পুনরুদ্ধার করুন এবং পয়েন্ট ইন টাইম নির্ধারণ করুন:
RESTORE LOG database_name
FROM DISK = 'path_to_transaction_log_backup_file'
WITH RECOVERY, STOPAT = 'yyyy-mm-dd hh:mm:ss';
উদাহরণ:
ধরা যাক, আপনি একটি ডেটাবেস পুনরুদ্ধার করতে চান যেটি ২ ঘণ্টা আগে একটা ভুল ডিলিটের কারণে ডেটা হারিয়েছে। আপনি PITR ব্যবহার করে ওই সময়ের আগের অবস্থায় ফিরে যেতে পারবেন।
RESTORE DATABASE MyDatabase
FROM DISK = 'C:\Backups\MyDatabaseFull.bak'
WITH NORECOVERY;
RESTORE DATABASE MyDatabase
FROM DISK = 'C:\Backups\MyDatabaseDiff.bak'
WITH NORECOVERY;
RESTORE LOG MyDatabase
FROM DISK = 'C:\Backups\MyDatabaseLog.trn'
WITH RECOVERY, STOPAT = '2024-11-28 15:00:00';
এখানে, STOPAT এর মাধ্যমে আপনি যেই নির্দিষ্ট সময় পর্যন্ত ডেটা ফিরিয়ে আনতে চান তা উল্লেখ করেছেন।
3. Database Restore এবং PITR এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Database Restore | Point-in-Time Recovery (PITR) |
|---|---|---|
| ডেটাবেস রিকভারি | সম্পূর্ণ ডেটাবেস বা ট্রানজেকশন লগ ব্যাকআপ থেকে পুনরুদ্ধার | নির্দিষ্ট সময় পর্যন্ত ট্রানজেকশন লগ থেকে পুনরুদ্ধার |
| ব্যবহার | সাধারণত ডেটাবেসের পূর্ণ রিকভারি এবং ব্যাকআপের পুনরুদ্ধারের জন্য ব্যবহৃত | ভুল বা অনাকাঙ্ক্ষিত পরিবর্তন বা ডিলিটের পরে সঠিক অবস্থায় ফিরিয়ে আনা |
| তথ্য সংরক্ষণ | শুধুমাত্র ব্যাকআপের পরবর্তী পরিবর্তনসহ রিকভারি | নির্দিষ্ট একটি সময়ের আগের ডেটা পুনরুদ্ধার |
| ট্রানজেকশন লগের প্রয়োজন | প্রয়োজন নাও হতে পারে, শুধুমাত্র পূর্ণ ব্যাকআপ প্রয়োজন | ট্রানজেকশন লগ ব্যাকআপ প্রয়োজন |
4. উপসংহার
Database Restore এবং Point-in-Time Recovery (PITR) হল ডেটাবেস রিকভারি প্রক্রিয়ার দুটি গুরুত্বপূর্ণ অংশ। Database Restore আপনাকে একটি ব্যাকআপ থেকে ডেটাবেস পুনরুদ্ধার করতে সহায়তা করে, যখন Point-in-Time Recovery আপনাকে নির্দিষ্ট সময়ের আগের ডেটা ফিরিয়ে আনতে সাহায্য করে, যা ডেটা হারানোর ক্ষেত্রে বিশেষত গুরুত্বপূর্ণ। এই প্রক্রিয়াগুলোর মাধ্যমে ডেটাবেসে বিভিন্ন ধরনের সমস্যা বা ডেটা ক্ষতি থেকে রক্ষা পাওয়া সম্ভব।
Read more