Date: Fri, 12 May 2000 22:57:53 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんばんは
>アタッチする時に*.mdfだけだと失敗しませんか?
>*.ldfもコピーしておかないとダメなんですよね。
原則は、すべてのデータファイルとログファイルが存在しないと
アタッチ(復元)はできません
但しシングルデータファイルのデータベース(mdfとldfだけのデータベース)
に限り、アタッチするときにログファイルが存在しなくてもよいわけです
ログファイルが新規に作成されますので、ログの再現はできません
このため、mdf ファイルだけを、電子メールに添付して相手に送信し、
受信した人はsp_attach_single_file_dbストアドプロシージャによって
そのデータベースを作ることができます。
データベースを人に渡したり、移動したりする場合は、シングルデータファイル
形式にしておくと、後々楽になります。
>でも、ドライブレターなど違うマシンだと
>BACKUP や RESTORE が失敗しませんか?
アタッチの場合や、復元の場合に、ドライブレターやディレクトリ環境が
変わることが多々ありますので、フルパス形式で記述します
DECLARE @dbname varchar(20)
DECLARE @dbfdname varchar(80)
DECLARE @dbflname varchar(80)
-- アタッチするデータベースの名前
SELECT @dbname = 'Northwind'
-- プライマリデータファイル名(フルパス)
SELECT @dbfdname = 'D:\Mssql7\Data\northwnd.mdf'
-- ログファイル名(フルパス)
SELECT @dbflname = 'D:\Mssql7\Data\northwnd.ldf'
EXEC sp_attach_db
@dbname = @dbname , -- データベース名
@filename1 = @dbfdname , -- プライマリファイル名
@filename2 = @dbflname -- ログファイル名
RESTOREでもMOVEオプションのファイル名をフルパス形式で
記述します
-- 読み込みのDISKのファイル名
SELECT @bkfname = 'D:\backup7\MySampleTest.DAT'
--データベースの名前
SELECT @dbname2 = 'MySampleCopy'
RESTORE DATABASE @dbname2 --復元したDBの名前
FROM DISK = @bkfname --保存先ファイル名
WITH
REPLACE --同じ名前のDBがあれば、既存を削除
--論理ファイル名はあらかじめ調査
, MOVE 'MySampleTest_Data' TO 'd:\test\MySampleCopy.mdf'
, MOVE 'MySampleTest_Log' TO 'd:\test\MySampleCopy.ldf'
こんな感じです
---------------------------------------------------
(株)日本技術ソフト開発 堀川 明
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
http://www.kt.rim.or.jp/~pwp/
05月12日(金曜日) 22時53分記
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|