यह ब्लॉग बताता है कि Microsoft® SQL Server® डेटाबेस को होस्ट-ऑन-प्रिमाइसेस (या Amazon® EC2 या Azure® पर) को Amazon Relational DatabaseService (RDS) में कैसे स्थानांतरित किया जाए। इस कदम के लिए आपके SQL डेटाबेस का AWS S3bucket में बैकअप लेना और उस S3 बकेट से आपके AWS RDS इंस्टेंस पर डेटाबेस को पुनर्स्थापित करना आवश्यक है।
परिचय
Amazon RDS इंस्टेंस के पिछले संस्करणों ने आपको.bak . से डेटा पुनर्स्थापित करने की अनुमति नहीं दी थी फ़ाइलें। परिणामस्वरूप, उपयोगकर्ताओं को Amazon डेटा माइग्रेशन सेवाओं का उपयोग करना पड़ा या आयात और निर्यात का उपयोग करना पड़ा एडब्ल्यूएस आरडीएस से डेटा को स्थानांतरित करने के लिए विज़ार्ड।
अमेज़ॅन ने जुलाई 2016 में नेटिव बैकअप रिस्टोर के लिए समर्थन शुरू किया और आरडीएस पर एमएसडीबी डेटाबेस में निम्नलिखित संग्रहीत प्रक्रियाओं को जोड़ा:
- 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 बकेट में अपलोड करने के लिए किया जाता है, जबकि पुनर्स्थापना प्रगति की निगरानी करने की प्रक्रिया।
आवश्यकताएँ
माइग्रेशन करने के लिए, आपके पास निम्नलिखित पूर्वापेक्षाएँ होनी चाहिए:
- एसक्यूएल सर्वर एजेंट प्रॉक्सी
- एडब्ल्यूएस कमांड लाइन इंटरफेस (एडब्ल्यूएस सीएलआई)
- प्रोफाइलनाम (AWS उपयोगकर्ता जिसके पास Amazon S3 और एक S3 बकेट है जिसमें
aws_access_key_id
शामिल है) औरaws_secret_access_key
।) - एडब्ल्यूएस आरडीएस उदाहरण
SQLSERVER_BACKUP_RESTORE
के साथ एक उपयुक्त विकल्प समूह के साथ इसके लिए मैप किया गया विकल्प। - पावरशेल इंस्टालेशन
आपको SQL सर्वर, S3 बकेट बनाने, AWS उपयोगकर्ता बनाने, S3 बकेट तक पहुंच प्रदान करने और RDS इंस्टेंस बनाने के बारे में भी बुनियादी जानकारी होनी चाहिए।
समाधान
निम्नलिखित चरणों में समाधान को निम्नलिखित अनुभागों में शामिल किया गया है:
-
स्थानीय सर्वर पर डेटाबेस का बैकअप लें।
-
बैकअप फ़ाइल को AWS S3 बकेट में कॉपी करें।
-
RDS में SQL बैकअप को S3 बकेट से पुनर्स्थापित करें।
स्थानीय सर्वर पर डेटाबेस का बैकअप लें
आप स्थानीय रूप से बैकअप लेने के लिए किसी भी विधि का उपयोग कर सकते हैं। निम्न उदाहरण .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'
संग्रहीत कार्यविधि के लिए दिए गए मापदंडों पर ध्यान दें। आपको निम्नलिखित पैरामीटर निर्दिष्ट करने की आवश्यकता है:
- पुनर्स्थापित करने के लिए डेटाबेस का नाम।
- बैकअप फ़ाइल का Amazon संसाधन नाम (ARN)। S3 ऑब्जेक्ट के लिए, ARN यहां दिखाए गए प्रारूप का अनुसरण करता है।
SQL सर्वर एक पुनर्स्थापना कार्य प्रारंभ करता है और उसे एक TaskID . असाइन करता है . आप निम्न आदेश के साथ कार्य की स्थिति को आसानी से ट्रैक कर सकते हैं:
EXEC msdb.[dbo].[rds_task_status] @db_name ='DestinationDBName'
आप टास्कआईडी . का उपयोग कर सकते हैं @db_name . के बजाय प्रगति को ट्रैक करने के लिए ।
निम्नलिखित चिंताओं से अवगत रहें:
- बकेट बैकअप फ़ाइल नाम rds_restore_database . में केस संवेदी है प्रक्रिया।
- विकल्प समूह में प्रयुक्त IAM भूमिका के पास S3 बकेट तक पहुंच है।
- IAM भूमिका को बाहर करने के लिए S3 बकेट नीति प्रतिबंधात्मक नहीं है।
- आरडीएस एसक्यूएल इंस्टेंस सही विकल्प समूह का उपयोग करता है जहां आपने बैकअप/पुनर्स्थापना विकल्प जोड़ा है। यह सेटिंग महत्वपूर्ण है। इसके बिना, पुनर्स्थापना प्रारंभ नहीं होती है।
Amazon RDS में SQL Server नेटिव बैकअप और रिस्टोर की सीमाएं
AmazonRDS में SQL सर्वर नेटिव बैकअप और रिस्टोर की कुछ सीमाएँ निम्नलिखित हैं:
- कोई अंतर, लेन-देन लॉग, फ़ाइल समूह बैकअप, या पुनर्स्थापना संभव नहीं है, जो डेटा पुनर्प्राप्ति में बाधा नहीं है। अमेज़ॅन आरडीएस आपको शेड्यूल्ड इंस्टेंस स्नैपशॉट बनाने की अनुमति देता है, और उन स्नैपशॉट्स को लगभग 35-दिन की अवधि के लिए एक्सेस करने योग्य रखा जाता है। आप पिछले पैंतीस दिनों में निर्दिष्ट समय के पांच मिनट के भीतर इंस्टेंस को पुनर्स्थापित कर सकते हैं।
- आप KMS-एन्क्रिप्टेड बैकअप को S3 से ऑन-प्रिमाइसेस में पुनर्स्थापित नहीं कर सकते।
- आप एक ही RDS उदाहरण में डेटाबेस को पुनर्स्थापित नहीं कर सकते।
- आप Tabular Data Encryption (TDE) सक्षम डेटाबेस के बैकअप को पुनर्स्थापित नहीं कर सकते।
- लक्षित RDS इंस्टेंस के लिए S3 बकेट तक पहुंच की आवश्यकता होती है।
- आरडीएस SQL सर्वर नेटिव बैकअप और रिस्टोर कमांड चलाने वाले उपयोगकर्ता खाते के लिए उपयुक्त अनुमतियां होनी चाहिए।
निष्कर्ष
यह ब्लॉग आपको दिखाता है कि किसी क्लाउड गंतव्य पर डेटाबेस का बैकअप कैसे लिया जाता है और इसे AWS RDS इंस्टेंस पर पुनर्स्थापित कैसे किया जाता है। RDS इंस्टेंस ड्राइव या सर्वर तक पहुँच प्रदान नहीं करता है। कुंजी बैकअप फ़ाइल को AWS S3bucket में स्थानांतरित करना और फिर उसे वहां से पुनर्स्थापित करना है।
इस लेख के लिए एक और उपयोग का मामला है अपने SQL बैकअप को सीधे AWSS3 पर संग्रहीत करना, जो डेटा उपलब्धता, सुरक्षा और प्रदर्शन संवर्द्धन प्रदान करता है। अमेज़न S3 को 99.999999999% (ग्यारह 9s) स्थायित्व के लिए डिज़ाइन किया गया है। जब यह बहुत सारे हार्ड स्टोरेज को बचाकर डेटाबेस बैकअप को स्टोर करने की बात आती है तो यह दृष्टिकोण लागत प्रभावी होता है।
कोई टिप्पणी करने या प्रश्न पूछने के लिए फ़ीडबैक टैब का उपयोग करें।
विशेषज्ञ प्रशासन, प्रबंधन और कॉन्फ़िगरेशन के साथ अपने परिवेश को अनुकूलित करें
रैकस्पेस की एप्लिकेशन सेवाएं(RAS) विशेषज्ञ अनुप्रयोगों के व्यापक पोर्टफोलियो में निम्नलिखित पेशेवर और प्रबंधित सेवाएं प्रदान करते हैं:
- ईकामर्स और डिजिटल अनुभव प्लेटफॉर्म
- एंटरप्राइज रिसोर्स प्लानिंग (ईआरपी)
- बिजनेस इंटेलिजेंस
- बिक्री बल ग्राहक संबंध प्रबंधन (सीआरएम)
- डेटाबेस
- ईमेल होस्टिंग और उत्पादकता
हम वितरित करते हैं:
- निष्पक्ष विशेषज्ञता :हम तत्काल मूल्य प्रदान करने वाली क्षमताओं पर ध्यान केंद्रित करते हुए आपकी आधुनिकीकरण यात्रा को सरल और मार्गदर्शन करते हैं।
- कट्टर अनुभव ™:हम पहले एक प्रक्रिया को जोड़ते हैं। प्रौद्योगिकी दूसरा। व्यापक समाधान प्रदान करने के लिए समर्पित तकनीकी सहायता के साथ दृष्टिकोण।
- बेजोड़ पोर्टफोलियो :हम व्यापक क्लाउड अनुभव लागू करते हैं ताकि आपको सही क्लाउड पर सही तकनीक को चुनने और परिनियोजित करने में मदद मिल सके।
- फुर्तीली डिलीवरी :हम आपसे मिलते हैं जहां आप अपनी यात्रा में हैं और सफलता को अपने साथ संरेखित करते हैं।
डेटाबेस के बारे में अधिक जानें
कोई टिप्पणी करने या प्रश्न पूछने के लिए प्रतिक्रिया टैब का उपयोग करें। आप हमारे साथ बातचीत भी शुरू कर सकते हैं।