RDS for Microsoft SQL Serverに.bakをリストアするとエラーになる
RDS for Microsoft SQL Serverに.bakをリストアできない
社内DBをRDSへ移行しようとした際に、.bakをそのままリストアする方法として下記を参考にさせて頂きました。
■RDS for SQL Server へのインポート
https://qiita.com/nis_nagaid_1984/items/99870c7a6e9ea5b777a4
■RDS for Microsoft SQL Serverのバックアップ・リストアが簡単にできるようになりました!
https://dev.classmethod.jp/cloud/aws/import-export-mssql-by-s3-bak-file/
■Setting Up for Native Backup and Restore
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Enabling
エラーになるけどどうしたらいいの?
上記で紹介した記事で、下記の手順が紹介されていました。
実際の手順は前述の記事で紹介されているので省略しますが、簡単な流れとしては下記の通りです。
・S3にバケット作成してそこにファイルをアップしておく
・RDSインスタンスにオプショングループ(SQLSERVER_BACKUP_RESTORE)の追加
・SSMSでRDSのストアド[rds_restore_database]を実行する
私の場合、ストアドを実行してもエラーで終了してしまい、対処方法がわかりませんでした。
ステータス確認ストアド[rds_task_status]に表示されるエラーメッセージから、オプショングループ(SQLSERVER_BACKUP_RESTORE)で追加したIAMロールの問題のように思えましたので、下記の確認を行いました。
IAMロールの確認
すると、ポリシーに記載されているS3のバケットが.bakの保存先とは別のバケットだけが記載されていました。
ここに.bakの保存先バケットを追加してみました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::□□□□□□□□□", ← カンマも追加
"arn:aws:s3:::□□□□□□□□" ← .bakの保存先追加
]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObjectMetaData",
"s3:GetObject",
"s3:PutObject",
"s3:ListMultipartUploadParts",
"s3:AbortMultipartUpload"
],
"Resource": [
"arn:aws:s3:::□□□□□□□□□/□□□□□/*", ← カンマも追加
"arn:aws:s3:::□□□□□□□□/□□□/*" ← .bakの保存先追加
]
}
]
}
結果
再度ストアド[rds_restore_database]を実行してステータスを確認すると、見事成功となっておりました。
DBインスタンスにオプショングループを追加した際にどのバケットが初期値として指定されるのか不明ですが、IAMロールからであれば明示的にバケットを指定できました。
どなたかのお役に立つことがあれば幸いです。
Author And Source
この問題について(RDS for Microsoft SQL Serverに.bakをリストアするとエラーになる), 我々は、より多くの情報をここで見つけました https://qiita.com/mrsr6113/items/2326bc3d4c334838fd66著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .