トランザクション ログをバックアップするBack Up a Transaction Log

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

このトピックでは、 SQL Server 2017SQL Server 2017SQL Server Management StudioSQL Server Management StudioTransact-SQLTransact-SQL、または PowerShell を使用して、トランザクション ログをバックアップする方法について説明します。This topic describes how to back up a transaction log in SQL Server 2017SQL Server 2017 by using SQL Server Management StudioSQL Server Management Studio, Transact-SQLTransact-SQL, or PowerShell.

はじめにBefore You Begin

制限事項と制約事項Limitations and restrictions

BACKUP ステートメントは、明示的または暗黙的なトランザクションでは使用できません。The BACKUP statement is not allowed in an explicit or implicit transaction. 明示的なトランザクションとは、トランザクションの開始と終了を明示的に定義したものです。An explicit transaction is one in which you explicitly define both the start and end of the transaction.

推奨事項Recommendations

  • データベースで完全または一括ログ復旧モデルを使用している場合は、データを保護し、トランザクション ログがいっぱいになるのを防ぐために、十分な頻度で定期的にトランザクション ログをバックアップする必要があります。If a database uses either the full or bulk-logged recovery model, you must back up the transaction log regularly enough to protect your data, and to prevent the transaction log from filling. これによってログが切り捨てられ、特定の時点へのデータベースの復元がサポートされます。This truncates the log and supports restoring the database to a specific point in time.

  • 既定では、バックアップ操作が成功するたびに、 SQL ServerSQL Server エラー ログおよびシステム イベント ログにエントリが 1 つ追加されます。By default, every successful backup operation adds an entry in the SQL ServerSQL Server error log and in the system event log. ログを頻繁にバックアップすると、これらの成功メッセージがすぐに蓄積され、エラー ログが大きくなり、他のメッセージを探すのが困難になります。If you back up the log frequently, these success messages accumulate quickly, resulting in huge error logs, making finding other messages difficult. そのような場合、これらのエントリに依存するスクリプトがなければ、トレース フラグ 3226 を使用することによってこれらのログ エントリを除外できます。「トレース フラグ (Transact-SQL)」を参照してください。In such cases you can suppress these log entries by using trace flag 3226, if none of your scripts depend on those entries, see Trace Flags (Transact-SQL).

PermissionsPermissions

必要な BACKUP DATABASE および BACKUP LOG アクセス許可は、既定では、sysadmin 固定サーバー ロール、db_owner 固定データベース ロール、および db_backupoperator 固定データベース ロールのメンバーに与えられます。The BACKUP DATABASE and BACKUP LOG permissions needed are granted by default to members of the sysadmin fixed server role, and the db_owner and db_backupoperator fixed database roles. 始める前に、適切なアクセス許可があることを確認してください。Check for the correct permissions before you begin.

バックアップ デバイスの物理ファイルに対する所有と許可の問題によって、バックアップ操作が妨げられることがあります。Ownership and permission problems on the backup device's physical file can interfere with a backup operation. SQL ServerSQL Server では、デバイスに対して読み書きを実行できる必要があります。 SQL ServerSQL Server サービスが実行されているアカウントには書き込み権限が必要です。must be able to read and write to the device; the account under which the SQL ServerSQL Server service runs must have write permissions. ただし、システム テーブルにバックアップ デバイスのエントリを追加する sp_addumpdeviceでは、ファイル アクセスの権限は確認されません。However, sp_addumpdevice, which adds an entry for a backup device in the system tables, does not check file access permissions. バックアップ デバイスの物理ファイルに対するアクセス許可の問題は、バックアップや復元で物理リソースへのアクセスを試みるまで、表面化しない可能性があります。Permissions problems on the backup device's physical file may not become obvious to you until you attempt to access the physical resource when you try to backup or restore. そのため、始める前にアクセス許可を確認してください。So again, check permissions before you begin.

SQL Server Management Studio の使用Using SQL Server Management Studio

  1. 適切な SQL Server データベース エンジンSQL Server Database Engineのインスタンスへの接続後、オブジェクト エクスプローラーでサーバー名をクリックしてサーバー ツリーを展開します。After connecting to the appropriate instance of the SQL Server データベース エンジンSQL Server Database Engine, in Object Explorer, click the server name to expand the server tree.

  2. [データベース] を展開します。さらに、そのデータベースに応じて、ユーザー データベースを選択するか、または [システム データベース] を展開してシステム データベースを選択します。Expand Databases, and, depending on the database, either select a user database or expand System Databases and select a system database.

  3. データベースを右クリックして [タスク] をポイントし、 [バックアップ] をクリックします。Right-click the database, point to Tasks, and then click Back Up. [データベースのバックアップ] ダイアログ ボックスが表示されます。The Back Up Database dialog box appears.

  4. [データベース] ボックスに、適切なデータベース名が表示されていることを確認します。In the Database list box, verify the database name. 必要に応じて、このボックスの一覧から別のデータベースを選択することもできます。You can optionally select a different database from the list.

  5. 復旧モデルが [FULL] または [BULK_LOGGED] であることを確認します。Verify that the recovery model is either FULL or BULK_LOGGED.

  6. [バックアップの種類] ボックスの一覧で、 [トランザクション ログ] を選択します。In the Backup type list box, select Transaction Log.

  7. (省略可能) [バックアップのみコピーする] を選択して、コピーのみのバックアップを作成します。(optional) Select Copy Only Backup to create a copy-only backup. "コピーのみのバックアップ" は、従来の SQL ServerSQL Server バックアップのシーケンスから独立した SQL ServerSQL Server バックアップです。「コピーのみのバックアップ (SQL Server)」を参照してください。A copy-only backup is a SQL ServerSQL Server backup that is independent of the sequence of conventional SQL ServerSQL Server backups, see Copy-Only Backups (SQL Server).

    注意

    [差分] オプションが選択されている場合、コピーのみのバックアップは作成できません。When the Differential option is selected, you cannot create a copy-only backup.

  8. [名前] ボックスに表示された既定のバックアップ セット名をそのまま使用するか、または別のバックアップ セット名を入力します。Either accept the default backup set name suggested in the Name text box, or enter a different name for the backup set.

  9. (省略可能) [説明] テキスト ボックスに、バックアップ セットの説明を入力します。(optional) In the Description text box, enter a description of the backup set.

  10. バックアップ セットの有効期限を指定します。Specify when the backup set will expire:

    • バックアップ セットが指定の日数後に期限切れになるようにするには、 [期間指定] (既定のオプション) をクリックし、セットを作成してからセットが期限切れになるまでの日数を入力します。To have the backup set expire after a specific number of days, click After (the default option), and enter the number of days after set creation that the set will expire. 0 ~ 99,999 日の値を指定できます。0 日を指定すると、バックアップ セットの有効期限は無期限になります。This value can be from 0 to 99999 days; a value of 0 days means that the backup set will never expire.

      既定値は、 [サーバーのプロパティ] ダイアログ ボックス ( [データベースの設定] ページ) の [バックアップ メディアの既定の保有期間 (日)] オプションで設定されています。The default value is set in the Default backup media retention (in days) option of the Server Properties dialog box (Database Settings page). このダイアログ ボックスを開くには、オブジェクト エクスプローラーでサーバー名を右クリックし、[プロパティ] をクリックして、 [データベースの設定] ページを選択します。To access this dialog box, right-click the server name in Object Explorer and select properties; then select the Database Settings page.

    • バックアップ セットが特定の日付に期限切れになるようにするには、 [日時指定] をクリックし、セットの有効期限が切れる日付を入力します。To have the backup set expire on a specific date, click On, and enter the date on which the set will expire.

  11. [ディスク][URL] 、または [テープ] をクリックして、バックアップ先を選択します。Choose the type of backup destination by clicking Disk, URL or Tape. 1 つのメディア セットを含んでいる最大 64 個のディスク ドライブまたはテープ ドライブのパスを選択するには、 [追加] をクリックします。To select the paths of up to 64 disk or tape drives containing a single media set, click Add. 選択したパスは、 [バックアップ先] ボックスの一覧に表示されます。The selected paths are displayed in the Backup to list box.

    バックアップ先を削除するには、バックアップ先を選択して [削除] をクリックします。To remove a backup destination, select it and click Remove. バックアップ先の内容を表示するには、バックアップ先を選択して [内容] をクリックします。To view the contents of a backup destination, select it and click Contents.

  12. 詳細設定オプションを表示または選択するには、 [ページの選択] ペインの [オプション] をクリックします。To view or select the advanced options, click Options in the Select a page pane.

  13. 次のいずれかをクリックして、 [メディアに上書きします] オプションを選択します。Select an Overwrite Media option, by clicking one of the following:

    • [既存のメディア セットにバックアップする]Back up to the existing media set

      このオプションでは、 [既存のバックアップ セットに追加する] または [既存のすべてのバックアップ セットを上書きする] をクリックします。「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。For this option, click either Append to the existing backup set or Overwrite all existing backup sets, see Media Sets, Media Families, and Backup Sets (SQL Server).

      • (省略可能) [メディア セット名とバックアップ セットの有効期限を確認する] チェック ボックスをオンにします。これにより、バックアップ操作で、メディア セットとバックアップ セットの有効期限が切れる日付と時刻の確認が行われます。(optional) Select Check media set name and backup set expiration to cause the backup operation to verify the date and time at which the media set and backup set expire.

      • (省略可能) [メディア セット名] テキスト ボックスに名前を入力します。(optional) Enter a name in the Media set name text box. 名前を指定しなかった場合、空の名前でメディア セットが作成されます。If no name is specified, a media set with a blank name is created. メディア セット名を指定した場合は、メディア (テープまたはディスク) の実際の名前がここで入力した名前と一致しているかどうかが確認されます。If you specify a media set name, the media (tape or disk) is checked to see whether the actual name matches the name you enter here.

      メディア名を指定せずに、このチェック ボックスをオンにしてこのメディアを確認するよう指定した場合は、実際のメディア名も空でないとエラーになります。If you leave the media name blank and check the box to check it against the media, success will equal the media name on the media also being blank.

    • [新しいメディア セットにバックアップし、すべての既存のバックアップ セットを消去する]Back up to a new media set, and erase all existing backup sets

      このオプションでは、 [新しいメディア セット名] テキスト ボックスに名前を入力し、必要に応じて [新しいメディア セットの説明] テキスト ボックスにメディア セットの説明を入力します。「メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)」を参照してください。For this option, enter a name in the New media set name text box, and, optionally, describe the media set in the New media set description text box, see Media Sets, Media Families, and Backup Sets (SQL Server).

  14. [信頼性] セクションで、必要に応じて次の項目をオンにします。In the Reliability section, optionally, check:

  15. [トランザクション ログ] セクションで、次の手順を実行します。In the Transaction log section:

    • 定期的なログ バックアップの場合は、既定の選択肢の [アクティブでないエントリを削除してトランザクション ログを切り捨てる] のままにします。For routine log backups, keep the default selection, Truncate the transaction log by removing inactive entries.

    • ログの末尾 (アクティブなログ) をバックアップするには、 [ログの末尾をバックアップし、データベースを復元中の状態にしておく] をオンにします。To back up the tail of the log (the active log), check Back up the tail of the log, and leave database in the restoring state.

      ログ末尾のバックアップは、作業内容が消失しないようにログの末尾をバックアップするために、エラー後に実行されます。A tail-log backup is taken after a failure to back up the tail of the log in order to prevent work loss. アクティブなログのバックアップ (ログ末尾のバックアップ) は、エラーの後とデータベースの復元開始前の両方か、またはセカンダリ データベースへのフェールオーバー時に行われます。Back up the active log (a tail-log backup) both after a failure, before beginning to restore the database, or when failing over to a secondary database. このオプションを選択すると、Transact-SQL の BACKUP LOG ステートメントで NORECOVERY オプションを指定した場合と同じ結果になります。Selecting this option is equivalent to specifying the NORECOVERY option in the BACKUP LOG statement of Transact-SQL.

      ログ末尾のバックアップの詳細については、「ログ末尾のバックアップ (SQL Server)」をご覧ください。For more information about tail-log backups, see Tail-Log Backups (SQL Server).

  16. [全般] ページの [バックアップ先] セクションで、テープ ドライブにバックアップするように指定した場合は、 [バックアップ後にテープをアンロードする] チェック ボックスがアクティブになります。If you are backing up to a tape drive (as specified in the Destination section of the General page), the Unload the tape after backup option is active. このオプションをオンにすると、 [アンロードの前にテープを巻き戻す] オプションがアクティブになります。Clicking this option activates the Rewind the tape before unloading option.

  17. SQL Server 2008 EnterpriseSQL Server 2008 Enterprise 以降では、 バックアップの圧縮がサポートされています。and later supports backup compression. 既定では、バックアップが圧縮されるかどうかは、 [バックアップ圧縮の既定] サーバー構成オプションの値によって決まります。By default, whether a backup is compressed depends on the value of the backup-compression default server configuration option. ただし、現在のサーバー レベルの既定の設定にかかわらず、 [バックアップを圧縮する] をオンにしてバックアップを圧縮することも、 [バックアップを圧縮しない] をオンにして圧縮しないようにすることもできます。However, regardless of the current server-level default, you can compress a backup by checking Compress backup, and you can prevent compression by checking Do not compress backup.

    現在の既定のバックアップ圧縮を確認する方法については、「backup compression default サーバー構成オプションの表示または構成」を参照してください。To view the current backup compression default, see View or Configure the backup compression default Server Configuration Option.

    バックアップ ファイルを暗号化するには、 [バックアップ ファイルを暗号化する] チェック ボックスをオンにします。To encrypt the backup file check the Encrypt backup check box. バックアップ ファイルの暗号化に使用する暗号化アルゴリズムを選択し、証明書または非対称キーを指定します。Select an encryption algorithm to use for encrypting the backup file and provide a Certificate or Asymmetric key. 暗号化に使用できるアルゴリズムは次のとおりです。The available algorithms for encryption are:

    • AES 128AES 128

    • AES 192AES 192

    • AES 256AES 256

    • Triple DESTriple DES

Transact-SQL の使用Using Transact-SQL

BACKUP LOG ステートメントを実行して、トランザクション ログをバックアップします。ここでは、以下を指定します。Execute the BACKUP LOG statement to back up the transaction log, specifying the following:

  • バックアップするトランザクション ログが属しているデータベースの名前。The name of the database to which the transaction log that you want to back up belongs.

  • トランザクション ログのバックアップが書き込まれるバックアップ デバイス。The backup device where the transaction log backup is written.

重要

この例では、単純復旧モデルを使用する AdventureWorks2012AdventureWorks2012 データベースを使用しています。This example uses the AdventureWorks2012AdventureWorks2012 database, which uses the simple recovery model. ただし、ログ バックアップを可能にするために、データベースの完全バックアップを行う前に、データベースが完全復旧モデルを使用するように設定されています。To permit log backups, before taking a full database backup, the database was set to use the full recovery model.

詳細については、「データベースの復旧モデルの表示または変更 (SQL Server)」を参照してください。For more information, see View or Change the Recovery Model of a Database (SQL Server).

この例では、 AdventureWorks2012AdventureWorks2012 データベースのトランザクション ログ バックアップを、以前作成した名前付きバックアップ デバイスである MyAdvWorks_FullRM_log1に作成します。This example creates a transaction log backup for the AdventureWorks2012AdventureWorks2012 database to the previously created named backup device, MyAdvWorks_FullRM_log1.

BACKUP LOG AdventureWorks2012  
   TO MyAdvWorks_FullRM_log1;  
GO  

PowerShell の使用Using PowerShell

SQL Server PowerShell プロバイダーを設定して使用します。Set up and use the SQL Server PowerShell Provider. Backup-SqlDatabase コマンドレットを使用して -BackupAction パラメーターの値の ログ を指定します。Use the Backup-SqlDatabase cmdlet and specify Log for the value of the -BackupAction parameter.

次の例では、 <myDatabase> データベースのログのバックアップを、サーバー インスタンス Computer\Instanceの既定のバックアップ場所に作成します。The following example creates a log backup of the <myDatabase> database to the default backup location of the server instance Computer\Instance.

Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Log  

関連タスクRelated tasks

参照See also

BACKUP (Transact-SQL) BACKUP (Transact-SQL)
トランザクション ログ バックアップの適用 (SQL Server) Apply Transaction Log Backups (SQL Server)
メンテナンス プラン Maintenance Plans
ファイルの完全バックアップ (SQL Server)Full File Backups (SQL Server)