কম্পিউটার

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

পূর্ববর্তী নিবন্ধগুলিতে, আপনি ইতিমধ্যেই সংক্ষেপে SQL সার্ভার সম্পর্কে জানেন, কিভাবে কম্পিউটারে SQL সার্ভার ইনস্টল করতে হয়। এই বিভাগে আমরা SQL সার্ভারের আর্কিটেকচার সম্পর্কে জানব।

আমরা এসকিউএল সার্ভার আর্কিটেকচারকে নিম্নলিখিত বিভাগগুলিতে বিভক্ত করব যাতে এটি বোঝা সহজ হয়:

  1. সাধারণ স্থাপত্য - সাধারণ
  2. মেমরি আর্কিটেকচার - মেমরি
  3. ডেটা ফাইল আর্কিটেকচার - ডেটা ফাইল
  4. লগ ফাইল আর্কিটেকচার - লগ ফাইল

এখন আমরা উপরে শ্রেণীবদ্ধ প্রতিটি ধরনের SQL সার্ভার আর্কিটেকচারের বিশদ বিবরণে যাব৷

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

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

  1. ক্লায়েন্ট:The যেখানে অনুরোধ করা হয়েছে।
  2. কোয়েরি: এসকিউএল কোয়েরি উচ্চ-স্তরের ভাষা।
  3. লজিক্যাল ইউনিট: কীওয়ার্ড, এক্সপ্রেশন, অপারেটর, .
  4. N / W প্যাকেট: নেটওয়ার্ক সম্পর্কিত কোড।
  5. প্রোটোকল: এসকিউএল সার্ভারে আমাদের 4টি প্রোটোকল রয়েছে:
    1. শেয়ারড মেমরি:স্থানীয় সংযোগ এবং সমস্যা সমাধানের উদ্দেশ্যে।
    2. নামযুক্ত পাইপ:LAN এ সংযোগের জন্য।
    3. TCP/IP:WAN সংযোগের জন্য।
    4. VIA-ভার্চুয়াল ইন্টারফেস অ্যাডাপ্টার:বিশেষ হার্ডওয়্যার প্রয়োজনীয়তা বিক্রেতা দ্বারা সেট করা হয় এবং SQL 2012 সংস্করণ দ্বারা সমর্থিত নয়৷
  6. সার্ভার: যেখানে SQL পরিষেবা ইনস্টল করা আছে এবং একটি ডাটাবেস আছে।
  7. রিলেশনাল ইঞ্জিন: এখানেই প্রকৃত মৃত্যুদণ্ড কার্যকর করা হবে। এটিতে একটি ক্যোয়ারী বিশ্লেষক, কোয়েরি অপ্টিমাইজার এবং কোয়েরি রানটাইম রয়েছে৷
  8. কোয়েরি পার্সার (কমান্ড পার্সার) এবং কম্পাইলার (অনুবাদক):এগুলো কোয়েরির সিনট্যাক্স চেক করার জন্য এবং ক্যোয়ারীটিকে মেশিনের ভাষায় রূপান্তর করার জন্য দুইজন দায়ী।
  9. কোয়েরি অপ্টিমাইজার: এটি একটি ক্যোয়ারী, পরিসংখ্যান এবং অ্যালজেব্রিজার ট্রি হিসাবে ইনপুট গ্রহণ করে একটি এক্সিকিউশন প্ল্যান হিসাবে আউটপুট প্রস্তুত করবে৷
  1. এক্সিকিউশন প্ল্যান: একটি রোড ম্যাপের মতো, এতে ক্যোয়ারী সম্পাদনের অংশ হিসাবে নেওয়া পদক্ষেপের ক্রম রয়েছে৷
  2. কোয়েরি নির্বাহক: এখানেই এক্সিকিউশন প্ল্যানের সাহায্যে ধাপে ধাপে ক্যোয়ারী চালানো হয় এবং যেখানে স্টোরেজ ইঞ্জিনের সাথে যোগাযোগ করা হবে।
  3. স্টোরেজ ইঞ্জিন: স্টোরেজ সিস্টেমে ডেটা সংরক্ষণ এবং পুনরুদ্ধারের জন্য দায়ী (ড্রাইভ, SAN, .), ডেটা ম্যানিপুলেট করা, লক করা এবং লেনদেন পরিচালনা করা৷
  4. SQL OS: হোস্ট মেশিন (উইন্ডোজ ওএস) এবং SQL সার্ভারের মধ্যে অবস্থিত। সমস্ত ক্রিয়াকলাপ ডাটাবেস ইঞ্জিনে সঞ্চালিত হয় যা SQL OS দ্বারা "যত্ন করা হয়"। SQL OS বিভিন্ন অপারেটিং সিস্টেম পরিষেবা প্রদান করে, যেমন বাফার পুলের সাথে মেমরি ব্যবস্থাপনা, লগ বাফার, ডেডলক সনাক্তকরণ, ব্লক এবং লক স্ট্রাকচার ব্যবহার করে৷
  5. চেকপয়েন্ট: চেকপয়েন্ট হল একটি অভ্যন্তরীণ প্রক্রিয়া, বাফার ক্যাশে থেকে ফিজিক্যাল ড্রাইভে সমস্ত পরিবর্তিত পৃষ্ঠা (যাকে ডার্টি পেজ বলা হয়) লেখা। উপরন্তু, এটি লগ বাফার থেকে ফিজিক্যাল ফাইলে লগ লগও করে। ড্রাইভে নোংরা পৃষ্ঠাগুলি রেকর্ড করাকে নোংরা পৃষ্ঠাগুলি শক্ত করা নামেও পরিচিত৷
  6. অলস লেখক: অলস লেখক একটি সম্পূর্ণ ভিন্ন কারণে ডার্টি পেজ এবং হার্ড ড্রাইভগুলিকে পুশ করবে, যা বাফার পুলে মেমরি খালি করা। এটি ঘটে যখন SQL সার্ভারের মেমরি ফুরিয়ে যায়। এই প্রক্রিয়াটি একটি অভ্যন্তরীণ প্রক্রিয়া দ্বারা নিয়ন্ত্রিত হয় এবং এর জন্য কোন সেটিংস নেই৷

SQL সার্ভার ক্রমাগত মেমরি ব্যবহার নিরীক্ষণ করে সম্পদের প্রাপ্যতা এবং প্রতিযোগিতার মূল্যায়ন করতে, নিশ্চিত করে যে একটি নির্দিষ্ট পরিমাণ খালি স্থান সর্বদা উপলব্ধ থাকে। যখন এটি কোনো রিসোর্স দ্বন্দ্ব শনাক্ত করে, তখন এটি ল্যাজি রাইটারকে ড্রাইভে কিছু ডার্টি পেজ সরাতে এবং মেমরি খালি করতে ট্রিগার করবে। হার্ড ড্রাইভে কোন পৃষ্ঠাটি পুশ করা হবে তা নির্ধারণ করতে এটি সাম্প্রতিক সময়ে ব্যবহৃত অ্যালগরিদম (LRU) ব্যবহার করে। অলস লেখক সবসময় সক্রিয় থাকলে, এটি স্মৃতিতে বাধা সৃষ্টি করতে পারে।

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

নিম্নলিখিত মেমরি আর্কিটেকচারের প্রধান বৈশিষ্ট্যগুলি হল:

  1. সমস্ত ডাটাবেস সফ্টওয়্যারের মৌলিক ডিজাইন লক্ষ্যগুলির মধ্যে একটি হল ডিস্ক I/O-কে ছোট করা কারণ ডিস্ক পড়া এবং লেখার প্রক্রিয়া হল সবচেয়ে সম্পদ নিবিড় ক্রিয়াগুলির মধ্যে একটি৷
  2. উইন্ডোজ অভ্যন্তরীণ মেমরি ভার্চুয়াল অ্যাড্রেস স্পেস দিয়ে কল করা যেতে পারে, কার্নেল মোড (ওএস মোড) এবং ব্যবহারকারী (এসকিউএল সার্ভারের মতো অ্যাপ্লিকেশন) দ্বারা ভাগ করা।
  3. SQL সার্ভারের ব্যবহারকারীর ঠিকানা স্থান দুটি ভাগে বিভক্ত:MemToLeave এবং বাফার পুল।
  4. MemToLeave (MTL) এবং বাফার পুল (BPool) এর আকার বুট প্রক্রিয়া চলাকালীন SQL সার্ভার দ্বারা নির্ধারিত হয়৷
  5. আপনি যদি উচ্চ I/O কর্মক্ষমতা অর্জন করতে চান তাহলে বাফার ম্যানেজমেন্ট একটি গুরুত্বপূর্ণ উপাদান। এটিতে দুটি প্রক্রিয়া রয়েছে:ডাটাবেস অ্যাক্সেস এবং আপডেট করার জন্য বাফার ম্যানেজার এবং ডাটাবেসে I/O ফাইলগুলি কাটার জন্য বাফার পুল পৃষ্ঠাগুলি৷
  6. বাফার পুলটি কয়েকটি অংশে বিভক্ত, সবচেয়ে গুরুত্বপূর্ণভাবে বাফার ক্যাশে এবং পদ্ধতি ক্যাশে। বাফার ক্যাশে ডেটা পৃষ্ঠাগুলিকে মেমরিতে রাখে যাতে ঘন ঘন অ্যাক্সেস করা ডেটা ক্যাশে থেকে বের করা যায়। প্রতিস্থাপন প্রক্রিয়া ড্রাইভ থেকে ডেটা পৃষ্ঠাগুলি পড়বে। ক্যাশে থেকে ডেটা পড়া I/O ক্রিয়াকলাপগুলির সংখ্যা কমিয়ে কর্মক্ষমতাকে অপ্টিমাইজ করে, যা মেমরি থেকে ডেটা অ্যাক্সেস করার চেয়ে ধীর।
  7. প্রক্রিয়া ক্যাশে সঞ্চিত পদ্ধতি এবং এক্সিকিউশন প্ল্যান ধারণ করে যে কতবার এক্সিকিউশন প্ল্যান তৈরি করা হয়েছে তা অপ্টিমাইজ করার জন্য। আপনি DBCC PROCCACHE কমান্ড ব্যবহার করে পদ্ধতি ক্যাশে ক্ষমতা এবং অপারেশন সম্পর্কে তথ্য পেতে পারেন৷
  8. বাফার পুলের অন্যান্য অংশগুলির মধ্যে রয়েছে:
    1. সিস্টেম-স্তরের ডেটা স্ট্রাকচার:ডাটাবেস এবং লক সম্পর্কে ইনস্ট্যান্স লেভেল ডেটা থাকে।
    2. লগ ক্যাশে:লেনদেন পৃষ্ঠাগুলি পড়া এবং লেখার জন্য উত্সর্গীকৃত৷
    3. সংযোগ প্রসঙ্গ:সংযোগের বর্তমান অবস্থা রেকর্ড করার জন্য ইনস্ট্যান্সের সাথে প্রতিটি সংযোগের একটি ছোট মেমরি এলাকা থাকে। এই তথ্যে সংরক্ষিত পদ্ধতি এবং ব্যবহারকারী-সংজ্ঞায়িত ফাংশন প্যারামিটার, মাউস কার্সারের অবস্থান এবং আরও অনেক কিছু অন্তর্ভুক্ত রয়েছে৷
    4. স্ট্যাক স্পেস:Windows SQL সার্ভার দিয়ে শুরু হওয়া প্রতিটি থ্রেডের জন্য স্ট্যাক স্পেস বরাদ্দ করে।

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

এই আর্কিটেকচারে নিম্নলিখিত উপাদান রয়েছে:

ফাইল গ্রুপ:

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

এসকিউএল সার্ভারে প্রাথমিক এবং ব্যবহারকারী-সংজ্ঞায়িত হিসাবে দুটি ধরণের ফাইল গ্রুপ রয়েছে৷ প্রাথমিকে প্রধান ডেটা ফাইল এবং ফাইল গ্রুপে নির্দিষ্টভাবে বরাদ্দ করা হয়নি এমন কোনো ফাইল রয়েছে। সিস্টেম টেবিলের জন্য সমস্ত পৃষ্ঠা প্রাথমিকভাবে বরাদ্দ করা হয়। ব্যবহারকারী-সংজ্ঞায়িত হল ব্যবহারকারী-সংজ্ঞায়িত ফাইল গোষ্ঠী, যেগুলি file group ব্যবহার করে নির্দিষ্ট করা হয় ডাটাবেস তৈরি করতে বা ডাটাবেস মুছতে কমান্ডে কীওয়ার্ড।

প্রতিটি ডাটাবেসের একটি ফাইল গ্রুপ ডিফল্ট ফাইল গ্রুপ হিসাবে কাজ করে। যখন SQL সার্ভার একটি টেবিল বা সূচীতে একটি পৃষ্ঠা নির্ধারণ করে (তৈরি করার সময় কোনো ফাইল গ্রুপে নয়), সেই পৃষ্ঠাটি ডিফল্ট ফাইল গ্রুপে থাকবে। ডিফল্ট ফাইল গ্রুপকে ফাইল গ্রুপ থেকে অন্য ফাইল গ্রুপে রূপান্তর করতে, db_owner ফিক্সড ডাটাবেস ভূমিকা প্রয়োজন।

প্রাথমিক হল ডিফল্ট ফাইল গ্রুপ৷ ব্যবহারকারীদের ফাইল এবং পৃথক ফাইল গ্রুপ ব্যাক আপ করার জন্য db_owner স্থির ডাটাবেস ভূমিকা থাকতে হবে।

ফাইল

ডাটাবেসে 3 ধরনের প্রাথমিক ফাইল (প্রধান ডেটা ফাইল), সেকেন্ডারি (সেকেন্ডারি ডেটা ফাইল) এবং লগ (লগ ফাইল) রয়েছে। প্রাথমিক হল ডাটাবেসের সূচনা বিন্দু এবং ডাটাবেসের অন্যান্য ফাইলকে নির্দেশ করে।

প্রতিটি ডাটাবেসের একটি প্রাথমিক আছে৷ আপনি মূল ডেটা ফাইলের জন্যও এক্সটেনশন সেট করতে পারেন, তবে সুপারিশ হল .mdf. সেকেন্ডারি ডেটা ফাইল হল প্রধান ডেটা ফাইল ছাড়া অন্য একটি ফাইল। একটি ডাটাবেসে অনেক বা শুধুমাত্র একটি অতিরিক্ত ডেটা ফাইল থাকতে পারে। অতিরিক্ত ডেটা ফাইলের এক্সটেনশনটি .ndf.

এ সেট করা উচিত

লগ ফাইলগুলি ডাটাবেস পুনরুদ্ধার করতে ব্যবহৃত সমস্ত তথ্য রাখে৷ ডাটাবেসের অন্তত একটি লগ ফাইল থাকতে হবে। আমাদের একটি ডাটাবেসের জন্য একাধিক লগ ফাইল থাকতে পারে। এক্সটেনশনটি .ldf.

এ সেট করা উচিত

ডাটাবেসের সমস্ত ফাইলের অবস্থান মাস্টার ডাটাবেস এবং ডাটাবেসের প্রাথমিক ফাইল উভয়েই রেকর্ড করা হয়। বেশিরভাগ ক্ষেত্রে, ডাটাবেস টুল মাস্টার ডাটাবেস থেকে ফাইল অবস্থান ব্যবহার করে।

ফাইলের দুটি নাম রয়েছে:লজিক্যাল এবং ফিজিক্যাল৷ সমস্ত T-SQL কমান্ডের ফাইল উল্লেখ করতে লজিক্যাল ব্যবহার করা হয়। দৈহিক নাম হল OS_file_name, এটি অপারেটিং সিস্টেমের নিয়ম মেনে চলতে হবে। ডেটা ফাইল এবং লগ ফাইলগুলি FAT বা NTFS ফাইল সিস্টেমে স্থাপন করা যেতে পারে, তবে সংকুচিত ফাইল সিস্টেমে স্থাপন করা যায় না। একটি ডাটাবেসে 32,767টি পর্যন্ত ফাইল থাকতে পারে৷

ব্যাপ্তি

এক্সট হল একটি মৌলিক একক যেখানে প্রতিটি টেবিল এবং সূচকের জন্য স্থান বরাদ্দ করা হয়। প্রতিটি বিস্তৃতি 8টি সংলগ্ন পৃষ্ঠা বা 64KB। এসকিউএল সার্ভারে 2 ধরনের এক্সটেনশন রয়েছে যা ইউনিফর্ম এবং মিশ্র। ইউনিফর্ম একটি একক, মিশ্র বস্তু দিয়ে 8টি অবজেক্টের সমন্বয়ে গঠিত।

পৃষ্ঠা

পৃষ্ঠা (পৃষ্ঠা) হল SQL সার্ভারের ডেটা স্টোরেজের মৌলিক একক। একটি পৃষ্ঠার আকার 8KB। প্রতিটি পৃষ্ঠা শুরু করা হল 96byte শিরোনাম, যা সিস্টেম তথ্য যেমন পৃষ্ঠার ধরন, পৃষ্ঠায় ফাঁকা স্থানের পরিমাণ এবং পৃষ্ঠার মালিকের আইডি সংরক্ষণ করতে ব্যবহৃত হয়। SQL সার্ভারে 9 ধরনের ডেটা পেজ রয়েছে:

  1. ডেটা:টেক্সট, এনটেক্সট এবং ইমেজ থেকে সমস্ত ডেটা সহ ডেটা সারি।
  2. সূচী:সূচক আইটেম।
  3. টেক্সইমেজ:টেক্সট, এনটেক্সট এবং ইমেজের ডেটা।
  4. GAM:নির্দিষ্ট পরিমাণ সম্পর্কে তথ্য।
  5. SGAM:ব্যাপ্তি সম্পর্কে তথ্য সিস্টেম স্তরে বরাদ্দ করা হয়।
  6. পেজ ফ্রি স্পেস (PFS):পৃষ্ঠাগুলিতে উপলব্ধ ফাঁকা জায়গা সম্পর্কে তথ্য।
  7. সূচী বরাদ্দ মানচিত্র (IAM):টেবিল বা সূচী দ্বারা ব্যবহৃত ব্যাপ্তি সম্পর্কে তথ্য।
  8. বাল্ক চেঞ্জড ম্যাপ (বিসিএম):শেষ ব্যাকআপ কমান্ড থেকে ব্যাপক ক্রিয়াকলাপের মাধ্যমে তথ্যের পরিমাণ পরিবর্তন করা হয়।
  9. ডিফারেনশিয়াল চেঞ্জড ম্যাপ (DCM):শেষ ডাটাবেস ব্যাকআপ কমান্ডের পর থেকে পরিবর্তিত হয়েছে সেই তথ্য।

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

SQL সার্ভারে লেনদেন লগগুলি সঠিকভাবে কাজ করে যখন এটি লগ রেকর্ডের একটি ক্রম হয়৷ প্রতিটি লগকে লগ সিকোয়েন্স নম্বর (LSN) দ্বারা চিহ্নিত করা হয়, এতে লেনদেনের আইডি থাকে যা এটির অন্তর্গত।

লগ ডেটা পরিবর্তন বা সম্পাদিত ক্রিয়াকলাপ রেকর্ড করে বা ডেটা সম্পাদনা করার আগে এবং পরে চিত্রগুলি পুনরুদ্ধার করে৷ পূর্ববর্তী চিত্রটি অপারেশন সঞ্চালনের আগে ডেটার একটি অনুলিপি, নিম্নলিখিত চিত্রটি অপারেশন সঞ্চালিত হওয়ার পরে ডেটার একটি অনুলিপি৷

অপারেশন পুনরুদ্ধার করার পদক্ষেপগুলি লগের ধরণের উপর নির্ভর করে৷

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

লেনদেন লগে বিভিন্ন অপারেশন রেকর্ড করা হয়েছে৷ নিম্নলিখিত ক্রিয়াকলাপগুলি সেখানে উপলব্ধ হবে:

  1. প্রতিটি লেনদেন শুরু এবং শেষ করুন।
  2. সকল ডেটা পরিবর্তন (সন্নিবেশ করা, আপডেট করা, মুছে ফেলা), যার মধ্যে সিস্টেম স্টোরেজ পদ্ধতির পরিবর্তন বা ডেটা ডেফিনিশন ল্যাঙ্গুয়েজ কমান্ড (DDL) টেবিলে, সিস্টেম টেবিল সহ।
  3. সমস্ত পরিমাণ এবং বরাদ্দ, পৃষ্ঠা বরাদ্দ বাতিল।
  4. টেবিল এবং সূচী তৈরি করুন বা মুছুন।

রোলব্যাক অপারেশনগুলিও লগ করা হয়েছে৷ কমান্ড বা ত্রুটি বার্তা চালানোর জন্য রোলব্যাকের জন্য প্রয়োজনীয় লগ স্পেস আছে তা নিশ্চিত করতে প্রতিটি লেনদেনের লগে একটি স্থান থাকবে। লেনদেন সম্পন্ন হলে এই স্থানটি ছেড়ে দেওয়া হবে৷

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

SQL সার্ভার ডেটাবেস ইঞ্জিন প্রতিটি ভৌত ​​লগ ফাইলকে কয়েকটি ভার্চুয়াল লগ ফাইলে ভাগ করে। ভার্চুয়াল লগ ফাইলটি আকারে স্থির নয় এবং প্রতিটি লগ ফাইল ফিজিক্যালের জন্য একটি নির্দিষ্ট সংখ্যক ভার্চুয়াল লগ ফাইল নেই৷

ডেটাবেস ইঞ্জিন ভার্চুয়াল লগ ফাইলের আকার স্বয়ংক্রিয়ভাবে নির্বাচন করে যখন এটি লগ ফাইল তৈরি করে বা প্রসারিত করে। ডাটাবেস ইঞ্জিন অল্প সংখ্যক ভার্চুয়াল ফাইল বজায় রাখার চেষ্টা করে। ভার্চুয়াল লগ ফাইলের আকার প্রশাসক দ্বারা কনফিগার বা সেট আপ করা যাবে না। শুধুমাত্র যখন লগ ফিজিকাল ফাইলটিকে ছোট আকারে এবং মানের বৃদ্ধি_বৃদ্ধিতে সংজ্ঞায়িত করা হয়, ভার্চুয়াল লগ ফাইলটি কি সিস্টেমের কর্মক্ষমতাকে প্রভাবিত করে।

সাইজের মান হল লগ ফাইলের প্রারম্ভিক মাপ এবং বৃদ্ধি_বৃদ্ধি হল ফাইলে প্রতিবার নতুন স্থানের প্রয়োজন হলে ফাইলে যোগ করা স্থানের পরিমাণ। অনেক ছোট ইনক্রিমেন্ট থাকার কারণে লগ ফাইলটি যখন বড় আকারে পৌঁছায়, তখন তাদের অনেকগুলি ভার্চুয়াল লগ ফাইল থাকবে। এটি ডাটাবেস স্টার্টআপ এবং লগ ব্যাকআপ এবং পুনরুদ্ধার ক্রিয়াকলাপকে ধীর করে দিতে পারে৷

পরামর্শ হল যে আপনি লগ ফাইলটিকে প্রয়োজনীয় চূড়ান্ত আকারের কাছাকাছি আকারের মান এবং অপেক্ষাকৃত বড় বৃদ্ধি_বৃদ্ধির মান নির্ধারণ করুন৷ এসকিউএল সার্ভার রাইট-এহেড লগ (WAL) ব্যবহার করে, এটি নিশ্চিত করে যে ড্রাইভে সম্পর্কিত লগ লেখার আগে ড্রাইভে লেখা ডেটাতে কোনো পরিবর্তন নেই। এটি লেনদেনের বৈশিষ্ট্যের জন্য ACID বজায় রাখতে সাহায্য করে।

SQL এ বীজগণিতকারী

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

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

এসকিউএল সার্ভারে চেকপয়েন্ট

SQL সার্ভার 2012-এ 4 ধরনের চেকপয়েন্ট রয়েছে:

  1. স্বয়ংক্রিয়: এই প্রকারটি হল সবচেয়ে সাধারণ চেকপয়েন্ট, সার্ভার কনফিগারেশন বিকল্পে পুনরুদ্ধার ব্যবধান দ্বারা নির্দিষ্ট সময়ের মধ্যে SQL সার্ভার ডেটাবেস পুনরুদ্ধার করা যায় তা নিশ্চিত করতে একটি পটভূমি প্রক্রিয়ার আকারে চলছে৷
  2. পরোক্ষ: এই চেকপয়েন্টটি শুধুমাত্র SQL সার্ভার 2012-এ উপলব্ধ। এটি একটি পটভূমিতে চলমান প্রক্রিয়া কিন্তু শুধুমাত্র নির্দিষ্ট ব্যবহারকারীদের জন্য যারা কনফিগারেশন বিকল্পগুলিতে একটি নির্দিষ্ট ডাটাবেসের জন্য পুনরুদ্ধারের সময় নির্দিষ্ট করে। যখন একটি নির্দিষ্ট ডাটাবেসের জন্য Target_Recovery_Time নির্বাচন করা হয়, তখন এটি ডাটাবেসের স্বয়ংক্রিয় চেকপয়েন্ট এড়িয়ে সার্ভারে নির্ধারিত পুনরুদ্ধারের ব্যবধানটিকে ওভাররাইট করবে।
  3. ম্যানুয়াল: এই চেকপয়েন্টটি অন্য যেকোন SQL কমান্ডের মতো চলে, আপনি যখন চেকপয়েন্ট কমান্ড তৈরি করেন, তখন এটি সম্পূর্ণ হবে। এই চেকপয়েন্ট শুধুমাত্র বর্তমান ডাটাবেসে চলে। আপনি কতক্ষণ চেকপয়েন্টটি সম্পূর্ণ করতে চান তা নির্দিষ্ট করার বিকল্পে আপনি Checkpoint_Duration উল্লেখ করতে পারেন।
  4. অভ্যন্তরীণ: একজন ব্যবহারকারী হিসাবে, আপনি নির্দিষ্ট ক্রিয়াকলাপে এই ধরনের চেকপয়েন্ট নিয়ন্ত্রণ করতে পারবেন না যেমন:
    1. শাটডাউন ব্যর্থ না হওয়া পর্যন্ত সমস্ত ডাটাবেসে একটি চেকপয়েন্ট অ্যাকশন বন্ধ করুন, স্বাভাবিক নয় (নাওইথ কমান্ডের সাথে শাটডাউন ব্যবহার করুন)।
    2. যখন পুনরুদ্ধারের মডেল ফুলবাল্ক-লগড থেকে সরল-এ পরিবর্তিত হয়েছিল।
    3. ডাটাবেস ব্যাক আপ করার সময়।
    4. যদি ডাটাবেস সরল পুনরুদ্ধার মোডে থাকে, চেকপয়েন্ট প্রক্রিয়া স্বয়ংক্রিয়ভাবে সঞ্চালিত হবে বা যখন লগ 70% পূর্ণ হবে, অথবা সার্ভারের পুনরুদ্ধার ব্যবধান বিকল্পের উপর ভিত্তি করে।
    5. লগ/ডেটা ফাইল যোগ বা মুছে ফেলার জন্য ALTER ডেটাবেস কমান্ডও একটি চেকপয়েন্ট শুরু করে।
    6. ডাটাবেস পুনরুদ্ধারের মডেলটি বাল্ক-লগ করা হলে এবং সর্বনিম্ন লেখার ক্রিয়াকলাপ সঞ্চালিত হলে চেকপয়েন্টও সঞ্চালিত হয়।

এটি সম্ভবত এসকিউএল সার্ভারের "মধুরতম" অংশ, তবে এর স্থাপত্য বোঝার ধারণাটি বুঝতে সাহায্য করবে যে সবকিছু কীভাবে কাজ করে, যদি কোনও ত্রুটি থাকে তবে এটি কিছুটা, . এটি ডাটাবেসের সাথে কাজ করা সহজ করে তোলে।

পরবর্তী বিভাগে, আমরা ম্যানেজমেন্ট স্টুডিও সম্পর্কে শিখব এবং ধীরে ধীরে SQL সার্ভারের মৌলিক কমান্ডগুলিতে যাব৷


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

  2. এমএস এসকিউএল সার্ভারে ডাটাবেস কীভাবে মুছবেন

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

  4. MS SQL সার্ভার কি?