ডেটাবেস সবসময় পুনরুদ্ধার মোডে শুরু হয়


11

আমি যখনই আমার সার্ভারটি পুনরায় চালু করি ততবারই ডাটাবেসটি সর্বদা পুনরুদ্ধার মোডে থাকে এবং এটি স্বাভাবিক হিসাবে আচরণ করতে প্রায় 20 মিনিট সময় নেয়। এটি সর্বদা এবং কেবল তখনই ঘটে যখন আমি সার্ভারটি পুনরায় চালু করব, তাই আমার কয়েকটি প্রশ্ন ...

  1. আমাকে বলা হয়েছিল যে এটি কোনও বড় লগ ফাইলের কারণে ঘটতে পারে? এটা কি সঠিক হতে পারে? তা না হলে অন্য কারণগুলি কী হতে পারে?
  2. পুনরুদ্ধারগুলি রোধ করতে আমার লগ ফাইলের স্থান কমিয়ে আনতে হবে। আরও ভাল কি: সঙ্কুচিত বা কাটা?
  3. আকার কমানোর জন্য আমি কীভাবে লগ ফাইল / ডাটাবেস সঙ্কুচিত বা ছাঁটাই করতে পারি? সিনট্যাক্স কী?

আমি বর্তমানে মাইক্রোসফ্ট এসকিউএল সার্ভার 2008 ব্যবহার করছি।


আপনি যখন শাট ডাউন করবেন তখন আপনার কি ফ্লাইটে বড় লেনদেন হওয়ার ঝোঁক রয়েছে? পুনরুদ্ধারের ব্যবধানটি কী সেট করা হয়েছে?
মার্টিন স্মিথ

সার্ভার পুনরায় চালু হওয়ার 20 মিনিটের আগে কোনও ক্রিয়া সম্পাদন করা হয় না, নির্বাচনী বিবৃতি ব্যতীত, অন্তর 0 সেট করা হয়

আপনি কত ঘন ঘন আবার শুরু করবেন? আপনি কত ঘন ঘন ডাটাবেস ব্যাকআপ করবেন? আমি ভাবছি আপনি কেন নিয়মিত ভিত্তিতে সার্ভারটি শুরু করছেন? সম্পূর্ণ হওয়ার জন্য, প্রয়োজন হলে আপনি ম্যানুয়ালি একটি ডাটাবেস (যা লগ পরিষ্কার করে) চেকপয়েন্ট করতে পারেন।
লিন ল্যানজিট

"সম্পূর্ণ হওয়ার জন্য, প্রয়োজন হলে আপনি ম্যানুয়ালি একটি ডাটাবেস (যা লগ পরিষ্কার করে) পরীক্ষা করতে পারেন" " যে কিভাবে করা যাবে? এবং যখন আপনি কোনও লগ পরিষ্কার করেন, আপনার অর্থ, লগটি ব্যবহার বা কেবল মোছার নয়?

পর্যাপ্ত তথ্য নেই। রিকভারি মডেল? আপনি কি মিররিং বা প্রতিরূপের মতো বৈশিষ্ট্যগুলি ব্যবহার করছেন? জড়িত ডাটাবেস এবং ফাইল আকার? ডাটাবেস কোনও বড় লেনদেন পরিচালনা করে?
জন সেগেল

উত্তর:


6

আমার একই সমস্যা রয়েছে এবং আমি বিশ্বাস করি যে আমি এটি সমাধান করেছি তবে আমি এটি নিশ্চিত করার জন্য এটি সম্পূর্ণরূপে পরীক্ষা করতে সক্ষম হইনি।

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

আমি এখানে থেকে আপনার ব্যবহারকারীর মধ্যে কতগুলি ভিএলএফ রয়েছে তা দেখার জন্য এখানে একটি জিজ্ঞাসা রয়েছে :

    Create Table #stage(
    FileID      int
  , FileSize    bigint
  , StartOffset bigint
  , FSeqNo      bigint
  , [Status]    bigint
  , Parity      bigint
  , CreateLSN   numeric(38));

Create Table #results(
    Database_Name   sysname
  , VLF_count       int 
);

Exec sp_msforeachdb N'Use ?; 
            Insert Into #stage 
            Exec sp_executeSQL N''DBCC LogInfo(?)''; 

            Insert Into #results 
            Select DB_Name(), Count(*) 
            From #stage; 

            Truncate Table #stage;'

Select * 
From #results
Order By VLF_count Desc;

Drop Table #stage;
Drop Table #results;

ভিএলএফরা কী লিঙ্কটি দেখুন তার আরও বিশদের জন্য ।

আমি বিশ্বাস করি যে সমস্যাটি হ'ল এতগুলি ভিএলএফ দিয়ে এসকিউএল সার্ভারকে তাদের অবস্থা নির্ধারণ করতে এবং তারপরে ডাটাবেসটিকে পুনরুদ্ধার থেকে আনাতে অনেক সময় লাগে। আপনি যদি নিজের লগ ফাইলটিকে ছোট আকারে সঙ্কুচিত করতে পারেন তবে প্রায়শই প্রথম ভিএলএফ এর আকার যা লগ ফাইলটিতে তৈরি হয়েছিল, তবে আপনি তাত্ক্ষণিকভাবে আবার এটি বাড়িয়ে নিতে পারেন এবং এর মাধ্যমে এটি সঠিক সংখ্যক ভিএলএফ তৈরি করতে পারেন (এর চেয়ে কম কিছু) 16)।

এটি সম্পূর্ণ হয়ে গেলে আমি বিশ্বাস করি যে আপনি দেখতে পাবেন যে আপনার ডাটাবেসটি পুনরুদ্ধার থেকে খুব দ্রুত বেরিয়ে এসেছে।

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



2

এই এমএসডিএন নিবন্ধ থেকে :

দীর্ঘকাল ধরে চলমান অনির্ধারিত লেনদেন সকল ধরণের চেকপয়েন্টগুলির জন্য পুনরুদ্ধারের সময় বাড়ায়।

সাধারণত উত্পাদন ডেটাবেজে কোনও ধরণের ডিবিসিসি সঙ্কোচন ফাইল চালানোর পরামর্শ দেওয়া হয় না। এছাড়াও লগ কাণ্ডের আচরণটি পূর্ববর্তী সংস্করণগুলি থেকে ২০০৮ এ পরিবর্তিত হয়েছে (ধন্যবাদ @ অ্যাডওয়ার্ড) - এই ব্লগটিতে :

Trucate_only এর সাথে ব্যাকআপ লগ আর এসকিউএল 2008 তে সমর্থন করে না your

আবার, আমি উল্লেখ করব, আপনি কত ঘন ঘন ডাটাবেস ব্যাক আপ করবেন? সাধারণত, নিয়মিত ব্যাকআপগুলি লগের আকারকে সর্বোত্তমভাবে "পরিচালনা" করে।


0

অনলাইন লেনদেনের লগের আকার হ্রাস করা সমস্যার সমাধান করতে পারে, অর্থাত্ অনলাইনে পাওয়া ডাটাবেসকে গতি বাড়ায়, তবে এটি করার আগে আপনার দুর্যোগ পুনরুদ্ধারের বিষয়ে চিন্তা করা উচিত। মনে রাখবেন যে আপনি যদি সরল পুনরুদ্ধারের মডেলটিতে থাকেন তবে আপনি সময়মতো একটি বিন্দুতে পুনরুদ্ধার করতে পারবেন না। অন্যদিকে, আপনি যদি পুরো পুনরুদ্ধারের মডেলটিতে থাকেন তবে অনলাইন লেনদেনের লগের আকার রাখার সর্বোত্তম উপায় হ'ল নিয়মিত বেসগুলিতে লেনদেন লগ ব্যাকআপ তৈরি করা (এটি নির্ধারিত))

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

আপনি যদি ডাটাবেস সঙ্কুচিত করেন তবে আপনি ফাইলগুলির আকার হ্রাস করবেন। MyDB ডাটাবেস 15 শতাংশ সঙ্কুচিত করতে:

ডিবিসিসি শ্রিনকদাটাবেসে (মাইডিবি, 15); যাওয়া

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