SQLServerデータベースをAWSRDSインスタンスに移行します
このブログでは、オンプレミス(またはAmazon®EC2またはAzure®)でホストされているMicrosoft®SQLServer®データベースをAmazon Relational DatabaseService(RDS)に移動する方法について説明します。この移動には、SQLデータベースをAWS S3bucketにバックアップし、そのS3バケットからAWSRDSインスタンスのデータベースを復元する必要があります。
以前のバージョンのAmazonRDSインスタンスでは、 .bakからデータを復元できませんでした ファイル。その結果、ユーザーはAmazon Data Migration Servicesを使用するか、インポートとエクスポートを使用する必要がありました。 AWSRDSとの間でデータを移動するウィザード。
Amazonは2016年7月にネイティブバックアップ復元のサポートを開始し、RDSのMSDBデータベースに次のストアドプロシージャを追加しました:
- rds_backup_database –単一のデータベースをS3バケットにバックアップします。
- rds_restore_database –S3から単一のデータベースを復元します。
- rds_task_status –実行中のバックアップと復元のタスクを追跡します。
- rds_cancel_task –実行中のバックアップまたは復元タスクをキャンセルします。
このブログでは、 rds_restore_databaseを活用する方法について説明しています。 .bakを復元する手順 S3からのファイルとrds_task_statusの使用方法 AWSS3syncコマンドを使用してバックアップファイルをAWSS3バケットにアップロードしている間に復元の進行状況を監視する手順。
移行を実行するには、次の前提条件が必要です。
- SQLServerエージェントプロキシ
- AWSコマンドラインインターフェース(AWS CLI)
- ProfileName(AmazonS3および
aws_access_key_id
を含むS3バケットにアクセスできるAWSユーザー およびaws_secret_access_key
。) -
SQLSERVER_BACKUP_RESTORE
を持つ適切なオプショングループを持つAWSRDSインスタンス それにマップされたオプション。 - PowerShellのインストール
また、SQL Server、S3バケットの作成、AWSユーザーの作成、S3バケットへのアクセスの許可、およびRDSインスタンスの作成に関する基本的な知識も必要です。
次の手順では、次のセクションの解決策について説明します。
-
ローカルサーバー上のデータベースをバックアップします。
-
バックアップファイルをAWSS3バケットにコピーします。
-
S3バケットからRDSのSQLバックアップを復元します。
任意の方法を使用して、ローカルでバックアップを作成できます。次の例では、 .batを使用しています 移行タスクをスケジュールする必要がある場合に備えて、他のSQLエージェントジョブと同じように使用できるsqlcmdコマンドを使用したスクリプト:
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 copy
を使用して行うことができます またはAWS S3 sync
コマンド。ただし、syncコマンドは非常に人気があり、業界で広く使用されているため、次の例で使用します。
デフォルトでは、AWSsyncコマンドはファイルを削除しません。新しいファイルまたは変更されたファイルを宛先にコピーするだけです。次のPowerShellスクリプトをSQLエージェントジョブで使用できます。 cmdExec
を実行するように構成されたSQLエージェントプロキシアカウントを使用して、バックアップとこのコピー手順の両方を実行する必要があります。 およびPowerShellサブシステム。
$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 Serverは復元タスクを開始し、それに TaskIDを割り当てます。 。次のコマンドを使用して、タスクのステータスを簡単に追跡できます。
EXEC msdb.[dbo].[rds_task_status] @db_name ='DestinationDBName'
TaskIDを使用できます @db_nameの代わりに進行状況を追跡する 。
次の懸念事項に注意してください。
- バケットバックアップファイル名は、 rds_restore_databaseでは大文字と小文字が区別されます 手順。
- オプショングループで使用されるIAMロールは、S3バケットにアクセスできます。
- S3バケットポリシーは、IAMの役割を除外することを制限するものではありません。
- RDS SQLインスタンスは、バックアップ/復元オプションを追加した正しいオプショングループを使用します。この設定は重要です。これがないと、復元は開始されません。
AmazonRDSでのSQLServerネイティブバックアップと復元の制限
以下は、AmazonRDSでのSQLServerネイティブバックアップと復元のいくつかの制限です。
- 差分、トランザクションログ、ファイルグループのバックアップ、または復元はできません。これは、データ回復の妨げにはなりません。 Amazon RDSを使用すると、スケジュールされたインスタンススナップショットを作成でき、それらのスナップショットは35日間のローリングの間アクセス可能に保たれます。過去35日間の指定された時間から5分以内にインスタンスを復元できます。
- KMSで暗号化されたバックアップをS3からオンプレミスに復元することはできません。
- 同じRDSインスタンスでデータベースを復元することはできません。
- 表形式データ暗号化(TDE)対応データベースのバックアップを復元することはできません。
- ターゲットRDSインスタンスにはS3バケットへのアクセスが必要です。
- RDS SQL Serverのネイティブバックアップおよび復元コマンドを実行しているユーザーアカウントには、適切な権限が必要です。
このブログでは、クラウドの宛先でデータベースをバックアップし、AWSRDSインスタンスでデータベースを復元する方法を紹介しました。 RDSインスタンスは、ドライブまたはサーバーへのアクセスを提供しません。重要なのは、バックアップファイルをAWS S3bucketに転送し、そこから復元することです。
この記事のもう1つの使用例は、SQLバックアップをAWSS3に直接保存することです。これにより、データの可用性、セキュリティ、パフォーマンスが強化されます。AmazonS3は、99.999999999%(11 9秒)の耐久性を実現するように設計されています。このアプローチは、多くのハードストレージを節約することでデータベースのバックアップを保存する場合に費用効果があります。
[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。
専門家による管理、管理、構成で環境を最適化する
Rackspaceのアプリケーションサービス(RAS) 専門家は、幅広いアプリケーションポートフォリオにわたって次の専門的かつ管理されたサービスを提供します。
- eコマースおよびデジタルエクスペリエンスプラットフォーム
- エンタープライズリソースプランニング(ERP)
- ビジネスインテリジェンス
- Salesforceの顧客関係管理(CRM)
- データベース
- メールホスティングと生産性
お届けします:
- 偏りのない専門知識 :私たちは、即時の価値を提供する機能に焦点を当てて、お客様の近代化の旅を簡素化し、導きます。
- 狂信的な経験 ™:最初にプロセスを組み合わせます。テクノロジーセカンド。包括的なソリューションを提供するための専用のテクニカルサポートを備えたアプローチ。
- 比類のないポートフォリオ :豊富なクラウドエクスペリエンスを適用して、適切なテクノロジーを適切なクラウドに選択して導入できるようにします。
- アジャイルデリバリー :私たちはあなたがあなたの旅の途中であなたに会い、あなたの成功と一致します。
データベースの詳細
コメントや質問をするには、[フィードバック]タブを使用します。私たちと会話を始めることもできます。
-
AWS SQLネイティブデータベースのバックアップ、復元、監視
データベースのバックアップは、データベースの動作状態、アーキテクチャ、および保存されたデータをバックアップするときに行われます。プライマリデータベースがクラッシュしたり、破損したり、失われたりした場合に備えて、データベースの複製インスタンスまたはコピーを作成できます。 このブログ投稿では、Amazon®Web Services(AWS)リレーショナルデータベースサービス(RDS)でのSQLネイティブデータベースのバックアップ、復元、および監視について説明しています。 AWSRDSでのSQLネイティブフルバックアップ AWSでは、AWSRDSSQLインスタンスのSQLネイティブデータベースの
-
MS Access から SQL Server データベースにデータを移行する
最近、データベースが大きくなりすぎて Access で処理できなくなったため、Access データベースから SQL Server 2014 にデータを移行する必要がありました。プロセスはかなり単純ですが、段階的な手順を記載した記事を書こうと思いました. まず、コンピューターに SQL Server または SQL Server Express がインストールされていることを確認する必要があります。 PC に SQL Server Express をダウンロードする場合は、必ず Advanced Services を含むバージョンをダウンロードしてください。 .そうしないと、データベース エ