এই ব্লগটি ব্যাখ্যা করে কিভাবে একটি Microsoft® SQL Server® ডাটাবেস হোস্টেডন-প্রাঙ্গনে (বা Amazon® EC2 বা Azure®-এ) Amazon Relational DatabaseService (RDS) এ সরানো যায়। এই পদক্ষেপের জন্য আপনার SQL ডাটাবেসকে একটি AWS S3bucket-এ ব্যাক আপ করা এবং সেই S3 বালতি থেকে আপনার AWS RDS ইনস্ট্যান্সে ডাটাবেস পুনরুদ্ধার করা প্রয়োজন৷
পরিচয়
Amazon RDS ইন্সট্যান্সের পূর্ববর্তী সংস্করণগুলি আপনাকে .bak থেকে ডেটা পুনরুদ্ধার করতে দেয়নি নথি পত্র. ফলস্বরূপ, ব্যবহারকারীদের অ্যামাজন ডেটা মাইগ্রেশন পরিষেবাগুলি ব্যবহার করতে হয়েছিল বা আমদানি এবং রপ্তানি ব্যবহার করতে হয়েছিল AWS RDS থেকে ডেটা সরানোর জন্য উইজার্ড।
অ্যামাজন জুলাই 2016 সালে নেটিভ ব্যাকআপ পুনরুদ্ধারের জন্য সমর্থন শুরু করেছে এবং RDS-এ MSDB ডাটাবেসে নিম্নলিখিত সঞ্চিত পদ্ধতিগুলি যোগ করেছে:
- rds_backup_database – একটি S3 বালতিতে একটি ডাটাবেস ব্যাক আপ করুন৷
- rds_restore_database – S3 থেকে একটি ডাটাবেস পুনরুদ্ধার করুন।
- rds_task_status - চলমান ব্যাকআপ ট্র্যাক করুন এবং কাজ পুনরুদ্ধার করুন৷
- rds_cancel_task - একটি চলমান ব্যাকআপ বাতিল করুন বা কাজ পুনরুদ্ধার করুন৷ ৷
এই ব্লগটি আলোচনা করে যে কিভাবে rds_restore_database ব্যবহার করতে হয় একটি .bak টোরস্টোর করার পদ্ধতি S3 থেকে ফাইল এবং কিভাবে rds_task_status ব্যবহার করতে হয় একটি AWS S3 বালতিতে ব্যাকআপ ফাইল আপলোড করার জন্য AWS S3 সিঙ্ক কমান্ড ব্যবহার করার সময় পুনরুদ্ধারের অগ্রগতি নিরীক্ষণ করার পদ্ধতি৷
পূর্বশর্ত
একটি মাইগ্রেশন করার জন্য, আপনার নিম্নলিখিত পূর্বশর্ত থাকা উচিত:
- SQL সার্ভার এজেন্ট প্রক্সি
- AWS কমান্ড লাইন ইন্টারফেস (AWS CLI)
- প্রোফাইলের নাম (একজন AWS ব্যবহারকারী যার Amazon S3 অ্যাক্সেস আছে এবং একটি S3 বালতি সহ
aws_access_key_id
এবংaws_secret_access_key
.) -
SQLSERVER_BACKUP_RESTORE
সহ একটি উপযুক্ত বিকল্প গোষ্ঠীর সাথে AWS RDS উদাহরণ বিকল্প এটিতে ম্যাপ করা হয়েছে। - পাওয়ারশেল ইনস্টলেশন
এছাড়াও আপনার SQL সার্ভার সম্পর্কে প্রাথমিক জ্ঞান থাকা উচিত, একটি S3 বালতি তৈরি করা, একটি AWS ব্যবহারকারী তৈরি করা, একটি S3 বালতিতে অ্যাক্সেস দেওয়া এবং একটি RDS উদাহরণ তৈরি করা।
সমাধান
নিম্নলিখিত ধাপগুলি নিম্নলিখিত বিভাগে সমাধান কভার করে:
-
স্থানীয় সার্ভারে ডাটাবেস ব্যাক আপ করুন।
-
একটি AWS S3 বালতিতে ব্যাকআপ ফাইলটি অনুলিপি করুন৷
৷ -
S3 বালতি থেকে RDS-এ SQL ব্যাকআপ পুনরুদ্ধার করুন।
স্থানীয় সার্ভারে ডাটাবেস ব্যাক আপ করুন
আপনি স্থানীয়ভাবে ব্যাকআপ নিতে যেকোনো পদ্ধতি ব্যবহার করতে পারেন। নিম্নলিখিত উদাহরণ একটি .bat ব্যবহার করে একটি sqlcmd কমান্ড সহ স্ক্রিপ্ট যা আপনি যেকোন SQL এজেন্ট কাজের মতো ব্যবহার করতে পারেন, যদি আপনাকে মাইগ্রেশন টাস্ক নির্ধারণ করতে হয়:
Sqlcmd -S SourceInstanceName -U sa -P password_here -Q
"Declare @DBName nvarchar(200)='MigrationTestDB'
DECLARE @BackupLocation NVARCHAR(2000) = 'C:\Temp\RDSmigration\backup\'+@DBName+
+ REPLACE(CONVERT(VARCHAR(20), GETDATE(), 120) + '.bak', ':', '');
BACKUP DATABASE @DBName TO DISK = @BackupLocation with compression;"
কপি করুন এবং একটি AWS S3 বালতিতে ব্যাকআপ ফাইল আপলোড করুন
আপনি AWS S3 copy
ব্যবহার করে এটি করতে পারেন অথবা AWS S3 sync
আদেশ যাইহোক, thesync কমান্ড শিল্পে খুব জনপ্রিয় এবং ব্যাপকভাবে ব্যবহৃত হয়, তাই নিম্নলিখিত উদাহরণটি এটি ব্যবহার করে।
ডিফল্টরূপে, AWS সিঙ্ক কমান্ড ফাইল মুছে দেয় না। এটি কেবল নতুন বা পরিমার্জিত ফাইলগুলিকে গন্তব্যে অনুলিপি করে। আপনি একটি SQL এজেন্ট কাজের জন্য নিম্নলিখিত PowerShell স্ক্রিপ্ট ব্যবহার করতে পারেন। আপনাকে cmdExec
চালানোর জন্য কনফিগার করা SQL এজেন্ট প্রক্সি অ্যাকাউন্ট ব্যবহার করে ব্যাকআপ এবং এই কপি পদক্ষেপ উভয়ই চালাতে হবে এবং পাওয়ারশেলসাবসিস্টেম।
$LogDate = Get-Date -Format yyyy-MM-dd
$Global:LogFile = "C:\Temp\RDSmigration\Logs\$LogDate.log"
$env:Path += ';C:\Program Files\Amazon\AWSCLI\bin'
Set-AWSCredential -ProfileName backuptos3user
aws configure set aws_access_key_id AKIAVIH6FYWVO62BZ7QA
aws configure set aws_secret_access_key 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
aws configure set region ap-south-1
try
{
$now = (Get-Date -Format G)
aws s3 sync C:\Temp\RDSmigration\backup s3:// ramkrdsrestore --sse | out-file $LogFile
}
catch {
Write-Host $_.Exception.Message -ForegroundColor Green
}
S3 বাকেট থেকে RDS-এ SQL ব্যাকআপ পুনরুদ্ধার করুন
MigrationTestDB2019-08-15 181640.bak পুনরুদ্ধার করতে নিম্নলিখিত কমান্ডটি চালান MigrationTestDB হিসাবে ফাইল করুন ডাটাবেস:
EXEC msdb.dbo.rds_restore_database
@restore_db_name = 'MigrationTestDB',
@S3_arn_to_restore_from = 'arn:aws:s3:::ramkrdsrestore/MigrationTestDB2019-08-15 181640.bak'
সঞ্চিত পদ্ধতিতে সরবরাহ করা পরামিতিগুলি নোট করুন। আপনাকে নিম্নলিখিত প্যারামিটারগুলি নির্দিষ্ট করতে হবে:
- পুনরুদ্ধার করার জন্য ডাটাবেসের নাম।
- ব্যাকআপ ফাইলের অ্যামাজন রিসোর্স নেম (ARN)। S3 অবজেক্টের জন্য, ARN এখানে দেখানো ফরম্যাট অনুসরণ করে।
SQL সার্ভার একটি পুনরুদ্ধার কাজ শুরু করে এবং এটি একটি টাস্কআইডি বরাদ্দ করে৷ . আপনি নিম্নলিখিত কমান্ডের সাহায্যে টাস্কের অবস্থা সহজেই ট্র্যাক করতে পারেন:
EXEC msdb.[dbo].[rds_task_status] @db_name ='DestinationDBName'
আপনি টাস্কআইডি ব্যবহার করতে পারেন @db_name এর পরিবর্তে অগ্রগতি ট্র্যাক করতে .
নিম্নলিখিত উদ্বেগ সম্পর্কে সচেতন থাকুন:
- বালতি ব্যাকআপ ফাইলের নামটি rds_restore_database-এ কেস সংবেদনশীল পদ্ধতি।
- অপশন গ্রুপে ব্যবহৃত IAM ভূমিকার S3 বাকেটের অ্যাক্সেস আছে।
- S3 বালতি নীতি IAM ভূমিকা বাদ দিতে সীমাবদ্ধ নয়৷
- আরডিএস এসকিউএল ইনস্ট্যান্স সঠিক বিকল্প গ্রুপ ব্যবহার করে যেখানে আপনি ব্যাকআপ/রিস্টোর বিকল্পটি যোগ করেছেন। এই সেটিং সমালোচনামূলক. এটি ছাড়া, পুনরুদ্ধার শুরু হয় না।
এসকিউএল সার্ভার নেটিভ ব্যাকআপের সীমাবদ্ধতা এবং অ্যামাজন RDS এ পুনরুদ্ধার করুন
নিম্নলিখিত SQL সার্ভার নেটিভ ব্যাকআপ এবং AmazonRDS এ পুনরুদ্ধারের কিছু সীমাবদ্ধতা রয়েছে:
- কোন ডিফারেনশিয়াল, লেনদেন লগ, ফাইলগ্রুপ ব্যাকআপ, বা পুনরুদ্ধার সম্ভব নয়, যা ডেটা পুনরুদ্ধারে বাধা নয়। Amazon RDS আপনাকে নির্ধারিত ইনস্ট্যান্স স্ন্যাপশট তৈরি করতে দেয় এবং সেই স্ন্যাপশটগুলি 35-দিনের সময়সীমার জন্য অ্যাক্সেসযোগ্য রাখা হয়। আপনি গত পঁয়ত্রিশ দিনের মধ্যে নির্দিষ্ট সময়ের পাঁচ মিনিটের মধ্যে উদাহরণটি পুনরুদ্ধার করতে পারেন।
- আপনি KMS-এনক্রিপ্ট করা ব্যাকআপগুলিকে S3 থেকে অন-প্রিমিসেসগুলিতে পুনরুদ্ধার করতে পারবেন না৷
- আপনি একই RDS দৃষ্টান্তে একটি ডাটাবেস পুনরুদ্ধার করতে পারবেন না।
- আপনি ট্যাবুলার ডেটা এনক্রিপশন (TDE) সক্ষম ডেটাবেসগুলির ব্যাকআপ পুনরুদ্ধার করতে পারবেন না৷
- লক্ষ্য RDS দৃষ্টান্তগুলির জন্য S3 বালতিতে অ্যাক্সেস প্রয়োজন৷ ৷
- আরডিএস এসকিউএল সার্ভার নেটিভ ব্যাকআপ এবং পুনরুদ্ধারকমান্ড চালাচ্ছে এমন ব্যবহারকারীর অ্যাকাউন্টের উপযুক্ত অনুমতি থাকা প্রয়োজন।
উপসংহার
এই ব্লগটি আপনাকে দেখিয়েছে কিভাবে একটি ক্লাউড গন্তব্যে একটি ডাটাবেস ব্যাক আপ করতে হয় এবং এটি একটি AWS RDS দৃষ্টান্তে সংরক্ষণ করতে হয়৷ RDS উদাহরণ ড্রাইভ বা সার্ভারে অ্যাক্সেস প্রদান করে না। মূলটি হল একটি ব্যাকআপ ফাইল AWS S3bucket-এ স্থানান্তর করা এবং তারপর সেখান থেকে এটি পুনরুদ্ধার করা৷
এই নিবন্ধটির জন্য আরও একটি ব্যবহারের ক্ষেত্রে হল আপনার SQL ব্যাকআপগুলিকে সরাসরি AWSS3 এ সংরক্ষণ করা, যা ডেটা উপলব্ধতা, নিরাপত্তা এবং কর্মক্ষমতা বর্ধন প্রদান করে৷ Amazon S3 99.999999999% (এগারো 9s) স্থায়িত্বের জন্য ডিজাইন করা হয়েছে৷ অনেক কঠিন সঞ্চয়স্থান সংরক্ষণ করে ডাটাবেস ব্যাকআপ সংরক্ষণ করার ক্ষেত্রে এই পদ্ধতিটি সাশ্রয়ী।
কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাবটি ব্যবহার করুন৷
বিশেষজ্ঞ প্রশাসন, ব্যবস্থাপনা এবং কনফিগারেশনের মাধ্যমে আপনার পরিবেশকে অপ্টিমাইজ করুন
Rackspace এর অ্যাপ্লিকেশন পরিষেবা(RAS) বিশেষজ্ঞরা অ্যাপ্লিকেশনগুলির বিস্তৃত পোর্টফোলিও জুড়ে নিম্নলিখিত পেশাদার এবং পরিচালিত পরিষেবাগুলি প্রদান করে:
- ইকমার্স এবং ডিজিটাল অভিজ্ঞতার প্ল্যাটফর্ম
- এন্টারপ্রাইজ রিসোর্স প্ল্যানিং (ERP)
- ব্যবসায়িক বুদ্ধিমত্তা
- সেলসফোর্স কাস্টমার রিলেশনশিপ ম্যানেজমেন্ট (CRM)
- ডাটাবেস
- ইমেল হোস্টিং এবং উৎপাদনশীলতা
আমরা সরবরাহ করি:
- নিরপেক্ষ দক্ষতা :আমরা আপনার আধুনিকীকরণের যাত্রাকে সহজ করে দিই এবং নির্দেশিকা দিই, এমন ক্ষমতার উপর ফোকাস করে যা তাৎক্ষণিক মূল্য প্রদান করে।
- ধর্মান্ধ অভিজ্ঞতা ™:আমরা প্রথমে একটি প্রক্রিয়া একত্রিত করি। প্রযুক্তি দ্বিতীয়। ব্যাপক সমাধান প্রদানের জন্য নিবেদিত প্রযুক্তিগত সহায়তা সহ পদ্ধতি।
- অপ্রতিদ্বন্দ্বী পোর্টফোলিও :আমরা আপনাকে সঠিক ক্লাউডে সঠিক প্রযুক্তি বাছাই এবং স্থাপনে সহায়তা করার জন্য ব্যাপক ক্লাউড অভিজ্ঞতা প্রয়োগ করি।
- চটপট ডেলিভারি :আপনি আপনার যাত্রায় যেখানে আছেন সেখানে আমরা আপনার সাথে দেখা করি এবং আপনার সাথে সাফল্যকে সারিবদ্ধ করি।
ডেটাবেস সম্পর্কে আরও জানুন
কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাব ব্যবহার করুন। আপনি আমাদের সাথে একটি কথোপকথনও শুরু করতে পারেন৷