SQL Server RDSをS3バケットにバックアップする方法

SQL Server RDSインスタンスのバックアップを管理することは、データの可用性と災害復旧を確保するために不可欠です。AWSはこのプロセスを容易にするためのツールを提供しており、SQL Server RDSデータベースを直接Amazon S3にバックアップするためのコマンドも含まれています。この記事では、バックアップとリストアを実行するために必要なコマンドと構成について説明します。

SQL Server RDSをS3にバックアップする

バックアップの作成に使用される主要なストアドプロシージャはmsdb.dbo.rds_backup_databaseです。このコマンドを使用すると、バックアップするデータベースとバックアップ先のS3の場所を指定できます。

パッケージパラメータ

このストアドプロシージャは、いくつかのパラメータをサポートしており、これらは必須オプションに分類されています。

必須パラメータ

  • @source_db_name:バックアップするデータベースの名前。
  • @s3_arn_to_backup_to:バックアップに使用するAmazon S3バケットを示すARNであり、バックアップファイル名も含まれています。
    • ファイルには任意の拡張子を使用できますが、.bakが一般的に使用されます。

オプションのパラメータ

  • @kms_master_key_arn

    • バックアップの暗号化に使用する対称暗号化KMSキーのARN。
    • デフォルトの暗号化キーは使用できません。デフォルトキーを使用すると、バックアップが失敗します。
    • KMSキーを指定しない場合、バックアップファイルは暗号化されません。
    • 対称KMSキーのみがサポートされています。
  • @overwrite_s3_backup_file

    • 既存のファイルを上書きするかどうかを決定します。
    • 0(デフォルト):既存のファイルを上書きしません。ファイルが既に存在する場合はエラーが返されます。
    • 1:既存のファイルを上書きします。バックアップファイルでなくても上書きします。
  • @type

    • バックアップの種類を指定します。
    • FULL(デフォルト):完全バックアップを実行します。
    • DIFFERENTIAL:最後の完全バックアップに基づいて差分バックアップを作成します。
    • 重要:差分バックアップを行うためには、最後の完全バックアップと差分バックアップの間にスナップショットが存在していない必要があります。スナップショットが存在する場合は、差分バックアップの前に別の完全バックアップを実行してください。以下は最後の完全バックアップを確認するための例のクエリです:

      MS SQL

       

  • @number_of_files

    • バックアップを分割するファイル(チャンク)の数を指定します。最大: 10。
    • 設定された場合は1、または省略されると、単一のバックアップファイルが作成されます。
    • マルチファイルバックアップでは、ファイル名に単一の*を使用する必要があり、生成中に英数字の文字列に置換されます。例:
      • 入力: backup*.bak, @number_of_files = 4
      • 出力: backup1-of-4.bak, backup2-of-4.bak, backup3-of-4.bak, backup4-of-4.bak
  • @block_size

    • バックアップ操作の物理ブロックサイズ(バイト単位)を指定します。
    • 有効な値: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536
  • @max_transfer_size

    • I/O 操作ごとに転送されるデータの最大量(バイト単位)を示します。
    • 有効な値: 65536 バイトの倍数で、4194304 バイト(4 MB)まで。
  • @buffer_count

    • バックアッププロセス中に使用される I/O バッファの総数。

コマンド構文

MS SQL

例: S3 へのフルバックアップ

MS SQL

バックアップ圧縮の構成

スペースを節約し転送時間を短縮するために、SQL Server RDS バックアップ用に圧縮を有効にできます。 rdsadmin コマンドを使用します。

圧縮を有効化

MS SQL

 

圧縮を無効にする

MS SQL

注意: SQL Expressはバックアップの圧縮をサポートしていません。このような場合に有効にすると、バックアップが失敗します。

ネイティブSQL Serverバックアップの実行

Amazon RDSはネイティブSQL Serverバックアップ機能もサポートしています。以下はバックアップおよびリストア操作のコマンドです。

バックアップコマンド

完全バックアップコマンド

MS SQL

差分バックアップコマンド

MS SQL

 

リストアコマンド

差分リストアコマンド

MS SQL

差分リストアコマンド

MS SQL

 

バックアップタスクの監視と管理

タスクのステータスを確認する:

MS SQL

バックアップタスクをキャンセルする:

MS SQL

考慮事項

  • コマンドで使用されるS3バケットがRDSインスタンスからのアクセスを許可するための必要なアクセス権限を持っていることを確認してください。
  • 機密データの場合、@kms_master_key_arnを指定してS3に保存する前にバックアップを暗号化するためにAWS KMSマスターキーを使用できます。

追加リソース

詳細な例や情報については、公式のAWS documentation on SQL Server backupsを参照してください。

このガイドでは、Amazon S3を使用してSQL Server RDSバックアップを管理するための堅固な基盤が提供されています。より高度な構成については、AWSのドキュメントを参照するか、提供されたパラメータを実験して環境に応じてバックアッププロセスを微調整してください。

Source:
https://dzone.com/articles/how-to-backup-sql-server-rds-to-an-s3-bucket