উচ্চ প্রাপ্যতায় একটি এসকিউএল সার্ভার 2012 ডাটাবেস পুনরুদ্ধার


13

আমার কাছে এমন একটি ডাটাবেস রয়েছে যা সর্বদা উচ্চ প্রাপ্যতা মোডে থাকে অন্য কোনও উদাহরণের সাথে অন্য একটি ডাটাবেসের সাথে সিঙ্ক্রোনাইজ হয়। আমি কীভাবে কোনও .bakফাইল থেকে প্রাথমিক ডাটাবেসটিতে পুনরুদ্ধার করতে পারি T-SQL?

আমি উচ্চ প্রাপ্যতার জন্য নতুন এবং আমাকে পরামর্শ দেওয়া হয়েছে যে পুনরুদ্ধার করার আগে আমার ডাটাবেসগুলি উচ্চ প্রাপ্যতার বাইরে নিয়ে যাওয়া দরকার এবং তারপরে এটি আবার উচ্চ প্রাপ্যতায় ফিরিয়ে দেওয়া উচিত তবে আমি নিশ্চিত নই।

আমি আশা করছি AlwaysOnএখনও সক্রিয় থাকা অবস্থায় আমি কেবলমাত্র প্রাথমিকটিতে পুনঃস্থাপন করতে পারব এবং এটি মাধ্যমিকের সাথে স্বয়ংক্রিয়ভাবে সিঙ্ক হবে।

উত্তর:


15

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

এইচএ মিররিংয়ের সাথে খুব মিল এবং একই রকম প্রযুক্তি ব্যবহার করে, প্রায় চতুর হিসাবে নয়। আপনি আপনার এইচএ ডিবিও একইভাবে আচরণ করতে চাইবেন।

কোড নিম্নলিখিতগুলির মতো হবে:

- প্রাথমিক

ALTER AVAILABILITY GROUP MyAG REMOVE DATABASE AdventureWorks2012;

- প্রাথমিক

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2012_Data' TO 
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', 
      MOVE 'AdventureWorks2012_Log' 
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.

RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH RECOVERY;

- অন গৌণ

RESTORE DATABASE AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY, 
      MOVE 'AdventureWorks2012_Data' TO 
'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.mdf', 
      MOVE 'AdventureWorks2012_Log' 
TO 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\NewAdvWorks.ldf';

RESTORE LOG AdventureWorks2012
   FROM AdventureWorksBackups
   WITH NORECOVERY;

- প্রাথমিক

ALTER AVAILABILITY GROUP MyAG ADD DATABASE AdventureWorks2012;

- অন গৌণ

ALTER DATABASE AdventureWorks2012 SET HADR AVAILABILITY GROUP = MyAG;

উপরের উত্তর সম্পর্কিত প্রশ্ন ... সরবরাহিত কোডটিতে, PRIDARY নো-রিকভারি দিয়ে পুনরুদ্ধার করা হয়েছিল। আমার ধারণা ছিল নো-রিকভারি দিয়ে কেবল রেপ্লিকা করা হবে।
ট্রুয়েট

সঠিক, তবে পড়া চালিয়ে যান। লগ পুনরুদ্ধারগুলি কোড করে দেওয়া হয়েছিল এবং তারপরে অবশেষে এটি ব্যবহারের জন্য উপলব্ধ করার জন্য পুনরুদ্ধারের মাধ্যমে।
স্টিভ ম্যাঙ্গামেলি

যদি কেউ দ্বিতীয়টিতে প্রাপ্যতা গোষ্ঠীতে যোগদান করতে অক্ষম হয় তবে লেনদেনের লগ পুনরুদ্ধার করার প্রয়োজন হতে পারে। এই উত্সটি নিম্নলিখিত ত্রুটিটি সমাধান করতে সহায়তা করেছে:The mirror database, "dbname", has insufficient transaction log data to preserve the log backup chain of the principal database. This may happen if a log backup from the principal database has not been taken or has not been restored on the mirror database.
হান্স ভন

অতএব লগ পুনরুদ্ধার। উপরে মন্তব্য দেখুন।
স্টিভ মঙ্গিয়ামেলি

@ স্টেভে মঙ্গমাইজালি এটি স্থাপন করার জন্য আপনাকে ধন্যবাদ। এটি কাজে এসেছে। আমি বুঝতে পারছি আপনি এখন ফাইলের পরিবর্তে লজিকাল ব্যাকআপ ডিভাইস থেকে পুনরুদ্ধার করছেন। আমি যখন ফাইল থেকে পুনরুদ্ধার করি তখন আমি পৃথক .bak এবং .trn ফাইল ব্যবহার করি।
হ্যান্স ভন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.