メインコンテンツまでスキップ
Dummy text to avoid mindtouch from removing the blank div

Druva

トランザクションログを使用したSQLサーバーデータベースのリストア

Phoenixはトランザクションログをバックアップします。これを使用して、データベースを特定の時点にリストアできます。これは、バックアップとリストアのための便利で簡単な手法です。トランザクションログのバックアップは、フルバックアップジョブが完了してリストアポイントが作成された後に、増分的に適用されます。トランザクションログは、設定に従って数分ごとにバックアップされます。Phoenixは、リストアポイントとログに記録されたトランザクションを使用して、ポイントインタイムリストアを実行します。ポイントインタイムリストアの仕組みの詳細については、SQL Serverポイントインタイムリストアワークフローを参照してください  

Phoenixでは、データベースを元のMS-SQLサーバーの場所にリストアしたり、別のMS-SQLサーバーインスタンスを選択したりできます。データベースをAGにリストアすることもできます。リストアされたデータベースは、AGのプライマリノードとセカンダリノードに複製されます。

次のセクションでは、次の方法に関する情報を提供します。

データベースを元のSQLサーバーインスタンスにリストア

可用性グループ(AG)の場合は元のサーバーにリストアし、データベースをプライマリサーバーのインスタンスにリストアします。データベースを元の場所にリストアする場合、データベースをコピーとしてリストアするか、SQLサーバーインスタンス上のデータベースをリストアされたデータベースに置き換えることができます。元のデータベースを置き換えると、Phoenixは元のインスタンスのデータベースへの接続を終了し、データベースをリストアされたデータベースに置き換えます。 

データベースをコピーとしてリストア

  1. Phoenix管理コンソールにログインします。
  2. メニューバーで、[ All Organization ] をクリックし、ドロップダウンリストから組織を選択します
  3. メニューバーで、[ Protect ] > [MS-SQL Servers ] の順にクリックします
  4. SQL Backup Sets ] タブで、リストアするバックアップセットを含むリソース名をクリックします。

    Tips: リソースをすばやく検索して選択するには、[ SQL backup sets ] タブの検索ボックスを使用して、リストされたリソースをフィルタリングします。検索タブでインスタンス/ AG名またはデータベース名を入力して、選択するリソースを絞り込みます。
    SQLBackupSetSearch.png

  5. サーバー ページで、リストアするバックアップセットの [ Restore ] > [ Point in Time Restoreをクリックします。 
  6. [ Restore to point in the time ] ウインドウで、[ Restore to Original SQL Server instance ] をクリックし、[ Next ] をクリックします。
  7. 次のセクションで、[ Restore as a copyを選択し、[ Next ] をクリックします。
  8. Select restore location セクションで、次の2つのオプションのいずれかを使用します。
    • Restore MDF, LDF, NDF files at different locations (MDF、LDF、NDFファイルを別の場所にリストア)このチェックボックスをオンにすると、MDF、LDF、NDFの各ファイルが別の場所にリストアされます。このチェックボックスをオンにすると、リストア場所の絶対パスを入力または選択するフィールドが表示されます

    • Restore location (リストア場所):[ Restore location ] ボックスで、リストア場所の絶対パスを入力または選択します。 Restore MDF, LDF, NDF files at different locations ] チェックボックスをオンにした場合、このフィールドは表示されません。

    [ Next ] をクリックします。
  9. Select time to restore databases ] セクションで、以下の情報を設定します。
    • バックアップされたトランザクションとリストア後のデータベースモードに基づいて日付と時刻を選択します。Phoenixでは、リストア後のデータベースモードに次のオプションを提供しています。
    • [ After restore, leave databases in, ]  で、次のいずれかを選択します。
      • Standby mode (スタンバイモード):このモードでは、Phoenixはトランザクションログリストア時の読み取り専用アクセス用にデータベースを立ち上げられるようにします。このモードは、ウォームスタンバイサーバーの場合や特別な復旧状況でログリストア時にデータベースを検査するために使用されます。このモードを選択した場合は、[ Specify Location ボックスでトランザクションログをリストアする場所のフルフォルダーパスを指定します。
      • No recovery mode (リカバリなしモード):このモードでは、Phoenixはコミットされていないトランザクションをロールバックしません。データベースはこの操作不可 (no-recovery) 状態では使用できません。このモードは、データベースのバックアップと複数のトランザクションログのリストア、または複数のRESTOREステートメントが必要な場合に使用されます。
      • Recovery mode (リカバリモード):このモードでは、Phoenixはコミットされていないすべてのトランザクションをロールバックし、データベースを使用可能 (Ready) 状態にします。また、リストアされたすべてのデータセットがデータベースと一致していることを確認し、矛盾がある場合はエラーを報告します。
    •  
      リストアジョブが完了すると、Phoenixはデータベースを選択されたモードのままにします。
    [ Next ] をクリックします。
  10. リストアするデータベースを選択し、[ Finish ]をクリックします。 

元のSQLサーバーインスタンスのデータベース置き換え

  1. Phoenix管理コンソールにログインします。
  2. メニューバーで、[ All Organization ] をクリックし、ドロップダウンリストから組織を選択します
  3. メニューバーで、[ Protect ] > [MS-SQL Servers ] の順にクリックします
  4. SQL Backup Sets ] タブで、リストアするリソース名をクリックします。
    Tips: リソースをすばやく検索して選択するには、[ SQL backup sets ] タブの検索ボックスを使用して、リストされたリソースをフィルタリングします。検索タブでインスタンス/ AG名またはデータベース名を入力して、選択するリソースを絞り込みます。SQLBackupSetSearch.png
  5. MS-SQL ] ページで、 [ Restore ] > [ Point in Time Restore ] をクリックします
  6. [ Restore to point in the time ] ウインドウで、Restore to Original SQL Server instance ] をクリックし、[ Next ] をクリックします
  7. 次のセクションで、Restore as a copy ] を選択し、[ Next ] をクリックします 
  8. 確認ダイアログのテキストを読み、[ はい ]をクリックして続行します。続行しない場合は、[ いいえ ]をクリックして、データベースをコピーとしてリストアすることを選択できます。 
  9. Select time to restore databases ] セクションで、以下の情報を設定します。
    • バックアップされたトランザクションとリストア後のデータベースモードに基づいて日付と時刻を選択します。Phoenixでは、リストア後のデータベースモードに次のオプションを提供しています。
    • [ After restore, leave databases in, ]  で、次のいずれかを選択します。
    • Recovery mode (リカバリモード):このモードでは、Phoenixはコミットされていないすべてのトランザクションをロールバックし、データベースを使用可能 (Ready) 状態にします。また、リストアされたすべてのデータセットがデータベースと一致していることを確認し、矛盾がある場合はエラーを報告します。
    • No recovery mode (リカバリなしモード):このモードでは、Phoenixはコミットされていないトランザクションをロールバックしません。データベースはこの操作不可 (no-recovery) 状態では使用できません。このモードは、データベースのバックアップと複数のトランザクションログのリストア、または複数のRESTOREステートメントが必要な場合に使用されます。
    • Standby mode (スタンバイモード):このモードでは、Phoenixはトランザクションログリストア時の読み取り専用アクセス用にデータベースを立ち上げられるようにします。このモードは、ウォームスタンバイサーバーの場合や特別な復旧状況でログリストア時にデータベースを検査するために使用されます。このモードを選択した場合は、[ Specify Location ボックスでトランザクションログをリストアする場所のフルフォルダーパスを指定します。
      • ダウンロード可能なログの日付と時刻を選択します。
      • [ Specify Location ] ボックスに、追加のトランザクションログをリストアする場所の完全なフォルダーパスを指定します。 
    • リストアジョブが完了すると、Phoenixはデータベースを選択されたモードのままにします。
    [ Next ] をクリックします。
  10. リストアするデータベースを選択し、[ Finish ]をクリックします。 

別のSQLサーバーインスタンスへのリストア

  1. Phoenix管理コンソールにログインします。
  2. メニューバーで、[ All Organization ] をクリックし、ドロップダウンリストから組織を選択します
  3. メニューバーで、[ Protect ] > [ MS-SQL Servers ] の順にクリックします
  4. SQL Backup Sets ] タブで、リストアするリソース名をクリックします。
    Tips: リソースをすばやく検索して選択するには、[ SQL backup sets ] タブの検索ボックスを使用して、リストされたリソースをフィルタリングします。検索タブでインスタンス/ AG名またはデータベース名を入力して、選択するリソースを絞り込みます。

    SQLBackupSetSearch.png

  5. サーバーページで、リストアするバックアップセットの [ Restore ] > [ Point in Time Restore ] をクリックします。 
  6. [ Restore to point in the time ] ウインドウで、Restore to alternate SQL server instanceをクリックし、[ Next ] をクリックします。
  7. Restore to alternate SQL Server Instance セクションで、次のフィールドに情報を入力します。
    • Restore MDF, LDF, NDF files at different locations (MDF、LDF、NDFファイルを別の場所にリストア)このチェックボックスをオンにすると、MDF、LDF、NDFの各ファイルが別の場所にリストアされます。このチェックボックスをオンにすると、リストア場所の絶対パスを入力または選択するフィールドが表示されます。
    • Select server (サーバーの選択)Select server リストから、データベースのリストア先となるMS-SQLサーバーを選択します。
    • Select  instance (インスタンスの選択) [ Select instance ] リストで、選択したMS-SQLサーバーのインスタンスを選択します。これがデータベースのリストア先となります。
    • Restore location (リストア場所):[ Restore location ] ボックスで、リストア場所の絶対パスを入力または選択します。 Restore MDF, LDF, NDF files at different locations ] チェックボックスをオンにした場合、このフィールドは表示されません 
    [ Next ] をクリックします。
  8. [ Select time to restore databases ] セクションで、以下を設定します。
    • バックアップされたトランザクションとリストア後のデータベースモードに基づいて日付と時刻を選択します。Phoenixでは、リストア後のデータベースモードに次のオプションを提供しています。
    • [ After restore, leave databases in, ]  で、次のいずれかを選択します。
      • Recovery mode (リカバリモード):このモードでは、Phoenixはコミットされていないすべてのトランザクションをロールバックし、データベースを使用可能 (Ready) 状態にします。また、リストアされたすべてのデータセットがデータベースと一致していることを確認し、矛盾がある場合はエラーを報告します。
      • No recovery mode (リカバリなしモード):このモードでは、Phoenixはコミットされていないトランザクションをロールバックしません。データベースはこの操作不可 (no-recovery) 状態では使用できません。このモードは、データベースのバックアップと複数のトランザクションログのリストア、または複数のRESTOREステートメントが必要な場合に使用されます。
      • Standby mode (スタンバイモード):このモードでは、Phoenixはトランザクションログリストア時の読み取り専用アクセス用にデータベースを立ち上げられるようにします。このモードは、ウォームスタンバイサーバーの場合や特別な復旧状況でログリストア時にデータベースを検査するために使用されます。このモードを選択した場合
        • ダウンロード可能なログの日付と時刻を選択します。
        • Specify Location ボックスでトランザクションログをリストアする場所のフルフォルダーパスを指定します。 
      リストアジョブが完了すると、Phoenixはデータベースを選択されたモードにします。
    [ Next ] をクリックします
  9. リストアするデータベースを選択し、[ Finish ] クリックします。

可用性グループへのリストア

Phoenixを使用して、リストアされたデータベースをAGに追加します。リストアされたデータベースは、AGのすべてのプライマリノードとセカンダリノードに複製されます。この機能を使用するには、Phoenixクライアントをバージョン4.7.6以降にアップグレードします。

  1. Phoenix管理コンソールにログインします。
  2. メニューバーで、[ All Organization ] をクリックし、ドロップダウンリストから組織を選択します。
  3. メニューバーで、[ Protect ] > [MS-SQL Servers ] の順にクリックします
  4. SQL Backup Sets ] タブで、リストアするリソース名をクリックします。
    Tips: リソースをすばやく検索して選択するには、[ SQL backup sets ] タブの検索ボックスを使用して、リストされたリソースをフィルタリングします。検索タブでインスタンス/ AG名またはデータベース名を入力して、選択するリソースを絞り込みます。

    SQLBackupSetSearch.png

  5. サーバーページで、リストアするバックアップセットの [ Restore ] > [ Point in Time Restore ] をクリックします。 
  6. [ Restore to point in the time ] ウインドウで、Restore to Availability Group ] をクリックし、[ Next ] をクリックします。
  7. Restore to availability group ] セクションで、次の情報を指定します。
    • Restore MDF, LDF, NDF files at different locations (MDF、LDF、NDFファイルを別の場所にリストア)このチェックボックスをオンにすると、MDF、LDF、NDFの各ファイルが別の場所にリストアされます。このチェックボックスをオンにすると、リストア場所の絶対パスを入力または選択するフィールドが表示されます。
    • Select Availability Group (可用性グループの選択)Select Availability Group ] リストから、データベースをリストアするAGを選択します。AGが構成されていないか、構成されたAGのクライアントバージョンが古い場合、データベースをAGにリストアすることはできません。 
    • Restore location (リストア場所):[ Restore location ] ボックスで、リストア場所の絶対パスを入力または選択します。[ Restore MDF, LDF, NDF files at different locations ] チェックボックスをオンにした場合、このフィールドは表示されません SQL Server 2016以降のバージョンでは、AGの自動シーディング機能がサポートされています。この機能を使用すると、リストアしたデータベースをAG内のすべてのノードに自動的に複製できます。自動シーディング機能が設定で有効になっている場合は、Restore with automatic seeding チェックボックスをオンにすることを推奨しますそれ以外の場合は、AG内のノード間でデータベースを手動で複製するために、共有ネットワークの場所を指定できます。 
    • Restore with automatic seeding (自動シーディングでリストア)Restore with automatic seeding ] チェックボックスをチェックして、自動的AG内のすべてのノードにリストアされたデータベースを複製します。このチェックボックスをオンにするとShared Network Location] フィールドの表示がページから消えます。SQL Server 2016以降のバージョンでこのオプションを使用できます。SQL Server 2012およびSQL Server 2014の場合、共有ネットワークの場所を指定して、AG内のすべてのノードにデータベースを手動で複製する必要があります。
    • Shared Network Location (共有ネットワークの場所)Shared Network Location ボックスで、ネットワーク内の場所への絶対パスを入力または選択してAG内のプライマリノードとセカンダリノード間でデータベースを同期させます。この共有ネットワークの場所が、AG内のすべてのノードからアクセス可能であることを確認してください。Shared Network Location   フィールドは、SQL Server 2012およびSQL Server 2014では必須フィールドですが、SQL Server 2016ではオプションフィールドです。[ Restore with automatic seeding チェックボックスが有効になっている場合、このフィールドは表示されません。 
    [ Next ] をクリックします。
  8. Select time to restore databases セクションで、バックアップされたトランザクションとリストア後のデータベースモードに基づいて日付と時刻を選択し[ Next ] をクリックします
    Databases ] セクションに、指定した日付とタイムスタンプにリストアできるデータベースが一覧表示されます。
  9. リストアするデータベースを選択し、[ Finish ] クリックします。

スタンバイモードを有効にしたポイントインタイムのデータベースのリストア

トランザクションログを使用してデータベースをリストアする場合、Phoenixではデータベースをスタンバイモードのままにするオプションが利用できます(上記の手順のステップ3 )。データベースをスタンバイモードのままにするオプションを選択した場合、トランザクションログを使用してデータベースを指定した特定時点(ポイントインタイム)にリストアできます。 

Transaction_logs_standby.PNG

たとえばステップ3において、データベースを2018年8月5日の01:48:43 PMから2018年8月6日の07:29:30 PMまでのいずれかの時点にリストアできることが示され、2018年8月6日の07:29:30 PMをデータベースのリストア時間として使用するとします。データベースのリストアは以下のように行われます。

  • Phoenixは、2018年8月6日の07:29:30 PMに最も近いトランザクションを識別して選択します。
  • 指定した時間に最も近いと識別されたトランザクションは、指定した時間の直前に記録されたトランザクション、または指定された同一時間に記録されたトランザクションです。

[ Leave database in Standby mode to allow restore of transaction logs ] (トランザクションログのリストアを許可するためにデータベースをスタンバイモードのままにする) オプションが有効になっている場合、

  • 別の日時を指定して、2018年8月6日午後7時29分30秒以降に発生したトランザクションにデータベースをリストアできます。
  • 指定されたリストア日時以降に記録されたトランザクションログがダウンロードされます。ダウンロードしたログを使用して、データベースを特定の時点にリストアできます。

ステップ3で、2018年8月6日午後7時29分30秒を入力し、2018年8月6日午後7時20分が最も近いトランザクションである場合、

  • データベースは、2018年8月6日午後7時20:00のトランザクションにリストアされます。
  • 2018年8月6日午後7時29分30秒までのデータベースをリストアするために使用できるログがダウンロードされます。

ログを適用するには、次のコマンドを使用します

standby = 'path_to_standy_file'、stopat = 'timestamp'を使用してdisk = 'log location'からログ [DB_name] をリストアします。

タイムスタンプの形式は、2018-08-06 07-29-30です。

スタンバイモードが有効になっていない場合、以下のようになります。

  • データベースは、指定した時間に最も近いログに記録されたトランザクションにリストアされます。
  • データベースが操作可能になります。
  • 後続のトランザクションログはすべて削除され、指定した時間以降にログに記録されたトランザクションをデータベースをリストアすることはできません。この例では、2018年8月6日午後7時29分30秒以降にログに記録されたトランザクションをデータベースにリストアすることはできません。

ポイントインタイム リストアのワークフロー

次の表に、トランザクションログを使用したポイントインタイム (特定時点) のリストアの手順を示します。

ステップ 操作

1

ポイントインタイムのリストアを開始します。

2

 

Phoenixは、Phoenixエージェントが実行されているかどうかを確認します。 

  • Phoenixエージェントが実行されている場合、Phoenixはリストアジョブを実行します。
  • Phoenixエージェントが実行されていない場合、Phoenixはリストアジョブをキューに入れます。Phoenixエージェントが実行を開始した後に、リストアジョブは完了します。

3

Phoenixは、リストア先(元 (Original)、別 (Alternate)、可用性グループ)とリストア先の場所を検証します。

:リストア場所がドライブではないことを確認してください。たとえば、C:\です。データベースをリストアするには、データベースファイルをサブフォルダーにリストアします。たとえば、C:\DBFiles のようにします。

4 PhoenixはSQL Serverインスタンスがリストア可能かどうかを検証します。リストアジョブが元のデータベースを置き換える場合、Phoenixはデータベースがリストア可能かどうかもチェックします。 
6 Phoenixはリストアに使用できる空き領域を確認し、リストアするファイルセットを識別することによりリストアジョブを開始します。Phoenixは、ファイルセットをリストア先に順次ダウンロードします。ファイルセット(複数のデータベースに属するデータが含まれる場合があります)内で、Phoenixは異なるデータベースに属するファイルを同時にダウンロードします。ファイルセットのダウンロードが完了すると、Phoenixは次のファイルセット(1つ以上のデータベースに属するデータを含む場合もあります)をリストア先にダウンロードします。
7 Phoenixはリストアに次の構文を使用します:<宛先パス>\<スナップショット>\<リクエストID>\<ファイルセット>\<実際のファイル>。<Request ID>フォルダーは、各リストアジョブを一意に識別します。

8

Phoenixエージェントは、リストア場所からトランザクションログを取得します。

  • ユーザー指定の日付と時刻(または選択したマークされたトランザクション)を選択します
  • リストア向けに有効化されたモードを確認します。
    • Recovery modeが有効になっている場合、Phoenixはデータベースをリストアし、データベースを使用可能状態にします(バックアップセットを追加することはできません)。
    • No recovery modeが有効になっている場合、Phoenixはデータベースをリストアし、データベースにアクセスできない操作不可状態にします。 
    • Standby modeが有効になっている場合、指定された日時に最も近いトランザクションが識別されます。Phoenixはトランザクションログを使用して、識別されたトランザクションまでデータベースの変更をリストアします。さらにポイントインタイムのリストア後、トランザクションを含むログファイルをダウンロードします。 

元のデータベースが置き換えられると、Phoenixエージェントはデータベースへのすべての接続を終了し、ダウンロードされたトランザクションログを使用してデータベースをリストアします。 

9 データベースが可用性グループにリストアされると、Phoenixエージェントは指定された共有ネットワークの場所にデータベースをリストアし、データベースをすべてのセカンダリノードに同期するか、利用可能な場合は自動シードを使用します。 

リストアが完了すると、以下のようになります。 

  • [ Recovery mode ] を選択した場合、データベースは指定したインスタンスに対してアクティブになります。 
  • [ No recovery mode ] を選択した場合、データベースは指定したインスタンスに対して「リストア中」と表示されます。
  •  [ Standby mode to allow restore of additional transaction logs ] (追加のトランザクションログのリストアを許可するスタンバイモード) を選択した場合、データベースは指定したインスタンスに対してスタンバイ/読み取り専用として表示されます。 
  • [可用性グループにリストア]が選択されている場合、データベースはAGのすべてのノードで同期されているものとして表示されます。

マークされたトランザクションへのデータベースのリストア

SQLサーバーでトランザクションをマークしたデータベースのリストアも可能です。マークされたトランザクションを使用して、データベースをリストアできます。Phoenixではマークされたトランザクションを選択して、ポイントインタイムリストアを実行できます。マークされたトランザクションのリストアは、ログバックアップを使用したポイントインタイムのリストアと同様に、データベースを更新する特定のトランザクションが発生するまで、データベースを一貫した状態にリストアできます。マークされたトランザクションのリストアは、完全バックアップジョブが完了し、リストアポイントが存在した後に増分的にトリガーされるログバックアップを使用します。  

AGの場合は元のサーバーにリストアし、データベースをプライマリサーバーのインスタンスにリストアします。

MS-SQLサーバーは、AGのセカンダリノードにあるデータベースにおいてトランザクションログに関連するトランザクションマークを複製しません。PhoenixからAGバックアップセットのトランザクションマークをリストアしようとすると、ログバックアップがプライマリノードから発生したかセカンダリノードから発生したかによって、MS-SQLサーバー上に作成されたトランザクションマークが表示される場合があります。 

マークされたトランザクションを使用してデータベースをリストアするには、以下を行います。

  1. Phoenix管理コンソールにログインします。
  2. メニューバーで、[ Protect ] > [MS-SQL Servers ] の順にクリックします
  3. SQL Backup Sets ] タブで、リストアするバックアップセットを含むリソース名をクリックします。
  4. サーバーページで、リストアするバックアップセットの [ Restore ] > [ Transaction Mark Restore ] をクリックします。 
  5. Restore to a Transaction Mark ウィンドウで、元のサーバーインスタンスまたは別のサーバーインスタンスにリストアすることを選択できます。
    元のインスタンスを選択した場合は、データベースのリストア先となるフォルダーの完全パスを指定して、[ Next ] をクリックします。
    別のインスタンスを選択する場合は、データベースのリストア先となるサーバー、インスタンス、完全なフォルダーパスを指定して、[ Next ] をクリックします。
  6. Restore to a Transaction Mark ウィンドウでは、データベースを特定のトランザクションにリストアするために使用できるマークされたトランザクションを選択できます。さらに、リストアオプション[ Stop Before Mark ] および [ Stop At Mark ] を使用すると、マークされたトランザクションをリストアジョブに含めるか、除外することができます。
    トランザクションとリストアオプションを選択したら、[ Next ] をクリックします。

次のステップで、マークされたトランザクションを使用するデータベースを選択します。リストアするデータベースを選択し、[ Done ] をクリックします。

ログがバックアップされる前にトランザクションマークが記録された場合、トランザクションマークのリストアはSQL8エラーで失敗する場合があります。 

  • この記事は役に立ちましたか?