マシンにSQL Server Management Studioがありません。
データベースのバックアップがあります(SQL Server 2008 R2)。私のマシンにVisual Studio 2010 UltimateがインストールされているSQL Server Expressがインストールされています。
これをデータベースに復元し、SQL Server Expressにアタッチするにはどうすればよいですか?
SQL Managment Studio Expressを使用したソリューションはありますか?
SQL Server Management Studio Expressを使用しても、このバックアップを復元することはできません。 Visual Studio 2010と共にインストールされるExpressエディションは、SQL Serverのバージョン2008です-バックアップはSQL Server 2008からのものですR2リリース-これらのバックアップは2008バージョンに復元できません。
SQL Server 2008R2Expressバージョン をダウンロードする必要があります。 -Management Studioでバージョンを入手してください!これをインストールすると、データベースのバックアップを復元できます。
Mgmt Studioを使用せずにデータベースを本当に復元したい場合は、T-SQLでRESTORE
ステートメントを使用し、 sqlcmd
コマンドを使用してこれを実行できますラインツール :
RESTORE DATABASE YourDatabaseName
FROM DISK = N'(path to your BAK file)'
WITH FILE = 1,
MOVE N'(your DB name)' TO N'(your SQL path)database.MDF',
MOVE N'(your DB name)_LOG' TO N'(your SQL path)database_LOG.LDF',
NOUNLOAD,
REPLACE,
STATS = 10
GO
(そしてもちろん、同様の方法で使用できる BACKUP
コマンド もあります- MSDN Books Online 構文の詳細についてはあなたの友達です!!)。
1つ後期ですが、これを表示している他の人に役立つことを願っています…。
問題が管理スタジオなしで復元している場合、これはmarc_sが既に指摘したようにsqlcmdを使用して簡単に解決できます。
ただし、SSMSを使用せずにSQL 2008で2008 R2バックアップを復元することが実際の問題である場合、解決策は、スキーマを作成してデータを挿入するためのバックアップを読み取り、スクリプトを生成できるサードパーティツールを使用することだけです。
考えは、SQL 2008で空のデータベースを作成し、サードパーティのツールを使用して、2008 R2で生成されたバックアップと比較することです。
ApexSQL Diff および ApexSQL Data Diff を使用しましたが、以前の仕事では成功しましたが、 Red Gate (SQL Compare )および Idera (比較ツールセット)。オンラインで検索すると、おそらくもっと多くのことを見つけるでしょう…。
免責事項:私は上記の会社のいずれとも提携していません…
SQL Managment Studio Expressを入手してみませんか?無料で、ローカルのsql expressインスタンスを管理できます。
http://www.Microsoft.com/downloads/en/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796
BACKUP DATABASE [AdventureWorks] TO
DISK = N'\\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak'
WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks-Full Database Backup',
SKIP, NOREWIND, NOUNLOAD, STATS = 10
RESTORE DATABASE [AdventureWorksNew]
FROM DISK = N'\\nas\Backup\L40\SQL2005\AdventureWorks_backup_200702120215.bak'
WITH FILE = 1,
MOVE N'AdventureWorks_Data' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Data.mdf',
MOVE N'AdventureWorks_Log' TO N'C:\Data\MSSQL.1\MSSQL\Data\AdventureWorksNew_Log.ldf',
NOUNLOAD, STATS = 10
次のリンクはmarc_sと同様のソリューションを提供し、さらに深くなります。以下のリンクで提供されるソリューションを使用して、バックアップファイルから新しいDBを正常に作成できました。
http://codeonaboat.wordpress.com/2012/02/16/sql-server-2008-creating-a-database-from-a-bak-file/
以下のソリューションは、上記のリンクからコピーされます。
SSMSで、データベースサーバーのマスターデータベースでクエリウィンドウを開きます。そこで、次のクエリを実行します。
.bakファイルにバックアップされたデータベースの「LogicalName」が何であるかを確認します
ディスクからファイルリストを復元= 'c:\ DatabaseBackups\dev2012021601.bak'
これにより、データベースの論理名とそれに関連するログファイルが得られます。名前が「dbname」および「dbname_log」であると仮定しましょう。
RESTORE DATABASE dbForSocialMigration FROM DISK = 'c:\DatabaseBackups\dev20120307.bak' WITH MOVE 'dbname' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration.mdf', MOVE 'dbname_log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\dbForSocialMigration_log.mdf'
C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
は、SQL Expressが通常データファイルを保持するディレクトリです。データベースサーバーが使用しているディレクトリを見つけるには、そこからデータベースを選択し、右クリックしてプロパティダイアログを開き、左側から「ファイル」オプションを選択します。
これでうまくいくはずです。その時点で、.bakファイルのすべてのテーブルとデータが格納されたデータベース「dbForSocialMigration」にアクセスできるはずです。