এসকিউএল লগ ফাইলের আকারগুলি কীভাবে বজায় রাখা যায় সেরা


13

আমি কিছুটা নতুন ডিবিএ করছি এবং আমি একটি এসকিউএল সার্ভার 2012 পরিচালনা করছি যাতে ন্যায্য পরিমাণ ক্রিয়াকলাপ থাকে। আমি পূর্ণ পুনরুদ্ধার মোডে চলছি কারণ আমাদের সময় পুনরুদ্ধারের পয়েন্ট দরকার।

এখনই, আমি প্রতিদিন 5 টা বাজে ডেটাবেস এবং লগগুলির একটি সম্পূর্ণ ব্যাকআপ নিচ্ছি। কিছু লগ ফাইল 300gb অবধি বেলুন করেছে এবং ব্যাকআপ নেওয়ার পরেও সেগুলি আকার হ্রাস করে না। আমি এ জাতীয় কিছু চালিয়ে তাদের আকার হ্রাস করতে পারি:

BACKUP LOG db1 TO DISK = '\\server\share\db1_log1.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log2.trn';
DBCC ShrinkFile([db1_log], 0);

BACKUP LOG db1 TO DISK = '\\server\share\db1_log3.trn';
DBCC ShrinkFile([db1_log], 0);

আমি যখন ব্যাকআপ ফাইলগুলির এলএসএন পরীক্ষা করি তখন আমি এমন কিছু দেখতে পাই:

RESTORE headeronly FROM DISK = N'\\server\share\db1_log1.trn'
FirstLSN:  15781000014686200001
SecondLSN: 15802000000665000001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log2.trn'
FirstLSN:  15802000000665000001
SecondLSN: 15805000000004100001

RESTORE headeronly FROM DISK = N'\\server\share\db1_log3.trn'
FirstLSN:  15805000000004100001
SecondLSN: 15808000000004200001

আমি বিশ্বাস করি না আমি লগ ফাইলগুলি সঙ্কুচিত করে আমার লগ চেইনটি ভেঙে ফেলছি। এটি পড়ার পরে, আমি বিশ্বাস করি যে আমি আমার পারফরম্যান্সকে আঘাত করছি কারণ এই সঙ্কুচিত লগ ফাইলগুলি তাদের আবার বাড়তে হবে।

প্রশ্নাবলী:

  1. আমার ব্যাকআপগুলির পরে লগ ফাইলটি সঙ্কুচিত হবে না কেন? অনাবৃত লেনদেনের কারণেই কি এটি?
  2. প্রথমে আমি ভাবছিলাম প্রতি 5:00 টা ব্যাকআপের পরে লগ ফাইলগুলি সঙ্কুচিত করা উচিত। পারফরম্যান্সের জন্য এটি কীভাবে খারাপ তা পড়ার পরে আমি এখন বিশ্বাস করি যে দিনের বেলা কয়েক ঘন্টা আমার নিয়মিত লগ ব্যাকআপ নেওয়া উচিত। এটা কি ঠিক?
  3. আমার ডাটাবেস / লগগুলির সম্পূর্ণ পূর্ণ ব্যাকআপটি প্রতিদিন সকাল :00:৩০ এ ঘটে এবং মাঝে মাঝে 3 ঘন্টা সময় লাগে। আমি যদি প্রতি ঘন্টায় লগ ব্যাকআপগুলি শিডিউল করি, যখন লগ ব্যাকআপটি 5:00 এএম ব্যাকআপের সাথে সংঘর্ষ হয় তখন কী হবে?

উত্তর:


10
  1. আমার ব্যাকআপগুলির পরে লগ ফাইলটি সঙ্কুচিত হবে না কেন? অনাবৃত লেনদেনের কারণেই কি এটি?

প্রকৃত এনটিএফএস লগ ফাইল কোনও লেনদেন লগ ব্যাকআপ থেকে "সঙ্কুচিত" হয় না, তবে লেনদেনের লগের মধ্যে ভিএলএফ (ভার্চুয়াল লগ ফাইলগুলি) পুনরায় ব্যবহারের জন্য চিহ্নিত করা হয়েছে (কারণ তারা এখন ব্যাক আপ এবং মিডিয়াতে জেদী রয়েছে) এর মোড়কে চারপাশে অনুমতি দেয় লেনদেন লগ ব্যবহার ঘটতে। আপনি যদি লেনদেন লগটিকে ব্যাক আপ না করেন বা ঘন ঘন পর্যাপ্ত না হন তবে সেখানে ভিএলএফ উপলব্ধ হবে না এবং এটি লেনদেনের লগকে বাড়িয়ে তুলবে (অটোগ্রোথ সেট করা আছে) অতিরিক্ত লেনদেন লগ এন্ট্রি সামঞ্জস্য করতে।

২. প্রথমে আমি ভাবছিলাম যে প্রতি 5:00 এএম ব্যাকআপের পরে লগ ফাইলগুলি সঙ্কুচিত করা উচিত। পারফরম্যান্সের জন্য এটি কীভাবে খারাপ তা পড়ার পরে আমি এখন বিশ্বাস করি যে দিনের বেলা কয়েক ঘন্টা আমার নিয়মিত লগ ব্যাকআপ নেওয়া উচিত। এটা কি ঠিক?

রুটিন এবং সময়সূচী ফাইল সঙ্কুচিত করা ভাল ধারণা নয়। কেবলমাত্র যখন আপনাকে খুব প্রয়োজনীয় স্থানটিকে পুনরায় দাবি করতে হবে তখনই আপনি ক DBCC SHINKFILE। এছাড়াও, যখন আপনি ক্রমাগত আপনার লেনদেনের লগ বাড়িয়ে তোলেন, আপনি ডাটাবেস পুনরুদ্ধারের মতো অন্যান্য বিষয়কে বাধা দিতে পারেন। লেনদেন লগের মধ্যে অনেকগুলি ভিএলএফ (একটি সাধারণ সমস্যা যখন লেনদেনের লগ কেবল একটি ছোট স্টোরেজ ইনক্রিমেন্ট দ্বারা উত্থিত হয়) ডাটাবেস পুনরুদ্ধার করতে সময়ের পরিমাণ কাঙ্ক্ষিতের চেয়ে দীর্ঘ হতে পারে।

৩. ডাটাবেস / লগগুলির আমার স্বাভাবিক পূর্ণ ব্যাকআপটি প্রতিদিন সকাল AM:৩০ এ ঘটে এবং মাঝে মাঝে 3 ঘন্টা সময় লাগে। আমি যদি প্রতি ঘন্টায় লগ ব্যাকআপগুলি শিডিউল করি, যখন লগ ব্যাকআপটি 5:00 এএম ব্যাকআপের সাথে সংঘর্ষ হয় তখন কী হবে?

কিছুই হবে না, এটি সম্পূর্ণ আইনী অপারেশন। নীচে এই গ্রাফ থেকে দেখুনএমএসডিএন । যেখানে একটি কালো বিন্দু রয়েছে, সেই দুটি অপারেশন একই সাথে ঘটতে পারে না। আপনি দেখতে পাচ্ছেন, একই সাথে একটি ডাটাবেস ব্যাকআপ এবং লেনদেনের লগ অনুমোদিত are

এখানে চিত্র বর্ণনা লিখুন

এখানে যাওয়ার পথে আপনার লেনদেন লগটি আরও ঘন ঘন ব্যাক আপ করা উচিত। আপনার লেনদেন লগটিকে ঘন ঘন ঘন ব্যাক আপ না করে আপনি কেবলমাত্র এনটিএফএস ফাইলের বৃদ্ধি বজায় রাখতে পারবেন না। যদি আপনার স্টোরেজ ব্যর্থতা হয় এবং আপনার লেনদেনের লগটি হারিয়ে যায় তবে আপনি কেবলমাত্র আপনার শেষ লেনদেনের লগ ব্যাকআপের সময়ে পয়েন্টটিতে পুনরুদ্ধার করতে পারেন। যদি লেনদেনের লগটি হারিয়ে যায় তবে আপনি লগের লেজটিকে ব্যাকআপ করতে পারবেন না এবং ব্যর্থতার সময়কালে পুনরুদ্ধার করতে পারবেন না। আপনার ক্ষেত্রে, আপনি 24 ঘন্টা মূল্যবান ডেটা সম্ভাব্যরূপে হারাতে পারেন। তবে যদি আপনি আপনার লেনদেনের প্রতিটি লগ ব্যাকআপ করেন, 30 মিনিট বলুন তবে আপনার সর্বোচ্চ ডেটা ক্ষতি 30 মিনিটের হবে। সেক্ষেত্রে যদি আপনার লেনদেনের লগ চলে যায় এবং আপনার পুরো ব্যাকআপ এবং আপনার অক্ষত লগ চেইন থাকে তবে আপনি সেই শেষ লগ ব্যাকআপটিতে পুনরুদ্ধার করতে পারেন।

লেনদেন লগ কাটাতে টেকনেট ডকুমেন্টেশন


5

আপনি যে প্রাথমিক সমস্যাটি নিয়ে কাজ করছেন তা হ'ল আপনি দিনে একবার লগগুলি ব্যাক আপ করেন। ইঞ্জিনের আচরণ হ'ল লগ ফাইলের মধ্যে লগ রেকর্ডগুলি (ব্যবহৃত স্থান) কেবলমাত্র সফল লগ ব্যাকআপের পরে সরানো হবে। এই স্থানটি যখন একটি চেকপয়েন্টে পুনরায় দাবি করা হয় দেখা দেয় হয়, তবে যদি আপনার ডাটাবেস পূর্ণ / বাল্ক লগড রিকভারিতে থাকে তবে লগ রেকর্ডগুলি কেবলমাত্র সফলভাবে ব্যাক আপ করা থাকলে তা সরানো হবে।

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

আপনি যদি নিয়মিত লগ ব্যাকআপগুলি সম্পাদন করে থাকেন তবে আপনার নিয়মিত ফাইল সঙ্কুচিত হওয়া উচিত নয় কারণ আপনি লগ ফাইলের স্থানটি বড় হওয়ার আগে পরিচালনা করতে পারবেন।


-1

তোমার মতো একই ইস্যুটিও পেয়েছি। আমার লগ ফাইল সর্বদা বাড়ায় পরিবর্তে আমি প্রতি রাতে পূর্ণ ডাটাবেস ব্যাকআপ ব্যবহার করি। সুতরাং এখানে আমার সমাধান:

  1. আপনার বর্তমান লগ ফাইল ব্যাকআপ।

  2. আপনার ডাটাবেসটিকে সাধারণ পুনরুদ্ধারে সেট করুন

    • পূর্ণ পুনরুদ্ধারের ক্ষেত্রে তৈরি করুন -> লগ ফাইলটি প্রতিশ্রুতিবদ্ধ লেনদেন মুছবে না, এটি কেবল আপনার ডেটা পুনরায় সাজিয়েছে -> শিন্ক ফাইলটি বেশি প্রভাবিত করে না -> এবং সরল পুনরুদ্ধারের জন্য বিপরীতে।
  3. আপনার লগ ফাইলটি 1 এমবি বা তারও কম সংকুচিত করুন (এটি আপনার উপর নির্ভর করবে)

  4. আপনার ডেটাবেস পুরো পুনরুদ্ধারে ফিরে আসুন।

আশা করি এটি সাহায্য করবে

ফং ট্রান

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.