今回は、AWS RDS for SQL Serverのネイティブバックアップの取得方法についてお話したいと思います。
実際に実施できる環境が手元にないので、画面キャプチャ等はありませんがポイントを絞って重要そうなところなどをお話していけたらと思います。
個人的な備忘録として記載してますので、少々分かりづらい点があるところはご了承いただければと思います。
はじめに
AWS RDS for SQL Serverのネイティブバックアップとは、通常オンプレミスで取得するようなバックアップをRDSのSQL Serverで取得する方法になります。RDSなので、バックアップファイルの取得方法が変わってくるということみたいです。ちなみに、この方法で取得したバックアップファイルはAmazon S3に保存されます。
インスタンスまるまるのバックアップではなくて、個別のデータベース毎にバックアップを取得したい場合はこの方法を選択する必要があります。
今回はバックアップに絞った内容ですが、もちろん復元も同様にサポートされています。
ネイティブバックアップの制限と推奨事項
制限と推奨事項がたくさんあるので少々大変ですが、もちろんすべて目を通しておいたほうがよさそうです。個人的に、重要そうなものを抜粋しておきます。
docs.aws.amazon.com
ネイティブバックアップを行う上でのセットアップ
ネイティブバックアップを行うには、事前に準備しておくことがいくつかあります。簡単にご紹介します。
ネイティブバックアップ取得方法
それでは、これからは実際にネイティブバックアップを出力するための操作になります。基本は、以下の公式ページを確認すれば大丈夫かなと思います。
docs.aws.amazon.com
以下から重要なコマンドのみ紹介していきたいと思います。
バックアップファイルの圧縮設定
取得するバックアップファイルの圧縮設定をするコマンドです。AWS S3に保存する容量を小さくすることができるので、通常であればこの設定をしておくのが良さそうです。バックアップコマンドを実行する前に実行する必要がありそうです。
-- 圧縮有効化 exec rdsadmin..rds_set_configuration 'S3 backup compression', 'true'; -- 圧縮無効化 exec rdsadmin..rds_set_configuration 'S3 backup compression', 'false';
データベースのバックアップ
データベースのバックアップコマンドの構文は以下の通りです。
exec msdb.dbo.rds_backup_database @source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name.extension', [@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'], [@overwrite_s3_backup_file=0|1], [@type='DIFFERENTIAL|FULL'], [@number_of_files=n];
たとえば、「sampleDB」データベースをフルバックアップしたい場合は以下の通りです。「hoge_bucket」バケットに「sampleDB_202109091800.bak」という名前でフルバックアップファイルが作成されます。
細かい内容は、先ほどのページをご参照いただければと思います。
exec msdb.dbo.rds_backup_database @source_db_name='sampleDB', @s3_arn_to_backup_to='arn:aws:s3:::hoge_bucket/sampleDB_202109091800.bak', @overwrite_s3_backup_file=0, @type='FULL', @number_of_files=1;
バックアップのステータスの確認
データベースのバックアップの実行状況の進捗を以下のコマンドを実行することで確認することができます。不安なときは、このコマンドを実行して確認すると良いと思います。
exec msdb.dbo.rds_task_status;
おわりに
いかがでしたでしょうか。RDSのSQL Serverで行えるバックアップの取得方法について簡単にですが記載してきました。
どのようにバックアップを取得するのかは、個々の現場次第かと思いますが、このネイティブバックアップの取得方法を抑えておくのは良いかもしれません。
最後までお読みいただきありがとうございました。今回はこの辺で失礼いたします。
参考
最後に、ネイティブバックアップを取得する作業を行う際に参考にさせていただいたページをここにまとめます。必要に応じて参考にしていただければと思います。
SQL Server データベースのインポートとエクスポート - Amazon Relational Database Service
SQL Server を実行している Amazon RDS DB インスタンスのネイティブバックアップを実行する
Amazon RDS for SQL Serverへバックアップファイル(bak)からDBを復元する方法 │ Startup Plus, Inc. | スタートアッププラス
Migrating Microsoft SQL Server Enterprise Workloads to Amazon RDS: Part 1 | AWS Database Blog