ডাউনটাইম মিনিমাইজ করা এবং ডাটাবেস অ্যালেটিবিটি বেড়ানো হলো প্রতিটি ব্যবসার কাঙ্ক্ষিত লক্ষ্য। ডাটাবেস অ্যাডমিনিস্ট্রেটর (DBA)রা সবসময় ডেটা ফাইল বা সম্পূর্ণ ডাটাবেস করাপশন ফেইলারের ক্ষেত্রে দ্রুত রিকভারি সমাধান খুঁজে পেতে চান। ১০g ভার্সন থেকে শুরু করে, Oracle® Recovery Manager (RMAN) একটি ফিচার অফার করে যেটাকে Incremental Merge Backups (IMB) বলা হয়, যা রিকভারি টাইম মিনিমাইজ করার সমাধান প্রদান করে, বিশেষ করে খুব বড় ডাটাবেস (VLDB)-এর জন্য।
ভূমিকা
যদি সঠিক অপশন সহ কনফিগার করা হয়, তবে IMB ফিচারটি ডাটাবেস রিকভারি টাইম উল্লেখযোগ্যভাবে কমাতে পারে। যদিও এটি ব্যাপকভাবে ব্যবহৃত হয় না, এই ফিচার VLDB-এর জন্য একটি আদর্শ ব্যাকআপ মেথডলজি। ডেটা ফাইলসের ইমেজ কপি তৈরি করা হয়, এবং তারপর ইনক্রিমেন্টাল ব্যাকআপ প্রয়োগ করা হয়, যা প্রতিটি ব্যাকআপ অপারেশনের পর ইমেজ কপিকে রোল ফরওয়ার্ড করে।
এই পোস্টে IMB ব্যবহারের কিছু বিবেচনা, প্রসেস ইলাস্ট্রেট করার জন্য স্যাম্পল কোড, এবং বেশ কিছু রিকভারি সিনেরিও দেখানো হয়েছে।
বিবেচনা
ইমেজ কপি ব্যাকআপ স্ট্র্যাটেজি ব্যবহার করার আগে, নিচের বিবেচনাগুলো মনে রাখুন:
Block Change Tracking (BCT) ডাটাবেসে ইনেবল থাকতে হবে।
ডাটাবেস ডেটা ফাইল যত স্পেস ব্যবহার করছে, ইমেজ কপি স্টোর করার জন্য ততটুকু ডিস্ক স্পেস থাকতে হবে।
পয়েন্ট-ইন-টাইম রিকভারি (PITR)-এর জন্য, আপনার কমপক্ষে একটি ফুল ব্যাকআপ থাকতে হবে, এবং ডাটাবেস রিকভারি সম্পূর্ণ হওয়া পর্যন্ত আর্কাইভ লগ রাখতে হবে।
ডাটাবেসের ইমেজ কপি একই টাইপের স্টোরেজে থাকতে হবে, ইনপুট এবং আউটপুট (I/O) দিক থেকে, যাতে ডাটাবেস কপিতে সুইচ করার সময় পারফরম্যান্স প্রভাবিত না হয়।
নিচের ছবিটি একটি ইনক্রিমেন্টালি আপডেটেড ব্যাকআপ দেখায়:
স্যাম্পল কোড
ডেইলি ইমেজ কপি নেওয়া এবং ইনক্রিমেন্টালি আপডেট করার জন্য নিচের কোড চালান:
run {
allocate channel c1 device type disk format '/home/oracle/backup/%U';
recover copy of database with tag 'IMG_COPY';
backup incremental level 1 for recover of copy with tag 'IMG_COPY' database;
release channel c1;
}
প্রথম এক্সিকিউশনে, recover copy of database কমান্ড কিছুই করে না। backup incremental কমান্ড একটি নতুন ইনক্রিমেন্টাল level 0 ব্যাকআপ তৈরি করে IMG_COPY ট্যাগ সহ কারণ এটি এই ট্যাগের সাথে তৈরি হওয়া প্রথম ব্যাকআপ।
দ্বিতীয় এক্সিকিউশনে, recover copy of database কমান্ড কিছুই করে না যতক্ষণ না এটি INC 1 ব্যাকআপ খুঁজে পায়। backup incremental কমান্ড INC 1 ব্যাকআপ তৈরি করে।
তৃতীয় এবং পরবর্তি এক্সিকিউশনে, recover command লাস্ট উপলব্ধ INC 1 ব্যাকআপকে এক্সিস্টিং ইমেজ কপিতে প্রয়োগ করে। backup command পরবর্তী INC 1 ব্যাকআপ তৈরি করে।
রিকভারি সিনেরিও
নিচের ইউজ কেসগুলো ব্যাখ্যা করে কীভাবে Incremental Merge Backups বিভিন্ন রিকভারি পরিস্থিতিতে সাহায্য করে।
কেস ১: করাপ্ট, ডিলিটেড, বা ওভাররাইটেন ডেটা ফাইল
নিচের কোড অনুযায়ী একটি টেবিল তৈরি করুন টেস্টিং-এর জন্য, এবং পূর্বের স্ক্রিপ্ট ব্যবহার করে ইমেজ কপি নিন।
SQL> create table ImgCpyTab tablespace tbs2 as select * from dba_objects;
Table created.
FILE_NAME FILE_ID TABLESPACE_NAME
------------------ ------------ -------------------------------
/home/oracle/Sw/oradata/test/tbs02.dbf 5 TBS2
SQL> select count(1) from ImgCpyTab;
COUNT(1)
----------
72476
এই সিনেরিও টেস্ট করতে, ফিজিক্যাল ডেটা ফাইলকে উদ্দেশ্যপूর্নক সরিয়ে দিন, নিচের কোড অনুযায়ী, এবং select কমান্ড প্রত্যাশিত এরর ফেলবে।
mv /home/oracle/Sw/oradata/test/tbs02.dbf /home/oracle/Sw/oradata/test/tbs02.dbf_BKP
select count(1) from scott.IMGCPYTAB
* ERROR at line 1:
ORA-01116: error in opening database file 5
ORA-01110: data file 5: '/home/oracle/Sw/oradata/test/tbs02.dbf'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
এই কেসে, ফিজিক্যাল ফাইল রিস্টোর করার প্রয়োজন নেই। পরিবর্তে, ব্যাকআপে সুইচ করুন এবং রিকভার করুন। এটি খুব দ্রুত হয়, এমনকি টেরাবাইট আকারের ডেটা ফাইল বা ডাটাবেসের সাথে।
নিচের কোড ডেটাফাইলকে অফলাইন মোডে আনে:
SQL> alter database datafile 5 offline;
Database altered.
পরবর্তী, ডেটা ফাইলকে কপিতে সুইচ করুন এবং রিকভার করুন:
[oracle@localhost backup]$ rman target /
Recovery Manager: Release 11.2.0.2.0 – Production on Thu Jun 5 18:17:15 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: TEST (DBID=2122535405)
RMAN> switch datafile 5 to copy;
using target database control file instead of recovery catalog
datafile 5 switched to datafile copy "/home/oracle/backup/data_D-TEST_I-2122535405_TS-TBS2_FNO-5_6ppa3ev1"
RMAN> recover datafile 5;
Starting recover at 05-JUN-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=149 device type=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:01
Finished recover at 05-JUN-14
RMAN> sql 'alter database datafile 5 online';
sql statement: alter database datafile 5 online
RMAN> exit
নিচের কোড অনুযায়ী, ডেটা ফাইল ফিরে এসে এবং টেবিল অ্যাক্সেসযোগ্য:
FILE_NAME FILE_ID TABLESPACE_NAME
------------------ ------------ -------------------------------
TBS2 /home/oracle/backup/data_D-TEST_I-2122535405_TS-TBS2_FNO-5_6ppa3ev1 AVAILABLE
SQL> select count(1) from scott.IMGCPYTAB;
COUNT(1)
----------
72476
নোট: আপনি file_name কলাম দেখলে বুঝবেন যে ডাটাবেস ইমেজ কপি ফাইল ব্যবহার করছে।
কেস ২: ফুল ডাটাবেস করাপশন বা ডিস্ক ফেইলার
যদি আপনার ফুল করাপ্টেড ডাটাবেস বা ডিস্ক ফেইলার হয়, তবে আপনি ডাটাবেসকে কপিতে সুইচ করতে পারেন নিচের ধাপগুলো অনুসরণ করে:
- ডাটাবেস শাট ডাউন করুন।
- কন্ট্রোল ফাইল অনুপস্থিত থাকলে, রিস্টোর করুন।
- ইমেজ কপি ক্যাটালগ করুন।
- ডাটাবেসকে কপিতে সুইচ করুন।
- আর্কাইভ উপলব্ধ रहने পর্যন্ত রিকভার করুন এবং তারপর ডাটাবেস খুলুন।
উপসংহার
এই পোস্টে আলোচনা করা হয়েছে কীভাবে RMAN ইমেজ কপি ব্যাকআপ এবং রিকভারি ফিচার ব্যবহার করতে হয়। এছাড়া কিছু ইউজ কেস দেওয়া হয়েছে ইমপ্লিমেন্টেশন এবং ডেটা ফাইল ও ডাটাবেস রিকভারির জন্য ফিজিক্যাল করাপশনের ক্ষেত্রে। Incremental Merge Backups ফিচার ডাটাবেস ব্যাকআপ সহজ করে দেয় এবং দ্রুত ও ফ্লেক্সিবল ডেটা রিকভারি নিশ্চিত করে।
Feedback ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন।