পারফরম্যান্সকে প্রভাবিত না করে আমি কীভাবে একটি বড় এসকিউএল সার্ভার ডাটাবেস ব্যাকআপ করতে পারি?


18

আমাদের কাছে কোয়েরিগুলি ধীরে ধীরে চলমান বা খুব ভোরে শুরু হওয়ার রিপোর্ট রয়েছে এবং আমি যে একমাত্র কাজটি চালানো দেখতে পাচ্ছি যা আমি মনে করি এটি এটি প্রভাবিত করতে পারে তা হ'ল আমাদের ডাটাবেস ব্যাকআপ কাজ।

ডাটাবেসটি নিজেই প্রায় 300 গিগাবাইট, এবং ব্যাকআপ কাজটি সকাল সাড়ে ৪ টা থেকে শুরু হয় এবং সকাল after টা ৪৫ মিনিটের পরে শেষ হয় না। আমাদের ব্যাকআপ কাজের বর্তমান বাক্য গঠনটি হ'ল:

BACKUP DATABASE [DatabaseName]
TO DISK = N'E:\Database Backups\DatabaseName.Bak'
WITH INIT, NOUNLOAD, NAME = N'DatabaseName.Bak',
NOSKIP, STATS = 10, NOFORMAT

E:\ সার্ভারে একটি পার্টিশন যা ডাটাবেস এবং ডাটাবেস ব্যাকআপ উভয়ই ধারণ করে।

এটি সম্ভবত লক্ষ্য করা উচিত যে এটি একটি ভার্চুয়াল সার্ভার, উত্সর্গীকৃত একক সার্ভার নয়। ভার্চুয়াল সার্ভারে স্যুইচ করার ঠিক পরে আমরা ব্যাকআপ প্রক্রিয়া চলাকালীন ধীরগতির বিষয়ে অভিযোগ পেতে শুরু করি, সুতরাং আমি মনে করি এটি সম্পর্কিত হতে পারে।

এই ব্যাকআপ কাজটি চালানোর কোনও উপায় কি তাই এটি চলাকালীন ক্যোয়ারি পারফরম্যান্সকে প্রভাবিত করে না?

আমরা এসকিউএল সার্ভার 2005 ব্যবহার করছি

উত্তর:


21
  1. আপনার সিস্টেমে থাকা I / O এর বাকি অংশ থেকে ব্যাকআপ আই / ওকে আলাদা করুন। যদিও এটি আরও বেশি সময় নিতে পারে এবং হিচাপে আরও প্রবণ হতে পারে, স্থানীয় ডিস্কের পরিবর্তে নেটওয়ার্কের ব্যাক আপ করা উদাহরণের প্রত্যক্ষ প্রভাব হ্রাস করতে সহায়তা করতে পারে। এমনকি ভার্চুয়াল মেশিনে আপনার অন্য স্টোরেজটি প্রকাশ করতে সক্ষম হওয়া উচিত যাতে এসকিউএল সার্ভার একটি ভিন্ন আই / ও সাবসিস্টেমটিতে লিখতে পারে।
  2. এটি যে কোনও ক্ষেত্রেই কোনও পার্থক্য করার সম্ভাবনা নেই তবে, এটি যদি একটি কাজ থেকে চালানো হয় তবে আপনাকে STATSবিকল্পটি কেন ব্যবহার করতে হবে ? আপনি কি নিশ্চিতরূপে অন্যান্য অপশন হবে ( NOUNLOAD, NOSKIP, NOFORMAT)? অপশনগুলির পুরো ম্যাট্রিক্সের জন্য আমি কোনও বিস্তৃত পারফরম্যান্স টেস্টিং করিনি, তবে আইএমএইচও আপনার কেবলমাত্র সেই অপশনগুলি ব্যবহার করা উচিত যা আপনার জানা দরকার।
  3. আপনার সম্পূর্ণ ব্যাকআপগুলি আলাদা সময়ে চালান যা নিয়মিত ব্যবহারকারীর ক্রিয়াকলাপে হস্তক্ষেপ করে না। এটি সর্বদা সম্ভব নয়, তবে 24/7 ক্রিয়াকলাপেও শিখর এবং নীচু সময় রয়েছে।
  4. আপনি যদি ২০০++ এ যান তবে আপনি ব্যাকআপ সংক্ষেপণের সুবিধা নিতে পারেন (২০০৮ এ এন্টারপ্রাইজ, ২০০৮ সালে স্ট্যান্ডার্ড বা এন্টারপ্রাইজ আর ২০০+)। যদি আপনি ২০০৮ এ যেতে না পারেন বা পর্যাপ্ত সংস্করণ না পেয়ে থাকেন তবে এমন তৃতীয় পক্ষের ব্যাকআপ সরঞ্জাম রয়েছে যা আপনার জন্য সংকোচনের কাজ করবে এবং তারা এটিতে বেশ ভাল। ২০০৮ সাল থেকে আমি দেশীয় সংকোচনের ব্যবহার করতে সক্ষম হয়েছি এবং তৃতীয় পক্ষটিতে আরও বিনিয়োগের প্রয়োজন নেই বলে আমি গতি এবং সংকোচনের উভয় ক্ষেত্রেই যথেষ্ট সন্তুষ্ট। তবে 2005 এর সাথে আমি মনে করি রেড-গেট এসকিউএল ব্যাকআপের সাথে ভাল সাফল্য রয়েছে ; কোয়েস্ট লাইটস্পিডও বেশ ভাল, তবে ডেল অধিগ্রহণের পর থেকে এর মধ্যে কী ধরণের প্রচেষ্টা করা হচ্ছে তা আমার কোনও ধারণা নেই।
  5. যদি আপনার ডেটাবেসগুলি পুরো পুনরুদ্ধারে থাকে তবে আপনি পুরো ব্যাকআপগুলির মধ্যে আরও দীর্ঘতর হতে পারেন, ট্রেড করে এই জ্ঞানের জন্য যে আপনাকে যদি সময়মতো পুনরুদ্ধার করতে হয় তবে আপনার পুনরায় পুনরুদ্ধার করার সম্ভাবনা রয়েছে। আপনি এই বিকল্পটি এক সপ্তাহের মধ্যে পৃথকীকরণের নীচে আলীর পরামর্শের সাথে একত্রিত করতে পারেন - যদি আপনাকে বৃহস্পতিবার পুনরুদ্ধার করতে হয় তবে আপনাকে পৃথক হওয়ার পরে 1 টি পূর্ণ, 1 ডিফ এবং লগগুলি পুনরুদ্ধার করতে হবে।
  6. যদি আপনার কাছে প্রচুর ডেটা থাকে যা বাসি এবং অপরিবর্তনীয় থাকে তবে আপনি যে কোনও আলাদা পুনরুদ্ধার পরিকল্পনা, বা কমপক্ষে বিভিন্ন ফাইলগ্রুপগুলিতে আলাদা একটি ডাটাবেসে হোস্টিং বিবেচনা করতে পারেন এবং আপনার ব্যাকআপ ক্রিয়াকলাপগুলি সেভাবে বিভক্ত করুন। আপনার কাছে যদি রেফারেন্স বা সংরক্ষণাগার ডেটা থাকে যা কেবলমাত্র পঠনযোগ্য হয়ে উঠতে পারে এবং আপনি যদি সহজ পুনরুদ্ধারে থাকেন তবে আপনি এটিকে তার নিজস্ব পঠনযোগ্য ফাইলগ্রুপে স্থানান্তর করতে পারেন, একবার এটি ব্যাক আপ করতে পারেন এবং এটি আপনার রাতের ব্যাকআপগুলিতে অন্তর্ভুক্ত করতে হবে না আবার কখনও। এই এমএসডিএন বিষয়গুলি দেখুন:

পারফর্মিং টুকমিল পুনরুদ্ধার করে

উদাহরণ: কেবলমাত্র কিছু ফাইলগ্রুপের সরল পুনরুদ্ধার (সরল পুনরুদ্ধার মডেল)


সিস্টেমের I / O- এর বাকী অংশ থেকে ব্যাকআপ I / O কে বিচ্ছিন্ন করার বিষয়ে আরও জানতে আপনি কি আমাকে সঠিক দিকে নির্দেশ করতে সক্ষম হবেন? # 3 (ব্যাকআপগুলির পরিবর্তনের সময়) কোনও বিকল্প নয় কারণ সকাল 4:30 টা ব্যাকআপ চালানোর জন্য সেরা সময়, এবং আমরা ২০০৮ (# 4) এ আপগ্রেড করার বিষয়ে কথা বলেছি, তবে আমি মনে করি না এটি ঘটবে কি না যে কোন সময় শীঘ্রই।
রাচেল

আপনাকে কীভাবে সঠিক দিকে নির্দেশ করবেন তা নিশ্চিত নন - আপনি কী ভার্চুয়াল মেশিনে অন্য স্টোরেজটি প্রকাশ করতে পারবেন?
অ্যারন বার্ট্র্যান্ড

হ্যাঁ, আমি মনে করি আমরা অন্যান্য সঞ্চয়স্থান ভার্চুয়াল মেশিনে প্রকাশ করতে পারি। আপনি যখন "সিস্টেমের I / O এর বাকি অংশ থেকে ব্যাকআপ আই / ও বিচ্ছিন্ন করে" বলছেন, আপনি কি ডিস্ক ড্রাইভের পরিবর্তে কোনও নেটওয়ার্ক ড্রাইভে ব্যাক আপ দেওয়ার কথা উল্লেখ করছেন?
রাহেল

3
না, আমি বলতে চাইছি ডিস্ক ব্যতীত অন্য কোনও আই / ও সাবসিস্টেমের ব্যাক আপ করা যেখানে আপনি একই সাথে নিয়মিত ডাটাবেস এবং টেম্পডিবি ক্রিয়াকলাপের জন্য পড়া এবং লেখার কাজ করছেন। এই একই সার্ভারে একটি ভিন্ন ডিস্ক ড্রাইভ, অন্য মেশিনে ভাগ, সান একটি ভিন্ন LUN সংক্রান্ত, একটি ন্যাস, ইত্যাদি উপর অংশ হতে পারে
হারুন বারট্রান্ড

আমি টুকরোয়াল পুনরুদ্ধার একটি দুর্দান্ত সমাধান যা আমি ভাবিনি, পোস্ট করার জন্য ধন্যবাদ!
আলী রাজেঝি

8

এটি একটি সাধারণ সমস্যা, একাধিক সমাধান রয়েছে এবং এটি আপনার পরিবেশের উপর নির্ভর করে। আসুন তাদের মাধ্যমে চলুন:

1- ফ্লাই অন ব্যাকআপ সংক্ষেপণ

২০০৮ সালে আর 1 ব্যাকআপ সংক্ষেপণ এন্টারপ্রাইজে উপলভ্য হয়েছিল, ২০০৮ আরআর-তে এটি স্ট্যান্ডার্ডে উপলভ্য হয়েছিল। এটি বিশাল। এটি আপনাকে প্রচুর সময় সাশ্রয় করবে। আপনি যদি আপগ্রেড করতে পারেন তবে এর জন্য যান। যদি আপনি না করতে পারেন তবে রেডগেটের হাইপারব্যাক ইউটিলিটি বা কোয়েস্ট লাইটস্পিপ পরীক্ষা করে দেখুন । উভয়েরই নিখরচায় বিচার রয়েছে।

2- সম্পূর্ণ এবং পৃথক ব্যাকআপ

আমি উত্তরাধিকার সূত্রে প্রাপ্ত একটি 2 টিবি প্রোডাক্ট ডেটাবেস হিসাবে কাজ করেছিলাম এমন একটি 24/7 বড় ইন্টারনেট সংস্থার জন্য প্রচুর সময়সীমা বেরিয়ে আসে। আমরা পূর্ণ এবং ডিফারেনশিয়াল ব্যাকআপ সক্ষম করেছিলাম যা আমাদের প্রচুর সময় সাশ্রয় করে। ক্রিয়াকলাপ কম থাকাকালীন আমি রবিবার 12:00 এ পূর্ণ ব্যাকআপ নেব এবং সপ্তাহে আলাদা থাকব। এটি প্রচুর জায়গা সাশ্রয় করেছে। লেনদেনের লগগুলির চেয়ে ডিফের কাজ আলাদা কারণ তারা কী ডেটাবেস পৃষ্ঠাগুলি পরিবর্তন করেছিল। যে কোনও পরিবর্তিত পৃষ্ঠাগুলি ব্যাক আপ করা হয়। সুতরাং আপনি একটি সম্পূর্ণ পুনরুদ্ধার করবেন, তারপরে পরিবর্তিত পৃষ্ঠাগুলি যুক্ত করতে পুনরুদ্ধার করুন।

3- আপনার বোতলজাতীয় কি?

বোতল নেক বিশ্লেষণ নির্ণয়ের জন্য গুরুত্বপূর্ণ। আপনি কি আপনার ডেটা ফাইলগুলির মতো একই ডিস্ক অ্যারে ব্যাক আপ করছেন? আপনার ডেটা ফাইলগুলি প্যাগ করা হচ্ছে? ব্যাকআপ নেওয়ার সময় আপনার ডিস্ক এসইসি / রিড এবং ডিস্ক এসইসি / WRITE কী? আমি 4 টি ফাইল তৈরি করতে ব্যাকআপগুলি পরিবর্তন করেছি। প্রতিটি ফাইলের নিজস্ব থ্রেড লেখক রয়েছে এবং আমাদের সান এ দুর্দান্ত কাজ করেছে। এটি পরীক্ষা করে দেখুন, আমি ৪ টি ব্যাকআপ ফাইল তৈরি করে ৪৫ মিনিট কামিয়ে রেখেছি। কেবলমাত্র নিশ্চিত হয়ে নিন যে উপরে তালিকাভুক্ত আপনার ডিস্কের মেট্রিকগুলি কম। একটি বেসলাইন পান।

4- একটি ভিন্ন সার্ভারে প্রতিলিপি করুন এবং পিছনে তা

এই এক সামান্য উন্নত। আপনাকে নিশ্চিত করতে হবে যে আপনার অনুলিপি করা ডাটাবেস আপ-টু ডেট রয়েছে এবং এর জন্য আপনার যথাযথ পর্যবেক্ষণ প্রয়োজন। এটি যদি হয় তবে আপনি কেবল অনুলিপি করা ডাটাবেসটিকে ব্যাকআপ করতে পারেন।


হাইপারবাকের বিষয়ে কেবল মাথা তুলেছি, আমি যখন ২০১১ সালে খুব দেরিতে এটি পরীক্ষা করেছিলাম তখন ভিএলডিবিগুলিতে এটি কোনও লাভ দেয় নি। আমি রেডগেটের সাথে কথা বলেছিলাম এবং তারা এটি একটি বাগ হিসাবে উল্লেখ করেছে, তাই আশা করি এটি এখনই সমাধান হয়ে গেছে। আমি মনে করি না 300 জিবি যেভাবেই ভিএলডিবি হিসাবে বিবেচিত হবে তবে এটি যদি প্রত্যাশা অনুযায়ী সম্পাদন না করে তবে এটির জন্য নজর রাখুন।
আলী রাজেঘি

-1

আপনি এই পরামিতি ব্যবহার করতে পারেন:

ব্লকসিজেড - আকার 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536. (কেবিতে) চয়ন করুন

বুফার অ্যাকাউন্ট - ব্যাকআপ ক্রিয়াকলাপের জন্য ব্যবহৃত আই / ও বাফারগুলির মোট সংখ্যা নির্দিষ্ট করে। আপনি কোনও ধনাত্মক পূর্ণসংখ্যা নির্দিষ্ট করতে পারেন; তবে স্কেলজার.এক্সএক্স প্রক্রিয়াতে ভার্চুয়াল ঠিকানার অপ্রতুলতার কারণে বড় সংখ্যক বাফার "মেমরির বাইরে" ত্রুটির কারণ হতে পারে। - এমএসডিএন থেকে

MAXTRNASFERSIZE - এটি 65536 বাইট (64 কেবি) থেকে 4194304 বাইট (4 এমবি)


-3

চেষ্টা করে দেখুন এটি টাইমআউট মেয়াদ উত্তীর্ণ হওয়া সমস্যার সমাধান করেছে যখন বড় আকারের ডিবি হয়।

Private Sub Command1_Click()
On Error Resume Next
Dim con As New Connection
Dim tm As String
con.CommandTimeout = 500'''Command timeout should be 500


 With con
    .ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=dbiBMS;Data Source=192.168.103.4"
    .Open
 End With
 tm = CStr(Time)

con.Execute " backup database dbiBMS to disk='E:\Database_Backup\Test1.bak' with format "

con.Close
MsgBox tm
Exit Sub
x:
MsgBox Err.Description

End Sub

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