ব্যাকআপ SQL Server আমাদের সম্পূর্ণ ২০২৫ নির্দেশিকা সহ ডাটাবেস। ধাপে ধাপে নির্দেশাবলী এবং সকল দক্ষতা স্তরের জন্য সর্বোত্তম অনুশীলন।
1. ভূমিকা SQL Server ব্যাকআপ
1.1 কি SQL Server ব্যাকআপ?
SQL Server ব্যাকআপ হলো ডেটা ক্ষতির হাত থেকে রক্ষা করার জন্য আপনার ডাটাবেস ফাইলের কপি তৈরির প্রক্রিয়া। একটি ব্যাকআপ একটি নির্দিষ্ট সময়ে আপনার ডাটাবেসের অবস্থা ক্যাপচার করে, যা আপনাকে হার্ডওয়্যার ব্যর্থতা, মানবিক ত্রুটি বা দুর্যোগ ঘটলে ডেটা পুনরুদ্ধার করতে দেয়।
SQL Server ডিফল্টরূপে .bak ফাইলে ব্যাকআপ সংরক্ষণ করে, যার মধ্যে টেবিল, সঞ্চিত পদ্ধতি, ভিউ, ইনডেক্স এবং লেনদেন লগ সহ সমস্ত ডাটাবেস অবজেক্ট থাকে।
1.2 কেন SQL Server ব্যাকআপ নেওয়া অত্যন্ত গুরুত্বপূর্ণ
ডেটাবেস ব্যাকআপ ডেটা ক্ষতির বিরুদ্ধে আপনার শেষ প্রতিরক্ষা হিসেবে কাজ করে। সঠিক ব্যাকআপ ছাড়া, আপনার প্রতিষ্ঠান ঝুঁকিতে থাকে:
- স্থায়ী তথ্য ক্ষতি হার্ডওয়্যার ব্যর্থতা বা দুর্নীতির কারণে
- বর্ধিত ডাউনটাইম পুনরুদ্ধারের প্রচেষ্টার সময়
- ব্যবসায় ব্যাঘাত এবং রাজস্ব ক্ষতি
- সম্মতি লঙ্ঘন যদি তথ্য পুনরুদ্ধার করা না যায়
- সুনাম ক্ষতি পরিষেবা ব্যাহত হওয়ার কারণে
নিয়মিত SQL Server ব্যাকআপগুলি ব্যবসায়িক ধারাবাহিকতা নিশ্চিত করে এবং ডেটা সুরক্ষার জন্য নিয়ন্ত্রক প্রয়োজনীয়তা পূরণ করে।
১.৩ সাধারণ ডেটা ক্ষতির পরিস্থিতি
কখন ডেটা ক্ষতি হয় তা বোঝা আপনাকে একটি কার্যকর ব্যাকআপ কৌশল তৈরি করতে সাহায্য করে:
- হার্ডওয়্যার ব্যর্থতা: ডিস্ক ক্র্যাশ, সার্ভারের ত্রুটি, অথবা স্টোরেজ সিস্টেমের ব্যর্থতা
- মানবিক ত্রুটি: দুর্ঘটনাক্রমে মুছে ফেলা, ভুল আপডেট, অথবা বাদ পড়া টেবিল
- সফ্টওয়্যার সমস্যা: অ্যাপ্লিকেশন বাগ, দূষিত আপডেট, অথবা সিস্টেম ক্র্যাশ
- নিরাপত্তা ভঙ্গের: র্যানসমওয়্যার আক্রমণ, ক্ষতিকারক মুছে ফেলা, অথবা অননুমোদিত অ্যাক্সেস
- প্রাকৃতিক বিপর্যয়: ডেটা সেন্টারগুলিকে প্রভাবিত করে আগুন, বন্যা, বা বিদ্যুৎ বিভ্রাট
2. বোঝা SQL Server ব্যাকআপ প্রকার
SQL Server একাধিক ধরণের ব্যাকআপ সমর্থন করে, প্রতিটি বিভিন্ন পুনরুদ্ধারের চাহিদা এবং স্টোরেজ প্রয়োজনীয়তা পূরণ করে।
২.১ সম্পূর্ণ ব্যাকআপ
একটি সম্পূর্ণ ব্যাকআপ আপনার সম্পূর্ণ ডাটাবেসের একটি সম্পূর্ণ কপি তৈরি করে, যার মধ্যে সমস্ত ডেটা ফাইল এবং পুনরুদ্ধারের জন্য প্রয়োজনীয় লেনদেন লগের কিছু অংশ অন্তর্ভুক্ত থাকে।
২.১.১ কখন সম্পূর্ণ ব্যাকআপ ব্যবহার করবেন
সম্পূর্ণ ব্যাকআপগুলি এর জন্য আদর্শ:
- অন্যান্য ধরণের ব্যাকআপের জন্য একটি বেসলাইন স্থাপন করা
- ছোট থেকে মাঝারি ডাটাবেস যেখানে ব্যাকআপ সময় গ্রহণযোগ্য
- সাপ্তাহিক বা মাসিক ব্যাকআপ সময়সূচী
- বিরল পরিবর্তন সহ ডাটাবেস
২.১.২ সম্পূর্ণ ব্যাকআপের সুবিধা এবং সীমাবদ্ধতা
সুবিধাদি:
- সহজতম পুনরুদ্ধার প্রক্রিয়া - একক ফাইলে সবকিছু থাকে
- স্বয়ংসম্পূর্ণ এবং অন্যান্য ব্যাকআপ থেকে স্বাধীন
- সম্পূর্ণ ডাটাবেস পুনরুদ্ধারের জন্য দ্রুততম পুনরুদ্ধারের সময়
সীমাবদ্ধতা:
- উল্লেখযোগ্য সঞ্চয় স্থান প্রয়োজন
- বৃহৎ ডাটাবেসের জন্য দীর্ঘ ব্যাকআপ সময়
- ব্যাকআপ অপারেশনের সময় উচ্চতর সম্পদ খরচ
২.২ ডিফারেনশিয়াল ব্যাকআপ
একটি ডিফারেনশিয়াল ব্যাকআপ শুধুমাত্র শেষ পূর্ণ ব্যাকআপের পর থেকে ডেটা পরিবর্তনগুলি ক্যাপচার করে, ব্যাকআপের সময় এবং স্টোরেজের প্রয়োজনীয়তা হ্রাস করে।
২.২.১ ডিফারেনশিয়াল ব্যাকআপ কীভাবে কাজ করে
ডিফারেনশিয়াল ব্যাকআপ পরিবর্তিত এক্সটেন্ট ব্যবহার করে পরিবর্তনগুলি ট্র্যাক করে। যখন আপনি পুনরুদ্ধার করেন, SQL Server প্রথমে শেষ পূর্ণ ব্যাকআপ প্রয়োগ করে, তারপর m প্রয়োগ করেost সাম্প্রতিক ডিফারেনশিয়াল ব্যাকআপ।
২.২.২ ফুল বনাম ডিফারেনশিয়াল ব্যাকআপ
| দৃষ্টিভঙ্গি | সম্পূর্ণ ব্যাকআপ | ডিফারেনশিয়াল ব্যাকআপ |
|---|---|---|
| আয়তন | সম্পূর্ণ ডাটাবেস | শুধুমাত্র শেষ পূর্ণ ব্যাকআপের পর থেকে পরিবর্তনগুলি |
| ব্যাকআপ সময় | দীর্ঘতম | পূর্ণের চেয়ে দ্রুত |
| পুনরুদ্ধার প্রক্রিয়া | একক ফাইল পুনরুদ্ধার | পূর্ণ + ডিফারেনশিয়াল প্রয়োজন |
| স্টোরেজ প্রয়োজন | Most স্থান | প্রথমে জায়গা কম, সময়ের সাথে সাথে বাড়ে |
২.৩ লেনদেন লগ ব্যাকআপ
লেনদেন লগ ব্যাকআপগুলি শেষ লগ ব্যাকআপের পর থেকে সমস্ত লেনদেন ক্যাপচার করে, যা পয়েন্ট-ইন-টাইম পুনরুদ্ধার সক্ষম করে।
২.৩.১ লেনদেন লগ বোঝা
লেনদেন লগ আপনার ডাটাবেসের প্রতিটি পরিবর্তন রেকর্ড করে। লগ ব্যাকআপ লগের নিষ্ক্রিয় অংশটি কেটে ফেলে, এটি অনির্দিষ্টকালের জন্য বৃদ্ধি পেতে এবং আপনার ডিস্কটি পূরণ করতে বাধা দেয়।
৮.৩ পয়েন্ট-ইন-টাইম পুনরুদ্ধার
লেনদেন লগ ব্যাকআপ আপনাকে লগ ব্যাকআপের মধ্যে যেকোনো নির্দিষ্ট মুহূর্তে আপনার ডাটাবেস পুনরুদ্ধার করতে দেয়। দুর্ঘটনাজনিত ডেটা পরিবর্তন বা মুছে ফেলা থেকে পুনরুদ্ধারের জন্য এটি অত্যন্ত গুরুত্বপূর্ণ।
পয়েন্ট-ইন-টাইম পুনরুদ্ধার সম্পাদন করতে, আপনার প্রয়োজন:
- শেষ পূর্ণ ব্যাকআপ
- মিost সাম্প্রতিক ডিফারেনশিয়াল ব্যাকআপ (ঐচ্ছিক)
- সম্পূর্ণ/ডিফারেনশিয়াল ব্যাকআপ থেকে আপনার লেনদেন লগের সমস্ত ব্যাকআপ tarসময় পেতে
২.৪ টেইল-লগ ব্যাকআপ
টেল-লগ ব্যাকআপগুলি এমন লগ রেকর্ডগুলি ক্যাপচার করে যা এখনও ব্যাক আপ করা হয়নি, ডেটা ক্ষতি রোধ করে এবং একটি অক্ষত লগ চেইন বজায় রাখে। পুনরুদ্ধার করার আগে একটি SQL Server ডাটাবেসটি তার সর্বশেষ সময়ে পৌঁছে গেলে, আপনাকে অবশ্যই এর লেনদেন লগের টেইলটি ব্যাকআপ করতে হবে। টেইল-লগ ব্যাকআপ হল ডাটাবেসের পুনরুদ্ধার পরিকল্পনায় আগ্রহের শেষ ব্যাকআপ।

বিঃদ্রঃ: সব পুনরুদ্ধারের ক্ষেত্রে টেল-লগ ব্যাকআপের প্রয়োজন হয় না। যদি পুনরুদ্ধার পয়েন্টটি পূর্ববর্তী লগ ব্যাকআপে থাকে তবে আপনার এটির প্রয়োজন নেই। যদি আপনি একটি ডাটাবেস স্থানান্তর বা প্রতিস্থাপন (ওভাররাইট) করেন এবং এটি পুনরুদ্ধার করার পরে কোনও নির্দিষ্ট সময় পর্যন্ত পুনরুদ্ধার করার প্রয়োজন না হয় তবে একটি টেল-লগ ব্যাকআপও অপ্রয়োজনীয়।ost সাম্প্রতিক ব্যাকআপ।
২.৪.১ যখন টেইল-লগ ব্যাকআপ প্রয়োজন হয়
নিম্নলিখিত পরিস্থিতিগুলি বর্ণনা করে যে কখন আপনার টেল-লগ ব্যাকআপ নেওয়া উচিত:
অনলাইন ডাটাবেস পুনরুদ্ধার: যদি ডাটাবেসটি অনলাইনে থাকে এবং আপনি ডাটাবেসে একটি পুনরুদ্ধার অপারেশন করার পরিকল্পনা করেন, তাহলে লগের টেইল ব্যাকআপ করে শুরু করুন। একটি অনলাইন ডাটাবেসের জন্য ত্রুটি এড়াতে, ব্যাকআপ করার সময় আপনাকে BACKUP Transact-SQL স্টেটমেন্টের WITH NORECOVERY বিকল্পটি ব্যবহার করতে হবে। SQL Server ডাটাবেস।
অফলাইন ডাটাবেস পুনরুদ্ধার: যদি একটি ডাটাবেস অফলাইনে থাকে এবংtart এবং আপনাকে ডাটাবেসটি পুনরুদ্ধার করতে হবে, প্রথমে লগের লেজের ব্যাকআপ নিন। যেহেতু এই সময়ে কোনও লেনদেন হতে পারে না, তাই WITH NORECOVERY বিকল্পটি ব্যবহার করা ঐচ্ছিক। এই পরিস্থিতিতে NORECOVERY কার্যকরভাবে একটি কপি-অনলি লেনদেন লগ ব্যাকআপের মতোই।
ক্ষতিগ্রস্ত ডাটাবেস ব্যাকআপ: যদি কোনও ডাটাবেস ক্ষতিগ্রস্ত হয়, তাহলে BACKUP স্টেটমেন্টের WITH CONTINUE_AFTER_ERROR বিকল্পটি ব্যবহার করে একটি টেল-লগ ব্যাকআপ নেওয়ার চেষ্টা করুন। একটি ক্ষতিগ্রস্ত ডাটাবেসে, লগের টেল ব্যাকআপ কেবল তখনই সফল হতে পারে যদি লগ ফাইলগুলি অক্ষত থাকে, ডাটাবেসটি এমন অবস্থায় থাকে যা টেল-লগ ব্যাকআপ সমর্থন করে এবং ডাটাবেসে কোনও বাল্ক-লগ করা পরিবর্তন না থাকে। যদি একটি টেল-লগ ব্যাকআপ তৈরি করা না যায়, তাহলে সর্বশেষ MS এর পরে করা যেকোনো লেনদেন SQL Server ব্যাকআপ ডাটাবেস হল lost.
২.৪.২ টেল-লগ ব্যাকআপের জন্য মূল বিকল্পগুলি
নোরকোভারি সহ: যদি আপনি পরবর্তীতে পুনরুদ্ধার করার পরিকল্পনা করেন এমন একটি অনলাইন ডাটাবেসের লগের একটি অংশ ব্যাক আপ করেন, তাহলে WITH NORECOVERY ব্যবহার করুন। NORECOVERY ডাটাবেসটিকে অফলাইনে নিয়ে যায়। আপনি ব্যাকআপও নিতে পারেন SQL Server অফলাইন ডাটাবেসের টেইল লগ। যদি আপনি ডাটাবেসটি অফলাইনে রাখতে চান, তাহলে WITH NORECOVERY ব্যবহার করুন। মনে রাখবেন যে লগটি কেটে ফেলা হবে যদি না আপনি COPY_ONLY অথবা NO_TRUNCATE বিকল্পটি নির্দিষ্ট করেন।
CONTINUE_AFTER_ERROR সহ: ক্ষতিগ্রস্ত ডাটাবেসের টেইল ব্যাক আপ করলেই কেবল CONTINUE_AFTER_ERROR ব্যবহার করুন। ক্ষতিগ্রস্ত ডাটাবেসে লগের টেইল ব্যাক আপ করলে, লগ ব্যাকআপে সাধারণত ক্যাপচার করা কিছু মেটাডেটা অনুপলব্ধ হতে পারে।
২.৫ শুধুমাত্র কপি-ব্যাকআপ
শুধুমাত্র কপি-ব্যাকআপগুলি স্বাভাবিক ব্যাকআপ ক্রমকে প্রভাবিত না করেই একটি স্বাধীন ব্যাকআপ তৈরি করে। তারা ডিফারেনশিয়াল ব্যাকআপ চেইন বা লেনদেন লগের ধারাবাহিকতা ব্যাহত করে না।
শুধুমাত্র-কপি ব্যাকআপ ব্যবহার করুন:
- পরীক্ষা বা উন্নয়ন ডাটাবেস কপি তৈরি করা
- নির্ধারিত ব্যাকআপগুলিকে প্রভাবিত না করেই অ্যাড-হক ব্যাকআপ
- বড় পরিবর্তন বা পরীক্ষার আগে ব্যাকআপ নিন
২.৬ ফাইল এবং ফাইলগ্রুপ ব্যাকআপ
ফাইল এবং ফাইলগ্রুপ ব্যাকআপ tarসম্পূর্ণ ডাটাবেসের পরিবর্তে নির্দিষ্ট ডাটাবেস ফাইল বা ফাইলগ্রুপ পান। এই পদ্ধতিটি খুব বড় ডাটাবেসের জন্য ভালো কাজ করে যেখানে সবকিছুর ব্যাকআপ নিতে অনেক বেশি সময় লাগে।
উপকারিতা অন্তর্ভুক্ত:
- বৃহৎ ডাটাবেসের জন্য দ্রুত ব্যাকআপ অপারেশন
- একাধিক ফাইলগ্রুপের সমান্তরাল ব্যাকআপ
- দানাদার পুনরুদ্ধারের বিকল্পগুলি
- শুধুমাত্র পঠনযোগ্য ফাইলগ্রুপের জন্য অপ্টিমাইজ করা ব্যাকআপ সময়সূচী
২.৭ আংশিক ব্যাকআপ
আংশিক ব্যাকআপের মধ্যে প্রাথমিক ফাইলগ্রুপের সমস্ত ডেটা এবং যেকোনো পঠন-লেখার ফাইলগ্রুপ অন্তর্ভুক্ত থাকে, শুধুমাত্র পঠনযোগ্য ফাইলগ্রুপ বাদে। এটি শুধুমাত্র পঠনযোগ্য ফাইলগ্রুপে সংরক্ষিত স্ট্যাটিক ঐতিহাসিক ডেটা সহ ডাটাবেসের ব্যাকআপের আকার এবং সময় হ্রাস করে।
3. SQL Server পুনরুদ্ধার মডেল
SQL Server পুনরুদ্ধার মডেলগুলি নির্ধারণ করে যে কোন ধরণের ব্যাকআপ উপলব্ধ এবং কীভাবে লেনদেন লগ পরিচালনা করা হয়।
৩.১ সরল পুনরুদ্ধার মডেল
৩.১.১ বৈশিষ্ট্য এবং ব্যবহারের ধরণ
সরল পুনরুদ্ধার প্রতিটি চেকপয়েন্টের পরে স্বয়ংক্রিয়ভাবে লেনদেন লগ কেটে দেয়, লগ ব্যাকআপের প্রয়োজন ছাড়াই স্থান পুনরুদ্ধার করে।
জন্য শ্রেষ্ঠ:
- উন্নয়ন এবং পরীক্ষার ডাটাবেস
- ডাটাবেস যেখানে ব্যাকআপের মধ্যে ডেটা ক্ষতি গ্রহণযোগ্য
- ETL প্রক্রিয়া সহ ডেটা গুদাম যা পুনরায় চালানো যেতে পারে
- কেবল পঠনযোগ্য বা রিপোর্টিং ডাটাবেস
৩.১.২ ব্যাকআপ বিকল্প উপলব্ধ
সহজ পুনরুদ্ধার সমর্থন করে:
- সম্পূর্ণ ব্যাকআপ
- ডিফারেনশিয়াল ব্যাকআপ
- ফাইল এবং ফাইলগ্রুপ ব্যাকআপ
- শুধুমাত্র-অনুলিপি ব্যাকআপ
লেনদেন লগ ব্যাকআপগুলি হল পাওয়া যায় না সহজ পুনরুদ্ধার মডেলে।
৩.২ সম্পূর্ণ পুনরুদ্ধার মডেল
3.2.1 বৈশিষ্ট্য এবং সুবিধা
সম্পূর্ণ পুনরুদ্ধার সমস্ত লেনদেন লগ করে এবং লগ রেকর্ড সংরক্ষণ করে যতক্ষণ না আপনি সেগুলি ব্যাকআপ করেন। এটি লেনদেন লগ ব্যাকআপের মধ্যে যেকোনো সময় সম্পূর্ণ ডেটা পুনরুদ্ধার সক্ষম করে।
কী উপকারিতা:
- ন্যূনতম ডেটা ক্ষতির সম্ভাবনা
- পয়েন্ট-ইন-টাইম পুনরুদ্ধার ক্ষমতা
- লগ শিপিং এবং ডাটাবেস মিররিং সমর্থন করে
- সর্বাধিক পুনরুদ্ধারের নমনীয়তা
৩.২.২ লেনদেন লগ ব্যবস্থাপনা
সম্পূর্ণ পুনরুদ্ধারের অধীনে, আপনাকে নিয়মিত লেনদেন লগ ব্যাকআপ করতে হবে:
- লেনদেন লগ থেকে ডিস্কের স্থান পূরণ করা রোধ করুন
- একটি অবিচ্ছিন্ন ব্যাকআপ চেইন বজায় রাখুন
- পয়েন্ট-ইন-টাইম পুনরুদ্ধার সক্ষম করুন
- লগ ফাইলের বৃদ্ধি নিয়ন্ত্রণ করুন
সাধারণ ব্যাকআপ সময়সূচী: সাপ্তাহিক পূর্ণ ব্যাকআপ, প্রতিদিন ডিফারেনশিয়াল ব্যাকআপ, প্রতি ১৫-৩০ মিনিট অন্তর লগ ব্যাকআপ।
৩.৩ বাল্ক-লগড রিকভারি মডেল
৩.৩.১ কখন বাল্ক-লগড ব্যবহার করবেন
বাল্ক-লগ করা পুনরুদ্ধার নিয়মিত লেনদেনের জন্য সম্পূর্ণ লগিং বজায় রেখে BULK INSERT, SELECT INTO এবং ইনডেক্স পুনর্নির্মাণের মতো বাল্ক ক্রিয়াকলাপগুলিকে ন্যূনতমভাবে লগ করে।
বাল্ক-লগড রিকভারি ব্যবহার করুন যখন:
- বৃহৎ পরিমাণে আমদানি কার্যক্রম সম্পাদন করা
- বড় টেবিলে সূচক পুনর্নির্মাণ
- ন্যূনতম লগিং থেকে উপকৃত হয় এমন ক্রিয়াকলাপ সম্পাদন করা
- নির্দিষ্ট ক্রিয়াকলাপের সময় লেনদেন লগের আকার হ্রাস করার প্রয়োজন
3.3.2 সীমাবদ্ধতা এবং বিবেচনা
গুরুত্বপূর্ণ সীমাবদ্ধতা:
- বাল্ক অপারেশনের সময় পয়েন্ট-ইন-টাইম পুনরুদ্ধার উপলব্ধ নয়
- যখন বাল্ক অপারেশন হয় তখন লগ ব্যাকআপের পরিমাণ বেশি হয়
- প্রয়োজন অনুসারে পূর্ণ এবং বাল্ক-লগডের মধ্যে স্যুইচ করতে হবে
৩.৪ সঠিক পুনরুদ্ধার মডেল নির্বাচন করা
ব্যবসার প্রয়োজনীয়তার উপর ভিত্তি করে আপনার পুনরুদ্ধার মডেল নির্বাচন করুন:
| পুনরুদ্ধার মডেল | ডেটা হারানোর ঝুঁকি | পয়েন্ট-ইন-টাইম রিকভারি | সেরা জন্য |
|---|---|---|---|
| সহজ | শেষ ব্যাকআপের পর থেকে পরিবর্তনগুলি | না | ডেভেলপার/পরীক্ষা, গ্রহণযোগ্য ডেটা ক্ষতি |
| পূর্ণ | সর্বনিম্ন (সাধারণত মিনিট) | হাঁ | উৎপাদন ডাটাবেস, গুরুত্বপূর্ণ তথ্য |
| বাল্ক-লগড | শেষ লগ ব্যাকআপের পর থেকে পরিবর্তনগুলি | বাল্ক অপারেশনের সময় সীমিত | গতিrarবাল্ক অপারেশনের সময় ব্যবহার করুন |
4. ব্যাকআপ SQL Server SSMS ব্যবহার করে ডাটাবেস
৪.১ পূর্বশর্ত এবং প্রস্তুতি
আপনার ব্যাক আপ নেওয়ার আগে SQL Server ডাটাবেস, নিশ্চিত করুন:
- আপনার কাছে উপযুক্ত অনুমতি আছে (db_owner অথবা BACKUP DATABASE অনুমতি)
- ব্যাকআপ ফাইলের জন্য পর্যাপ্ত ডিস্ক স্থান
- SQL Server ম্যানেজমেন্ট স্টুডিও (SSMS) ইনস্টল করা হয়েছে
- নেটওয়ার্ক অবস্থানগুলিতে ব্যাকআপ নিলে নেটওয়ার্ক পাথগুলি অ্যাক্সেসযোগ্য
৪.২ ধাপে ধাপে: SSMS সহ সম্পূর্ণ ব্যাকআপ
আপনার সম্পূর্ণ ব্যাকআপ তৈরি করতে এই পদক্ষেপগুলি অনুসরণ করুন SQL Server SSMS ব্যবহার করে ডাটাবেস।
4.2.1 খোলা SQL Server ম্যানেজমেন্ট স্টুডিও
- শুরু করা SQL Server ম্যানেজমেন্ট স্টুডিও
- আপনার সার্ভারের নাম লিখুন সার্ভার নাম ক্ষেত্র
- আপনার প্রমাণীকরণ পদ্ধতি নির্বাচন করুন
- ক্লিক সংযোগ করা
৪.২.২ ডাটাবেস এবং ব্যাকআপ বিকল্প নির্বাচন করা
- In অবজেক্ট এক্সপ্লোরার, প্রসারিত করুন ডেটাবেস নোড
- আপনি যে ডাটাবেসটির ব্যাকআপ নিতে চান তার উপর ডান-ক্লিক করুন।
- নির্বাচন করা কাজ -> ব্যাক আপ
- মধ্যে ব্যাক আপ ডাটাবেস উইন্ডো, ডাটাবেসের নাম যাচাই করুন
- নির্বাচন করা পূর্ণ যেমন ব্যাকআপ প্রকার
৪.২.৩ ব্যাকআপ গন্তব্য কনফিগার করা
- অধীনে গন্তব্য, ক্লিক অপসারণ ডিফল্ট পথ সাফ করতে (প্রয়োজনে)
- ক্লিক বিজ্ঞাপন একটি নতুন ব্যাকআপ অবস্থান নির্দিষ্ট করতে
- ফাইলের পাথ এবং নাম লিখুন .bak প্রসার
- ক্লিক OK গন্তব্য নিশ্চিত করতে
4.2.4 Advanced Backup সেটিংস
- ক্লিক মিডিয়া বিকল্প বাম প্যানেলে
- ব্যাকআপ বিকল্পগুলি বেছে নিন:
- সমস্ত বিদ্যমান ব্যাকআপ সেট ওভাররাইট করুন - বিদ্যমান ব্যাকআপগুলি প্রতিস্থাপন করে
- বিদ্যমান ব্যাকআপ সেটে যোগ করুন - বিদ্যমান ব্যাকআপ ফাইলে যোগ করে
- ক্লিক ব্যাকআপ অপশন বাম প্যানেলে
- ঐচ্ছিক সেটিংস কনফিগার করুন:
- ব্যাকআপ কম্প্রেস করুন - ব্যাকআপ ফাইলের আকার হ্রাস করে
- ব্যাকআপ এনক্রিপ্ট করুন - সংবেদনশীল তথ্য রক্ষা করে
- ব্যাকআপ সম্পন্ন হলে যাচাই করুন - ব্যাকআপের অখণ্ডতা পরীক্ষা করে
৪.২.৫ ব্যাকআপ কার্যকর করা
- সমস্ত সেটিংস পর্যালোচনা করুন ব্যাক আপ ডাটাবেস জানলা
- ক্লিক OK থেকে starব্যাকআপ প্রক্রিয়াটি
- ব্যাকআপ সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন।
- ব্যাকআপ শেষ হলে একটি সফল বার্তা প্রদর্শিত হবে
- ক্লিক OK নিশ্চিতকরণ ডায়ালগ বন্ধ করতে
৪.৩ SSMS ব্যবহার করে ডিফারেনশিয়াল ব্যাকআপ তৈরি করা
একটি ডিফারেনশিয়াল ব্যাকআপ তৈরি করতে, সম্পূর্ণ ব্যাকআপের মতো একই ধাপগুলি অনুসরণ করুন, তবে নির্বাচন করুন পার্থক্যমূলক ধাপ ৪.২.২-এ ব্যাকআপ টাইপ হিসেবে। মনে রাখবেন যে ডিফারেনশিয়াল ব্যাকআপের জন্য বেসলাইন হিসেবে পূর্বে পূর্ণ ব্যাকআপ প্রয়োজন।
৪.৪ SSMS ব্যবহার করে লেনদেন লগ ব্যাকআপ তৈরি করা
লেনদেন লগ ব্যাকআপ শুধুমাত্র পূর্ণ বা বাল্ক-লগড পুনরুদ্ধার মডেল ব্যবহার করে ডাটাবেসের জন্য উপলব্ধ।
- ডাটাবেসে ডান-ক্লিক করুন অবজেক্ট এক্সপ্লোরার
- নির্বাচন করা কাজ -> ব্যাক আপ
- বেছে নিন লেনদেন লগ ব্যাকআপের ধরণ হিসেবে
- প্রয়োজন অনুসারে গন্তব্য এবং বিকল্পগুলি কনফিগার করুন
- ক্লিক OK লগ ব্যাকআপ তৈরি করতে
৪.৫ SSMS ব্যবহার করে কেবল-অনুলিপি ব্যাকআপ তৈরি করা
শুধুমাত্র-কপি ব্যাকআপগুলি আপনার নিয়মিত ব্যাকআপ ক্রমকে ব্যাহত করে না।
- সম্পূর্ণ ব্যাকআপ তৈরি করার জন্য ধাপগুলি অনুসরণ করুন
- মধ্যে ব্যাকআপ অপশন পৃষ্ঠা
- চেক শুধুমাত্র-কপি ব্যাকআপ পছন্দ
- ব্যাকআপ প্রক্রিয়াটি স্বাভাবিকভাবে সম্পন্ন করুন
5. ব্যাকআপ SQL Server টি-এসকিউএল ব্যবহার করে ডাটাবেস
৫.১ বেসিক ব্যাকআপ ডেটাবেস সিনট্যাক্স
T-SQL BACKUP DATABASE কমান্ড প্রোগ্রাম্যাটিক নিয়ন্ত্রণ প্রদান করে SQL Server ব্যাকআপ।
BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;
৫.২ সম্পূর্ণ ব্যাকআপ টি-এসকিউএল কমান্ড
৫.২.১ সহজ পূর্ণ ব্যাকআপ স্ক্রিপ্ট
ন্যূনতম বিকল্প সহ একটি মৌলিক পূর্ণ ব্যাকআপ তৈরি করুন:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO
৫.২.২ বিকল্প সহ সম্পূর্ণ ব্যাকআপ
বর্ণনামূলক তথ্য এবং বিন্যাস বিকল্প যোগ করুন:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
INIT,
NAME = 'AdventureWorks-Full Database Backup',
DESCRIPTION = 'Full backup of AdventureWorks database',
STATS = 10
GO
বিকল্পগুলি ব্যাখ্যা করা হয়েছে:
- বিন্যাসে - নতুন ব্যাকআপ সেট তৈরি করে
- INIT - বিদ্যমান ব্যাকআপ ফাইলটি ওভাররাইট করে
- NAME এর - ব্যাকআপ সেটের নাম নির্ধারণ করে
- বর্ণনাঃ - বর্ণনামূলক টেক্সট যোগ করে
- স্ট্যাটাস - প্রতি ১০% অগ্রগতি দেখায়
৫.৩ ডিফারেনশিয়াল ব্যাকআপ টি-এসকিউএল কমান্ড
ডিফারেনশিয়াল ব্যাকআপগুলি ডিফারেনশিয়াল বিকল্পটি ব্যবহার করে:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
INIT,
NAME = 'AdventureWorks-Differential Backup',
STATS = 10
GO
৫.৪ লেনদেন লগ ব্যাকআপ টি-এসকিউএল কমান্ড
লেনদেন লগ ব্যাকআপের জন্য ব্যাকআপ লগ ব্যবহার করুন:
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
NAME = 'AdventureWorks-Transaction Log Backup',
STATS = 10
GO
৫.৫ উন্নত টি-এসকিউএল ব্যাকআপ বিকল্প
৫.৫.১ একাধিক ফাইলে ব্যাকআপ
দ্রুত কর্মক্ষমতার জন্য একাধিক ফাইল জুড়ে ব্যাকআপ বিতরণ করুন:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
DISK = 'D:\Backups\AdventureWorks_2.bak',
DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO
৫.৫.২ কম্প্রেশন সহ ব্যাকআপ
ব্যাকআপ ফাইলের আকার এবং নেটওয়ার্ক ব্যান্ডউইথ কমানো:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
INIT,
STATS = 10
GO
৫.৫.৩ এনক্রিপশন সহ ব্যাকআপ
এনক্রিপশনের মাধ্যমে সংবেদনশীল ডেটা সুরক্ষিত করুন:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
),
STATS = 10
GO
৫.৫.৪ পাসওয়ার্ড সুরক্ষা সহ ব্যাকআপ
পাসওয়ার্ড সুরক্ষা যোগ করুন (অবঞ্চিত, পরিবর্তে এনক্রিপশন ব্যবহার করুন):
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
INIT
GO
৫.৫.৫ মিররড ব্যাকআপ
বিভিন্ন স্থানে একযোগে কপি তৈরি করুন:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO
৫.৬ টি-এসকিউএল ব্যাকআপের উদাহরণ এবং স্ক্রিপ্ট
ত্রুটি পরিচালনা সহ সম্পূর্ণ ব্যাকআপ স্ক্রিপ্ট:
DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);
SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';
BEGIN TRY
BACKUP DATABASE @DatabaseName
TO DISK = @BackupPath
WITH COMPRESSION,
INIT,
NAME = @DatabaseName + '-Full Backup',
STATS = 10;
PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO
6. ব্যাকআপ SQL Server পাওয়ারশেল ব্যবহার করে ডাটাবেস
৬.১ পাওয়ারশেল ব্যাকআপ সিএমডিলেট
SQL Server পাওয়ারশেল মডিউল ব্যাকআপ অটোমেশনের জন্য cmdlets প্রদান করে:
- ব্যাকআপ-SqlDatabase - ডাটাবেস ব্যাকআপ তৈরি করে
- পুনরুদ্ধার-SqlDatabase - ডাটাবেস ব্যাকআপ পুনরুদ্ধার করে
- Get-SqlDatabase সম্পর্কে - ডাটাবেস তথ্য উদ্ধার করে
আমদানি করুন SQL Server মডিউল:
Import-Module SqlServer
৬.২ PowerShell দিয়ে ব্যাকআপ স্ক্রিপ্ট তৈরি করা
বেসিক পাওয়ারশেল ব্যাকআপ কমান্ড:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks.bak" `
-BackupAction Database `
-CompressionOption On
ডিফারেনশিয়াল ব্যাকআপের উদাহরণ:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
-BackupAction Database `
-Incremental
লেনদেন লগ ব্যাকআপ:
Backup-SqlDatabase -ServerInstance "localhost" `
-Database "AdventureWorks" `
-BackupFile "C:\Backups\AdventureWorks_Log.trn" `
-BackupAction Log
৬.৩ PowerShell ব্যবহার করে স্বয়ংক্রিয় ব্যাকআপ তৈরি করা
একাধিক ডাটাবেসের জন্য একটি স্বয়ংক্রিয় ব্যাকআপ স্ক্রিপ্ট তৈরি করুন:
# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
New-Item -ItemType Directory -Path $BackupPath
}
# Backup each database
foreach ($Database in $Databases) {
$BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
try {
Backup-SqlDatabase -ServerInstance $ServerInstance `
-Database $Database `
-BackupFile $BackupFile `
-BackupAction Database `
-CompressionOption On
Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
}
catch {
Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
}
}
7. ব্যাকআপ SQL Server কমান্ড লাইন ব্যবহার করে ডাটাবেস
SQL Server কমান্ড-লাইন ইউটিলিটি প্রদান করে যা আপনাকে ব্যাকআপ করার অনুমতি দেয় SQL Server SSMS বা গ্রাফিক্যাল ইন্টারফেস ব্যবহার না করেই ডাটাবেস তৈরি করা। অটোমেশন, স্ক্রিপ্টিং এবং রিমোট অ্যাডমিনিস্ট্রেশনের জন্য এই টুলগুলি অপরিহার্য।
৭.১ SQLCMD ব্যাকআপ ডাটাবেস ব্যবহার করুন
SQLCMD হল আধুনিক কমান্ড-লাইন ইউটিলিটি যার জন্য SQL Server যা OSQL কে প্রতিস্থাপন করেছে। এটি উন্নত কার্যকারিতা প্রদান করে এবং কমান্ড প্রম্পট থেকে T-SQL কমান্ড কার্যকর করার জন্য এটি প্রস্তাবিত টুল।
৭.১.১ বেসিক SQLCMD সিনট্যাক্স
sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -এস: নির্দিষ্ট করে SQL Server উদাহরণের নাম
- -d: ডাটাবেসের নাম উল্লেখ করে
- -প্রশ্ন: একটি কোয়েরি কার্যকর করে এবং প্রস্থান করে
- -ই: উইন্ডোজ প্রমাণীকরণ ব্যবহার করে
- -ইউ: নির্দিষ্ট করে SQL Server লগইন ব্যবহারকারীর নাম
- -পি: এর জন্য পাসওয়ার্ড নির্দিষ্ট করে SQL Server লগইন
৭.১.২ SQLCMD দিয়ে ব্যাকআপ তৈরি করা
ব্যাক আপ SQL Server SQLCMD ব্যবহার করে, এই পদক্ষেপগুলি অনুসরণ করুন:
- খোলা কমান্ড প্রম্পট or শক্তির উৎস
- নেভিগেট করুন SQL Server টুলস ডিরেক্টরি (সাধারণত ইনস্টলেশনের সময় PATH-তে যোগ করা হয়)
- উপযুক্ত পরামিতি সহ SQLCMD ব্যাকআপ ডাটাবেস কমান্ডটি কার্যকর করুন।
- ব্যাকআপ ফাইলটি সফলভাবে তৈরি হয়েছে কিনা তা যাচাই করুন।
উইন্ডোজ প্রমাণীকরণ ব্যবহার করে সম্পূর্ণ ব্যাকআপ কমান্ডের উদাহরণ:
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
উদাহরণ ব্যবহার করে SQL Server প্রমাণীকরণ:
sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"
SQLCMD দিয়ে ডিফারেনশিয়াল ব্যাকআপ তৈরি করা
sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"
SQLCMD দিয়ে লেনদেন লগ ব্যাকআপ তৈরি করা হচ্ছে
sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"
৭.১.৩ ব্যাকআপ প্রকাশক ডাটাবেস ইন SQL Server প্রতিলিপি
প্রকাশক ডাটাবেসের ব্যাকআপ নেওয়ার সময় SQL Server প্রতিলিপি তৈরির ক্ষেত্রে, প্রতিলিপি মেটাডেটা সংরক্ষণ করতে এবং লেনদেনের ধারাবাহিকতা নিশ্চিত করতে WITH প্রতিলিপি বিকল্পটি ব্যবহার করুন।
-- Backup publisher database with replication support
BACKUP DATABASE PublisherDB
TO DISK = 'C:\Backup\PublisherDB_Full.bak'
WITH REPLICATION,
COMPRESSION,
CHECKSUM,
INIT,
STATS = 10;
GO
আরও বিশদ জন্য SQL Server প্রতিলিপি, আমাদের দেখুন ব্যাপক গাইড.
৭.২ OSQL ব্যাকআপ ডাটাবেস ব্যবহার করুন
OSQL হল একটি লিগ্যাসি কমান্ড-লাইন ইউটিলিটি যার জন্য SQL Server। যদিও মাইক্রোসফট SQLCMD ব্যবহারের পরামর্শ দেয়, তবুও OSQL পুরানো স্ক্রিপ্ট এবং সিস্টেমের সাথে ব্যাকওয়ার্ড সামঞ্জস্যের জন্য উপলব্ধ থাকে।
৭.২.১ বেসিক OSQL সিনট্যাক্স
OSQL সিনট্যাক্স SQLCMD এর অনুরূপ:
osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
- -এস: SQL Server উদাহরণের নাম
- -d: ডাটাবেস নাম
- -প্রশ্ন: কোয়েরি কার্যকর করে এবং প্রস্থান করে
- -ই: বিশ্বস্ত সংযোগ ব্যবহার করে (উইন্ডোজ প্রমাণীকরণ)
- -ইউ: লগইন ব্যবহারকারীর নাম
- -পি: প্রবেশের গুপ্তসংকেত
৭.২.২ OSQL দিয়ে ব্যাকআপ তৈরি করা
OSQL ব্যাকআপ ডাটাবেস অপারেশন সম্পাদন করতে:
- খোলা কমান্ড প্রম্পট
- আপনার মধ্যে OSQL উপলব্ধ কিনা তা যাচাই করুন SQL Server স্থাপন
- OSQL ব্যাকআপ কমান্ডটি কার্যকর করুন
সম্পূর্ণ ব্যাকআপের উদাহরণ:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"
ডিফারেনশিয়াল ব্যাকআপের উদাহরণ:
osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"
৩. তৃতীয় পক্ষ SQL Server ব্যাকআপ টুলস
যদিও SQL Server নেটিভ ব্যাকআপ ক্ষমতা অন্তর্ভুক্ত করে, তৃতীয় পক্ষের সরঞ্জামগুলি জটিল প্রয়োজনীয়তা সহ সংস্থাগুলির জন্য উন্নত বৈশিষ্ট্য, অটোমেশন এবং এন্টারপ্রাইজ-গ্রেড ব্যবস্থাপনা প্রদান করে। এই সমাধানগুলি উন্নত কম্প্রেশন, কেন্দ্রীভূত ব্যবস্থাপনা এবং ব্যাক আপের জন্য সুবিন্যস্ত কর্মপ্রবাহ প্রদান করে। SQL Server একাধিক পরিবেশ জুড়ে ডাটাবেস।
৭.১ ভিম ব্যাকআপ এর জন্য SQL Server
ভিম ব্যাপক ডেটা সুরক্ষা সমাধান প্রদান করে যা বিশেষভাবে ব্যাকআপ করার জন্য ডিজাইন করা হয়েছে SQL Server উৎপাদন ব্যবস্থার উপর ন্যূনতম প্রভাব সহ ডাটাবেস।
মুখ্য সুবিধা:
- অ্যাপ্লিকেশন-সচেতন প্রক্রিয়াকরণের জন্য SQL Server ব্যাকআপ ধারাবাহিকতা
- লেনদেন লগ ব্যাকআপ এবং ব্যবস্থাপনা
- গ্রানুলার রিস্টোর অপশন সহ পয়েন্ট-ইন-টাইম রিকভারি
- একীভূত ডেটা সুরক্ষার জন্য ভিম ব্যাকআপ এবং প্রতিলিপির সাথে একীকরণ
- স্বয়ংক্রিয় ব্যাকআপ যাচাইকরণ এবং বৈধতা
- সর্বদা উপলব্ধ গ্রুপগুলির জন্য সহায়তা
- ভিএম-স্তর এবং অ্যাপ্লিকেশন-স্তর SQL Server ব্যাকআপ বিকল্প
৭.২ বারাকুডা ব্যাকআপের জন্য SQL Server
বারাকুডা MS-এর জন্য সরলীকৃত ব্যবস্থাপনা সহ ক্লাউড-ইন্টিগ্রেটেড ব্যাকআপ সমাধান প্রদান করে SQL Server ব্যাকআপ ডাটাবেস অপারেশন।
মুখ্য সুবিধা:
- অটোমেটেড SQL Server ব্যাকআপ শিডিউলিং
- বারাকুডা ক্লাউড স্টোরেজে অন্তর্নির্মিত ক্লাউড প্রতিলিপি
- বিশ্বব্যাপী ডিডুপ্লিকেশন এবং কম্প্রেশন
- তাৎক্ষণিক স্থানীয় পুনরুদ্ধারের ক্ষমতা
- ওয়েব-ভিত্তিক ব্যবস্থাপনা কনসোল
- পূর্ণ, ডিফারেনশিয়াল এবং লেনদেন লগ ব্যাকআপের জন্য সমর্থন
- অপরিবর্তনীয় ব্যাকআপ সহ র্যানসমওয়্যার সুরক্ষা
৭.৩ ভেরিটাস নেটব্যাকআপ এর জন্য SQL Server
ভেরিটাস নেটব্যাকআপ একটি এন্টারপ্রাইজ-গ্রেড ব্যাকআপ প্ল্যাটফর্ম যা ব্যাপক সুরক্ষা প্রদান করে SQL Server জটিল আইটি পরিবেশ জুড়ে ডাটাবেস।
মুখ্য সুবিধা:
- হাজার হাজারের জন্য এন্টারপ্রাইজ-স্কেল ব্যাকআপ ব্যবস্থাপনা SQL Server দৃষ্টান্ত
- উন্নত ডিডুপ্লিকেশন এবং কম্প্রেশন অ্যালগরিদম
- নমনীয় ব্যাকআপ নীতি এবং সময়সূচী
- সবার জন্য সমর্থন SQL Server পুনরুদ্ধার মডেল
- টেপ লিবের সাথে ইন্টিগ্রেশনraries এবং ক্লাউড স্টোরেজ
- ডাটাবেস, টেবিল এবং বস্তুর দানাদার পুনরুদ্ধার
- মাল্টি-প্ল্যাটফর্ম সাপোর্ট (উইন্ডোজ, লিনাক্স) SQL Server)
- স্বয়ংক্রিয় ব্যাকআপ জীবনচক্র ব্যবস্থাপনা
৭.৪ Commvault এর জন্য সম্পূর্ণ ব্যাকআপ এবং পুনরুদ্ধার SQL Server
কমভল্ট ব্যাপক ব্যাকআপ সহ বুদ্ধিমান ডেটা ব্যবস্থাপনা প্রদান করে SQL Server ক্ষমতা এবং উন্নত অটোমেশন বৈশিষ্ট্য।
মুখ্য সুবিধা:
- এআই-চালিত ব্যাকআপ অপ্টিমাইজেশন এবং অসঙ্গতি সনাক্তকরণ
- ব্যাকআপ, পুনরুদ্ধার এবং সংরক্ষণাগারের জন্য একীভূত প্ল্যাটফর্ম
- অগ্রসর SQL Server ব্যাকআপ কম্প্রেশন (৯০% পর্যন্ত হ্রাস)
- স্বয়ংক্রিয় দুর্যোগ পুনরুদ্ধারের অর্কেস্ট্রেশন
- প্রায়-শূন্য RPO সুরক্ষার জন্য লাইভ সিঙ্ক
- জন্য সমর্থন SQL Server প্রাঙ্গণে, ক্লাউড এবং হাইব্রিড স্থাপনা
- স্ন্যাপশট-ভিত্তিক ব্যাকআপের জন্য IntelliSnap
- ব্যাপক সম্মতি এবং ই-আবিষ্কারের ক্ষমতা
৭.৫ কোহেসিটি ডেটাপ্রোটেক্ট ফর SQL Server
কোহেসিটি আধুনিক প্রযুক্তির জন্য হাইপারকনভার্জড অবকাঠামো সহ পরবর্তী প্রজন্মের ডেটা ব্যবস্থাপনা প্রদান করে SQL Server ব্যাকআপ কার্যক্রম।
মুখ্য সুবিধা:
- সরলীকৃত ব্যবস্থাপনার জন্য ওয়েব-স্কেল আর্কিটেকচার
- তাৎক্ষণিক ভর পুনরুদ্ধার ক্ষমতা SQL Server ডাটাবেস
- অ্যাপ্লিকেশন-সামঞ্জস্যপূর্ণ স্ন্যাপশট
- সমস্ত ব্যাকআপ জুড়ে বিশ্বব্যাপী ডিডুপ্লিকেশন
- নেটিভ ক্লাউড ইন্টিগ্রেশন (AWS, Azure, Google ক্লাউড)
- অন্তর্নির্মিত বিশ্লেষণ এবং পর্যবেক্ষণ ড্যাশবোর্ড
- ডাটাবেস ক্ষমতা ক্লোন এবং পরীক্ষা করুন
- অপরিবর্তনীয় স্ন্যাপশট সহ র্যানসমওয়্যার সুরক্ষা
৭.৬ রেড গেট এসকিউএল ব্যাকআপ প্রো
রেড গেট এসকিউএল ব্যাকআপ প্রো একটি বিশেষায়িত টুল যা একচেটিয়াভাবে অপ্টিমাইজ করার উপর দৃষ্টি নিবদ্ধ করে SQL Server উন্নত কম্প্রেশন এবং কর্মক্ষমতা সহ ব্যাকআপ এবং পুনরুদ্ধার অপারেশন।
মুখ্য সুবিধা:
- শিল্প-নেতৃস্থানীয় কম্প্রেশন অনুপাত (95% পর্যন্ত)
- ব্যাক আপের জন্য নেটওয়ার্ক স্থিতিস্থাপকতা SQL Server অবিশ্বস্ত সংযোগের মধ্য দিয়ে
- ২৫৬-বিট AES সহ ব্যাকআপ এনক্রিপশন
- ব্যাকআপ কপি যাচাইকরণ এবং অখণ্ডতা পরীক্ষা
- বিস্তারিত ব্যাকআপ ইতিহাস এবং প্রতিবেদন
- সঙ্গে ইন্টিগ্রেশন SQL Server ম্যানেজমেন্ট স্টুডিও
- নেটওয়ার্ক অবস্থান এবং ক্লাউড স্টোরেজের ব্যাকআপের জন্য সমর্থন
- দ্রুত ক্রিয়াকলাপের জন্য সমান্তরাল ব্যাকআপ এবং পুনরুদ্ধার
৮. কিভাবে পুনরুদ্ধার করবেন SQL Server ডেটাবেস
৮.১ পুনরুদ্ধার প্রক্রিয়া বোঝা
পুনরুদ্ধার a SQL Server ডাটাবেস ব্যাকআপ ফাইল থেকে ডাটাবেস পুনরায় তৈরি করে। পুনরুদ্ধার প্রক্রিয়া ব্যাকআপ ফাইলটি পড়ে এবং ডাটাবেসটিকে তার ব্যাকআপ-আপ অবস্থায় পুনর্গঠন করে।
গুরুত্বপূর্ণ বিবেচনা:
- পুনরুদ্ধার করলে বিদ্যমান ডাটাবেস ওভাররাইট হয়ে যায়
- পুনরুদ্ধারের সময় ব্যবহারকারীরা সংযোগ বিচ্ছিন্ন হয়ে যায়
- পুনরুদ্ধার অবশ্যই ব্যাকআপ ক্রম অনুসরণ করবে (পূর্ণ, তারপর ডিফারেনশিয়াল, তারপর লগ)
- পুনরুদ্ধারের সময় ডাটাবেস অনুপলব্ধ
৮.২ SSMS ব্যবহার করে সম্পূর্ণ ব্যাকআপ পুনরুদ্ধার করা
সম্পূর্ণ ডাটাবেস ব্যাকআপ পুনরুদ্ধার করতে এই পদক্ষেপগুলি অনুসরণ করুন।
৮.২.১ ধাপে ধাপে পুনরুদ্ধার প্রক্রিয়া
- খোলা SQL Server ম্যানেজমেন্ট স্টুডিও এবং আপনার সার্ভারের সাথে সংযোগ করুন
- In অবজেক্ট এক্সপ্লোরার, সঠিক পছন্দ ডেটাবেস
- নির্বাচন করা ডাটাবেস পুনরুদ্ধার করুন
- মধ্যে উৎস অধ্যায়, নির্বাচন করুন যন্ত্র
- ক্লিক করুন ... ব্যাকআপ ফাইল ব্রাউজ করার বোতাম
- ক্লিক বিজ্ঞাপন এবং আপনার .bak ফাইলে নেভিগেট করুন
- ব্যাকআপ ফাইলটি নির্বাচন করুন এবং ক্লিক করুন OK
- মধ্যে গন্তব্য বিভাগ, ডাটাবেসের নাম লিখুন
- পুনরুদ্ধারের জন্য ব্যাকআপ সেটগুলি পর্যালোচনা করুন
- ক্লিক OK থেকে starপুনরুদ্ধার
৮.২.২ বিকল্প এবং সেটিংস পুনরুদ্ধার করুন
ক্লিক অপশন সমূহ বাম প্যানেলে কনফিগার করতে:
- বিদ্যমান ডাটাবেসটি ওভাররাইট করুন (প্রতিস্থাপনের মাধ্যমে) - বিদ্যমান ডাটাবেসের উপর পুনরুদ্ধারের অনুমতি দেয়
- প্রতিলিপি অবস্থা সংরক্ষণ করুন (KEEP_REPLICATION সহ) - রাখা SQL Server প্রতিলিপি অবস্থা
- পুনরুদ্ধার করা ডাটাবেসে অ্যাক্সেস সীমাবদ্ধ করুন (RESTRICTED_USER এর সাথে) – সীমা পিost- অ্যাক্সেস পুনরুদ্ধার করুন
- পুনরুদ্ধারের অবস্থা - পুনরুদ্ধারের সাথে পুনরুদ্ধার বা নোরকোভারির মধ্যে বেছে নিন
৮.৩ ডিফারেনশিয়াল ব্যাকআপ পুনরুদ্ধার করা
ডিফারেনশিয়াল পুনরুদ্ধারের জন্য পূর্ণ এবং ডিফারেনশিয়াল উভয় ব্যাকআপের প্রয়োজন হয়:
- প্রথমে, সম্পূর্ণ ব্যাকআপটি পুনরুদ্ধার করুন নরেকোভারি পছন্দ
- তারপর ডিফারেনশিয়াল ব্যাকআপটি পুনরুদ্ধার করুন পুনরুদ্ধার পছন্দ
টি-এসকিউএল উদাহরণ:
-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO
৮.৪ লেনদেন লগ ব্যাকআপের মাধ্যমে পুনরুদ্ধার করা
পয়েন্ট-ইন-টাইম পুনরুদ্ধারের জন্য, ক্রমানুসারে পুনরুদ্ধার করুন:
- NORECOVERY দিয়ে সম্পূর্ণ ব্যাকআপ পুনরুদ্ধার করুন
- NORECOVERY দিয়ে ডিফারেনশিয়াল ব্যাকআপ পুনরুদ্ধার করুন (যদি উপলব্ধ থাকে)
- NORECOVERY এর মাধ্যমে লেনদেন লগ ব্যাকআপগুলি ক্রমানুসারে পুনরুদ্ধার করুন
- RECOVERY ব্যবহার করে চূড়ান্ত লগ ব্যাকআপ পুনরুদ্ধার করুন
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO
৮.৫ পয়েন্ট-ইন-টাইম পুনরুদ্ধার
STOPAT বিকল্পটি ব্যবহার করে একটি নির্দিষ্ট সময়ে ডাটাবেস পুনরুদ্ধার করুন:
-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO
৯.৬ টেবিল পুনরুদ্ধার
SQL Server ব্যাকআপ ফাইল থেকে সরাসরি টেবিল-স্তরের পুনরুদ্ধার সমর্থন করে না। তবে, এখনও কিছু সমাধান আছে।
৯.৬.১ পদ্ধতি ১: ডাটাবেস স্ন্যাপশট (প্রতিরোধের জন্য সেরা)
সমস্যা দেখা দেওয়ার আগে তৈরি করা হলে ডাটাবেস স্ন্যাপশটগুলি টেবিল ডেটা পুনরুদ্ধারের দ্রুততম উপায় প্রদান করে। একটি স্ন্যাপশট হল একটি নির্দিষ্ট সময়ে একটি ডাটাবেসের কেবল-পঠনযোগ্য, স্ট্যাটিক ভিউ।
একটি ডাটাবেস স্ন্যাপশট তৈরি করা:
-- Create snapshot before making changes
CREATE DATABASE ProductionDB_Snapshot_20250107
ON
( NAME = ProductionDB_Data,
FILENAME = 'C:\Snapshots\ProductionDB_Snapshot.ss' )
AS SNAPSHOT OF ProductionDB;
GO
স্ন্যাপশট থেকে টেবিল ডেটা পুনরুদ্ধার করা হচ্ছে:
USE ProductionDB;
GO
-- Replace entire table content
BEGIN TRANSACTION;
-- Disable constraints temporarily
ALTER TABLE dbo.Orders NOCHECK CONSTRAINT ALL;
-- Clear current data
TRUNCATE TABLE dbo.Orders;
-- Restore from snapshot
INSERT INTO dbo.Orders
SELECT * FROM ProductionDB_Snapshot_20250107.dbo.Orders;
-- Re-enable constraints
ALTER TABLE dbo.Orders CHECK CONSTRAINT ALL;
COMMIT TRANSACTION;
GO
সংস্করণের প্রয়োজনীয়তা: ডাটাবেস স্ন্যাপশটগুলি এখানে পাওয়া যায় SQL Server এন্টারপ্রাইজ সংস্করণ (সকল সংস্করণ), এবং স্ট্যান্ডার্ড সংস্করণtarসঙ্গে ting SQL Server ২০১৬ এসপি১।
৯.৬.২ পদ্ধতি ২: টেম্পোতে পুনরুদ্ধার করুনrary ডাটাবেস (Most সাধারণ)
এই পদ্ধতিটি তখন কাজ করে যখন কোনও সমস্যা দেখা দেওয়ার পরে এবং কোনও স্ন্যাপশট না থাকার পরে আপনার টেবিলের ডেটা পুনরুদ্ধার করার প্রয়োজন হয়:
- ব্যাকআপটি একটি গতিতে পুনরুদ্ধার করুনrary ডাটাবেস
- টেম্পো থেকে টেবিলের ডেটা কপি করুনrary ডাটাবেসকে বর্তমান ডাটাবেসে রূপান্তর করুন
৯.৬ পৃষ্ঠা পুনরুদ্ধার
পৃষ্ঠা পুনরুদ্ধার সম্পূর্ণ ডাটাবেস পুনরুদ্ধার না করেই পৃথক ক্ষতিগ্রস্ত পৃষ্ঠাগুলি পুনরুদ্ধার করে, ডাউনটাইম কমিয়ে দেয় tarশুধুমাত্র দূষিত পৃষ্ঠাগুলি পাওয়া। এই বৈশিষ্ট্যটি শুধুমাত্র পূর্ণ বা বাল্ক-লগড পুনরুদ্ধার মডেলের অধীনে উপলব্ধ এবং বর্তমান লগ ফাইলের মাধ্যমে পৃষ্ঠা ব্যাকআপ থেকে লেনদেন লগ ব্যাকআপের একটি অবিচ্ছিন্ন শৃঙ্খল প্রয়োজন।
পৃষ্ঠা পুনরুদ্ধার করতে, প্রথমে ক্ষতিগ্রস্ত পৃষ্ঠাগুলি সনাক্ত করুন, একটি টেল-লগ ব্যাকআপ নিন, নির্দিষ্ট পৃষ্ঠাগুলি পুনরুদ্ধার করুন, তারপর সমস্ত লেনদেন লগ প্রয়োগ করুন:
-- Identify damaged pages
SELECT * FROM msdb.dbo.suspect_pages
WHERE database_id = DB_ID('AdventureWorks');
-- Take tail-log backup
BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH NORECOVERY;
-- Restore damaged pages
RESTORE DATABASE AdventureWorks
PAGE = '1:123, 1:456'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
-- Apply transaction logs
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_TailLog.trn'
WITH RECOVERY;
GO
বিঃদ্রঃ: সরল পুনরুদ্ধার মডেলের অধীনে পৃষ্ঠা পুনরুদ্ধার উপলব্ধ নয়। আপনি সিস্টেম টেবিল বা প্রাথমিক ফাইলগ্রুপ মেটাডেটা থেকে পৃষ্ঠাগুলি পুনরুদ্ধার করতে পারবেন না।
৯.৭ টুকরো টুকরো পুনরুদ্ধার
পিসমিল রিস্টোর (আংশিক পুনরুদ্ধার) ফাইলগ্রুপ স্তরে ধাপে ধাপে একটি ডাটাবেস পুনরুদ্ধার করে, starপ্রাথমিক ফাইলগ্রুপের সাথে টিং। এটি গুরুত্বপূর্ণ ডেটা তাৎক্ষণিকভাবে অনলাইনে নিয়ে আসে যখন কম গুরুত্বপূর্ণ ডেটা ব্যাকগ্রাউন্ডে পুনরুদ্ধার করা হয়। সরল পুনরুদ্ধার মডেলের অধীনে, সমস্ত পঠন-লেখা ফাইলগ্রুপগুলিকে প্রাথমিক ফাইলগ্রুপের সাথে একসাথে পুনরুদ্ধার করতে হবে; শুধুমাত্র পঠন-লেখা ফাইলগ্রুপগুলিকে আলাদাভাবে পুনরুদ্ধার করা যেতে পারে। পূর্ণ বা বাল্ক-লগড পুনরুদ্ধার মডেলের অধীনে, লেনদেন লগ প্রয়োগ করার পরে প্রতিটি ফাইলগ্রুপকে স্বাধীনভাবে অনলাইনে আনা যেতে পারে।
| পুনরুদ্ধার মডেল | টুকরো টুকরো আচরণ পুনরুদ্ধার |
|---|---|
| সহজ | প্রাথমিক এবং সমস্ত পঠন-লেখার ফাইলগ্রুপ একসাথে পুনরুদ্ধার করা হয়েছে। কেবল পঠন-লেখার ফাইলগ্রুপগুলি আলাদাভাবে পুনরুদ্ধার করা হয়েছে। |
| পূর্ণ/বাল্ক-লগড | প্রতিটি ফাইলগ্রুপ ফাইলগ্রুপ স্তরে স্বাধীনভাবে পুনরুদ্ধার করা হয়েছে। |
সম্পূর্ণ পুনরুদ্ধার মডেলের উদাহরণ - ডাটাবেস অনলাইনে আনার জন্য প্রথমে প্রাথমিক ফাইলগ্রুপ পুনরুদ্ধার করুন, তারপর ডাটাবেস চালু থাকাকালীন সেকেন্ডারি ফাইলগ্রুপগুলি পুনরুদ্ধার করুন:
-- Stage 1: Restore primary filegroup (database comes online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
-- Stage 2: Restore secondary filegroup (database stays online)
RESTORE DATABASE AdventureWorks
FILEGROUP = 'HistoricalData'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY;
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH RECOVERY;
GO
সরল পুনরুদ্ধার মডেলের উদাহরণ:
-- Restore primary with all read-write filegroups
RESTORE DATABASE AdventureWorks
FILEGROUP = 'PRIMARY'
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH PARTIAL, RECOVERY;
-- Restore read-only filegroup separately
RESTORE DATABASE AdventureWorks
FILEGROUP = 'ReadOnlyArchive'
FROM DISK = 'C:\Backups\AdventureWorks_ReadOnly.bak'
WITH RECOVERY;
GO
৮.৬ টি-এসকিউএল কমান্ড ব্যবহার করে পুনরুদ্ধার করা
ফাইল স্থানান্তর সহ সম্পূর্ণ পুনরুদ্ধার স্ক্রিপ্ট:
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
REPLACE,
STATS = 10;
GO
৮.৭ পুনরুদ্ধারের আগে ব্যাকআপের অখণ্ডতা যাচাই করা
পুনরুদ্ধার না করে ব্যাকআপের বৈধতা পরীক্ষা করুন:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO
এই কমান্ডটি যাচাই করে যে ব্যাকআপ সেটটি সম্পূর্ণ এবং পাঠযোগ্য, আসলে ডাটাবেস পুনরুদ্ধার না করেই।
10. SQL Server ব্যাকআপ সেরা অভ্যাস
৯.১ একটি ব্যাকআপ কৌশল তৈরি করা
৯.১.১ ব্যবসায়িক প্রয়োজনীয়তা মূল্যায়ন
ব্যাকআপ বাস্তবায়নের আগে, মূল্যায়ন করুন:
- তথ্যের গুরুত্ব: এই তথ্যটি কার্যক্রমের জন্য কতটা গুরুত্বপূর্ণ?
- ফ্রিকোয়েন্সি পরিবর্তন করুন: কত ঘন ঘন তথ্য পরিবর্তন হয়?
- ডাটাবেসের আকার: ডাটাবেস কত বড়?
- উপলব্ধ সম্পদ: কোন স্টোরেজ এবং ব্যান্ডউইথ পাওয়া যায়?
- সম্মতির প্রয়োজনীয়তা: আপনার কোন নিয়ম মেনে চলতে হবে?
৯.১.২ আরটিও এবং আরপিও সংজ্ঞায়িত করা
পুনরুদ্ধারের সময় লক্ষ্য (RTO): সর্বাধিক গ্রহণযোগ্য ডাউনটাইম। কত দ্রুত আপনার ক্রিয়াকলাপ পুনরুদ্ধার করতে হবে তা নির্ধারণ করে।
পুনরুদ্ধার পয়েন্ট উদ্দেশ্য (RPO): সর্বাধিক গ্রহণযোগ্য ডেটা ক্ষতি। ব্যাকআপ ফ্রিকোয়েন্সি নির্ধারণ করে।
| আরটিও/আরপিও প্রয়োজনীয়তা | প্রস্তাবিত ব্যাকআপ কৌশল |
|---|---|
| আরপিও: ঘন্টা, আরটিও: ঘন্টা | দৈনিক পূর্ণাঙ্গ + লেনদেন লগ প্রতি ১-২ ঘন্টা অন্তর |
| আরপিও: মিনিট, আরটিও: ঘন্টা | প্রতি ১৫-৩০ মিনিট অন্তর দৈনিক পূর্ণ + লগ ব্যাকআপ |
| RPO: প্রায় শূন্য, RTO: মিনিট | সর্বদা উপলভ্যতা গ্রুপগুলিতে + ঘন ঘন লগ ব্যাকআপ |
| আরপিও: দিন, আরটিও: দিন | সাপ্তাহিক পূর্ণ + দৈনিক পার্থক্য |
৯.২ একটি ব্যাকআপ সময়সূচী তৈরি করা
৯.২.১ ফ্রিকোয়েন্সি সুপারিশ
উৎপাদন ডাটাবেসের জন্য সাধারণ ব্যাকআপ সময়সূচী:
- সম্পূর্ণ ব্যাকআপ: সাপ্তাহিক (রবিবার রাতে কম কার্যকলাপ থাকাকালীন)
- ডিফারেনশিয়াল ব্যাকআপ: প্রতিদিন (প্রতি রাতে)
- লেনদেন লগ ব্যাকআপ: ব্যবসায়িক সময়ের মধ্যে প্রতি ১৫-৩০ মিনিট অন্তর
- শুধুমাত্র-অনুলিপি ব্যাকআপ: পরীক্ষা বা উন্নয়নের জন্য প্রয়োজন অনুসারে
৯.২.২ কর্মক্ষমতা এবং সুরক্ষার ভারসাম্য বজায় রাখা
সময়সূচী নির্ধারণের সময় এই বিষয়গুলি বিবেচনা করুন:
- অফ-পিক ঘন্টা: কম-অ্যাক্টিভিটি সময়কালে সম্পূর্ণ ব্যাকআপ চালান
- সম্পদের প্রভাব: কম্প্রেশন I/O কমায় কিন্তু CPU ব্যবহার বাড়ায়
- নেটওয়ার্ক ব্যান্ডউইথ: ট্র্যাফিক কম থাকলে নেটওয়ার্ক ব্যাকআপের সময়সূচী নির্ধারণ করুন
- ব্যাকআপ উইন্ডো: ব্যবসায়িক সময়ের আগে ব্যাকআপ সম্পূর্ণ করুন তা নিশ্চিত করুন
৯.৩ ব্যাকআপ স্টোরেজের সেরা অনুশীলন
৯.৩.১ অন-সাইট বনাম অফ-সাইট স্টোরেজ
সাইটে ব্যাকআপ:
- দ্রুত ব্যাকআপ এবং পুনরুদ্ধারের সময়
- নিম্ন গost উচ্চ-ফ্রিকোয়েন্সি অ্যাক্সেসের জন্য
- স্থানীয় দুর্যোগের ঝুঁকিপূর্ণ
- দ্রুত পুনরুদ্ধারের পরিস্থিতির জন্য সেরা
অফ-সাইট ব্যাকআপ:
- স্থান-নির্দিষ্ট দুর্যোগ থেকে সুরক্ষা
- ভৌগোলিক রিডানডেন্সি প্রয়োজনীয়তার সাথে সম্মতি
- ধীর পুনরুদ্ধারের সময়
- দুর্যোগ পুনরুদ্ধারের জন্য অপরিহার্য
৯.৩.২ ক্লাউড ব্যাকআপ বিকল্প
ক্লাউড স্টোরেজের সুবিধা:
- আজুর ব্লব স্টোরেজ: স্থানীয় SQL Server ইন্টিগ্রেশন, গost-বিরল অ্যাক্সেসের জন্য কার্যকর
- আমাজন S3: অত্যন্ত টেকসই, নমনীয় স্টোরেজ স্তর
- Google ক্লাউড স্টোরেজ: প্রতিযোগিতামূলক মূল্য, বিশ্বব্যাপী প্রাপ্যতা
৯.৩.৩ ব্যাকআপ ধরে রাখার নীতিমালা
নমুনা ধরে রাখার নীতি:
- ৭ দিনের জন্য দৈনিক ব্যাকআপ রাখুন
- ৪ সপ্তাহের জন্য সাপ্তাহিক ব্যাকআপ রাখুন
- ১২ মাসের জন্য মাসিক ব্যাকআপ রাখুন
- ৭ বছরের জন্য বার্ষিক ব্যাকআপ রাখুন (সম্মতি)
৯.৪ ব্যাকআপ কম্প্রেশন এবং এনক্রিপশন
কম্প্রেশনের সুবিধা:
- ব্যাকআপ ফাইলের আকার ৫০-৭০% কমিয়ে দেয়
- ব্যাকআপ সময় কমায়
- স্টোরেজ কমায় গosts
- দূরবর্তী ব্যাকআপের জন্য নেটওয়ার্ক ব্যান্ডউইথ হ্রাস করে
এনক্রিপশনের সেরা অনুশীলন:
- সংবেদনশীল ডেটা ধারণকারী ব্যাকআপগুলি সর্বদা এনক্রিপ্ট করুন
- AES 256-বিট এনক্রিপশন ব্যবহার করুন
- নিরাপদ সার্টিফিকেট বা কী ব্যবস্থাপনা
- ডকুমেন্ট এনক্রিপশন কী এবং আলাদাভাবে সংরক্ষণ করুন
৯.৫ ব্যাকআপ পরীক্ষা এবং যাচাইকরণ
৯.৫.১ নিয়মিত পুনরুদ্ধার পরীক্ষা
ত্রৈমাসিক বা মাসিক পরীক্ষা পুনরুদ্ধার পদ্ধতি:
- পরীক্ষামূলক পরিবেশে ব্যাকআপ পুনরুদ্ধার করুন
- তথ্যের অখণ্ডতা এবং সম্পূর্ণতা যাচাই করুন
- অ্যাপ্লিকেশনের কার্যকারিতা পরীক্ষা করুন
- ডকুমেন্ট পুনরুদ্ধারের সময় (RTO যাচাই করুন)
- যেকোনো সমস্যা চিহ্নিত করুন এবং সমাধান করুন
৯.৫.২ RESTORE VERIFYONLY ব্যবহার করা
স্বয়ংক্রিয় ব্যাকআপ যাচাইকরণ:
-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
ব্যাকআপ সম্পন্ন হওয়ার পরপরই অথবা নির্ধারিত রক্ষণাবেক্ষণের অংশ হিসেবে যাচাইকরণ চালান।
৯.৬ ব্যাকআপ অটোমেশন এবং পর্যবেক্ষণ
10.6.1 SQL Server এজেন্ট জবস
স্বয়ংক্রিয় ব্যাকআপ কাজ তৈরি করুন:
- বিস্তৃত করা SQL Server প্রতিনিধি
এসএসএমএসে
- সঠিক পছন্দ জবস এবং নির্বাচন করুন নতুন চাকরি
- কাজের নাম দিন (যেমন, "ডেইলি ফুল ব্যাকআপ")
- যুক্ত কর একটি ধাপ টি-এসকিউএল ব্যাকআপ কমান্ড সহ
- একটা তৈরি কর সময়সূচি কার্যকর করার সময়ের জন্য
- কনফিগার করুন বিজ্ঞপ্তি সাফল্য/ব্যর্থতার জন্য
৯.৬.২ রক্ষণাবেক্ষণ পরিকল্পনা
SQL Server রক্ষণাবেক্ষণ পরিকল্পনা ব্যাকআপ অটোমেশনের জন্য একটি ভিজ্যুয়াল ইন্টারফেস প্রদান করে:
- নেভিগেট করুন ম্যানেজমেন্ট -> রক্ষণাবেক্ষণ পরিকল্পনা
- ডান ক্লিক করুন এবং নির্বাচন করুন রক্ষণাবেক্ষণ পরিকল্পনা উইজার্ড
- স্বয়ংক্রিয় করার জন্য ব্যাকআপ কাজগুলি নির্বাচন করুন
- ব্যাকআপ সময়সূচী এবং বিকল্পগুলি কনফিগার করুন
- রিপোর্টিং এবং লগিং সেট আপ করুন
৯.৬.৩ ব্যাকআপ সতর্কতা এবং বিজ্ঞপ্তি
ইমেল বিজ্ঞপ্তি কনফিগার করুন:
- ডাটাবেস মেল সেট আপ করুন SQL Server
- ব্যাকআপ ব্যর্থতার জন্য সতর্কতা তৈরি করুন
- ব্যাকআপ কাজের ইতিহাস পর্যবেক্ষণ করুন
- প্রশাসকদের কাছে সারসংক্ষেপ প্রতিবেদন পাঠান
৯.৭ ডকুমেন্টেশন এবং দুর্যোগ পুনরুদ্ধার পরিকল্পনা
ব্যাপক ডকুমেন্টেশন বজায় রাখুন:
- ব্যাকআপ সময়সূচী: কখন এবং কীসের ব্যাকআপ নেওয়া হবে
- ধরে রাখার নীতি: কতক্ষণ ব্যাকআপ রাখা হয়
- সংরক্ষণের স্থান: ব্যাকআপগুলি কোথায় সংরক্ষণ করা হয়
- পুনরুদ্ধার পদ্ধতি: ধাপে ধাপে পুনরুদ্ধারের নির্দেশাবলী
- যোগাযোগের তথ্য: মূল কর্মী এবং বিক্রেতারা
- পুনরুদ্ধার পরীক্ষার ফলাফল: নথিভুক্ত পরীক্ষার ফলাফল
11. উন্নত SQL Server ব্যাকআপ পরিস্থিতি
১০.১ খুব বড় ডাটাবেস (VLDB) ব্যাক আপ নেওয়া
১০.১.১ ফাইল এবং ফাইলগ্রুপ কৌশল
কয়েকশ গিগাবাইটের বেশি ডাটাবেসের জন্য:
- শুধুমাত্র পঠনযোগ্য এবং পঠনযোগ্য তথ্য আলাদা ফাইল গ্রুপে ভাগ করুন।
- কদাচিৎ পঠনযোগ্য ফাইলগ্রুপের ব্যাকআপ নিন
- সক্রিয় ফাইলগ্রুপগুলিতে ঘন ঘন ব্যাকআপ ফোকাস করুন
- গ্রানুলার নিয়ন্ত্রণের জন্য ফাইল-স্তরের ব্যাকআপ ব্যবহার করুন
ফাইল ব্যাকআপের উদাহরণ:
-- Back up specific file
BACKUP DATABASE LargeDB
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO
১০.১.২ ব্যাকআপ পারফরম্যান্স অপ্টিমাইজেশন
VLDB ব্যাকআপ কর্মক্ষমতা উন্নত করুন:
- স্ট্রাইপড ব্যাকআপ: একসাথে একাধিক ফাইলে লিখুন
- সঙ্কোচন: I/O এবং স্টোরেজের প্রয়োজনীয়তা হ্রাস করুন
- একাধিক ব্যাকআপ ডিভাইস: ব্যাকআপ অপারেশনগুলিকে সমান্তরাল করুন
- দ্রুত স্টোরেজ: ব্যাকআপ স্টেজিংয়ের জন্য SSD ব্যবহার করুন
- বাফার গণনা: BUFFERCOUNT বিকল্প বাড়ান
- সর্বোচ্চ স্থানান্তর আকার: MAXTRANSFERSIZE সেটিং অপ্টিমাইজ করুন
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
DISK = 'D:\Backups\LargeDB_2.bak',
DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
BUFFERCOUNT = 100,
MAXTRANSFERSIZE = 4194304;
GO
১০.২ সর্বদা চালু থাকা গ্রুপগুলিতে ব্যাকআপ
সর্বদা চালু থাকা গ্রুপগুলি প্রতিলিপিগুলিতে ব্যাকআপ লোড বিতরণ করে:
- ব্যাকআপ পছন্দগুলি কনফিগার করুন (প্রাথমিক, মাধ্যমিক, অথবা যেকোনো প্রতিরূপ)
- প্রাথমিক কাজের চাপ কমাতে সেকেন্ডারি রেপ্লিকাগুলিতে ব্যাকআপ অফলোড করুন
- সেকেন্ডারি রেপ্লিকাগুলিতে COPY_ONLY ব্যাকআপ ব্যবহার করুন
- ব্যাকআপ অগ্রাধিকার সেটিংস পর্যবেক্ষণ করুন
-- Check backup preferences
SELECT
ag.name AS AvailabilityGroup,
ar.replica_server_name,
ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO
১০.৩ ডাটাবেস মিররিংয়ের জন্য ব্যাকআপ
ডাটাবেস মিররিং পরিস্থিতিতে:
- নিয়মিতভাবে প্রধান ডাটাবেসের ব্যাকআপ নিন
- মিররিংয়ের জন্য লেনদেন লগ ব্যাকআপ অপরিহার্য
- মিরর ডাটাবেস পুনরুদ্ধার অবস্থায় আছে (সরাসরি ব্যাকআপ নেওয়া যাবে না)
- ফেইলওভারের পরে আয়না ব্যাকআপ করার কথা বিবেচনা করুন
১০.৪ Azure Blob স্টোরেজে ব্যাকআপ
SQL Server Azure Blob স্টোরেজে সরাসরি ব্যাকআপ নিতে পারেন:
- Azure স্টোরেজ অ্যাকাউন্ট তৈরি করুন
- সৃষ্টি SQL Server Azure প্রমাণীকরণের জন্য শংসাপত্র
- ব্যাকআপ গন্তব্যের জন্য URL সিনট্যাক্স ব্যবহার করুন
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO
-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
STATS = 10;
GO
১০.৫ URL-এ ব্যাকআপ
URL-এ ব্যাকআপ নেওয়ার সুবিধা:
- সীমাহীন ক্লাউড স্টোরেজ ক্ষমতা
- ভৌগোলিক রিডানডেন্সি স্বয়ংক্রিয়ভাবে পরিচালিত হয়
- মূল্যের মডেল হিসাবে আপনি-যেমন-পে করুন
- স্থানীয় ডিস্কে স্থানের প্রয়োজন নেই
- প্রতি ব্যাকআপে সর্বোচ্চ ৬৪টি URL সমর্থন করে (স্ট্রাইপিং)
১০.৬ পারফরম্যান্সের জন্য স্ট্রাইপড ব্যাকআপ
স্ট্রাইপড ব্যাকআপ দ্রুত I/O এর জন্য একাধিক ফাইলে ডেটা বিভক্ত করে:
-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
DISK = 'D:\Backups\AW_Stripe2.bak',
DISK = 'E:\Backups\AW_Stripe3.bak',
DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO
দ্রষ্টব্য: পুনরুদ্ধারের জন্য সমস্ত স্ট্রাইপ ফাইল প্রয়োজন। কোনও ফাইল অনুপস্থিত থাকলে ব্যাকআপটি ব্যবহারের অযোগ্য হয়ে যায়।
12. সমস্যা সমাধান SQL Server ব্যাকআপ সংক্রান্ত সমস্যা
১১.১ সাধারণ ব্যাকআপ ত্রুটি এবং সমাধান
ত্রুটি: "অপারেটিং সিস্টেম ত্রুটি ৫: অ্যাক্সেস অস্বীকার করা হয়েছে"
- কারণ: SQL Server পরিষেবা অ্যাকাউন্টে অনুমতি নেই
- সমাধান: লেখার অনুমতি দিন SQL Server ব্যাকআপ ফোল্ডারে পরিষেবা অ্যাকাউন্ট
ত্রুটি: "ব্যাকআপ ডিভাইস খুলতে পারছি না... ডিভাইস ত্রুটি অথবা ডিভাইস অফ-লাইন"
- কারণ: অবৈধ পথ অথবা অনুপলব্ধ নেটওয়ার্ক শেয়ার
- সমাধান: পাথ বিদ্যমান কিনা তা যাচাই করুন, নেটওয়ার্ক সংযোগ পরীক্ষা করুন, পর্যাপ্ত ডিস্ক স্থান নিশ্চিত করুন
ত্রুটি: "ডিস্কে পর্যাপ্ত জায়গা নেই"
- কারণ: ব্যাকআপের জন্য পর্যাপ্ত ডিস্ক স্পেস নেই
- সমাধান: ডিস্কের জায়গা খালি করুন, কম্প্রেশন ব্যবহার করুন, ভিন্ন স্থানে ব্যাকআপ নিন
ত্রুটি: "ডাটাবেস ব্যবহার করা হচ্ছে। ডাটাবেসটি অন্যান্য ব্যবহারকারীদের দ্বারা ব্যবহার করা হচ্ছে"
- কারণ: পুনরুদ্ধারের সময় সক্রিয় সংযোগগুলি
- সমাধান: WITH REPLACE বিকল্পটি ব্যবহার করুন অথবা প্রথমে ব্যবহারকারীদের সংযোগ বিচ্ছিন্ন করুন
১১.২ ব্যাকআপ কর্মক্ষমতা সংক্রান্ত সমস্যা
ধীর ব্যাকআপ নির্ণয় করুন:
- ডিস্ক I/O কর্মক্ষমতা পরীক্ষা করুন ব্যবহার করে কর্মক্ষমতা মনিটর
- STATS বিকল্পের সাহায্যে ব্যাকআপের অগ্রগতি পর্যবেক্ষণ করুন
- পর্যালোচনা SQL Server বাধার জন্য ত্রুটি লগ
- I/O কমাতে কম্প্রেশন বিবেচনা করুন
- একাধিক ডিস্ক জুড়ে স্ট্রাইপড ব্যাকআপ ব্যবহার করুন
ব্যাকআপের অগ্রগতি পর্যবেক্ষণের জন্য প্রশ্ন:
SELECT
session_id,
command,
percent_complete,
CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
+ CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
+ CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
+ CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
+ CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests
WHERE command LIKE 'BACKUP%';
GO
১১.৩ স্থান এবং সংরক্ষণের সমস্যা
স্টোরেজ সমস্যা প্রতিরোধ করুন:
- ধরে রাখার নীতি বাস্তবায়ন করুন: পুরানো ব্যাকআপগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলুন
- কম্প্রেশন ব্যবহার করুন: ব্যাকআপ ফাইলের আকার ৫০-৭০% কমিয়ে আনুন
- সস্তা স্টোরেজে আর্কাইভ করুন: পুরনো ব্যাকআপগুলি আর্কাইভ স্টোরেজে সরান
- ডিস্ক স্পেস নিরীক্ষণ করুন: কম ডিস্ক স্থানের জন্য সতর্কতা সেট আপ করুন
- ব্যাকআপের আকার অনুমান করুন: ব্যাকআপ নেওয়ার আগে প্রত্যাশিত আকার গণনা করুন
ব্যাকআপের আকার অনুমান করুন:
-- Estimate full backup size
EXEC sp_spaceused;
GO
১১.৪ অনুমতি এবং অ্যাক্সেস সংক্রান্ত সমস্যা
ব্যাকআপের জন্য প্রয়োজনীয় অনুমতি:
- ব্যাকআপ ডাটাবেস অনুমতি
- db_backupoperator ভূমিকা সদস্যপদ
- sysadmin সার্ভার ভূমিকা (সমস্ত ব্যাকআপ অপারেশনের জন্য)
ব্যাকআপের অনুমতি দিন:
-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO
-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO
১১.৫ করাপ্ট ব্যাকআপ ফাইল
দূষিত ব্যাকআপ সনাক্ত করুন এবং পরিচালনা করুন:
ব্যাকআপের অখণ্ডতা যাচাই করুন:
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO
ভবিষ্যতের ব্যাকআপের জন্য CHECKSUM সক্ষম করুন:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO
প্রতিরোধ কৌশল:
- ব্যাকআপের সময় সর্বদা CHECKSUM বিকল্পটি ব্যবহার করুন
- তৈরির পরপরই ব্যাকআপ যাচাই করুন
- পরীক্ষা নিয়মিত পুনরুদ্ধার হয়
- নির্ভরযোগ্য স্টোরেজে ব্যাকআপ সংরক্ষণ করুন
- একাধিক ব্যাকআপ কপি বজায় রাখুন
১১.৬ দুর্নীতিগ্রস্ত ব্যাকআপ ফাইল থেকে তথ্য পুনরুদ্ধার করুন
যদি আপনার ব্যাকআপ ফাইলগুলি দূষিত থাকে এবং আপনি এখনও সেগুলি থেকে ডেটা পুনরুদ্ধার করতে চান, তাহলে আপনি তৃতীয় পক্ষের সরঞ্জামগুলি ব্যবহার করতে পারেন যেমন DataNumen SQL Recovery, নীচের হিসাবে:
- Start DataNumen SQL Recovery.
- "সমস্ত ফাইল (*.*)" ফিল্টারটি পরিবর্তন করে দূষিত ব্যাকআপ ফাইলটিকে সোর্স ফাইল হিসেবে নির্বাচন করুন:
- প্রয়োজনে আউটপুট .MDF ফাইল সেট করুন।
- “এসtar"পুনরুদ্ধার" বোতামে ক্লিক করুন এবং ডাটাবেস পুনরুদ্ধারের জন্য নির্দেশাবলী অনুসরণ করুন।
- পুনরুদ্ধার প্রক্রিয়ার পরে, একটি নতুন পুনরুদ্ধার ডাটাবেস প্রদর্শিত হবে SQL Server যেখানে সমস্ত পুনরুদ্ধার করা তথ্য রয়েছে।
13. SQL Server ব্যাকআপ নিরাপত্তা
১২.১ ব্যাকআপ ফাইল সুরক্ষিত করা
ব্যাকআপ ফাইলগুলিকে অননুমোদিত অ্যাক্সেস থেকে রক্ষা করুন:
- ফাইল সিস্টেমের অনুমতি: শুধুমাত্র অনুমোদিত প্রশাসকদের অ্যাক্সেস সীমাবদ্ধ করুন
- নেটওয়ার্ক নিরাপত্তা: নেটওয়ার্ক ব্যাকআপের জন্য সুরক্ষিত প্রোটোকল ব্যবহার করুন
- শারীরিক নিরাপত্তা: ব্যাকআপ মিডিয়া নিরাপদ স্থানে সংরক্ষণ করুন
- অ্যাক্সেস লগিং: অডিট ব্যাকআপ ফাইল অ্যাক্সেস
১২.২ এনক্রিপশন বিকল্প
SQL Server স্বচ্ছ ব্যাকআপ এনক্রিপশন সমর্থন করে:
এনক্রিপশনের জন্য সার্টিফিকেট তৈরি করুন:
-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO
-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO
এনক্রিপ্ট করা ব্যাকআপ:
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
ENCRYPTION (
ALGORITHM = AES_256,
SERVER CERTIFICATE = BackupCertificate
);
GO
গুরুত্বপূর্ণ: সার্টিফিকেট এবং প্রাইভেট কী আলাদাভাবে ব্যাকআপ করুন। এগুলি ছাড়া, এনক্রিপ্ট করা ব্যাকআপ পুনরুদ্ধার করা যাবে না।
-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
FILE = 'C:\Certificates\BackupCertificate.key',
ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO
১২.৩ অ্যাক্সেস নিয়ন্ত্রণ এবং অনুমতি
ন্যূনতম-সুবিধা নীতি বাস্তবায়ন করুন:
- শুধুমাত্র প্রয়োজনীয় অ্যাকাউন্টগুলিতে ব্যাকআপের অনুমতি দিন
- ব্যাকআপ এবং পুনরুদ্ধারের জন্য পৃথক অ্যাকাউন্ট ব্যবহার করুন
- ব্যাকআপের জন্য sa অ্যাকাউন্ট ব্যবহার করা এড়িয়ে চলুন
- নিয়মিতভাবে ব্যাকআপ অনুমতিগুলি অডিট করুন
- আর প্রয়োজন না হলে অনুমতিগুলি সরিয়ে ফেলুন
13.4 সম্মতি বিবেচনা
নিয়ন্ত্রক প্রয়োজনীয়তাগুলি পূরণ করুন:
- জিডিপিআর: ব্যক্তিগত তথ্য ধারণকারী ব্যাকআপ এনক্রিপ্ট করুন, ধরে রাখার নীতি বাস্তবায়ন করুন
- HIPAA: ব্যাকআপে PHI এনক্রিপ্ট করুন, অ্যাক্সেস নিয়ন্ত্রণ করুন, অডিট ট্রেইল বজায় রাখুন
- পিসিআই ডিএসএস: কার্ডহোল্ডার ডেটা ব্যাকআপ এনক্রিপ্ট করুন, ব্যাকআপ স্টোরেজ সুরক্ষিত করুন
- সক্স: ব্যাকআপ অখণ্ডতা, ডকুমেন্ট ধরে রাখার নীতিমালা বজায় রাখুন
১৩. ব্যাকআপ কার্যক্রম পর্যবেক্ষণ এবং রক্ষণাবেক্ষণ
১৩.১ ব্যাকআপ ইতিহাস ট্র্যাকিং
SQL Server msdb ডাটাবেসে ব্যাকআপ ইতিহাস সংরক্ষণ করে:
-- View recent backup history
SELECT
bks.database_name,
bks.backup_start_date,
bks.backup_finish_date,
CASE bks.type
WHEN 'D' THEN 'Full'
WHEN 'I' THEN 'Differential'
WHEN 'L' THEN 'Log'
ELSE 'Other'
END AS backup_type,
bks.backup_size / 1024 / 1024 AS backup_size_mb,
bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO
সাম্প্রতিক ব্যাকআপ ছাড়া ডাটাবেস খুঁজুন:
SELECT
d.name AS database_name,
MAX(bs.backup_finish_date) AS last_backup_date,
DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4 -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO
14.2 ব্যবহার করা SQL Server প্রতিবেদন
SQL Server ম্যানেজমেন্ট স্টুডিওতে অন্তর্নির্মিত ব্যাকআপ রিপোর্ট রয়েছে:
- অবজেক্ট এক্সপ্লোরারে ডাটাবেসের উপর ডান ক্লিক করুন।
- নির্বাচন করা প্রতিবেদন -> স্ট্যান্ডার্ড রিপোর্ট
- উপলব্ধ রিপোর্ট থেকে বেছে নিন:
- ইভেন্টগুলির ব্যাকআপ এবং পুনরুদ্ধার করুন
- সকল ব্যাকআপ
- লেনদেন লগ শিপিং স্ট্যাটাস
১৩.৩ তৃতীয় পক্ষের পর্যবেক্ষণ সরঞ্জাম
বাণিজ্যিক পর্যবেক্ষণ সমাধান:
- এসকিউএল সেন্ট্রি: ব্যাপক পর্যবেক্ষণ এবং সতর্কতা
- রেডগেট এসকিউএল মনিটর: রিয়েল-টাইম পর্যবেক্ষণ এবং রোগ নির্ণয়ostICS
- সোলারউইন্ডস ডাটাবেস পারফরম্যান্স বিশ্লেষক: কর্মক্ষমতা এবং ব্যাকআপ পর্যবেক্ষণ
- আইডেরা এসকিউএল ডায়াগনostআইসি ম্যানেজার: ব্যাকআপ যাচাইকরণ এবং সতর্কতা
১৩.৪ ব্যাকআপ স্বাস্থ্য পরীক্ষা
একটি স্বাস্থ্য পরীক্ষার পদ্ধতি তৈরি করুন:
-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
-- Check for databases without recent full backup
SELECT
'Missing Recent Full Backup' AS issue,
d.name AS database_name,
ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs
ON d.name = bs.database_name AND bs.type = 'D'
WHERE d.database_id > 4
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
AND j.name LIKE '%backup%';
END
GO
15. SQL Server ব্যাকআপ সম্পর্কিত প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী
১৪.১ আমার কত ঘন ঘন ব্যাকআপ নেওয়া উচিত? SQL Server?
ব্যাকআপ ফ্রিকোয়েন্সি আপনার রিকভারি পয়েন্ট অবজেক্টিভ (RPO) এর উপর নির্ভর করে:
- গুরুত্বপূর্ণ উৎপাদন ডাটাবেস: পূর্ণ সাপ্তাহিক, দৈনিক পার্থক্য, প্রতি ১৫-৩০ মিনিটে লগ করুন
- স্ট্যান্ডার্ড উৎপাদন ডাটাবেস: পূর্ণ সাপ্তাহিক, দৈনিক পার্থক্য, প্রতি ১-২ ঘন্টা অন্তর লগ করুন
- ডেভেলপমেন্ট ডাটাবেস: পূর্ণ দৈনিক বা সাপ্তাহিক
- শুধুমাত্র পঠনযোগ্য ডাটাবেস: প্রতিটি ডেটা পরিবর্তনের পরে সম্পূর্ণ
১৪.২ ফুল এবং ডিফারেনশিয়াল ব্যাকআপের মধ্যে পার্থক্য কী?
একটি পূর্ণ ব্যাকআপ সম্পূর্ণ ডাটাবেস কপি করে, যখন একটি ডিফারেনশিয়াল ব্যাকআপ শুধুমাত্র শেষ পূর্ণ ব্যাকআপের পরের পরিবর্তনগুলি ক্যাপচার করে। ডিফারেনশিয়াল ব্যাকআপগুলি ছোট এবং দ্রুত হয় তবে পুনরুদ্ধারের জন্য বেস পূর্ণ ব্যাকআপ প্রয়োজন।
১৪.৩ আমি কি ব্যাকআপ নিতে পারি? SQL Server যখন এটি চলছে?
হ্যাঁ, SQL Server অনলাইন ব্যাকআপ সমর্থন করে। ব্যবহারকারীরা ব্যাকআপ অপারেশন চলাকালীন কাজ চালিয়ে যেতে পারেন। SQL Server ধারাবাহিকতা বজায় রাখার জন্য তার লেনদেন লগ ব্যবহার করে, নিশ্চিত করে যে ব্যাকআপগুলি সমসাময়িক পরিবর্তনের সাথেও বৈধ।
১৪.৪ কতক্ষণ SQL Server ব্যাকআপ নেব?
ব্যাকআপের সময়কাল নিম্নলিখিত বিষয়গুলির উপর নির্ভর করে পরিবর্তিত হয়:
- ডাটাবেসের আকার: বৃহত্তর ডাটাবেসগুলি বেশি সময় নেয়
- ব্যাকআপের ধরণ: সম্পূর্ণ ব্যাকআপ নিতে সবচেয়ে বেশি সময় লাগে
- সঙ্কোচন: CPU সময় বাড়াতে পারে কিন্তু সামগ্রিক সময়কাল কমাতে পারে
- স্টোরেজ গতি: এসএসডিগুলি এইচডিডির তুলনায় উল্লেখযোগ্যভাবে দ্রুত
- সার্ভার লোড: উচ্চ কার্যকলাপ ব্যাকআপ ধীর করে দেয়
সাধারণ রেঞ্জ: আধুনিক হার্ডওয়্যারে কম্প্রেশন সহ ১০ জিবি ডাটাবেসের সম্পূর্ণ ব্যাকআপের জন্য ৫-১৫ মিনিট সময় লাগতে পারে।
১৪.৫ আমার কোথায় সংরক্ষণ করা উচিত? SQL Server ব্যাকআপ?
সর্বোত্তম অনুশীলন: 3-2-1 নিয়মটি অনুসরণ করুন:
- 3 আপনার ডেটার কপি
- 2 বিভিন্ন ধরণের স্টোরেজ (যেমন, ডিস্ক এবং টেপ/ক্লাউড)
- 1 সাইটের বাইরে কপি করুন
প্রস্তাবিত অবস্থান:
- দ্রুত পুনরুদ্ধারের জন্য স্থানীয় ডিস্ক
- কেন্দ্রীভূত ব্যবস্থাপনার জন্য নেটওয়ার্ক স্টোরেজ
- দুর্যোগ পুনরুদ্ধারের জন্য ক্লাউড স্টোরেজ (Azure, AWS)
১৪.৬ .bak ফাইল এক্সটেনশন কী?
.bak এক্সটেনশন হল এর জন্য ডিফল্ট ফাইল এক্সটেনশন SQL Server ব্যাকআপ ফাইল। এটি একটি নিয়ম, কোন প্রয়োজনীয়তা নয় - SQL Server ব্যাকআপ যেকোনো ফাইল এক্সটেনশনের সাথে কাজ করে। তবে, .bak ব্যবহার করলে ব্যাকআপ ফাইলগুলি সহজেই শনাক্ত করা যায় এবং এটি একটি শিল্প-মানক অনুশীলন।
১৪.৭ কিভাবে ব্যাকআপ নেবেন SQL Server নেটওয়ার্ক ড্রাইভে?
নেটওয়ার্ক ড্রাইভে ব্যাকআপ নিতে:
- নিশ্চিত করা SQL Server নেটওয়ার্ক শেয়ারে পরিষেবা অ্যাকাউন্টের লেখার অনুমতি আছে
- ব্যাকআপ কমান্ডে UNC পাথ ব্যবহার করুন:
\\ServerName\ShareName\BackupFile.bak - স্বয়ংক্রিয় ব্যাকআপ নির্ধারণের আগে সংযোগ পরীক্ষা করুন
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO
১৪.৮ আমি কি কম্প্রেস করতে পারি? SQL Server ব্যাকআপ?
হ্যাঁ, SQL Server নেটিভ ব্যাকআপ কম্প্রেশন সমর্থন করে (এন্টারপ্রাইজ সংস্করণ, অথবা স্ট্যান্ডার্ড সংস্করণ)tarTing SQL Server 2016 SP1)। কম্প্রেশন সাধারণত ব্যাকআপের আকার 50-70% কমিয়ে দেয় এবং প্রায়শই I/O কমিয়ে ব্যাকআপের সময় কমিয়ে দেয়, যদিও এটি CPU ব্যবহার বৃদ্ধি করে।
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO
16. উপসংহার
16.1 কী টেকওয়েস
কার্যকর SQL Server ব্যাকআপ কৌশলগুলি আপনার ডেটা সুরক্ষিত করে এবং ব্যবসায়িক ধারাবাহিকতা নিশ্চিত করে। এই গুরুত্বপূর্ণ বিষয়গুলি মনে রাখবেন:
- ব্যাকআপের ধরণগুলি বুঝুন: আপনার পুনরুদ্ধারের প্রয়োজনীয়তার উপর ভিত্তি করে উপযুক্ত ব্যাকআপ প্রকারগুলি (পূর্ণ, ডিফারেনশিয়াল, লেনদেন লগ) চয়ন করুন।
- সঠিক পুনরুদ্ধার মডেল নির্বাচন করুন: গুরুত্বপূর্ণ তথ্যের জন্য সম্পূর্ণ পুনরুদ্ধার, ডেভেলপমেন্ট ডাটাবেসের জন্য সহজ
- ব্যাকআপ সময়সূচী বাস্তবায়ন করুন: নিয়মিত পূর্ণ ব্যাকআপের সাথে ডিফারেনশিয়াল এবং লগ ব্যাকআপের সমন্বয়ে ডেটা ক্ষতি কম হয়।
- পরীক্ষা পুনরুদ্ধার পদ্ধতি: ব্যাকআপগুলি কেবল তখনই মূল্যবান যখন সেগুলি সফলভাবে পুনরুদ্ধার করা যায়
- স্বয়ংক্রিয় এবং নিরীক্ষণ: ব্যবহার SQL Server এজেন্ট, রক্ষণাবেক্ষণ পরিকল্পনা এবং পর্যবেক্ষণ সরঞ্জাম
- নিরাপদ ব্যাকআপ: সংবেদনশীল ডেটা এনক্রিপ্ট করুন এবং ব্যাকআপ ফাইলগুলিতে অ্যাক্সেস নিয়ন্ত্রণ করুন
- সাইটের বাইরে কপি সংরক্ষণ করুন: ক্লাউড বা রিমোট স্টোরেজের মাধ্যমে সাইট-ব্যাপী দুর্যোগ থেকে রক্ষা করুন
- সবকিছু নথিভুক্ত করুন: ব্যাকআপ এবং পুনরুদ্ধার পদ্ধতির স্পষ্ট ডকুমেন্টেশন বজায় রাখুন।
16.2 পরবর্তী পদক্ষেপ এবং সম্পদ
আপনার উন্নতি করতে SQL Server ব্যাকআপ বাস্তবায়ন:
- সেরা অনুশীলনের সাথে আপনার বর্তমান ব্যাকআপ কৌশল মূল্যায়ন করুন
- আপনার RTO এবং RPO প্রয়োজনীয়তা গণনা করুন
- নন-প্রোডাকশন সিস্টেমে পুনরুদ্ধার পদ্ধতি পরীক্ষা করুন
- নিয়মিত ব্যাকআপ সময়সূচী পর্যালোচনা এবং আপডেট করুন
- স্বয়ংক্রিয় পর্যবেক্ষণ এবং সতর্কতা বাস্তবায়ন করুন
- পুনরুদ্ধার পদ্ধতি সম্পর্কে দলের সদস্যদের প্রশিক্ষণ দিন
অতিরিক্ত সম্পদ:
- মাইক্রোসফট SQL Server ডকুমেন্টেশন: অফিসিয়াল ব্যাকআপ এবং পুনরুদ্ধার নির্দেশিকা
- SQL Server ব্যাকআপ কমিউনিটি ফোরাম: অভিজ্ঞতা এবং সমাধান শেয়ার করুন
- পেশাদার সার্টিফিকেশন: মাইক্রোসফ্ট সার্টিফাইড: অ্যাজুরে ডেটাবেস অ্যাডমিনিস্ট্রেটর অ্যাসোসিয়েট
১৫.৩ প্রস্তাবিত সরঞ্জাম এবং সমাধান
বিভিন্ন পরিস্থিতির উপর ভিত্তি করে:
ছোট ব্যবসা:
- স্থানীয় SQL Server নির্ধারিত সময়ের সাথে ব্যাকআপ নিন SQL Server এজেন্টের চাকরি
- ক্লাউড ইন্টিগ্রেশনের জন্য SQLBackupAndFTP
- Azure ব্যাকআপ এর জন্য SQL Server
মাঝারি উদ্যোগ:
- SQL Server রক্ষণাবেক্ষণ পরিকল্পনা
- রেডগেট এসকিউএল ব্যাকআপ প্রো এর মতো তৃতীয় পক্ষের সরঞ্জাম
- এর জন্য ভিম ব্যাকআপ SQL Server
বৃহৎ উদ্যোগ:
- সর্বাধিক কম্প্রেশনের জন্য কোয়েস্ট লাইটস্পিড
- এন্টারপ্রাইজ ব্যাকআপ পরিচালনার জন্য Commvault অথবা Veritas NetBackup
- সর্বদা উপলব্ধ গ্রুপগুলির জন্য উচ্চ প্রাপ্যতা
SQL Server ডাটাবেস প্রশাসনের জন্য ব্যাকআপ মৌলিক। সঠিক পরিকল্পনা, বাস্তবায়ন এবং পরীক্ষার মাধ্যমে, আপনি নিশ্চিত করতে পারেন যে আপনার ডেটা সুরক্ষিত থাকবে এবং প্রয়োজনে পুনরুদ্ধারযোগ্য থাকবে।tarআপনার সুরক্ষার জন্য আজই এই সেরা অনুশীলনগুলি বাস্তবায়ন করা SQL Server ডাটাবেস।
লেখক সম্পর্কে
ইউয়ান সেং একজন সিনিয়র ডাটাবেস অ্যাডমিনিস্ট্রেটর (DBA) যার ১০ বছরেরও বেশি অভিজ্ঞতা রয়েছে SQL Server পরিবেশ এবং এন্টারপ্রাইজ ডাটাবেস ব্যবস্থাপনা। তিনি আর্থিক পরিষেবা, স্বাস্থ্যসেবা এবং উৎপাদন সংস্থা জুড়ে শত শত ডাটাবেস পুনরুদ্ধারের পরিস্থিতি সফলভাবে সমাধান করেছেন।
ইউয়ান বিশেষজ্ঞ SQL Server ডাটাবেস পুনরুদ্ধার, উচ্চ প্রাপ্যতা সমাধান এবং কর্মক্ষমতা অপ্টিমাইজেশন। তার ব্যাপক বাস্তব অভিজ্ঞতার মধ্যে রয়েছে মাল্টি-টেরাবাইট ডাটাবেস পরিচালনা, সর্বদা অন প্রাপ্যতা গ্রুপ বাস্তবায়ন এবং মিশন-সমালোচনামূলক ব্যবসায়িক সিস্টেমের জন্য স্বয়ংক্রিয় ব্যাকআপ এবং পুনরুদ্ধার কৌশল তৈরি করা।
তার প্রযুক্তিগত দক্ষতা এবং ব্যবহারিক পদ্ধতির মাধ্যমে, ইউয়ান এমন ব্যাপক নির্দেশিকা তৈরির উপর মনোনিবেশ করেন যা ডাটাবেস প্রশাসক এবং আইটি পেশাদারদের জটিল সমাধানে সহায়তা করে SQL Server দক্ষতার সাথে চ্যালেঞ্জ জানাতে। তিনি সর্বশেষ খবরের সাথে আপডেট থাকেন SQL Server রিলিজ এবং মাইক্রোসফটের ক্রমবর্ধমান ডাটাবেস প্রযুক্তি, নিয়মিতভাবে পুনরুদ্ধারের পরিস্থিতি পরীক্ষা করে নিশ্চিত করে যে তার সুপারিশগুলি বাস্তব-বিশ্বের সেরা অনুশীলনগুলি প্রতিফলিত করে।
সম্পর্কে প্রশ্ন আছে SQL Server পুনরুদ্ধারের প্রয়োজন নাকি অতিরিক্ত ডাটাবেস সমস্যা সমাধানের নির্দেশিকা প্রয়োজন? ইউয়ান স্বাগত জানায়? প্রতিক্রিয়া এবং পরামর্শ এই প্রযুক্তিগত সম্পদ উন্নত করার জন্য।











