データベース
 Computer >> コンピューター >  >> プログラミング >> データベース

AWS RDSでSQL Serverネイティブデータベースをバックアップ・復元・監視する方法

データベースのバックアップとは、データベースの稼働状態、構成、保存データ一式を退避することです。バックアップがあれば、プライマリデータベースがクラッシュ・破損・消失した場合でも、複製インスタンスやコピーを作成して迅速に復旧できます。

本記事では、Amazon Web Services(AWS)Relational Database Service(RDS)におけるSQL Serverネイティブデータベースのバックアップ、復元、監視の方法を解説します。

AWS RDSでのSQLネイティブフルバックアップ

AWS RDSでは、SQL Serverネイティブデータベースに対して実行できるのはフルバックアップのみです。rds_backup_databaseストアドプロシージャを使うことで、SQLデータベースのフルバックアップをS3バケットに作成できます。なお、ネイティブバックアップ機能を利用するには、あらかじめS3バケットとIAMロールの設定が必要です。以下にコマンド例を示します。

-- データベースのバックアップを実行するコマンド
exec msdb.dbo.rds_backup_database
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@overwrite_S3_backup_file=1;

-- KMS暗号化バックアップを実行するコマンド
exec msdb.dbo.rds_backup_database
@source_db_name='database_name',
@s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id',
@overwrite_S3_backup_file=1;
AWS RDSでSQL Serverネイティブデータベースをバックアップ・復元・監視する方法

画像出典:https://niftit.com/backup-with-aws-rds/

S3バケットからのSQLデータベース復元

rds_restore_databaseストアドプロシージャを使用すると、S3バケット内のバックアップファイルから、AWS RDSインスタンス上のSQLデータベースを復元できます。

:以下の例では、環境に応じて次のパラメータを変更してください。

  • database_name(データベース名)
  • bucket_name(S3バケット名)
  • file_name_and_extension(ファイル名と拡張子)
  • region(リージョン)
  • account-id(AWSアカウントID)
  • key-id(KMSキーID)
-- S3バケット内のバックアップファイルからDBを復元するコマンド
exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';

-- KMSキーが設定されたS3バケットからDBを復元するコマンド
exec msdb.dbo.rds_restore_database
@restore_db_name='database_name',
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension',
@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id';
AWS RDSでSQL Serverネイティブデータベースをバックアップ・復元・監視する方法

画像出典:https://www.awslab.io/sqlserver/lab2/

AWS RDSバックアップ・復元の制限事項と除外項目

ここでは、AWS RDSでデータベースをバックアップ・復元する際の制限事項と除外項目について説明します。

AWS RDS SQLネイティブバックアップの除外項目

AWS RDSインスタンスでは、次のSQLネイティブ要素のバックアップおよび復元はサポートされていません。

  • 差分バックアップ
  • トランザクションログバックアップ
  • ファイルグループバックアップ

AWS RDS SQLネイティブバックアップの制限事項

  • サポートされるバックアップファイルの最大サイズは1TBです。
  • バックアップは、対象のRDSインスタンスと同じリージョンのS3バケットにのみ作成できます。RDSインスタンスが存在するリージョンAへのアクセス権を持つユーザーが、リージョンBのS3バケットへデータベースをバックアップしようとすると、次のエラーが発生します。
Aborted the task because of a task failure or an overlap with your
preferred backup window for RDS automated backup.

Access Denied.
Please specify a bucket that is in the same region as RDS instance.

バックアップ・復元の制限が影響するシナリオ

KMS暗号化バックアップの場合

AWSは、Key Management Service(KMS)で暗号化されたバックアップを、オンプレミスのSQL Serverやその他のEC2インスタンスに復元することをサポートしていません。バックアップファイルの復元が必要な場合は、同じリージョンに同じKMSキーを使用して新しいRDSインスタンスを作成してください。KMS暗号化バックアップを復元した後、暗号化なしでバックアップを取り直せば、オンプレミスや他のEC2インスタンスへの復元が可能になります。

KMS暗号化バックアップを無理に復元しようとすると、次のようなエラーが発生することがあります。

Msg 3241, Level 16, State 0, Line 1
The media family on device 'C:\TempDB_Encrypted.bak' is incorrectly formed. SQL Server cannot process this media family.

TDE有効バックアップの場合

AWSはTransparent Data Encryption(TDE)が有効なバックアップをEnterpriseエディションでのみサポートしており、証明書とマスターキーの両方が必要です。データベースのバックアップファイルにはキーが含まれないため、AWS RDSインスタンスに復元しようとすると次のエラーが発生します。

Cannot find server certificate. RESTORE FILELIST is terminating abnormally.

同一AWSインスタンスへの復元の場合

AWSでは、既存データベースの上書きや、既存データベースへの復元は許可されていません。必ず別の名前のデータベースとして復元する必要があります。既存データベースへの復元を試みると、次のエラーが発生します。

Aborted the task because of a task failure or a concurrent RESTORE_DB request.

Task ID x (RESTORE_DB) exception: Database TestDB cannot be restored because there is already an existing database with the same file_guids on the instance.

バックアップ・復元タスクの監視

AWSでは、rds_task_statusストアドプロシージャを使用して、バックアップおよび復元タスクの状態を追跡できます。

exec msdb.dbo.rds_task_status @db_name='database_name'
AWS RDSでSQL Serverネイティブデータベースをバックアップ・復元・監視する方法

画像出典:https://www.awslab.io/sqlserver/lab2/

トラッキングIDを取得したら、次のコマンドでバックアップまたは復元処理の進行状況を監視できます。

exec msdb..rds_task_status @task_id= 4

まとめ

AWS RDSでは、SQL Serverネイティブデータベースのフルバックアップと復元を実行できます。ただし、異なるAWSリージョンのS3バケットへのバックアップ作成や、KMS暗号化・TDE有効バックアップの復元にはいくつかの制限があります。本番環境への移行や復元作業の前に、必ずテスト環境でバックアップと復元のプロセスを検証しておきましょう。

ご意見やご質問がある場合は、フィードバックタブからお気軽にお寄せください。

専門家による管理・運用で環境を最適化

Rackspaceのアプリケーションサービス(RAS)のエキスパートは、幅広いアプリケーションポートフォリオを対象に、以下のプロフェッショナルサービスおよびマネージドサービスを提供しています。

  • eコマースおよびデジタルエクスペリエンスプラットフォーム
  • エンタープライズリソースプランニング(ERP)
  • ビジネスインテリジェンス
  • Salesforce顧客関係管理(CRM)
  • データベース
  • メールホスティングと生産性向上

私たちがお約束すること:

  • 中立的な専門性:即座に価値を生み出す機能に焦点を当て、モダナイゼーションの道のりを簡素化しながら伴走します。
  • Fanatical Experience™:「Process first. Technology second.®」のアプローチと専任の技術サポートを組み合わせ、包括的なソリューションを提供します。
  • 比類なきポートフォリオ:豊富なクラウド経験を活かし、適切なクラウド上に最適なテクノロジーを選定・導入するお手伝いをします。
  • アジャイルなデリバリー:お客様の取り組みのどの段階からでも柔軟に対応し、お客様の成功を私たち自身の成功と捉えます。

まずはチャットでお気軽にご相談ください。


  1. Windowsレジストリのバックアップと復元方法を徹底解説

    レジストリは、コンピューターにとって「脳」のような役割を果たす重要な存在です。Windowsのコンポーネント、サービス、アプリケーションなど、システムのほぼすべてに関わる構成情報や設定がここに格納されています。 レジストリを理解するうえで押さえておきたい基本概念は「キー」と「値」の2つです。キーはフォルダのようなオブジェクトで、レジストリエディターの画面上でも実際にフォルダと同じように表示されます。一方、値はフォルダ内のファイルのようなもので、具体的な設定内容が記録されています。 なぜレジストリのバックアップが必要なのか Windowsパソコンの設定に大きな変更を加えたい場合、多くはWindo

  2. Windowsタスクバーのピン留め項目をバックアップ・復元する方法

    よく使うWindowsアプリをタスクバーにピン留めしておくと、素早くアクセスできてとても便利です。しかし、パソコンの乗り換え時や、何らかの原因でピン留めが消えてしまった場合でも、バックアップさえあれば簡単に復元できます。この記事では、Windowsのピン留めされたタスクバーアプリをバックアップする方法を詳しくご紹介します。 Windowsのピン留めされたタスクバー項目をバックアップする方法 Windowsパソコンには、バックアップに必要な情報がすべて格納された専用フォルダが存在します。 ステップ1: Win + Rキーを押して「ファイル名を指定して実行」を起動し、以下のファイルパスをテキストボ