VeeamでSQL Serverのトランザクションログまでバックアップ


Veeam Ver8からSQL Serverのトランザクションログのバックアップも対応しました。これにより指定したトランザクションの状態までデータベースを復旧することが可能になりました。ただベテランのSQL Serverデータベース管理者の方は、仮想マシンのバックアップソフトであるVeeamをSQL Serverのバックアップに使用することに抵抗があるかもしれません。そのため、まず以下のような特徴を並べてみます。

  • VeeamによるSQL Serverのバックアップでサポートされていないものはありません
  • VeeamでSQL Serverバックアップを管理することで大幅に容量を削減できる可能性があります。
    例えば、完全バックアップが100GB、毎日の変更が1GBのデータベースの場合には、差分バックアップを使用せずに4週間分毎日の世代を保持すようとすれば2.8TB、毎日のバックアップは差分バックアップ、週に1回、完全バックアップをとるような構成であれば0.48TBの容量がバックアップサーバ上に必要になります。ではVeeamの場合はというと、Veeamでバックアップを取得すれば既にデータベースの静止状態は含まれています。これによりバックアップサーバ上の必要な容量は大幅に削減され0TBとなります。また、差分バックアップファイル等を保持しなくともよいので各SQL Server仮想マシン上のディスクスペースの削減にもつながります。
  • リストアは全てVeeamのツールから実施可能です。
    Veeamがバックアップの場所を管理しているため、仮想マシンのリストアと同様にSQL Serverのリストアを行えます。
  • トランザクションログのバックアップは、バックアップが実行された直後に別の場所にコピーされます。
    ログをSQL Serverマシン上に保存している場合にはマシン自体が壊れてしまえば、ログのバックアップも同様に失われてしまいますが、これを回避できます。

Veeamはこれらを実現するために以下のバックアップをサポートしています。

  • 静止状態のバックアップ:SQL Server VSSライターサービスにより一貫性のあるデータベースを含む仮想マシン全体のバックアップが作成できます。
  • トランザクションログのバックアップ:トランザクションログのバクアップを使用し、静止状態のバックアップを補完できます。通常VeeamはBACKUP LOGコマンドを使用し、ファイルにログを出力した後、Veeamのバックアップリポジトリに、ログのバックアップファイルをコピーします。トランザクションログのバックアップは完全もしくは一括ログ復旧モデルの場合に実行されます。そのため、データベースの復旧モデルをご確認ください。

データベースのフルバックアップ ― 静止状態
VeeamではWindowsのVSS機能使用し、仮想マシンの静止状態を取得します。これによりSQL Server VSSライターサービスと連動しデータベースの一貫性のある状態をバックアップできます。この際、Veeamはデータベースの完全バックアップを作成するためにSQL ServerとVDI APIで通信を行います。

このときにログのバックアップを実施しない場合には、以下のどちらかの設定を行っておく必要があります。

  • 全てのデータベースを単純復旧モデルに設定
  • Veeamからトランザクションログを切り捨てるように設定(BACKUP LOGコマンドをファイル名で実行)

ログの切り捨て設定

Veeamでトランザクションログのバックアップを作成するための設定
それではVeeamでトランザクションログのバックアップを行うための設定をどのように行うかというととても簡単に行えます。ジョブウィザードのGuest Processing項目のApplicationボタンから各VMの設定のSQLタブにある“Processing Settings”で“Backup logs periodically” を選択するだけです。これだけでSQL Serverの静止状態のバックアップをログのバックアップで補完することができます。
トランザクションログのバックアップ設定

Veeamでのトランザクションログのバックアップ作成の仕組み
Veeamでのトランザクションログのバックアップを有効にすると以下のコンポーネントが自動的にSQL Serverマシンにインストールされます。

  • VeeamAgent:このコンポーネントがBACKUP LOGコマンドを定期的に実行します。Backupサーバからこのコンポーネントは開始され、ログのバックアップがファイルに対して実行されます。この時に実行されるコマンドは特別なものではなく以下のようなコマンドです。
      DECLARE @database_name_var NVARCHAR(255)
      SET @database_name_var = N’Tandlaege’
      BACKUP LOG @database_name_var TO DISK = N’C:\ProgramData\Veeam\
      Backup\SqlLogBackup\{78d18633-05ae-4613-b903-b2ea8854ad34}.bak’

    このようにデータベース名を変数として、BACKUP LOGコマンドは実行されています。

  • VeeamLogShipper:このコンポーネントがVeeamAgentにより作成されたバックアップファイルをVeeamバックアップリポジトリにコピーします。もしバックアップ対象のSQL Serverマシンとリポジトリが直接アクセスできない場合には、ログをコピーするために1つ以上のlog shippingサーバを試行します。この試行を行わせないようにするために任意のlog shippingサーバを設定することも可能です。log shippingサーバはWindowsサービスとして実装されています。

そして、Veeamからログのバックアップを行っておくことでVeeamのわかりやすいGUIで指定したトランザクションまで簡単に復旧することが可能です。次回はこのリストアの部分を詳細にご紹介いたします。

関連トピックス

コメントを残す

メールアドレスが公開されることはありません。

 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください