গত অনেকগুলো সংখ্যায় এসকিউএল সার্ভার পাঠশালায় আমরা দেখেছি কি করে এসকিউএল সার্ভার দিয়ে ডাটাবেজ তৈরি, ব্যবহার আর প্রয়োগ করা যায়৷ আজকে এর শেষ পর্ব৷ এ পর্বে দেখানো হয়েছে ডাটাবেজের মূল ব্যবহারকারী বা এডমিনিস্ট্রেটর হিসেবে এর রক্ষণাবেক্ষণ সংক্রান্ত কাজ কিভাবে করা যায় তা৷ ডাটাবেজ এডমিনিস্ট্রেটরের সবচাইতে মৌলিক দুটো কাজ হলো- জব বা কাজের সিডিউল করা অর্থাত্ ডাটাবেজ সার্ভারে অনেকটা এলার্ম ঘড়ির মতো সেট করা যেন নির্দিষ্ট সময়ে কোনো কাজ সে নিজে থেকে করে এবং ডাটাবেজের ব্যাকআপ এবং রিস্টোর করা৷ আরো অন্যান্য কাজের মধ্যে আছে বেসিক ডিফ্রাগমেন্টেশন এবং ইনডেক্স রিবিল্ড করা৷ দুভাবে এসব করা যায়- কোড লিখে এবং গ্রাফিক্যাল ইউজার ইন্টারফেসের মাধ্যমে ম্যানুয়ালিভাবে৷ গ্রাফিক্যাল ইউজার ইন্টারফেস ব্যবহার করে এসব কাজ করা অনেক সহজ বলে আমরা সেটা আগে দেখব৷ তবে কোড লিখে করলে অনেক অপশন পাওয়া যায় এবং আপনি যদি অন্য কোনো অ্যাপ্লিকেশনের সাথে এটাকে ইন্ট্রিগ্রেট করতে চান তবে কোড লিখে করা ছাড়া কোনো বিকল্প নেই৷
ডাটাবেজের সুরক্ষার জন্য সবচেয়ে জরুরি বিষয়টি হচ্ছে ব্যাকআপ৷ ডাটাবেজটি আপনি হয়তো তৈরি করে দিলেন৷ ব্যবহারকারী এটাকে ব্যবহার করবে সব সময়- অনেক বছর ধরে৷ এখানে ডাটা এন্ট্রি ও আপডেট করা হবে সব সময়৷ এর মাঝে যেকোনো সময় কমপিউটারটি বা বিশেষ করে হার্ডডিস্ক নষ্ট হয়ে যেতেই পারে৷ সেই সাথে হারিয়ে যাবে আপনার সমস্ত দরকারী ডাটা৷ এ অবস্থা থেকে বাঁচার জন্য নিয়মিত ডাটাবেজের ব্যাকআপ নেয়া জরুরি৷ আর এসকিউএল সার্ভার ২০০৫-এ তা করা যায় খুব সহজেই৷
প্রথমে এসকিউএল সার্ভারে অবজেক্ট ব্রাউজার এক্সেস করুন৷ সেখানে ডাটাবেজের লিস্ট থেকে আপনার ডাটাবেজটি সিলেক্ট করে রাইট ক্লিক করুন৷ সেখানে Tasks থেকে ব্যাকআপ সিলেক্ট করুন৷
একটি ডায়ালগ বক্স আসবে৷ এই বক্সের বিভিন্ন অপশন আছে যা সামান্য কৌশলী, আসুন একে একে এগুলোর বিস্তারিত দেখে নিই৷
প্রথমেই আসে রিকভারি মডেল-এ সম্পর্কে একটু পরেই বিস্তারিত আলোচনা করা হয়েছে৷ তারপর আসে ব্যাকআপ টাইপ রিকভারি মডেলের ওপর ভিত্তি করে এখানে দুটো বা তিনটি অপশন থাকতে পারে- Full, Differential বা tranasction log. Full মানে হচ্ছে পুরো ডাটাবেজের ব্যাকআপ নেয়া হবে৷ ব্যাকআপ কমান্ড দেয়ার আগ পর্যন্ত সব কমিটেড ট্রান্সেকশনের ব্যাকআপ নেয়া হবে৷ Differential Backup - এর মানে হচ্ছে শেষবার full ব্যাকআপ নেবার পর থেকে ডাটাবেজে যেসব পরিবর্তন করা হয়েছে শুধু তার ব্যাকআপ নেয়া হবে৷ আপনার ডাটাবেজে যদি full অথবা bulk logging অপশন সেট করা থাকে তবে ব্যাকআপের ক্ষেত্রে transaction log -এ অপশনটি পাবেন৷ Simple logging - এর ক্ষেত্রে এ অপশন থাকে না৷ এর কাজও খুব সাধারণ- log ফাইলটির ব্যাকআপ নেয়া৷
এবার ব্যাকআপ সেটের অংশে Name হিসেবে ব্যাকআপ ফাইলটির নাম আর তার ডেস্টিনেশন সিলেক্ট করে ওকে করুন৷ তবেই ব্যাকআপ শুরু হবে এবং শেষ হলে মেসেজ দিয়ে জানাবে৷
এই ব্যাকআপ নেবার কাজটিকেও কোনো জব হিসেবে সিডিউল করে দেয়া যায়- যেন নির্দিষ্ট সময়ে তা নিজে নিজেই সম্পন্ন হয়৷ এজন্য লক্ষ করুন ব্যাকআপ ডায়ালগটির ওপর দিকে Schedule নামে একটি বাটন আছে৷
এবার দেখা যাক ডাটাবেজ রিকভারি কিভাবে করবেন৷ ধরুন, আপনি গত রাত পর্যন্ত ডাটাবেজ ব্যাকআপ দিয়েছেন৷ এখন আজকে দিনের কোন পর্যায়ে এসে কমপিউটার বা ডাটাবেজ সিস্টেম ক্র্যাশ করলো৷ তখন ব্যাকআপ ফাইলটির সাহায্যে ডাটাবেজ রিকভার করতে পারবেন৷ এমনকি ব্যাকআপ ফাইল ও ট্রান্সেকশন লগ ফাইল থাকলে আপনি একেবারে সিস্টেম ক্র্যাশ করার আগ মুহূর্ত পর্যন্ত ডাটা পুনরুদ্ধার করতে পারবেন৷
তিন রকমের Recovery model আছে- Full, Bulk-Logged এবং Simple. Full মডেলে সবকিছুরই log রাখা হয় এবং এক্ষেত্রে ডাটাবেজ সম্পূর্ণ পুনরুদ্ধার করা সম্ভব৷ অর্থাত্ যে পর্যন্ত ব্যাকআপ রাখা হয়েছিল তার পরের ডাটাও পুনরুদ্ধার করা যাবে যদি transaction লগ ফাইলগুলো থাকে৷ তবে এক্ষেত্রে অনেক হার্ডডিস্ক স্পেস দরকার হয়৷ Bulk-Logged মডেল অনেকটাই Full মডেলের মতো৷ শুধু এক্ষেত্রে bulk ইমপোর্ট বা ইনডেক্স ক্রিয়েশনের মতো কাজগুলো পুনরুদ্ধার করা যায় না৷ Simple মডেলে transaction log -এ কোনো কমিটেড ডাটার হিসেব রাখা হয় না৷ তাই ডাটাবেজ শুধু ব্যাকআপ পয়েন্ট পর্যন্ত রিকভার করা সম্ভব৷
ডাটাবেজ রিকভারি করার জন্য যে ডাটাবেজটি রিস্টোর করবেন তা সিলেক্ট করে রাইট ক্লিক করে tasks হয়ে Restore -এ এক্সেস করুন৷ এখানকার অপশনগুলো অত্যন্ত সহজ৷ আপনি যদি শুধু আগের ডাটাবেজটিকে বর্তমান ডাটাবেজ দিয়ে রিপ্লেস করতে চান তবে ব্যাকআপ ফাইলটি চিনিয়ে দিয়ে ওকে প্রেস করুন৷ ডাটাবেজ রিস্টোর শুরু হবে এবং শেষ হলে মেসেজ দিয়ে জানাবে৷
এবার দেখা যাক অন্য ধরনের administrative কাজ- Job Scheduling. অনেকরকম ভাবে জব সিডিউল করা যায়-
০১. প্রতিদিন, প্রতিসপ্তাহ বা প্রতিমাস৷
০২. দিনের কোনো নির্দিষ্ট সময়ে৷
০৩. নির্দিষ্ট সময় (যেমন ১০ মিনিট) পরপর৷
০৪. যখন সিপিইউ নির্দিষ্ট সময়ের জন্য অলস থাকে৷
০৫. এসকিউএল সার্ভার এজেন্ট যখন চালু হয়৷
০৬. কোনো এলার্ট ঘটলে, ইত্যাদি৷
এসকিউএল সার্ভারের ম্যানেজমেন্ট স্টুডিও ব্যবহার করে জব তৈরি করা খুবই সহজ৷ এসকিউএল সার্ভারের এজেন্ট লোডে যান৷ এরপর সেখানে Job member -এ রাইট ক্লিক করে New Job সিলেক্ট করুন৷ Job dialog বক্স আসবে৷
এখানে General Tab - এর বেশিরভাগ অপশন অত্যন্ত সহজ৷ এরপর Steps -এ যান৷ এখানে New বাটনে ক্লিক করলে New Job Step ডায়ালগ বক্স ওপেন হবে৷ Command অংশে যেকোনো এসকিউএল কমান্ড দিতে পারেন বা ওপেনে ক্লিক করে কোনো এসকিউএল স্ক্রিপ্ট চিনিয়ে দিতে পারেন৷ এর Advanced ট্যাবে গিয়ে আপনি আরো অন্যান্য অপশন নির্বাচন করতে পারেন৷ যেমন- জব ফেইলুরের ক্ষেত্রে কতক্ষণ পরে আবার চেষ্টা করবে বা সাকসেস/ফেইল্যুর রিপোর্ট করবে কিনা ইত্যাদি৷
এখান থেকে ওকে করে বের হয়ে আসুন৷ একই রকম করে Schedule অংশে গিয়ে New Job Schedule করতে পারবেন৷ এখানকার বেশিরভাগ অপশনই অত্যন্ত সহজবোধ্য৷ সব নির্ধারণ করে ওকে করলে Job Scheduled হয়ে যাবে৷
আমাদের এসকিউএল সার্ভার পাঠশালার এখানেই সমাপ্তি৷ আপনারা ডাটাবেজ প্রোগ্রামিংয়ের চর্চা অব্যাহত রাখবেন এবং এ সংক্রান্ত যেকোনো বিষয়ে যোগাযোগ করতে দ্বিধা করবেন না৷
ফিডব্যাক : webtonmoy@yahoo.com