SQL Server データベースのバックアップと復元Back Up and Restore of SQL Server Databases

適用対象:○SQL Server XAzure SQL DatabaseXAzure SQL Data Warehouse XParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

この記事では、 SQL ServerSQL Server データベースをバックアップする利点、バックアップと復元に関する基本的な用語、 SQL ServerSQL Server のバックアップと復元の方法を紹介します。 SQL ServerSQL Server のバックアップと復元のセキュリティに関する考慮事項についても取り上げます。This article describes the benefits of backing up SQL ServerSQL Server databases, basic backup and restore terms, and introduces backup and restore strategies for SQL ServerSQL Server and security considerations for SQL ServerSQL Server backup and restore.

ステップ バイ ステップの指示が必要な場合Looking for step by step instructions? このトピックでは バックアップを実行する具体的な手順は説明されていませんThis topic does not provide any specific steps for how to do a back up! バックアップの具体的な手順については、このページの最後にあるバックアップ タスク別および SSMS/T-SQL 別のリンク セクションを参照してください。If you want to get right to actually backing up, scroll down this page to the links section, organized by backup tasks and whether you want to use SSMS or T-SQL.

SQL Server のバックアップと復元コンポーネントは、 SQL ServerSQL Server データベースに格納されている大切なデータを保護するうえで不可欠な保護対策を提供します。The SQL Server backup and restore component provides an essential safeguard for protecting critical data stored in your SQL ServerSQL Server databases. 致命的なデータ損失のリスクを最小限に抑えるには、データベースをバックアップして、データに対する変更内容を定期的に保存しておく必要があります。To minimize the risk of catastrophic data loss, you need to back up your databases to preserve modifications to your data on a regular basis. バックアップと復元方法を十分に計画することで、さまざまな障害に起因するデータの損失からデータベースを保護できます。A well-planned backup and restore strategy helps protect databases against data loss caused by a variety of failures. バックアップを復元し、データベースを復旧するテストを実施することで、障害発生時に適切に対応できるようになります。Test your strategy by restoring a set of backups and then recovering your database to prepare you to respond effectively to a disaster.

バックアップを格納するローカル ストレージに加えて、SQL Server では、バックアップおよび Windows Azure BLOB ストレージ サービスからの復元がサポートされます。In addition to local storage for storing the backups, SQL Server also supports backup to and restore from the Windows Azure Blob Storage Service. 詳細については、「 Microsoft Azure Blob Storage サービスを使用した SQL Server のバックアップと復元」を参照してください。For more information, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service. Microsoft Azure BLOB ストレージ サービスを使用して格納したデータベース ファイルの場合、 SQL Server 2016 (13.x)SQL Server 2016 (13.x) では、Azure スナップショットを使用してほぼ瞬時にバックアップし、より迅速に復元するためのオプションが提供されます。For database files stored using the Microsoft Azure Blob storage service, SQL Server 2016 (13.x)SQL Server 2016 (13.x) provides the option to use Azure snapshots for nearly instantaneous backups and faster restores. 詳細については、「 Azure でのデータベース ファイルのファイル スナップショット バックアップ」を参照してください。For more information, see File-Snapshot Backups for Database Files in Azure.

バックアップする理由Why back up?

  • SQL ServerSQL Server データベースをバックアップしたり、既存のバックアップの復元テストを実行したりできるほか、離れた安全な場所にバックアップのコピーを保管することによって、致命的な損失からデータを保護することができます。Backing up your SQL ServerSQL Server databases, running test restores procedures on your backups, and storing copies of backups in a safe, off-site location protects you from potentially catastrophic data loss. バックアップは、データを保護できる唯一の方法です。Backing up is the only way to protect your data.

    データベースの有効なバックアップがあれば、次に示したようなさまざまな障害からデータを復旧することができます。With valid backups of a database, you can recover your data from many failures, such as:

    • メディアの障害Media failure.
    • ユーザー エラー (テーブルの誤削除など)User errors, for example, dropping a table by mistake.
    • ハードウェア障害 (ディスク ドライブの損傷や、復旧の可能性のないサーバー障害など)Hardware failures, for example, a damaged disk drive or permanent loss of a server.
    • 自然災害。Natural disasters. Windows Azure BLOB ストレージ サービスへの SQL Server バックアップを使用すると、内部設置環境に影響する自然災害が発生した場合に使用できるように、内部設置の場所とは異なる地域にオフサイト バックアップを作成できます。By using SQL Server Backup to Windows Azure Blob storage service, you can create an off-site backup in a different region than your on-premises location, to use in the event of a natural disaster affecting your on-premises location.
  • また、データベースのバックアップは、サーバー間でのデータベースのコピー、 Always On 可用性グループAlways On availability groups やデータベース ミラーリングのセットアップ、およびアーカイブなど、日常的な管理作業を行ううえでも便利です。Additionally, backups of a database are useful for routine administrative purposes, such as copying a database from one server to another, setting up Always On 可用性グループAlways On availability groups or database mirroring, and archiving.

バックアップの用語集Glossary of backup terms

バックアップ (back up) (動詞)back up [verb]
SQL ServerSQL Server データベースのデータ レコードまたはそのトランザクション ログのログ レコードをコピーすることによって、バックアップ (名詞) を作成するプロセス。The process of creating a backup [noun] by copying data records from a SQL ServerSQL Server database, or log records from its transaction log.

バックアップ (backup) (名詞)backup [noun]
障害の発生後、データの復元と復旧に使用できるデータのコピー。A copy of data that can be used to restore and recover the data after a failure. データベースのバックアップを使用して、コピー (データベース) を新しい場所に復元することもできます。Backups of a database can also be used to restore a copy the database to a new location.

バックアップ デバイス (backup device)backup device
SQL Server のバックアップの書き込みと復元に使用されるディスクまたはテープ デバイス。A disk or tape device to which SQL Server backups are written and from which they can be restored. SQL Server のバックアップは、Windows Azure BLOB ストレージ サービスに書き込むことができます。バックアップ先とバックアップ ファイルの名前を指定するには URL 形式を使用します。SQL Server backups can also be written to a Windows Azure Blob storage service, and URL format is used to specify the destination and the name of the backup file.. 詳細については、「 Microsoft Azure Blob Storage サービスを使用した SQL Server のバックアップと復元」を参照してください。For more information, see SQL Server Backup and Restore with Microsoft Azure Blob Storage Service.

バックアップ メディア (backup media)backup media
バックアップの書き込み先となる 1 つまたは複数のテープまたはディスク ファイル。One or more tapes or disk files to which one or more backups have been written.

データ バックアップ (data backup)data backup
データのバックアップ。データベース全体 (データベース バックアップ)、データベースの一部 (部分バックアップ)、または一連のデータ ファイルやファイルグループ (ファイル バックアップ) の形式で存在します。A backup of data in a complete database (a database backup), a partial database (a partial backup), or a set of data files or filegroups (a file backup).

データベース バックアップ (database backup)database backup
データベースのバックアップ。A backup of a database. データベースの完全バックアップは、バックアップが完了した時点のデータベース全体を表します。Full database backups represent the whole database at the time the backup finished. 差分データベース バックアップには、最新の完全バックアップ以降に行われたデータベースへの変更のみが含まれます。Differential database backups contain only changes made to the database since its most recent full database backup.

差分バックアップ (differential backup)differential backup
データベース全体、データベースの一部、または一連のデータ ファイル (またはファイル グループ) の最新の完全バックアップ (差分ベース) をベースとし、その差分ベース以後に変更されたデータのみを含んだデータ バックアップ。A data backup that is based on the latest full backup of a complete or partial database or a set of data files or filegroups (the differential base) and that contains only the data that has changed since that base.

完全バックアップ (full backup)full backup
特定のデータベース (または一連のファイルやファイル グループ) 内のデータがすべて含まれ、さらに、データを復旧するために必要なログも含んだデータ バックアップ。A data backup that contains all the data in a specific database or set of filegroups or files, and also enough log to allow for recovering that data.

ログ バックアップ (log backup)log backup
前回のログ バックアップでバックアップされなかったすべてのログ レコードを含むトランザクション ログのバックアップA backup of transaction logs that includes all log records that were not backed up in a previous log backup. (完全復旧モデル)。(full recovery model)

復元 (recover)recover
安定し一貫した状態にデータベースを戻すこと。To return a database to a stable and consistent state.

復旧 (recovery)recovery
データベースをトランザクションの一貫性が保たれた状態にする、データベース起動時または RESTORE WITH RECOVERY 時のフェーズ。A phase of database startup or of a restore with recovery that brings the database into a transaction-consistent state.

復旧モデル (recovery model)recovery model
データベースのトランザクション ログのメンテナンスを制御するデータベース プロパティ。A database property that controls transaction log maintenance on a database. 復旧モデルの種類は、単純、完全、および一括ログの 3 種類です。Three recovery models exist: simple, full, and bulk-logged. データベースのバックアップと復元の要件は、その復旧モデルによって決まります。The recovery model of database determines its backup and restore requirements.

復元 (restore)restore
データを直近の状態まで戻す複数フェーズから成る処理。指定された SQL ServerSQL Server バックアップからすべてのデータおよびログ ページを指定されたデータベースにコピーするフェーズと、バックアップにログとして記録されているすべてのトランザクションをロールフォワード (ログに記録されている変更を適用) するフェーズとで構成されます。A multi-phase process that copies all the data and log pages from a specified SQL ServerSQL Server backup to a specified database, and then rolls forward all the transactions that are logged in the backup by applying logged changes to bring the data forward in time.

バックアップと復元の方法Backup and restore strategies

データのバックアップと復元は、特定の環境向けにカスタマイズし、使用可能なリソースと連動させる必要があります。Backing up and restoring data must be customized to a particular environment and must work with the available resources. したがって、信頼性が確保された状態でバックアップと復元を使用して復旧するには、バックアップと復元のストラテジが必要です。Therefore, a reliable use of backup and restore for recovery requires a backup and restore strategy. バックアップと復元のストラテジ設計が良ければ、特定のビジネス要件を考慮しながら、データの可用性を最大にし、データ損失を最小限に抑えることができます。A well-designed backup and restore strategy maximizes data availability and minimizes data loss, while considering your particular business requirements.

重要

データベースとバックアップは異なるデバイスに置いてください。Place the database and backups on separate devices. そうしないと、データベースを置いているデバイスに障害が発生した場合、バックアップも使用できなくなります。Otherwise, if the device containing the database fails, your backups will be unavailable. データとバックアップを異なるデバイスに置くと、バックアップの書き込みでもデータベースの運用でも I/O パフォーマンスが向上します。Placing the data and backups on separate devices also enhances the I/O performance for both writing backups and the production use of the database.

バックアップと復元のストラテジには、バックアップに関する部分と復元に関する部分があります。A backup and restore strategy contains a backup portion and a restore portion. ストラテジで扱うバックアップ部分では、バックアップの種類と頻度、バックアップに必要なハードウェアの性質と速度、バックアップのテスト方法、およびバックアップ メディアの保管場所と保管方法 (セキュリティ上の考慮事項も含む) を定義します。The backup part of the strategy defines the type and frequency of backups, the nature, and speed of the hardware that is required for them, how backups are to be tested, and where and how backup media is to be stored (including security considerations). ストラテジで扱う復元部分では、復元の実行責任者と、データベースの可用性とデータ損失の最小化という目標を達成するためにどのように復元を実行するのかを定義します。The restore part of the strategy defines who is responsible for performing restores and how restores should be performed to meet your goals for availability of the database and for minimizing data loss. バックアップと復元の手順をドキュメント化し、そのドキュメントを運用手順書に含めて保管することをお勧めします。We recommend that you document your backup and restore procedures and keep a copy of the documentation in your run book.

バックアップと復元について効果的なストラテジをデザインするには、慎重に計画、実装、およびテストする必要があります。Designing an effective backup and restore strategy requires careful planning, implementation, and testing. テストは必ず行ってください。Testing is required. 復元ストラテジに含まれるすべての組み合わせでバックアップを正常に復元できるようになって初めて、バックアップ ストラテジは完成します。You do not have a backup strategy until you have successfully restored backups in all the combinations that are included in your restore strategy. さまざまな要因を検討する必要があります。You must consider a variety of factors. その一部を次に示します。These include the following:

  • 組織がそのデータベースに求める生産目標。特に、可用性とデータ損失からの保護に関する要件。The production goals of your organization for the databases, especially the requirements for availability and protection of data from loss.

  • 各データベースの性質。サイズ、使用パターン、内容の性質、保持しているデータの要件など。The nature of each of your databases: its size, its usage patterns, the nature of its content, the requirements for its data, and so on.

  • リソースについての制約。ハードウェア、スタッフ、バックアップ メディアを保管する場所、保管されたメディアの物理的なセキュリティなど。Constraints on resources, such as: hardware, personnel, space for storing backup media, the physical security of the stored media, and so on.

バックアップおよび復元に対する復旧モデルの影響Impact of the recovery model on backup and restore

バックアップ操作および復元操作は、復旧モデルのコンテキストで発生します。Backup and restore operations occur within the context of a recovery model. 復旧モデルは、トランザクション ログの管理方法を制御するデータベース プロパティです。A recovery model is a database property that controls how the transaction log is managed. また、データベースの復旧モデルでは、そのデータベースでサポートされるバックアップの種類および復元シナリオが判断されます。Also, the recovery model of a database determines what types of backups and what restore scenarios are supported for the database. 通常、データベースは単純復旧モデルまたは完全復旧モデルを使用します。Typically a database uses either the simple recovery model or the full recovery model. 完全復旧モデルを補完するには、一括操作を行う前に一括ログ復旧モデルに切り替えます。The full recovery model can be supplemented by switching to the bulk-logged recovery model before bulk operations. これらの復旧モデルの概要とトランザクション ログの管理への影響については、「 トランザクション ログ (SQL Server)」を参照してください。For an introduction to these recovery models and how they affect transaction log management, see The Transaction Log (SQL Server)

データベースに対する復旧モデルの最善の選択は、ビジネス要件によって異なります。The best choice of recovery model for the database depends on your business requirements. トランザクション ログの管理を不要にし、バックアップと復元を簡単にするには、単純復旧モデルを使用します。To avoid transaction log management and simplify backup and restore, use the simple recovery model. 作業損失の可能性を最小に抑えるには、管理のオーバーヘッドが発生するという犠牲を払っても、完全復旧モデルを使用します。To minimize work-loss exposure, at the cost of administrative overhead, use the full recovery model. バックアップおよび復元に対する復旧モデルの影響については、「 バックアップの概要 (SQL Server)」を参照してください。For information about the effect of recovery models on backup and restore, see Backup Overview (SQL Server).

バックアップ戦略を設計するDesign your backup strategy

特定のデータベースに対するビジネス要件を満たす復旧モデルを選択した後、対応するバックアップ ストラテジを計画して実装する必要があります。After you have selected a recovery model that meets your business requirements for a specific database, you have to plan and implement a corresponding backup strategy. 最適なバックアップ ストラテジはさまざまな要因に依存しますが、その中でも以下の要因が特に重要です。The optimal backup strategy depends on a variety of factors, of which the following are especially significant:

  • アプリケーションがデータベースにアクセスする必要があるのは 1 日に何時間か。How many hours a day do applications have to access the database?

    オフピーク時間が予測できる場合は、その時間にデータベースの完全バックアップをスケジュールすることをお勧めします。If there is a predictable off-peak period, we recommend that you schedule full database backups for that period.

  • 変更や更新はどの程度の頻度で行われるか。How frequently are changes and updates likely to occur?

    変更が頻繁に行われる場合は、次のことを考慮してください。If changes are frequent, consider the following:

    • 単純復旧モデルでは、データベースの完全バックアップの合間に差分バックアップをスケジュールすることを検討します。Under the simple recovery model, consider scheduling differential backups between full database backups. 差分バックアップは、データベースの最後の完全バックアップ以降の変更だけをキャプチャします。A differential backup captures only the changes since the last full database backup.

    • 完全復旧モデルでは、ログ バックアップを頻繁に行うようスケジュールする必要があります。Under the full recovery model, you should schedule frequent log backups. 完全バックアップの合間に差分バックアップを行うようにスケジュールすると、データを復元した後で復元する必要のあるログ バックアップの数が減るので、復元時間を短縮することができます。Scheduling differential backups between full backups can reduce restore time by reducing the number of log backups you have to restore after restoring the data.

  • 変更は、データベースの一部分でのみ行われるか、データベースの大部分で行われるか。Are changes likely to occur in only a small part of the database or in a large part of the database?

    ファイルまたはファイル グループの一部分に変更が集中する大規模なデータベースでは、部分バックアップまたはファイル バックアップが有効です。For a large database in which changes are concentrated in a part of the files or filegroups, partial backups and or file backups can be useful. 詳細については、「部分バックアップ (SQL Server)」と「完全バックアップ (SQL Server)」を参照してください。For more information, see Partial Backups (SQL Server) and Full File Backups (SQL Server).

  • データベースの完全バックアップにはどの程度のディスク領域が必要か。How much disk space will a full database backup require?

    データベースの完全バックアップのサイズの推計Estimate the size of a full database backup

    バックアップと復元のストラテジを実装する前に、データベースの完全バックアップで使用するディスク領域を推計する必要があります。Before you implement a backup and restore strategy, you should estimate how much disk space a full database backup will use. バックアップ操作では、データベース内のデータをバックアップ ファイルにコピーします。The backup operation copies the data in the database to the backup file. バックアップにはデータベース内の実際のデータだけが入っており、未使用の領域は入っていません。The backup contains only the actual data in the database and not any unused space. そのため、通常、バックアップはデータベースそのものよりも小さくなります。Therefore, the backup is usually smaller than the database itself. データベースの完全バックアップのサイズは、sp_spaceused システム ストアド プロシージャを使用して推計することができます。You can estimate the size of a full database backup by using the sp_spaceused system stored procedure. 詳細については、「sp_spaceused (Transact-SQL)」を参照してください。For more information, see sp_spaceused (Transact-SQL).

バックアップのスケジュールSchedule backups

バックアップの実行によって、実行中のトランザクションが受ける影響はわずかです。したがってバックアップは、通常の運用時に実行できます。Performing a backup operation has minimal effect on transactions that are running; therefore, backup operations can be run during regular operations. 実稼働ワークロードへの影響は最小限にとどめて SQL ServerSQL Server バックアップを実行できます。You can perform a SQL ServerSQL Server backup with minimal effect on production workloads.

バックアップ中の同時実行の制限については、「 バックアップの概要 (SQL Server)」を参照してください。For information about concurrency restrictions during backup, see Backup Overview (SQL Server).

必要なバックアップの種類、および各種類のバックアップを実行する必要のある頻度を決定した後、データベースに対するデータベース メンテナンス プランの一部として、定期的なバックアップをスケジュールすることをお勧めします。After you decide what types of backups you require and how frequently you have to perform each type, we recommend that you schedule regular backups as part of a database maintenance plan for the database. メンテナンス プランと、データベース バックアップおよびログ バックアップ用のメンテナンス プランの作成方法については、「 Use the Maintenance Plan Wizard」を参照してください。For information about maintenance plans and how to create them for database backups and log backups, see Use the Maintenance Plan Wizard.

バックアップのテストTest your backups!

バックアップをテストするまでは、復元ストラテジが完成したことにはなりません。You do not have a restore strategy until you have tested your backups. データベースのコピーをテスト システムに復元することで、各データベースに対するバックアップ ストラテジを十分にテストすることが重要です。It is very important to thoroughly test your backup strategy for each of your databases by restoring a copy of the database onto a test system. 使用するすべての種類のバックアップの復元をテストする必要があります。You must test restoring every type of backup that you intend to use.

データベースごとに操作マニュアルを用意しておくことをお勧めします。We recommend that you maintain an operations manual for each database. この操作マニュアルには、バックアップの場所、バックアップ デバイス名 (ある場合)、およびテスト バックアップの復元に必要な時間を記載しておきます。This operations manual should document the location of the backups, backup device names (if any), and the amount of time that is required to restore the test backups.

xEvent で進捗状況を監視するMonitor progress with xEvent

バックアップと復元の操作は、関連するデータベースのサイズと処理の複雑さによって、相当の時間がかかる場合があります。Backup and restore operations can take a considerable amount of time due to the size of a database and the complexity of the operations involved. いずれの処理で問題が発生した場合は、backup_restore_progress_trace 拡張イベントを使用して進捗状況をライブで監視できます。When issues arise with either operation, you can use the backup_restore_progress_trace extended event to monitor progress live. 拡張イベントの詳細については、「 拡張イベント」を参照してください。For more information about extended events, see extended events.

警告

backup_restore_progress_trace 拡張イベントを使用すると、パフォーマンスの問題が発生し、大量のディスク領域を消費する場合があります。Using the backup_restore_progress_trace extended event can cause a performance issue and consume a significant amount of disk space. 使用するのは短時間にし、慎重に実行し、実稼働環境で実装する前には徹底的なテストを行ってください。Use for short periods of time, exercise caution, and test thoroughly before implementing in production.

-- Create the backup_restore_progress_trace extended event esssion
CREATE EVENT SESSION [BackupRestoreTrace] ON SERVER 
ADD EVENT sqlserver.backup_restore_progress_trace
ADD TARGET package0.event_file(SET filename=N'BackupRestoreTrace')
WITH (MAX_MEMORY=4096 KB,EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,MAX_DISPATCH_LATENCY=5 SECONDS,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK_CAUSALITY=OFF,STARTUP_STATE=OFF)
GO

-- Start the event session  
ALTER EVENT SESSION [BackupRestoreTrace]  
ON SERVER  
STATE = start;  
GO  

-- Stop the event session  
ALTER EVENT SESSION [BackupRestoreTrace]  
ON SERVER  
STATE = stop;  
GO  

拡張イベントからの出力例Sample output from extended event

xEvent の出力のバックアップ例 xEvent の出力の復元例Example of back up xevent output Example of restore xevent output

バックアップ タスクの詳細More about backup tasks

バックアップ デバイスとバックアップ メディアの操作Working with backup devices and backup media

バックアップの作成Creating backups

注:Note! 部分バックアップまたはコピーのみのバックアップでは、 Transact-SQLTransact-SQLBACKUP ステートメントにそれぞれ PARTIAL オプションまたは COPY_ONLY オプションを使う必要があります。For partial or copy-only backups, you must use the Transact-SQLTransact-SQLBACKUP statement with the PARTIAL or COPY_ONLY option, respectively.

SSMS の使用Using SSMS

データのバックアップを復元するRestore data backups

SSMS の使用Using SSMS

T-SQL の使用Using T-SQL

トランザクション ログを復元する (完全復旧モデル)Restore transaction logs (Full Recovery Model)

SSMS の使用Using SSMS

詳細情報とリソースMore information and resources

バックアップの概要 (SQL Server) Backup Overview (SQL Server)
復元と復旧の概要 (SQL Server) Restore and Recovery Overview (SQL Server)
BACKUP (Transact-SQL) BACKUP (Transact-SQL)
RESTORE (Transact-SQL) RESTORE (Transact-SQL)
Analysis Services データベースのバックアップと復元 Backup and Restore of Analysis Services Databases
フルテキスト カタログとフルテキスト インデックスのバックアップおよび復元 Back Up and Restore Full-Text Catalogs and Indexes
レプリケートされたデータベースのバックアップと復元 Back Up and Restore Replicated Databases
トランザクション ログ (SQL Server) The Transaction Log (SQL Server)
復旧モデル (SQL Server) Recovery Models (SQL Server)
メディア セット、メディア ファミリ、およびバックアップ セット (SQL Server)Media Sets, Media Families, and Backup Sets (SQL Server)