SQL Server Agent

SQL Server Agent は、Microsoft SQL (2005, 2008, 2012, 2014, 2016, 2017, 2019) サーバのバックアップや復元を行うための Retrospect のアドオンです。このアドオンがないと、Retrospect は、動作中の SQL サーバからデータベースを容易かつ確実にバックアップすることはできません。

SQL サーバは、(そのサーバ自体で Retrospect アプリケーションを動作させて)ローカルにバックアップするか、(別のコンピュータで Retrospect アプリケーションを動作させて)Retrospect クライアントとしてバックアップすることができます。

最新情報

SQL クラスタのサポート

Retrospect はクラスタ環境で SQL サーバのバックアップおよび復元をサポートしますが、次の制限があります。

  • クラスターには2つのノードのみを持つことができます。
  • 2 ノード間で共有している複数の SQL リソース グループをバックアップできます。
  • ノードは Retrospect クライアントとしてバックアップおよび復元しなければなりません。 Retrospect バックアップ コンピュータはクラスタ内の 1 ノードになることはできません。
  • SQL リソース グループを所有するノード上の SQL データをバックアップすることのみが可能です。 同様に、SQL リソース グループを所有するノード上に SQL データを復元することのみが可能です。
  • Retrospect はクラスタ構成情報をバックアップおよび復元しません。 障害発生時の復旧シナリオでは、Retrospect により SQL データを復元する前に手動でクラスタを再作成する必要があります。
  • ノードが現在 SQL リソース グループを所有しているかどうかに関係なく、SQL データを確実にバックアップしたい場合、各ノードに対する個別の SQL ライセンス(およびクライアント ライセンス)が必要です。 特定のノードが SQL リソース グループを所有している時に SQL データをバックアップしたいだけの場合は、該当するノードに対する SQL ライセンス(およびクライアント ライセンス)が必要です。

SQL コンテナが表示されない

すでに Retrospect が動作しているシステムに SQL サーバをインストールする場合、Retrospect が SQL コンテナを認識する前にサーバを再起動する必要があります。

データおよびログ ファイルを復元するためのカスタム パス

デフォルトのオプションでのデータベース復元操作中、Retrospect はデータベース データおよびログファイルを、それぞれが別の場所に保存されている場合であっても(データファイルは C:\、ログファイルは E:\ など)、そのオリジナルの場所に復元します。 カスタム パスへ復元するように選択した場合には、データとログファイルの両方が、指定した 1 つの場所(D:\ など)に復元されます。

セキュリティ

Retrospect Exchange Server Agent アドオンも使用する場合は、セキュリティをお読みください。Exchange Server Agent のセキュリティ設定に関する詳しい説明があります。

不適格なユーザがバックアップコンピュータで Retrospect を起動して、SQL サーバをバックアップする事態そのものは、さまざまな手段で防止できるでしょう。重要なのは、正しいセキュリティコンテキストで動作し、正しいセキュリティコンテキストで各 SQL サーバにアクセスするように、Retrospect を設定することです。たとえば、SQL サーバへの十分なアクセス権を持つユーザとして実行されるように Retrospect の環境設定を行ったり、各 SQL サーバに SQL 認証またはドメイン認証を通じて、個別にログインするように設定する必要があります。

Retrospect をすでにインストール済みまたは実行済みであるかどうかにかかわらず、またセキュリティ環境設定を以前どのように設定していたかにかかわらず、SQL を操作できるようにするには以下の手順に従ってください。

ユーザログインの作成および管理

Retrospect 専用のログインアカウントを作成し、Retrospect のユーザを Backup Operators として識別する必要があります。そのための手順では、Active Directory Users and Computersを使用します。これを以下に示します。

Retrospect バックアップユーザアカウントの作成

SQL サーバのドメイン内で、RBU(Retrospect バックアップユーザアカウントを示す)など、Retrospect 専用のログインを作成します。

このアカウントを、Domain Users、Domain Admins、Administrators、および Backup Operators のメンバーにします。

バックアップオペレータの追加

Retrospect のユーザのアカウントを、Backup Operators のメンバーにします。バックアップコンピュータの Retrospect で使用するログインアカウントは、Backup Operators または Administrators のメンバーでなければなりません。

Retrospect セキュリティ環境設定

Retrospect バックアップユーザアカウントを設定した後は、その新しいアカウントを使用するように Retrospect を設定する必要があります。それぞれの SQL サーバに対して別々のドメインユーザとして実行するように、またはそれぞれの SQL に対して所定の SQL ログインを使用するようにも設定できますが、すべての SQL サーバに対する Retrospect バックアップユーザとして実行するように特定の環境設定を行うほうが簡単でよいでしょう。以下の手順では、その環境設定の方法を説明します。後で別の SQL サーバログインを設定できます。

管理者権限のログインを使って、バックアップコンピュータにログインします。

Retrospect をバックアップコンピュータにインストールしていない場合は、「はじめに」の説明に従ってインストールを行います。

Retrospect アプリケーションを起動します。

バックアップコンピュータで Retrospect を最初に起動する場合は、起動後に Retrospect の起動ウィザードが開きます。このウィザードには、ユーザアカウント情報を入力する画面が表示されます。

464

バックアップコンピュータで Retrospect を実行するのが今回初めてではない場合、Retrospect ナビゲーションバーの「設定」をクリックしてから、「環境設定」をクリックします。「実行」環境設定グループで、「セキュリティ」をクリックします。

465

ユーザログインの選択

「環境設定」ウィンドウと初めて起動したときの「ユーザアカウント」ウィンドウの両方に、Retrospect アプリケーションが実行されるときのユーザログインを決めるラジオボタンが 2 つあります。

「ログインユーザで Retrospect を起動」は、(「スタート」メニューか Windows エクスプローラから)Retrospect を手動で起動したときに、実行されます。Retrospect を自動で起動した場合は(スクリプトを実行)、「ローカルシステム」アカウントで動作します。どちらも SQL に使用するのは最適ではありません。なぜならば、権限不足によってバックアップができない可能性があるからです。したがって、この環境設定を選択しないでください。

SQL で使用する場合には、「指定されたユーザで Retrospect を常に起動」の設定をお勧めします。ラジオボタンをクリックして、この環境設定を選択します。Retrospect バックアップユーザ名、パスワード、およびドメインを入力します。

「OK」をクリックしてセキュリティ環境設定の変更を受け入れると、入力を確定するように求められるので、「OK」をクリックします。

ログインが無効なことを示すメッセージが表示される場合は、ドメインユーザ名またはパスワードの入力ミスの可能性があります。名前を再チェックし、Retrospect バックアップユーザアカウントの作成から始まる上記手順に従ってください。

指定のドメインユーザであることが確認された場合は、アプリケーションを終了し再起動して、変更を有効にするように求められます。終了して管理者をログオフし、次の手順に進みます。

適正な操作の検証

Backup Operators のメンバーであるユーザとして、バックアップコンピュータにログインします。Retrospect を起動し、アプリケーションウィンドウのタイトルに注目します。このウィンドウタイトルには、アプリケーションを実行しているユーザが入ります。別のユーザとしてバックアップコンピュータにログインしていても、アプリケーションを実行している「ユーザ」は Retrospect バックアップユーザアカウントです。

466

ローカル管理者権限

常に特定のログインで実行するように Retrospect を設定した場合、ログインに権限が何も割り当てられていなければローカル管理者権限が割り当てられます。

前に説明したセキュリティ環境設定が行われ、Backup Operators または Administrators のメンバーとしてバックアップコンピュータにログインした場合、Retrospect は必ず、最低限ローカル管理者権限で実行されます。

これは、バックアップオペレータが Retrospect での管理者権限を利用して、ローカルコンピュータのファイルを操作できることを意味します。

セキュリティを追加するには、Retrospect アプリケーションに対するユーザアクセスを制御する、Retrospect のパスワード保護環境設定の使用を検討してください。

インストール

Retrospect をバックアップコンピュータにインストールしていない場合は、「はじめに」の説明に従ってインストールを行います。セキュリティで前述したように、セキュリティ環境設定を行います。

SQL サーバを Retrospect クライアントとして使用する場合、そのコンピュータに Retrospect クライアントソフトウェアをインストールします。詳細は、「ネットワーク接続クライアント」を参照してください。

クライアントのログイン

SQL サーバを Retrospect クライアントとして使用する場合は、バックアップコンピュータからクライアントをログインします。詳細は、「ネットワーク接続クライアント」を参照してください。

ライセンスとログイン

「ウィンドウ」メニューから「ライセンス マネージャ」を選択し、ライセンス登録済みのコンポーネントを表示します。

SQL データベースバックアップがリストに表示されていない場合、または有効なライセンスがない状態でリストに表示されている場合には、「追加」をクリックし、SQL データベースバックアップのライセンスコードを入力します。(Retrospect, Inc. からコードを入手するには、「購入」をクリックします。)

SQL バックアップライセンスを追加した後は、使用可能としてリストに表示されます。次の手順は、ライセンスの使用です。

ライセンスの使用

ナビゲーションバーから、「ボリューム」をクリックしてボリュームデータベースウィンドウを表示します。「マイコンピュータ」と「バックアップクライアント」の下に、Retrosepct に認識されたすべての SQL サーバがリスト表示されます。

467

テキストによって示されているとおり、まだライセンス設定がなされていないため、アイコンはグレーになっています。ライセンスマネージャで利用可能になっているライセンスはありますが、どのサーバを使用するかは Retrospect にはわかりません。Retrospect で使用する各サーバに、ライセンスを適用する必要があります。

使用する SQL サーバをクリックします。そこで、利用可能なライセンスを使用するかどうか尋ねられます。「OK」をクリックします。しばらくすると、SQL Server コンテナから「not licensed」タグが消えます。

SQL サーバをクリックしたときに何も行われなかった場合、または(クライアントではなく)ローカルサーバのログインを入力するように求められた場合は、SQL サーバに対して十分なアクセス権限がログインユーザにないか、サービスが動作していない可能性があります。再試行する前に、サービスが動いていることを確認し、セキュリティを読み直して、セキュリティを正しく設定してください。

クライアントの場合の SQL サーバログイン

Retrospect のクライアントであるサーバの場合は、ライセンスの適用後すぐに、SQL サーバのログイン情報を入力するように求められます。

次の手順に従ってください。

SQL サーバへのログイン

各 SQL サーバについて、Retrospect バックアップユーザアカウントではなく、認証方式を指定するように求められます。

Retrospect のクライアントである SQL サーバの場合には、ライセンスの適用後すぐに、 SQL サーバのログイン情報を入力する必要があります。

ライセンスを適用したばかりのクライアントの場合、ログインウィンドウがすでに表示されています。それ以外の場合には、ボリュームデータベースウィンドウで、SQL サーバを選択し、ツールバーの「ログイン名」ボタンをクリックします。

「SQL 認証を使用する」、「ドメイン認証を使用する」、「現在の RBU 情報を使用する」(セキュリティ環境設定で指定した Retrospect バックアップユーザアカウントを使用した認証)の中から認証方式を選択します。 選択した認証方式のログイン情報を入力します。

SQL サーバデータベースが表示されない場合、または認証に失敗したと通知された場合は、クライアントコンピュータ上の SQL サーバへの十分なアクセス権限が指定したユーザにないか、サービスが動作していない可能性があります。再試行する前に、サービスが動いていることを確認し、セキュリティを読み直して、セキュリティを正しく設定してください。

一般的な使い方

SQL サーバにライセンス供与を行った後は、それをスクリプトに追加し、元ボリュームリストや宛先ボリュームリストで使用することができます。SQL サーバはボリュームデータベースウィンドウで使用することもできます。

SQL データにはアーカイブ操作は実行できません。

ボリュームリストの操作

ナビゲーションバーから、「設定」>「ボリューム」をクリックして「ボリュームデータベース」ウィンドウを表示します。「マイコンピュータ」と「バックアップクライアント」の下に、Retrosepct に認識されたすべての SQL サーバがリスト表示されます。

468

SQL サーバとして動作している各コンピュータの下に、各 SQL サーバの SQL Server コンテナがあります。サーバ自体で Retrospect を実行している場合は、SQL コンテナは「マイコンピュータ」の下にあります。

469

サーバ上で Retrospect を実行していない場合は、SQL コンテナは「バックアップクライアント」の下にあります。

470

SQL Server コンテナのアイコンがグレーになっている場合、または下に階層化されたものが何もない場合、Retrospect は SQL サーバデータを参照するのに十分な権限を持っていないユーザとして動いている可能性があります。スクリプト内でその SQL Server コンテナを使用すると、スクリプトを実行したときにエラーになります。セキュリティを読み直し、セキュリティを正しく設定してください。

SQL Server コンテナのアイコンが色付きで、1 つ以上の項目が下に階層化されている場合には、Retrospect は SQL サーバデータを参照できる権限を持つユーザとして動作しています。これは、セキュリティが正しく設定されていることを意味します。

SQL Server コンテナ

表示される SQL Server コンテナは、SQL サーバと 1 対 1 で対応しています。Retrospect がサーバ上でローカルに動作している場合、このコンテナは「マイコンピュータ」の下にあります。Retrospect のネットワーククライアントである SQL サーバの場合は、SQL Server コンテナはそのコンピュータのクライアントコンテナの下に表示されます。

SQL Server コンテナには、1 つ以上のデータベースが入っています。コンテナの内容を表示したり隠したりするには、SQL Server コンテナの [+] または [-] のコントロールをクリックします。

バックアップ元として SQL Server コンテナを選択すると、そのサーバの全データベースがバックアップされます。

サーバ内のすべてのデータベースをバックアップしたくない場合は、1 つ以上のデータベースを個別に選択してバックアップできます。個々のデータベースは、SQL Server コンテナの下に表示されます。

ライセンスの解除

バックアップや復元が不要になった SQL サーバがあれば、その Retrospect ライセンスを解除して、他の SQL サーバにライセンスを使用できるようにすることが可能です。

SQL コンテナを選択し、ツールバーの「ライセンス」ボタンをクリックします。使用されているライセンスを解除してもよいか尋ねられます。「OK」をクリックして解除します。

SQL ライセンスを解除すると、SQL コンテナとそのデータベースはスクリプト内で無効になります。

バックアップ

SQL サーバまたはデータベースをバックアップするには、バックアップスクリプトを使用するか、基本バックアップを始動できます。どの方法でも、元ボリューム、宛先ボリューム、選択基準、オプションという、Retrospect の他のバックアップ操作と同じ要素を使用します。

元ボリュームとして、SQL Server コンテナとデータベースをどれか 1 つ、またはそれらを組み合わせて選択します。または、「マイコンピュータ」または「バックアップクライアント」を選択して、それぞれローカル SQL サーバまたはクライアント SQL サーバをバックアップします。

宛先ボリュームとして、バックアップセットをどれか 1 つ、または組み合わせて選択します。

SQL データベースのバックアップでは、セレクタは無視されます。バックアップ元にデータベース以外のボリュームと SQL データベースの両方が存在している場合のみ、指定したセレクタがデータベース以外のボリュームに適用されます。

SQL Server オプショングループでは、Retrospect がバックアップ元に対して試行するバックアップのタイプを決定できます。「フルバックアップ」、「差分バックアップ」、「ログバックアップ」、または「切捨てしないログバックアップ」を選択します。

データベースが以前にフルバックアップされていなかった場合は、フルバックアップ以外のバックアップを行うことはできません。この場合は、自動的にフルバックアップが試みられます。

スクリプトによるバックアップの計画を行うとき、異なる種類のバックアップに個別のスクリプトを作成します。たとえば、金曜日に実行するフルバックアップスクリプトをスケジュールし、毎日実行する差分バックアップスクリプトをスケジュールできます。

利用可能なオプションについては、Windows SQL Server オプションを参照してください。

復旧モデル

所定のデータベースが、希望のバックアップタイプに対応した復旧モデルを使用していることを確認する必要があります。たとえば、簡易復旧モデルを使用している SQL データベースのログバックアップを行うとすると、Retrospect によりエラーが報告されます。

バックアップセット

他のデータのバックアップとは異なり、データベースバックアップは 1 つのバックアップセット内で必ずしも自己完結型ではありません。

ファイルの復元にはよくあることですが、1 セットのメディアからデータベーススナップショットを復元できるかどうかは確かでありません。バックアップ計画とバックアップ履歴によっては、所定のデータベースを復元するのに、複数のバックアップセットからのメディアが要求される場合があります。

データベースバックアップ履歴

Retrospect は、各データベースの各バックアップセッションを追跡します。「レポート」>「データベースバックアップの履歴」から、バックアップの履歴を表示できます。

471

ウインドウには、各 SQL データベースの Retrospect のデータベースセッションスナップショットがすべて一覧表示されます。(Exchange データベースとストレージグループもこのウィンドウに表示されます。)

ウィンドウの下部にあるボタンを使用して、スナップショットのプロパティを表示したり、バックアップセットからデータベースセッションを追加したり、このリストからスナップショットを削除したりできます。

スナップショットのプロパティを表示すると、データベースを復元するのに必要なバックアップセットメディアが表示されます。

復元

SQL サーバまたは 1 つ以上のデータベースを復元するには、スクリプトを使用するか、基本復元を始動できます。どの方法でも、元データベーススナップショット、宛先サーバ、選択ファイル(メールボックスからのメッセージとフォルダのみ)、オプションという、Retrospect の他の復元操作と同じ要素を使用します。

SQL データベースの復元

SQL サーババックアップからデータベースを復元するには、「復元」>「データベース」をクリックして基本復元を開始するか、データベース復元スクリプトを作成します。

472

復元元として、データベーススナップショットを選択します。

473

「追加」ボタンと「削除」ボタンを使用して、このリストからデータベーススナップショットを追加、削除できます。

SQL Server コンテナを選択して、データベースの復元先を設定します。

474

「オプション」をクリックして実行オプションを設定します。利用可能なオプションについては、Windows SQL Server オプションおよび データベース復元オプションを参照してください。

475

前回のバックアップがフルバックアップ以外の場合は、元データベーススナップショットの下に複数のセッションが一覧されることに注目してください。複数のセッションが表示されるのは、復元元を完全に復元するために必要な、すべてのセッションを復元する実行オプションが、Retrospect ではデフォルトでオンになっているためです。

データベース復元操作の設定が完了したら、それをスクリプトに保存するか、基本復元を実行します。

障害発生時の復旧

SQL サーバ(システムボリュームとデータベース)を完全にバックアップした後は、障害発生時のデータ損失から復旧することができます。

最初に、バックアップコンピュータの復元にある該当手順に従ってください。次に、以下の手順に従ってください。

  1. サービスを再起動する。

    SQL サーバ(特に、そのマスター、モデル、および msdb システムデータベース)をバックアップするのに Retrospect オープンファイルバックアップアドオンを使用したバックアップから復元した場合は、以下の手順に従います。そうでない場合は、この手順をスキップして次の手順に進みます。

    SQL アプリケーションを復元した後、このデータベースにより SQL サービスを開始できます。システムのすべてのパーティションを復元した後、SQL サービスが動作していることを確認します。サービスが動作していない場合は、SQL Server Service Manager または SQL Server Enterprise Manager.から起動します。

    Enterprise Manager で SQL サーバの登録が失われている場合、登録し直します。

    次の手順をスキップします。

  2. 再構築後にサービスを再起動する。

    SQL サーバ(特に、そのマスター、モデル、および msdb システムデータベース)をバックアップするのに Retrospect オープンファイルバックアップアドオンを使用したバックアップから復元しなかった場合は、以下の手順に従います。それ以外は、この手順をスキップして次の手順に進みます。

    Microsoft の「検索」ユーティリティを使用して、システム上で rebuildm.exe ユーティリティを探します。Microsoft SQL インストール CD を用意します。

    SQL サービスは、マスターと他のシステムデータベースがないと起動しないため、rebuildm.exe ユーティリティを使用してデータベースを再構築します。システム上の各 SQL インスタンスに対して、ユーティリティを実行します。システムデータベースを復元した後、SQL サービスが起動したことを確認します。必要であれば、手動でサービスを起動します。

  3. シングルユーザモードでデータベースを復元する。

    コマンドラインからではなく、SQL Server Enterprise Manager から、シングルユーザモードで SQL サーバを起動します。サーバを右クリックし、「プロパティ」を選択します。「全般」「起動時のパラメータ」を順にクリックして、新しいパラメータ -m. Stop を追加し、SQL Server Service Manager を使用して SQL サービスを再起動します。これで、SQL サーバはシングルユーザモードで動作し、すべてのサービスは同じユーザ ID で動作します。

    Retrospect を使用して、最新のデータベーススナップショットからマスターデータベースだけを復元します。

    復元操作を完了した後、-m オプションを削除し、SQL サーバを停止して再起動し、ノーマルモードに戻します。

  4. 疑わしいデータベースを削除する。

    上記手順を完了した後、グレー表示で疑わしいというマークが付いたデータベースが SQL Enterprise Manager の中にあります。これは、そのサーバのすべてのデータベースのレコードがマスターデータベースに含まれていて、関連データファイルが紛失しているデータベースが疑わしいためです。SQL サーバ上の疑わしいデータベースをすべて削除して、次の手順を成功させます。

  5. データベースを復元する。

Retrospect を使用して、msdb データベースを復元し、その後に他のすべてのデータベースを復元します。必ず最新のデータベーススナップショットから復元します。各 SQL サーバのすべての SQL データベースを復元した後、システムは使用できる状態になります。

SQL Enterprise Manager のログを見れば、Retrospect で生成されたエラーの詳細を調べることができます。

付録