আমি কীভাবে কোনও এসকিউএল সার্ভার ২০০৮ ডাটাবেসে লেনদেনের লগটি ছাঁটাই করব?


9

আমি কীভাবে কোনও এসকিউএল সার্ভার ২০০৮ ডাটাবেসে লেনদেনের লগটি ছাঁটাই করব?

সম্ভব সবচেয়ে ভাল উপায় কি?

আমি নিম্নলিখিত হিসাবে একটি ব্লগ থেকে চেষ্টা করেছিলাম:

1) সেটিং ডাটাবেস থেকে সাধারণ পুনরুদ্ধারে, ফাইল সঙ্কুচিত করা এবং আবারও পুরো পুনরুদ্ধারে সেট করা, আপনি আসলে আপনার মূল্যবান লগ ডেটা হারাচ্ছেন এবং সময়মতো পুনরুদ্ধার করতে সক্ষম হবেন না। শুধু তাই নয়, আপনি পরবর্তী লগ ফাইলগুলিও ব্যবহার করতে পারবেন না।

2) সঙ্কুচিত ডাটাবেস ফাইল বা ডাটাবেস টুকরো টুকরো করে।

আপনি করতে পারেন অনেক কিছুই আছে। প্রথমে নিম্নলিখিত বার্তাটি কেটে ফেলা এবং ঘন ঘন হারাতে না দিয়ে সঠিক লগ ব্যাকআপ নেওয়া শুরু করুন।

BACKUP LOG [TestDb] TO  DISK = N'C:\Backup\TestDb.bak'
GO

ফাইলটি সঙ্কুচিত করার কোডটি সরান। আপনি যদি সঠিক লগ ব্যাকআপ নিচ্ছেন তবে আপনার লগ ফাইলটি সাধারণত (আবার সাধারণত, বিশেষ ক্ষেত্রে বাদ থাকে) খুব বড় হয় না।


2
ঠিক আছে, এবং আপনি যখন চেষ্টা করেছিলেন তখন কী ঘটেছিল?

উত্তর:


4

ডাটাবেস পূর্ণ পুনরুদ্ধার মোডে থাকলে কোনও লগ ফাইল কেটে ফেলার সবচেয়ে নিরাপদ এবং সঠিক উপায়টি হ'ল একটি লেনদেন লগ ব্যাকআপ করা হয় (ছাড়া এটি TRUNCATE_ONLYfuture

মনে হচ্ছে আপনি আপনার লগ ফাইলটি পরে সঙ্কুচিত করতে চান, সেক্ষেত্রে আপনি কোনও DBCC SHRINKFILE(yourTLogName)কমান্ড চালাবেন । অনুরোধ করা আকারটি এটি সঙ্কুচিত করার জন্য secondচ্ছিক দ্বিতীয় প্যারামিটার রয়েছে।


8

আপনি নাল ডিভাইসে লগটিকে ব্যাকআপ করতে পারেন:

backup log [databasename] to disk = 'nul';

অথবা আপনি পুনরুদ্ধার মডেলটিকে সিম্পল করতে পারেন এবং তারপরে আবার পুরো / বাল্কে ফিরে যেতে পারেন।


আমি এটি করেছি + কারণ এটি ডিবাএস টুলবক্সের একটি সরঞ্জাম এবং আপনার উত্তরটি আমার মনে হয় নেতিবাচক ভোটের প্রাপ্য নয়। আমি এই অনুভূতির সাথে একমত যে লেনদেনলগ ব্যাকআপ নেওয়া ভাল উপায় তবে ওহে সমস্ত ভাল সরঞ্জাম সঠিক উপায়ে বা খারাপ উপায়ে ব্যবহার করা যেতে পারে।
মার্টিন Sjöberg

6

আপনি যদি নিজের লগ ডেটা সম্পর্কে চিন্তা না করেন এবং কেবল এটি থেকে মুক্তি পেতে চান:

পুনরুদ্ধার মডেলটি সম্পূর্ণ থেকে সহজতে এবং তারপরে পূর্ণ হয়ে যায় Change সত্যই যুক্তি দিয়ে ডিবিসিসি শিরকফিল ব্যবহার করে ফাইল সঙ্কুচিত করুন

নিম্নলিখিত কমান্ডটি পুনরুদ্ধার মডেলটিকে পূর্ণ থেকে সরল করে দেবে

ALTER DATABASE <databse_name> SET RECOVERY SIMPLE

নিম্নলিখিত কমান্ডটি পুনরুদ্ধারের মডেলটিকে পূর্ণ রূপ দেবে

ALTER DATABASE <databse_name> SET RECOVERY FULL

লগ ফাইলের নাম খুঁজতে আপনি নিম্নলিখিত কোয়েরিটি ব্যবহার করতে পারেন

SELECT name 
FROM sys.master_files
WHERE database_id = DB_ID('<databse_name>')

ফাইল সঙ্কুচিত করুন

DBCC SHRINKFILE (N'<logical_file_name_of_the_log>' , 0, TRUNCATEONLY)

দেখুন এসকিউএল সার্ভার লগ ফাইলটি ছাঁটাই করার আদেশ কী? এই সম্পর্কে আরও তথ্যের জন্য

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