বিচ্ছিন্নতা বা সংযুক্তি কী এবং তারা কীভাবে কাজ করে?
আমরা বিচ্ছিন্নতা দিয়ে শুরু করব। আপনি যখন এসকিউএল সার্ভারে কোনও ডাটাবেস বিচ্ছিন্ন করেন, আপনি ডাটাবেসটিকে অফলাইনে নিচ্ছেন এবং যে এসকিউএল সার্ভারের উদাহরণ থেকে আপনি এটি পৃথক করছেন তা থেকে সরিয়ে ফেলছেন। ডাটাবেস ডেটা এবং লগ ফাইল কৌশল অবলম্বন করে এবং একটি সামঞ্জস্যপূর্ণ অবস্থায় রেখে দেওয়া হয় যাতে আপনি পরবর্তী সময়ে বা অন্য এসকিউএল সার্ভারের উদাহরণস্বরূপ ডাটাবেস সংযুক্ত করতে পারেন। সংযুক্তি একটি ডাটাবেস থেকে ডেটা এবং লগ ফাইলগুলিকে সংযুক্ত করে যা যথাযথভাবে বিচ্ছিন্ন করা হয়েছে (বা এটি এসকিউএল সার্ভারের একটি ক্লিন্ট শাট ডাউন উদাহরণ থেকে অনুলিপি করা হয়েছিল) এসকিউএল সার্ভারের একটি উদাহরণের সাথে এবং ডাটাবেস অনলাইনে নিয়ে আসে।
আমি কীভাবে একটি ডেটাবেস আলাদা করব?
আপনি এটি টি-এসকিউএল বা এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও জিইউআই থেকে করতে পারেন।
জিইউআইতে আপনি যে ডাটাবেসটি আলাদা করতে চান তার ডানদিকে ক্লিক করুন, নির্বাচন করুন All Tasks
এবং ক্লিক করুন Detach
। সেখান থেকে আপনি বিচ্ছিন্ন ডায়ালগ পাবেন। কার্যকর করার জন্য মাঝখানে যে কোনও সক্রিয় সংযোগ এবং রোলব্যাক কাজ জোর করে সংযোগ বিচ্ছিন্ন করার জন্য আপনি প্রথমে সংযোগগুলি ড্রপ করতে বেছে নিতে পারেন। বিচ্ছিন্ন হওয়ার আগে আপনি পরিসংখ্যান আপডেট করতেও চয়ন করতে পারেন।
টি-এসকিউএল এ:
-- You don't want to be in the database you are trying to detach
USE Master
GO
-- Optional step to drop all active connections and roll back their work
ALTER DATABASE DatabaseName
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
-- Perform the detach
EXEC sp_detach_db 'DatabaseName'
GO
সিস্টেম সঞ্চিত পদ্ধতির জন্য sp_detach_db দুটি পরামিতি রয়েছে যা আপনি optionচ্ছিকভাবে পাস করতে পারেন:
@skipchecks
- গ্রহণযোগ্য ইনপুট হয় 'True'
বা 'False'
যদি 'True'
, এসকিউএল সার্ভার বিচ্ছিন্ন হওয়ার আগে পরিসংখ্যান আপডেট করে। যদি ' False'
, এটা না। আপনি যদি এখানে কিছু নির্দিষ্ট না করেন তবে পরিসংখ্যানগুলি এসকিউএল সার্ভার 2005 বা তার পরে আপডেট করা হবে।
@keepfulltextindexfile
- এখানে ডিফল্টটি হ'ল 'True'
- যদি এটি সত্য করে সেট করা থাকে তবে বিচ্ছিন্ন হওয়ার সময় সম্পূর্ণ পাঠ্য সূচি মেটাডেটা বাদ দেওয়া হবে না।
আমি নীচে তুলে ধরেছি ঝুঁকির বিষয়ে বিচ্ছিন্নতা সম্পর্কে আরও কিছু এবং আরও বিশদ দেখতে, এর জন্য বই অনলাইন নিবন্ধটিsp_detach_db
শুরু করার জন্য ভাল জায়গা।
আমি কীভাবে একটি ডেটাবেস সংযুক্ত করব?
আপনি এটি টি-এসকিউএল বা এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও জিইউআই থেকেও করতে পারেন।
( দ্রষ্টব্য: যদি আপনার কাছে কোনও ডেটাবেস থেকে ডেটা এবং লগ ফাইল থাকে যা সঠিকভাবে বিযুক্ত নয়, আপনার সংযুক্তি কাজ করতে পারে না det যখন বিচ্ছিন্নতা ঘটে তখন ডাটাবেসটিকে অফলাইনে আনা হয় এবং লগ এবং ডেটা ফাইলগুলিকে একটি সামঞ্জস্যপূর্ণ অবস্থায় রাখা হয় This যখন কোনও পরিষেবা পরিষ্কারভাবে বন্ধ হয়ে যায় তখনই ঘটে ))
জিইউআইতে, আপনি Databases
আপনার উদাহরণের জন্য শীর্ষ স্তরের ফোল্ডারে ডান ক্লিক করুন এবং নির্বাচন করুন Attach
। পরবর্তী ডায়লগে আপনি তারপরে যে ডাটাবেসটি সংযুক্ত করতে চান এবং আপনার অন্যান্য ফাইলগুলি এবং তার যথাযথ অবস্থান নির্দিষ্ট করা আছে তা নিশ্চিত করতে চান এবং আপনার ডাটাবেস সংযুক্ত করে ওকে ক্লিক করুন।
টি-এসকিউএল-তে এসকিউএল সার্ভার 2005 এ এগিয়ে যাওয়ার সর্বোত্তম উপায় হ'ল CREATE DATABASE
কমান্ডের মাধ্যমে । এটি সেই পদ্ধতি যা এসকিউএল সার্ভার ২০১২ এর বাইরে সমর্থিত। আপনি কীভাবে ব্যবহার করতে চান তা দেখতে চাইলে sp_attach_db
আপনি বইগুলিতে অনলাইনে নিবন্ধগুলি দেখতে পারেন [sp_attach_db][3]
বা[sp_attach_single_file_db][4]
যখন আপনার লগ ফাইল এবং ডেটা ফাইলগুলি উপলভ্য থাকে এবং তারা সুসংগত হয় তখন এটি টি-এসকিউএল পদ্ধতির হয়:
- সংযুক্তি তৈরির জন্য ডেটাবেস তৈরি করুন এবং সংযুক্তি করার জন্য ক্লজ ব্যবহার করুন
CREATE DATABASE DatabaseName
ON (FILENAME = 'FilePath\FileName.mdf'), -- Main Data File .mdf
(FILENAME = 'FilePath\LogFileName.ldf'), -- Log file .ldf
(FILENAME = 'FilePath\SecondaryDataFile.ndf) -- Optional - any secondary data files
FOR ATTACH
GO
অনলাইনে বইগুলিতে ডেটাবেস তৈরি করুন বিবরণ সম্পর্কে আপনি আরও দেখতে পারেন ।
কীভাবে আমি এসকিউএল সার্ভার এক্সপ্রেসে আলাদা / সংযুক্ত করি?
আসলে এটি একই। আপনি যদি এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও এক্সপ্রেস ব্যবহার করে থাকেন তবে আপনি উপরে বর্ণিত জিইউআইতে বিচ্ছিন্ন / সংযুক্ত ডায়ালগ বা উপরে বর্ণিত এসএসএমএস এক্সপ্রেসের মাধ্যমে টি-এসকিউএল পদক্ষেপগুলি ব্যবহার করতে পারেন। সেখানে এক্সপ্রেসের সাথে কোনও পার্থক্য নেই।
আপনি SSMS এক্সপ্রেস না থাকে তাহলে, আপনি এটা বিনামূল্যে ডাউনলোড করতে পারেন ( এখানে SQL সার্ভার 2012 এক্সপ্রেস সংস্করণ)।
আপনার মধ্যে একটি SQLCMD
সেশনে প্রবেশ করতে এবং উপরে বর্ণিত একই টি-এসকিউএল কনস্ট্রাক্ট ব্যবহার করতে পারেন।
আমার কখন আলাদা করা বা সংযুক্তি করা উচিত?
প্রথমে কী আলাদা করা এবং সংযুক্ত করা উচিত তার জন্য কোনও শব্দ ব্যবহার করা উচিত নয়: ব্যাকআপ এবং পুনরুদ্ধার বিচ্ছিন্নতা এবং সংযুক্তি আপনার রুটিন পুনরুদ্ধারের উদ্দেশ্যে আপনার ডাটাবেসটিকে ব্যাকআপ করার উপায় নয়। এইভাবে কোনও লেনদেন লগ ব্যাকআপ নেই, এটি আপনার ডাটাবেসটিকে এমন একটি স্থানে রাখে যেখানে ডাটাবেস ফাইলগুলি দুর্ঘটনাক্রমে মোছা যায় এবং এই উদ্দেশ্যে মোটেও ভাল উপায় নয়।
এটি বলেছিল, কয়েকটি ব্যবহারের ক্ষেত্রে আলাদা করা এবং সংযুক্তি ভাল (সম্পূর্ণ নয়, আরও বেশি করে একটি নতুন উত্তর যুক্ত করতে বা তৈরি করতে সম্পাদনা করতে নির্দ্বিধায়):
- কখনও কখনও স্থানান্তরের জন্য (যদিও আমি এখানে আমার উত্তরে আলোচনা করা হয়েছে তাদের ব্যাকআপ / পুনরুদ্ধার পছন্দ করি )
- আপনি যখন কোনও ডাটাবেস সরাতে চান যা সক্রিয়ভাবে ব্যবহৃত হয় না তবে প্রয়োজন অনুসারে পরে সংযুক্ত করার ক্ষমতা রাখে।
- কিছু সমস্যা সমাধানের পরিস্থিতিতে, এটির জন্য বলা যেতে পারে
- ব্যাকআপ নেওয়ার বা অন্য পরিবেশে ডেটা এবং লগ ফাইল উভয়ের পুনরুদ্ধার করার জায়গা নেই (আপনি কখনও এখানে থাকবেন না তবে আমি এটি সময়ে পরিবেশের আশেপাশে ডেটাবেস ডেটাবেসগুলি সরাতে ব্যবহার করেছি .. চাইনি বা প্রয়োজন হয়নি লগ তাই লগ ফাইল একটি সংযুক্ত / পুনর্নির্মাণ)
ঝুঁকি এবং সতর্কতা
আবার, অনলাইনে বইগুলি এখানে একটি ভাল সংস্থান , তবে আমি একটি ডেটাবেস আলাদা বা সংযুক্ত করার সাথে মনে রেখে কিছু নির্দিষ্ট বিবেচনার কল করব -
বিচ্ছিন্ন করা
- আপনি আপনার ডাটাবেস অফলাইনে নিচ্ছেন। এটি আর অ্যাক্সেসযোগ্য হবে না। এটি সুস্পষ্ট হওয়া উচিত, তবে কল করা উচিত। এ কারণেই এটি কোনও দুর্দান্ত ব্যাকআপ বিকল্প নয়।
- যখন আপনার ডাটাবেস অনলাইন থাকে, এসকিউএল সার্ভার ফাইলগুলি লক করে। আমাকে ভুল প্রমাণ করার জন্য আমি এটি চেষ্টা করার সুপারিশ করব না, কারণ খেলায় অন্য কিছু পরিস্থিতি থাকতে পারে তবে এসকিউএল সার্ভার অনলাইন থাকাকালীন আপনি সাধারণত কোনও ডাটাবেস ফাইল (ডেটা, গৌণ ডেটা বা লগ ফাইল) মুছতে পারবেন না। এটি একটি ভাল জিনিস। আপনি যখন বিচ্ছিন্ন হন, আপনার কোনওরকম সুরক্ষা নেই - এটি কোনও খারাপ জিনিস হতে পারে।
- আপনি যদি ডেটাবেস দুর্নীতি নিয়ে কাজ করছেন এবং আপনি এমন কোনও জায়গা খুঁজে পেয়েছেন যা ডিটাচের প্রথম ধাপ রয়েছে - এটি ভুল - আপনি যদি কোনও দুর্নীতিগ্রস্থ ডাটাবেসকে আলাদা করেন তবে তা হতে পারে। আপনি আবার সেই ডাটাবেস সংযুক্ত করছেন না।
- আপনার নেটওয়ার্ক জুড়ে আপনার প্রোডাকশন ডেটাবেস ফাইলগুলি কাটা এবং আটকানো একটি সম্ভাব্য ফাইল স্তরের দুর্নীতি প্রবর্তনের একটি উপায় .. মাইগ্রেশন করার সময় আমি ব্যাকআপ / পুনরুদ্ধার পছন্দ করি Another
- এটি কোনও রক্ষণাবেক্ষণের পরিকল্পনা ব্যর্থ হতে পারে। পরিস্থিতিটি হ'ল আপনার মতো, আমি যেমন করেছিলাম, সেরা অনুশীলন পরীক্ষা না করেই সমস্ত ডাটাবেসের নিয়মিত ব্যাকআপগুলি পরিচালনা করার জন্য একটি রক্ষণাবেক্ষণ পরিকল্পনা স্থাপন করেছি। এটি দুর্দান্ত কাজ করে তাই আপনি এটি সম্পর্কে চিন্তাভাবনা বন্ধ করুন। এরপরে অন্য কেউ ডাটাবেস নেওয়ার সিদ্ধান্ত নেন যে তারা অফলাইন ব্যবহার করছেন না। আপনি "ডাটাবেস (গুলি)" কথোপকথনে "ডাটাবেসগুলিকে উপেক্ষা করবেন না যার অবস্থা অনলাইনে নেই" চেক করে রক্ষণাবেক্ষণ পরিকল্পনাটি পরিবর্তন না করা অবধি রক্ষণাবেক্ষণ পরিকল্পনাটি সেই বিন্দু থেকে অগ্রসর হবে। মনে রাখবেন যে এটি কেবল অফলাইন ডাটাবেসের জন্য ব্যর্থ হবে না - রক্ষণাবেক্ষণ পরিকল্পনাটি যখন অফলাইন ডাটাবেসটিকে ব্যাকআপ করার চেষ্টা করে তখন কোনও ত্রুটি দিয়ে ব্যর্থ হবে যাতে কিছু অনলাইন ডাটাবেস ব্যাকআপ নাও পেতে পারে। (এই লেখার জন্য বিভিন্ন লেখক তাই সন্দেহের সাথে আচরণ করুন)
সংযুক্ত করুন
- ঠিক যেমন আপনার ইন্টারনেট থেকে স্ক্রিপ্টগুলি চালানো উচিত নয় বা বিমানবন্দরে অপরিচিতদের কাছ থেকে প্যাকেজ গ্রহণ করা উচিত নয়, এটি যাচাই করার জন্য কিছু পদক্ষেপ ছাড়াই আপনি অন্য কারও কাছ থেকে প্রাপ্ত একটি ডাটাবেস যুক্ত করবেন না। এই ডাটাবেসটির ভিতরে ট্রিগার, সঞ্চিত প্রক্রিয়া ইত্যাদির কোড থাকতে পারে যা আপনার পরিবেশকে আপস করতে পারে। আপনি কোনও সুরক্ষিত এবং আগুনওয়ালা পরিবেশে সংযুক্ত করতে চান এমন একটি ডাটাবেস পর্যালোচনা করা উচিত, আপনার উত্পাদন ব্যবস্থা নয়।
এসকিউএল সার্ভারের বিভিন্ন সংস্করণ বা সংস্করণ সম্পর্কে কী?
সংস্করণগুলির মধ্যে ডেটাবেসগুলি পুনরুদ্ধার করার নিয়মের চেয়ে এগুলি আলাদা নয়। আপনি সাধারণত 3 সংস্করণে পরবর্তী সংস্করণে পুনরুদ্ধার করতে পারেন (এসকিউএল সার্ভার ২০০৮ থেকে এসকিউএল সার্ভার ২০১২, উদাহরণস্বরূপ কাজ করবে। এসকিউএল সার্ভার ২০০০ থেকে এসকিউএল সার্ভার ২০১২ কাজ করবে না)। আপনি ব্যাকআপ / পুনরুদ্ধার বা বিচ্ছিন্ন / সংযুক্তির মাধ্যমে পিছনে কোনও দিকে যেতে পারবেন না - আপনাকে বস্তুগুলি স্ক্রিপ্ট করতে হবে এবং সন্নিবেশগুলিকে স্ক্রিপ্ট করতে হবে এবং ম্যানুয়ালি বা এটি করে এমন কোনও সরঞ্জাম দিয়ে করতে হবে। সংস্করণগুলির জন্য, আপনি সাধারণত এসকিউএল সার্ভারের প্রধান এসকিউগুলিতে যেতে পারেন - উদাহরণস্বরূপ আপনি কোনও কাজ ছাড়াই স্ট্যান্ডার্ড থেকে এন্টারপ্রাইজে কোনও ডাটাবেস স্থানান্তর করতে পারেন। আপনি যদি এন্টারপ্রাইজ বৈশিষ্ট্যগুলি (বলুন, সংক্ষেপণ বা বিভাজন) ব্যবহার করে থাকেন তবে আপনার পদক্ষেপ নেওয়ার আগে আপনাকে সেই বৈশিষ্ট্যগুলি অক্ষম করতে হবে। আপনি যে বৈশিষ্ট্যগুলি পেয়েছেন তার একটি ধারণা পেতে পারেন '