SQL Server 2008 Expressデータベースをバックアップするのはなぜそのような使命なのですか?
-
11-10-2019 - |
質問
私は自分自身を変化を恐れているとは言いませんが、新しいテクノロジーを恐れていますか?はい、確かに!オペレーティングシステムからデータベースサーバーまでのテクノロジーは、「進行状況」が進むほど、バグがかかり、非効率的で、後方になります。
MSDE 2000 (彼らが今日の世界で「SQL 2000 Express」と呼ぶかもしれないもの)
BACKUP [MyDatabase] TO FILE 'c:\backups\mybackup.backup'
SQL 2008 Express
まってて!その「ユーザーインスタンス」 - バックアップするには、サーバーインスタンスに添付する必要があります
まってて!添付するには、SQL Management Studio Expressが必要です(78MBダウンロード)
まってて! 。 sqlexpressサーバーインスタンスにログインし、データベースを添付しようとすると、自家製の開発プロジェクトのバグのように見えるエラーが発生します。
タイトル:Microsoft SQL Server Management Studio
要求されたダイアログを表示できません。
- - - - - - - - - - - - - - - 追加情報:
パラメーター名:ncolindexの実際の値は-1でした。 (Microsoft.sqlserver.gridControl)
誰かがT-SQLコードでSQL Server 2008 Expressデータベースのユーザーインスタンスをバックアップする方法を説明できますか?
(Microsoft、MicrosoftのUmmmmで炎のように出くわした場合は申し訳ありません - 私は実際に彼らの大ファンです。このようなことについて本当に怒っています!投票しないでください...)
解決 2
ユーザーインスタンスのバックアップを達成しようとする際に注意すべきいくつかの重要なヒント
a。)接続
接続文字列は次のようになります:
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MyDatabase.mdf;Integrated Security=True;User Instance=True;Database=MyDatabaseAlias
そうです 必要不可欠 接続文字列が接続にエイリアスを与えること Database=MyDatabaseAlias
- このエイリアス 複製することはできません 同じマシンで同時に、または接続が失敗する可能性があります。
b。)バックアップ
上記のように、データベースをバックアップするためのTransact SQLは、SQL MSDE/2000/2005/2008/R2で同じです - データベースが添付されたら、 エイリアス!
BACKUP DATABASE MyDatabaseAlias TO DISK = 'c:\backups\mydatabase_20101117.backup'
本当に驚くべきことは、接続文字列にエイリアスがないので、あなたが得ることができるブル$ h!tエラーです Database=MyDatabaseAlias
部。
たとえば、物理ファイルを開くことができない 'c: code myproject app_data mydatabase.mdf'オペレーティングシステムエラー32: "32(別のプロセスで使用されているため、プロセスはファイルにアクセスできません。)。バックアップデータベースはISです。異常に終了します。
c。) 復元
USE [master]; RESTORE DATABASE MyDatabaseAlias FROM DISK = 'c:\backups\mydatabase_20101117.backup' WITH REPLACE
忘れてはいけない すべてが不可欠です USE [master];
この声明の最初に(そしてそのことに注意してください すべて1行 aからコマンドを実行している人のために DataContext
または同様)そうする場合、既存のデータベースに接続されているため、既存のデータベースを上書きすることはできません。
もう一度、の品揃え 完全に誤解を招くエラー 接続文字列が無効であるため、ここで受信する場合があります。
他のヒント
ええと、それがユーザーインスタンスの場合、最も単純なバックアップ戦略はファイルをコピーすることです。 (SQL Serverに接続されていませんが)。
より包括的なバックアップ戦略(トランザクションバックアップなど)が必要な場合は、より包括的なデータベース(たとえば、完全なSQL Serverインスタンスに接続された「通常」のデータベース)を実際に見る必要があります。