কম্পিউটার টিউটোরিয়াল

MS SQL Server আর্কিটেকচার সম্পর্কে জানুন

আগের নিবন্ধগুলোতে আপনি SQL Server সম্পর্কে সংক্ষেপে জানেন, কম্পিউটারে SQL Server ইনস্টল করা। এই অনুচ্ছেদে আমরা SQL Server-এর আর্কিটেকচার সম্পর্কে জানব।

SQL Server আর্কিটেকচারকে নিচের বিভাগে ভাগ করে বোঝা সহজ করা হয়েছে:

  1. General Architecture - সাধারণ আর্কিটেকচার
  2. Memory Architecture - মেমরি আর্কিটেকচার
  3. Data File Architecture - ডেটা ফাইল আর্কিটেকচার
  4. Log File Architecture - লগ ফাইল আর্কিটেকচার

এখন উপরে ক্যাটাগরাইজ করা প্রতিটি SQL Server আর্কিটেকচারের বিস্তারিত যাব।

MS SQL Server আর্কিটেকচার সম্পর্কে জানুন

General Architecture - সাধারণ আর্কিটেকচার

  1. Client: রিকোয়েস্ট তৈরি করার জায়গা।
  2. Query: SQL কোয়েরি হাই-লেভেল ভাষা।
  3. Logical Units: কীওয়ার্ড, এক্সপ্রেশন, অপারেটর ইত্যাদি।
  4. N/W Packets: নেটওয়ার্ক সম্পর্কিত কোড।
  5. Protocols: SQL Server-এ ৪টি প্রোটোকল আছে:
    1. Shared Memory: লোকাল সংযোগ ও ট্রাবলশুটিংয়ের জন্য।
    2. Named Pipes: LAN-এ সংযোগের জন্য।
    3. TCP/IP: WAN সংযোগের জন্য।
    4. VIA - Virtual Interface Adapter: বিক্রেতা দ্বারা নির্দিষ্ট বিশেষ হার্ডওয়্যার প্রয়োজন, SQL 2012 ভার্সনে সাপোর্টেড নয়।
  6. Server: যেখানে SQL Services ইনস্টল করা থাকে এবং ডেটাবেস থাকে।
  7. Relational Engine: এখানেই আসল এক্সিকিউশন ঘটে। এতে Query Analyzer, Query Optimizer এবং Query Runtime থাকে।
  8. Query Parser (Command Parser) এবং Compiler (Translator): এই দুটি কোয়েরির সিনট্যাক্স চেক করে এবং কোয়েরিকে মেশিনের ভাষায় রূপান্তর করে।
  9. Query Optimizer: ইনপুট হিসেবে কোয়েরি, পরিসংখ্যান এবং Algebrizer tree নিয়ে আউটপুট হিসেবে Execution Plan তৈরি করে।
  1. Execution Plan: রোড ম্যাপের মত, কোয়েরি এক্সিকিউশনের অংশ হিসেবে নেওয়া ধাপের ক্রম ধারণ করে।
  2. Query Executor: কোয়েরি ধাপে ধাপে এক্সিকিউট হয় এখানে, Execution Plan-এর সাহায্যে এবং Storage Engine-এর সাথে যোগাযোগও এখান থেকে হয়।
  3. Storage Engine: স্টোরেজ সিস্টেমে (ড্রাইভ, SAN ইত্যাদি) ডেটা সংরক্ষণ ও পুনরুদ্ধার, ডেটা ম্যানিপুলেশন, লকিং এবং ট্রানজ্যাকশন ম্যানেজমেন্টের দায়িত্ব।
  4. SQL OS: হোস্ট মেশিন (Windows OS) এবং SQL Server-এর মাঝপথে অবস্থিত। ডেটাবেস ইঞ্জিনে সকল অপারেশন "যত্ন নেওয়া" হয় SQL OS দ্বারা। SQL OS বিভিন্ন অপারেটিং সিস্টেম সার্ভিস প্রদান করে, যেমন বাফার পুল, লগ বাফার দিয়ে মেমরি ম্যানেজমেন্ট, ডেডলক ডিটেকশন, ব্লক এবং লক স্ট্রাকচার ব্যবহার।
  5. Checkpoint: চেকপয়েন্ট একটি অভ্যন্তরীণ প্রক্রিয়া, Buffer Cache থেকে সমস্ত মডিফাইড পেজ (Dirty Page ডাকা হয়) ফিজিক্যাল ড্রাইভে লেখে। এছাড়া Log Buffer থেকে লগও ফিজিক্যাল ফাইলে লেখে। Dirty Pages ড্রাইভে লেখাকে Hardening of dirty pages বলা হয়।
  6. Lazy Writer: Lazy Writer Dirty Pages কে হার্ড ড্রাইভে পুশ করে একদম ভিন্ন কারণের জন্য, Buffer Pool-এ মেমরি মুক্ত করার জন্য। এটি ঘটে যখন SQL Server মেমরির অভাব অনুভব করে। এই প্রক্রিয়া একটি অভ্যন্তরীণ প্রক্রিয়া দ্বারা নিয়ন্ত্রিত এবং এর জন্য কোনো সেটিং নেই।

SQL Server liên tục মেমরি ব্যবহার মনিটর করে রিসোর্স উপলব্ধতা ও প্রতিযোগিতা आँকতে, নিশ্চিত করে একটি নির্দিষ্ট পরিমাণ ফ্রি স্পেস সবসময় উপলব্ধ থাকে। রিসোর্স দ্বন্দ্ব সনাক্ত করলে Lazy Writer ট্রিগার করে কিছু Dirty Page ড্রাইভে নিয়ে মেমরি মুক্ত করে। এটি Least Recently Used (LRU) অ্যালগরিদম ব্যবহার করে কোন পেজ ড্রাইভে পুশ করা হবে তা নির্ধারণ করে। Lazy Writer যদি সর্বদা সক্রিয় থাকে, তবে মেমরির সাথে বোতলনেক তৈরি করতে পারে।

Memory Architecture - মেমরি আর্কিটেকচার

মেমরি আর্কিটেকচারের الرئيسية বৈশিষ্ট্যগুলো নিচে দেওয়া হলো:

  1. সকল ডেটাবেস সফটওয়্যারের মৌলিক ডিজাইন লক্ষ্যের একটিম্ব ডিস্ক I/O ন্যূনতম করা, কারণ ডিস্ক পড়া-লেখা সবচেয়ে রিসোর্স-গভীর ক্রিয়া।
  2. Windows ইন্টারনাল মেমরিকে Virtual Address Space বলা হয়, যা Kernel Mode (OS মোড) এবং User (SQL Server-এর মত অ্যাপ্লিকেশন) দ্বারা শেয়ার করা হয়।
  3. SQL Server-এর ইউজার অ্যাড্রেস স্পেস দুটি অংশে ভাগ: MemToLeave এবং Buffer Pool।
  4. MemToLeave (MTL) এবং Buffer Pool (BPool)-এর আকার SQL Server বুট প্রসেসের সময় নির্ধারণ করে।
  5. Buffer Management হাই I/O পারফরমেন্স অর্জনের জন্য গুরুত্বপূর্ণ কম্পোনেন্ট। এতে দুটি মেকানিজম থাকে: Buffer Manager (ডেটাবেস অ্যাক্সেস ও আপডেট করতে) এবং Buffer Pool পেজ (I/O ফাইল ডেটাবেসে কাটতে)।
  6. Buffer Pool-и flere partiibhag korara jay, shobcheye mulyo: Buffer Cache o Procedure Cache. Buffer Cache মেমরিতে ডেটা পেজ রাখে যাতে বারবার অ্যাক্সেস করা ডেটা ক্যাশ থেকে বের করা যায়। রিপ্লেসমেন্ট প্রসেস ড্রাইভ থেকে ডেটা পেজ পড়ে। ক্যাশ থেকে ডেটা পড়া I/O অপারেশন সংখ্যা কমিয়ে পারফরমেন্স অপ্টিমাইজ করে, কারণ মেমরি থেকে অ্যাক্সেস ডিস্ক থেকে দ্রুত।
  7. Procedure Cache স্টোরড প্রসিডিউর এবং এক্সিকিউশন প্ল্যান ধরে এক্সিকিউশন প্ল্যান তৈরির সংখ্যা অপ্টিমাইজ করে। DBCC PROCCACHE কমান্ড দিয়ে Procedure Cache-র ক্যাপাসিটি ও অপারেশন সম্পর্কে জানা যায়।
  8. Buffer Pool-এর অন্যান্য অংশ:
    1. System-level data structures: ইনস্ট্যান্স লেভেলের ডেটাবেস ও লক সম্পর্কিত ডেটা ধারণ করে।
    2. Log Cache: ট্রানজ্যাকশন পেজ পড়া-লিখার জন্য নিযুক্ত।
    3. Connection Context: ইনস্ট্যান্সের সাথে প্রতিটি সংযোগের একটি ছোট মেমরি এলাকা থাকে সংযোগের বর্তমান অবস্থা রেকর্ড করার জন্য। এতে স্টোরড প্রসিডিউর ও ইউজার-ডিফাইনড ফাংশন প্যারামিটার, কার্সর লোকেশন ইত্যাদি থাকে।
    4. Stack Space: Windows SQL Server-এ শুরু হওয়া প্রতিটি থ্রেডের জন্য স্ট্যাক স্পেস অ্যালোকেট করে।

Data File Architecture - ডেটা ফাইল আর্কিটেকচার

এই আর্কিটেকচারের কম্পোনেন্টগুলো নিচে দেওয়া হলো:

File Group (ফাইল গ্রুপ):

ডেটাবেস ফাইলগুলো বিতরণ ও পরিচালনার উদ্দেশ্যে ফাইল গ্রুপে গোষ্ঠীভুক্ত করা যায়। একটি ফাইল শুধু একটি ফাইল গ্রুপের সদস্য হতে পারে। লগ ফাইলগুলো ফাইল গ্রুপে গোষ্ঠীভুক্ত করা যায় না কারণ লগ ফাইলের আকার ডেটা ভলিউম থেকে আলাদা পরিচালিত হয়।

SQL Server-এ দুটি ধরনের File Group রয়েছে: Primary এবং User-defined। Primary-তে প্রধান ডেটা ফাইল এবং যেকোনো ফাইল যা নির্দিষ্টভাবে File Group-এ অ্যাসাইন করা নেই থাকে। সিস্টেম টেবিলের সকল পেজ Primary-তে অ্যালোকেট করা হয়। User-defined হলো ব্যবহারকারী-নির্দিষ্ট ফাইল গ্রুপ, যা ডেটাবেস তৈরি বা ডিলিট করার কমান্ডে file group কীওয়ার্ড ব্যবহার করে নির্দিষ্ট করা হয়।

প্রতিটি ডেটাবেসে একটি File Group ডিফল্ট ফাইল গ্রুপ হিসেবে কাজ করে। SQL Server যখন একটি পেজ টেবিল বা ইন্ডেক্সের জন্য অ্যাসাইন করে (তবে সেটি কোনো File Group-এ নেই তৈরি করার সময়), সেই পেজটি ডিফল্ট ফাইল গ্রুপে থাকবে। ডিফল্ট ফাইল গ্রুপ এক File Group থেকে অন্য File Group-এ পরিবর্তন করতে db_owner ফিক্সড ডেটাবেস রোল দরকার।

Primary ডিফল্ট ফাইল গ্রুপ। ফাইল ও ইনডিভিজুয়াল ফাইল গ্রুপ ব্যাকআপ করতে ব্যবহারকারীর db_owner ফিক্সড ডেটাবেস রোল থাকতে হবে।

File (ফাইল):

ডেটাবেসে ৩ ধরনের ফাইল থাকে: Primary (প্রধান ডেটা ফাইল), Secondary (দ্বিতীয়ক ডেটা ফাইল) এবং Log (লগ ফাইল)। Primary ডেটাবেসের শুরুর পয়েন্ট এবং ডেটাবেসের অন্যান্য ফাইলগুলোর দিকে নির্দেশ করে।

প্রতিটি ডেটাবেসে একটি Primary থাকে। প্রধান ডেটা ফাইলের এক্সটেনশন .mdf সেট করা পরামর্শদায়ক। Secondary ডেটা ফাইল হলো প্রধান ডেটা ফাইল ব্যতীত অন্যান্য ফাইল। একটি ডেটাবেসে অনেক বা শুধু একটি অতিরিক্ত ডেটা ফাইল থাকতে পারে। অতিরিক্ত ডেটা ফাইলের এক্সটেনশন .ndf সেট করা উচিত।

Log files ডেটাবেস রিকভার করতে ব্যবহৃত সকল তথ্য ধারণ করে। ডেটাবেসে কমপক্ষে একটি লগ ফাইল থাকতে হবে। একটি ডেটাবেসের জন্য একাধিক লগ ফাইল থাকতে পারে। এক্সটেনশন .ldf সেট করা উচিত।

ডেটাবেসের সকল ফাইলের লোকেশন মাস্টার ডেটাবেসে এবং ডেটাবেসের Primary ফাইলে দুজায় রেকর্ড করা থাকে। অধিকাংশ ক্ষেত্রে ডেটাবেস টুল মাস্টার ডেটাবেস থেকে ফাইল লোকেশন ব্যবহার করে।

ফাইলটির দুটি নাম থাকে: Logical এবং Physical। Logical নামটি সকল T-SQL কমান্ডে ফাইলটি রেফার করতে ব্যবহৃত হয়। Physical নাম হলো OS_file_name, এটি অবশ্যই অপারেটিং সিস্টেমের নিয়ম মেনে চলতে হবে। ডেটা ফাইল ও লগ ফাইল FAT বা NTFS ফাইল সিস্টেমে রাখা যায়, কিন্তু কমপ্রেসড ফাইল সিস্টেমে রাখা যায় না। একটি ডেটাবেসে সর্বোচ্চ ৩২,৭৬৭ ফাইল থাকতে পারে।

Extent (এক্সটেন্ট):

Extent হলো স্পেস অ্যালোকেশনের মৌলিক একক প্রতিটি টেবিল এবং ইন্ডেক্সের জন্য। প্রতিটি Extent ৮টি সন্নিহিত পেজ বা ৬৪KB। SQL Server-এ ২ ধরনের Extent থাকে: Uniform এবং Mixed। Uniform একক অবজেক্ট দিয়ে গঠিত, Mixed সর্বোচ্চ ৮টি অবজেক্ট দিয়ে গঠিত।

Page (পেজ):

Page হলো SQL Server-এর ডেটা স্টোরেজের মৌলিক একক। একটি পেজের আকার ৮KB। প্রতিটি পেজের শুরুতে ৯৬ বাইট হেডার থাকে, সিস্টেম ইনফরমেশন সংরক্ষণের জন্য যেমন পেজ টাইপ, পেজে ফ্রি স্পেসের পরিমাণ এবং পেজ মালিকের ID। SQL Server-এ ৯ ধরনের ডেটা পেজ থাকে:

  1. Data: টেক্সট, ntext এবং ইমেজসহ সকল ডেটা সারি।
  2. Index: ইন্ডেক্স আইটেম।
  3. Text/Image: টেক্সট, ntext এবং ইমেজ ডেটা।
  4. GAM: এক্সটেন্ট বরাদ্দ সম্পর্কে তথ্য।
  5. SGAM: সিস্টেম লেভেলে বরাদ্দ করা এক্সটেন্টের তথ্য।
  6. Page Free Space (PFS): পেজে উপলব্ধ ফ্রি স্পেসের তথ্য।
  7. Index Allocation Map (IAM): টেবিল বা ইন্ডেক্স দ্বারা ব্যবহৃত এক্সটেন্টের তথ্য।
  8. Bulk Changed Map (BCM): গত ব্যাকআপ কমান্ড থেকে বাল্ক অপারেশন দ্বারা পরিবর্তিত এক্সটেন্টের তথ্য।
  9. Differential Changed Map (DCM): গত ডেটাবেস ব্যাকআপ কমান্ড থেকে পরিবর্তিত এক্সটেন্টের তথ্য।

Log File Architecture - লগ ফাইল আর্কিটেকচার

SQL Server-এ ট্রানজ্যাকশন লগ সঠিকভাবে কাজ করে যখন এটি লগ রেকর্ডের একটি সিকোয়েন্স হয়। প্রতিটি লগ Log Sequence Number (LSN) দ্বারা চিহ্নিত হয়, যাতে সেটি যে ট্রানজ্যাকশনে patří তার ID থাকে।

লগ রেকর্ড ডেটা মডিফিকেশন বা এক্সিকিউট হওয়া অ্যাক্টিভিটি বা ডেটা এডিট করার আগে ও পরের ইমেজ রেকভার করে। পূর্বের ইমেজ হলো অপারেশন করার আগের ডেটার কপি, পরের ইমেজ হলো অপারেশন সম্পন্ন হওয়ার পরের ডেটার কপি।

এক অপারেশন রিকভার করার ধাপ লগের টাইপের ওপর নির্ভর করে।

  1. লজিক্যাল অপারেশন লগ করা হয়।
  2. পূর্বের লজিক্যাল অপারেশনে যেতে হলে অপারেশনটি আবার করা হবে।
  3. পরের লজিক্যাল অপারেশনে ফেরতে হলে বিপরীত লজিক্যাল অপারেশন করা হবে।
  4. পূর্বের এবং পরের ইমেজ লগ করা হয়।
  5. পূর্বের অপারেশনে যেতে হলে পরের ইমেজ প্রয়োগ করা হবে।
  6. পরের অপারেশনে ফেরতে হলে পূর্বের ইমেজ প্রয়োগ করা হবে।

বিভিন্ন অপারেশন ট্রানজ্যাকশন লগে রেকর্ড করা হয়। নিচের অপারেশনগুলো সেখানে থাকবে:

  1. প্রতিটি ট্রানজ্যাকশনের শুরু ও শেষ।
  2. সকল ডেটা মডিফিকেশন (insert, update, delete), সিস্টেম স্টোরড প্রসিডিউর বা ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ কমান্ড (DDL) টেবিলে পরিবর্তন সহ সিস্টেম টেবিল।
  3. সকল এক্সটেন্ট ও পেজ অ্যালোকেশন, পেজ অ্যালোকেশন বাতিল।
  4. টেবিল ও ইন্ডেক্স তৈরি বা ডিলিট।

Rollback অপারেশনও লগ করা হয়। প্রতিটি ট্রানজ্যাকশন লগে একটি স্পেস ধরে রাখে যাতে রোলব্যাক কমান্ড বা এরর মেসেজ এক্সিকিউট করার জন্য পর্যাপ্ত লগ স্পেস থাকে। এই স্পেস ট্রানজ্যাকশন সম্পন্ন হলে মুক্ত হয়।

লগ ফাইলের প্রথম লগ (পুরো ডেটাবেস সফলভাবে রিস্টোর করার জন্য প্রয়োজনীয়) থেকে শেষ লগ পর্যন্তের অংশকে লগ এক্টিভিটি সেকশন বা এক্টিভ লগ বলা হয়। এটি পূর্ণ ডেটাবেস রিকভারির জন্য প্রয়োজনীয় লগ সেকশন। এক্টিভ লগের কোনো অংশ গার্বল করা হয় না। প্রথম লগ রেকর্ডের LSN কে Min LSN (Minimum Recovery LSN) বলা হয়।

SQL Server Database Engine প্রতিটি ফিজিক্যাল লগ ফাইলকে বেশ সारे ভার্চুয়াল লগ ফাইলে ভাগ করে। ভার্চুয়াল লগ ফাইলের আকার ফিক্সড নয় এবং প্রতিটি ফিজিক্যাল লগ ফাইলের জন্য ভার্চুয়াল লগ ফাইলের সংখ্যাও ফিক্সড নয়।

Database Engine লগ ফাইল তৈরি বা এক্সটেন্ড করার সময় স্বয়ংক্রিয়ভাবে ভার্চুয়াল লগ ফাইলের আকার নির্বাচন করে। Database Engine কম সংখ্যক ভার্চুয়াল ফাইল রক্ষা করার চেষ্টা করে। ভার্চুয়াল লগ ফাইলের আকার অ্যাডমিনিস্ট্রেটর দ্বারা কনফিগার বা সেট আপ করা যায় না। শুধু যখন ফিজিক্যাল লগ ফাইল ছোট আকার এবং growth_increment মানದಲ್ಲಿ ডিফাইন করা থাকে, তখন ভার্চুয়াল লগ ফাইল সিস্টেম পারফরমেন্সে প্রভাব ফেলে।

Size value হলো লগ ফাইলের প্রাথমিক আকার এবং growth_increment হলো ফাইল নতুন স্পেস চাইল 때마다 যোগ করা স্পেসের পরিমাণ। লগ ফাইল অনেক ছোট ইনক্রিমেন্টের কারণে বড় আকারে পৌঁছালে, অনেক ভার্চুয়াল লগ ফাইল হবে। এটি ডেটাবেস স্টার্টআপ, লগ ব্যাকআপ ও রিকভারি অপারেশন ধীর করতে পারে।

পরামর্শ হলো লগ ফাইলে সাইজ ভ্যালু চূড়ান্ত প্রয়োজনীয় আকারের কাছাকাছি এবং יחসিক বড় growth_increment মান দিন। SQL Server write-ahead log (WAL) ব্যবহার করে, নিশ্চিত করে যে কোনো ডেটা মডিফিকেশন ড্রাইভে লেখার আগে সংশ্লিষ্ট লগ ড্রাইভে লেখা হয়েছে। এটি ট্রানজ্যাকশনের ACID বৈশিষ্ট্য বজায় রাখতে সাহায্য করে।

SQL-এ Algebrizer

Algebrizer সম্পর্কে কিছু বলতে চাই: Algebrizer কোয়ারি এক্সিকিউশন প্রসেসের একটি প্রক্রিয়া। Parser-র পর এটি কাজ শুরু করে। Query Parser সঠিক কোয়ারি পেলে সেটি Algebrizer-এ পাঠায় এবং Algebrizer-এর কাজ শুরু হয়: Algebrizer অবজেক্ট ও কলাম নাম যাচাই করার দায়িত্বে থাকে (যেটি আপনি কোয়ারিতে দিয়েছেন বা কোয়ারি দ্বারা রেফারেন্স করা হয়েছে)। উদাহরণস্বরূপ, কোয়ারিতে কলাম নাম ভুল লেখা থাকলে Algebrizer সেটি নিশ্চিত করে এরর তৈরি করে। Algebrizer একটি দেওয়া কোয়ারিতে প্রসেস হচ্ছে সকল ডেটা টাইপ চিহ্নিত করে। Algebrizer যাচাই করে GROUP BY এবং সমন্বিত কলামগুলো সঠিক জায়গায় আছে কিনা। উদাহরণস্বরূপ, নিচের কোয়ারি লিখে শুধু Ctrl+F5 চাপলে (পার্স করলে) এরর হবে না। কিন্তু F5 চাপলে (রান করলে) Algebrizer কাজ করবে এবং এরর ফেরত দেবে।

 USE AdventureWorks 
GO
SELECT MakeFlag, SUM(ListPrice)
FROM Production.Product
GROUP BY ProductNumber

SQL Server-এ Checkpoint

SQL Server 2012-এ ৪ ধরনের চেকপয়েন্ট রয়েছে:

  1. Automatic: এটি সবচেয়ে সাধারণ চেকপয়েন্ট, ব্যাকগ্রাউন্ড প্রসেস হিসেবে চলে যাতে SQL Server Database Server Configuration Option-এ Recovery Interval-এ নির্দিষ্ট সময়ের মধ্যে রিস্টোর করা যায়।
  2. Indirect: এই চেকপয়েন্ট শুধু SQL Server 2012-এ উপলব্ধ। এটি একটি ব্যাকগ্রাউন্ড প্রসেস কিন্তু শুধু নির্দিষ্ট ব্যবহারকারীদের জন্য যারা কনফিগারেশন অপশনে একটি নির্দিষ্ট ডেটাবেসের রিকভারি টাইম নির্দিষ্ট করেছেন। Target_Recovery_Time একটি নির্দিষ্ট ডেটাবেসের জন্য নির্বাচন করলে, সেটি সার্ভারের Recovery Interval কে ওভাররাইড করে, সেই ডেটাবেসে Automatic চেকপয়েন্ট এড়াতে।
  3. Manual: এই চেকপয়েন্ট যেকোনো SQL কমান্ডের মত চলে, আপনি চেকপয়েন্ট কমান্ড দিলে সেটি চলবে পুরা হওয়া পর্যন্ত। এই চেকপয়েন্ট শুধু করেন্ট ডেটাবেসে চলে। Checkpoint_Duration অপশনে নির্দিষ্ট করতে পারেন কতক্ষণে চেকপয়েন্ট সম্পন্ন চান।
  4. Internal: একজন ব্যবহারকারী হিসেবে আপনি এই ধরনের চেকপয়েন্ট নির্দিষ্ট অ্যাকশনে নিয়ন্ত্রণ করতে পারবেন না, যেমন:
    1. সকল ডেটাবেসে চেকপয়েন্ট অ্যাকশন বন্ধ করা (যদি না শাটডাউন ফেইল হয়, নরমাল নয় - Shutdown with nowait কমান্ড ব্যবহার করে)।
    2. রিকভারি মডেল Full/Bulk-logged থেকে Simple-এ পরিবর্তন হলে।
    3. ডেটাবেস ব্যাকআপ নেওয়ার সময়।
    4. ডেটাবেস Simple recovery মোডে থাকলে চেকপয়েন্ট প্রসেস স্বয়ংক্রিয়ভাবে হবে বা লগ ৭০% ফুল হলে, অথবা সার্ভারের Recovery Interval অপশন অনুযায়ী।
    5. ALTER DATABASE কমান্ড লগ/ডেটা ফাইল যোগ বা ডিলিট করলেও চেকপয়েন্ট শুরু হয়।
    6. ডেটাবেস রিকভারি মডেল Bulk-logged থাকলে এবং মিনিমাল লগিং অপারেশন সম্পন্ন হলে চেকপয়েন্ট হয়।

এটি সম্ভবত SQL Server-এর "সবচেয়ে মিষ্টি" অংশ, কিন্তু এর আর্কিটেকচার বোঝা সবকিছু কীভাবে কাজ করে তা বোঝার সাহায্য করে, কোনো এরর হলে কিছুটা অনুমান করা যায়। এটি ডেটাবেসের সাথে কাজ করা সহজ করে তোলে।

পরবর্তী অনুচ্ছেদে আমরা Management Studio সম্পর্কে জানব এবং ধীরে ধীরে SQL Server-এর বেসিক কমান্ডগুলোতে যাব।


  1. MS SQL Server-এ ডেটাবেস রিকভারি (পুনরুদ্ধার)

  2. MS SQL Server-এ ডেটাবেস ডিলিট করা

  3. MS SQL Server আর্কিটেকচার সম্পর্কে জানুন

  4. MS SQL Server কী?