.bakファイルからSQL Serverのデータベースを復元する方法に関するGoogleの投稿とStackOverflowの質問をたくさん読んでいます。
しかし、それらのいずれも、データベースバックアップのテーブルを単に読み取る方法を述べていません。 (とにかく見つけられなかった?)
実際にデータベース全体を復元せずに、削除された古い情報をチェックアウトしたいだけです。これは可能ですか?
。
編集:
私は自分のT-SQLソリューションを問題に投稿したかったので、他の人がそれを使用する可能性があり、戻って調べることができます;)
まず、backup_lookup
という新しいデータベースを作成し、オフラインにしました。この後、元のデータベースに触れることなく、古いデータベースmydb
を新しいデータベースに復元できました。
USE master
GO
RESTORE DATABASE backup_lookup
FROM DISK = 'D:\backup\mydb.bak'
WITH REPLACE,
MOVE 'mydb' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
MOVE 'mydb_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO
これが役立つことを願っています:)
SQL Server 2008 SSMS(SQL Server Management Studio)から、単純に:
どちらか:
右クリック、タスク、復元、データベース
PS:繰り返しますが、「スクラッチデータベース」でこれを簡単に行うことができます。not現在のデータベースを上書きする必要があります。しかし、あなたはdoする必要があります[〜#〜] restore [〜#〜]。
PPS:スクリプトを作成する場合は、T-SQLコマンドでも同じことを実行できます。
唯一実行可能な解決策は、.bak
ファイルをrestoreすることです。それらのファイルの内容と構造は文書化されていません、したがって、これを機能させる方法はありません(ひどいハック以外)-間違いなくあなたの時間と価値はありません努力!
.bak
ファイルを復元せずに理解できる唯一のツールは、 Red-Gate SQL Compare Professional (および付属のSQL Data Compare)です。 .bak
ファイルの内容に対するデータベース構造。 Red-Gateツールは非常に素晴らしいものです。非常に推奨されており、費用がかかるすべての価値があります。
そして、私は彼らのウェブサイトをチェックしました-SQL Compare Proで.bak
ファイルから単一のテーブルを実際に復元できるようです! :-)
これを行う標準的な方法はありません。 ApexSQL Restore または SQL Virtual Restore などのサードパーティツールを使用する必要があります。これらのツールは、実際にはバックアップファイルを直接読み取りません。 SQL Serverは、バックアップファイルをライブデータベースであるかのように「考え」ます。
TSQLスクリプトソリューションを追加するには:
まず第一に; backup_lookup
という名前の新しいデータベースを追加します。次に、このスクリプトを実行して、独自のデータベースのルートパスとバックアップファイルパスを挿入します。
USE [master]
GO
RESTORE DATABASE backup_lookup
FROM DISK = 'C:\backup.bak'
WITH REPLACE,
MOVE 'Old Database Name' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup.mdf',
MOVE 'Old Database Name_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\backup_lookup_log.ldf'
GO
SQL Server 2008だけでは不可能だと思われます。サードパーティのツールのヘルプが必要になります。
.bakをライブデータベースのように動作させるのに役立ちます。