Info2softは、ウェブサイトでより快適で適切な閲覧体験を提供するためにCookieを使用しています。 プライバシーポリシー
Loading...
.bakファイルはMicrosoft SQL Serverデータベースバックアップファイルで、SQL Serverによって作成されます。特定時点のデータベース完全スナップショットが格納されており、スキーマ(テーブル定義、ストアドプロシージャ、ビュー)、各テーブルの生データ、データ整合性を保証するトランザクションログを含みます。
ファイル形式はMicrosoft Tape Format(MTF)と広く認識されている独自のバイナリ構造であり、人間が直接読める表計算ファイルやテキストファイルではありません。これが「.BAKファイルを開く方法」が検索される理由です。このファイルは閲覧用ではなく復元用に設計されています。
ご安心ください。.BAKファイルを開いて参照する手法は複数存在します。本記事で段階的な手順を解説します。
作業を開始する前に、以下の点を確認してください
1. バックアップ作成元のSQL Serverバージョンを特定する
SQL Server 2022で作成したバックアップはSQL Server 2014以前の環境に復元できません。作成元バージョンが不明な場合は、一時的なSQL ServerインスタンスでRESTORE HEADERONLYを実行すると、バックアップ元のバージョンを確認可能です。
2. ファイルが破損していないか確認する
任意のSQL Serverインスタンス(無料のExpress版でも可)で以下のコマンドを実行します。
RESTORE VERIFYONLY
FROM DISK = N'C:\YourFile.bak';
GO
このコマンドはバックアップセットが完全かつ読み取り可能か検証し、データベースページの一部ヘッダ情報をチェックします。ただしデータ内部構造までは検証しません。実際にデータベースを復元することなく、「バックアップセットは正常」または詳細なエラー情報を出力します。VERIFYONLYが失敗する場合、ファイルが不完全にコピーされた、切り詰められた、または完全に破損している可能性があります。
3. BAKファイルを復元する場合は内部の論理ファイル名を把握する
バックアップのメタデータ上でデータファイルの保存先がE:\SQL_Databases\MyDB.mdfと記録されている場合、復元先サーバーにEドライブが存在しないとディレクトリ参照エラーが発生し復元に失敗します。これは最も頻出する復元トラブルの一つです。
以下のコマンドでバックアップ内のファイル情報を一覧表示し、MOVE句を使用してパスを調整します。
RESTORE FILELISTONLY
FROM DISK = N'C:\YourFile.bak';
GO
4. .bakファイルに複数のバックアップセットが含まれているか確認する
単一の.bakファイルに複数のバックアップセット(完全バックアップの後に差分バックアップやログバックアップを追記した場合など)が格納されているケースがあります。RESTORE HEADERONLYで全てのバックアップセットを一覧表示し、複数のレコードが存在する場合はRESTOREコマンドにWITH FILE = 数値を指定して対象のセットを選択する必要があります。
Excelは.bakファイルを直接開けません。SQL Serverをインストールせず、復元も行いたくない場合はコンバーターツールを利用しExcel形式に変換できます。
方法1. オンラインBAK→Excelコンバーターを使用
RebaseDataなどのサービスはブラウザ上で.bakファイルをExcel、CSV、PostgreSQL形式に直接変換できます。機密性のない小規模な試験用データベースのみ、他の手段がない場合に限り推奨します。
ファイルをアップロードし変換完了後、表計算ファイルのZIPアーカイブをダウンロードするだけです。ただし2つの重大な注意点が存在します。
方法2. BAKファイルをExcelに変換(拡張子変更)
テキスト情報のみが格納された簡易な.bakファイルの場合、拡張子を.xlsまたは.xlsxに変更することで開けるケースが稀にあります。
警告:この手法はファイル破損を引き起こす恐れがあります。事前に.bakファイルを別の場所にコピーしてバックアップを作成してください。
手順1. Windowsエクスプローラーを開き、上部の「表示」タブ→「オプション」をクリック。
手順2. 「フォルダーオプション」ウィンドウの「表示」タブを開く。
手順3. 詳細設定内の「既知のファイルの種類の拡張子を表示しない」のチェックを外す。
手順4. .BAKファイルを右クリックし「名前の変更」を選択。
手順5. ファイル拡張子を.xlsまたは.xlsxに書き換える。
変更後、Excelでファイルを開く。
SQL Server Management Studio(SSMS)はMicrosoftが無料提供するSQL Server向けGUI管理ツールです。オンプレミス、Azure VM、ローカルExpress版を問わずSQL Serverインスタンスにアクセス可能な場合、この手法が最も詳細な制御を実現できます。
推奨対象:DBA、開発者、SQL Server環境と公式ツールを保有する担当者
手順1. SSMSを起動し、Windows認証またはSQL Serverログイン資格情報で対象のSQL Serverインスタンスに接続する。
手順2. オブジェクトエクスプローラーの「データベース」フォルダを右クリックし「データベースの復元…」を選択。
手順3. 「全般」タブの「ソース」欄で「デバイス」を選択し、「…」ボタンをクリックして.bakファイルを参照・追加する。
手順4. 「追加」をクリックし、ファイルの保存先に移動して対象の.bakファイルを選択後「OK」。
手順5. 「送信先」欄に復元後のデータベース名を入力。元のデータベース名と同一でも、サーバーに同名DBが存在する場合は新規名を使用することを推奨。
手順6. 「ファイル」タブに切り替え、データファイルとログファイルの「復元先」パスを確認。復元先サーバーに元のパスが存在しない場合は有効なローカルディレクトリに変更する。
手順7. 「オプション」タブにて、同名のデータベースが存在する場合は「既存のデータベースを上書きする(WITH REPLACE)」にチェックを入れる。復旧状態には「RESTORE WITH RECOVERY」を選択(復元完了後すぐにデータベースを利用可能にする設定)。
手順8. 「OK」をクリック。SSMSが復元処理を実行し、正常完了時に確認ダイアログが表示される。復元したデータベースはオブジェクトエクスプローラーのデータベース配下に表示される。
補足:T-SQLコマンドによる詳細制御
GUI操作よりスクリプトを好む場合は、以下のコマンドで同等の復元を実行できます。復元先のファイルパスが元と異なる場合、MOVE句の記述が必須となります。RECOVERYオプションにより復元直後にデータベースがオンライン状態となりクエリ実行可能になります。
RESTORE DATABASE YourNewDatabaseName
FROM DISK = N'C:\Backups\YourFile.bak'
WITH MOVE 'LogicalDataFileName' TO N'C:\SQLData\YourNewDatabaseName.mdf',
MOVE 'LogicalLogFileName' TO N'C:\SQLData\YourNewDatabaseName_log.ldf',
REPLACE, RECOVERY;
GO
事前準備事項で記載した通り、RESTORE FILELISTONLYを実行することで論理ファイル名(LogicalDataFileName、LogicalLogFileName)を取得できます。
正しい手順で実施しても復元処理が失敗するケースがあります。代表的なエラーと原因、対処法を下表に記載します。
|
エラーメッセージ |
根本原因 |
解決策 |
|
「デバイスのメディアファミリの形式が正しくありません」 |
ファイルが不完全、SQL Serverバージョンの不整合、コピー未完了 |
RESTORE VERIFYONLYでファイルの完全性を確認、ファイルを再コピー、作成元バックアップのバージョンが復元先SQL Server以下であることを確認 |
|
「バックアップセットには既存のデータベースとは別のデータベースのバックアップが含まれています」 |
内部DB識別子が異なるバックアップで既存DBを上書きしようとしている |
RESTORE文にWITH REPLACEを追加、またはSSMS画面で「既存のデータベースを上書きする」にチェック |
|
「ファイルのディレクトリ参照に失敗しました」 |
復元先サーバーに.mdf/.ldfの保存先パスが存在しない |
T-SQLのMOVE句、またはSSMSのファイルタブで「復元先」パスを存在するディレクトリに変更 |
|
「RESTORE DATABASEが異常終了しました」または復元後DBが表示されない |
権限不足。SQL Serverサービスアカウントに.bakファイルのフォルダ読み取り権限がない |
SQL Serverサービスアカウント(例:NT SERVICE\MSSQLSERVER)にバックアップフォルダの読み取り権限を付与 |
ここまで紹介した手法は、既存の.bakファイルを開くための解決策です。実運用では、バックアップファイルの正常性を常に保証し、簡単に管理できる仕組みが必要です。それがi2Backupです。
i2BackupはInformation2 Software(info2soft)が開発した堅牢なデータセットバックアップソリューションです。単一サーバーから複数インスタンスの企業規模環境まで対応し、バックアップの全ライフサイクルを効率化します。
下記ボタンよりi2Backupの60日間無料トライアルを申し込めます。
本記事では.BAKファイルの開き方を全て解説しました。SQL Serverを使用しない場合はBAK→Excelコンバーターまたは拡張子変更を試せます。SQL Server環境がある場合はSSMSにファイルを復元して中身を参照可能です。
また、データベースバックアップの管理を簡素化するにはi2Backupが最適な選択肢です。SQL Server、MySQL、PostgreSQLなど複数のデータベースに対応し、管理者は全DBのバックアップを一括管理できます。