標題: [技術文章] 附加資料庫錯誤mdf_還原MSSQL錯誤:備份組包含現有的[dbName]資料庫以外的資料庫備份
無頭像
s6351301

註冊 2013-3-2
用戶註冊天數 4045
狀態 離線
發表於 2017-5-1 01:21 
219.84.240.185
分享  私人訊息  頂部
標題: Microsoft SQL Server Management Studio Express
------------------------------

伺服器 'HOME2' 的 還原 失敗。  (Microsoft.SqlServer.Express.Smo)

如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=還原+Server&LinkId=20476

------------------------------
其他資訊:

System.Data.SqlClient.SqlError: 備份組包含現有的 'DataModel' 資料庫以外的資料庫備份。 (Microsoft.SqlServer.Express.Smo)

如需說明,請按一下:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=9.00.4035.00&LinkId=20476

------------------------------
按鈕:

確定
------------------------------




原因: 備份來源主機 與 還原主機放置MDF路徑不同,造成錯誤

解決方法: 1. 開啟 MS-SQL Management 資料庫管理介面

2. 到系統資料庫的 master 按 右鍵 > 新增查詢



3. 貼上指令 (資料庫名稱及放置路徑請按實際需求更改)
restore database dbName
from disk = 'D:\My Documents\dbName_bak.bak'
with
move 'dbName' to 'E:\WebDB\dbName.mdf',
move 'dbName_log' to 'E:\WebDB\dbName.ldf',
NoRecovery,
Replace
go
4. 執行上述命令後,到 dbName 按 右鍵 > 工作 > 還原 > 資料庫 >




5. 還原資料庫 - 還原的來源 選 來源裝置

6. 指定備份 - 備份媒體 選 檔案 ,點 加入,選擇 dbName_bak.bak




7. 點 確定,點 確定

完成


參考來源:
http://ddddancer.blogspot.tw/2012/08/mssql-dbname.html將SQL Server的bak備份擋還原到另一台SQL Server中
假設serverA備份了一個資料庫擋案my.bak,若要將此my.bak由另外一台serverB還原,會發生
如下的錯誤訊息:
System.Data.SqlClient.SqlError: 備份組包含現有的 'XXXX' 資料庫以外的資料庫備份。 (Microsoft.SqlServer.Express.Smo)

可以透過下面指令解決
步驟一:
restore DATABASE Test01 --假設要還原到serverB的Test01資料庫中(Test01資料庫已存在serverB上)
from disk='C:\my.bak' --指定備份檔案路徑
with
move 'Test01' to 'C:\Program Files\Microsoft SQL Server\myData\2005\Test01.mdf',
move 'Test01_Log' to 'C:\Program Files\Microsoft SQL Server\myData\2005\Test01_Log.ldf'
,NoRecovery
,Replace
go

執行後,出現下面訊息表示順利完成第一步驟
已處理資料庫 'Test01' 的 1000 頁,檔案 1 上的檔案 'my'。
已處理資料庫 'Test01' 的 2 頁,檔案 1 上的檔案 'my_log'。
RESTORE DATABASE 已於 0.757 秒內成功處理了 1002 頁 (10.833 MB/sec)。


步驟二:
再次使用傳統的還原步驟即可。

參考來源:
http://ria-oscar.blogspot.tw/2009/09/sql-serverbaksql-server.html


無頭像
s6351301

註冊 2013-3-2
用戶註冊天數 4045
狀態 離線
發表於 2017-5-1 01:26 
219.84.240.185
指定資料庫 msater
查詢指令

restore database School
from disk = 'D:\dl_db\School\School_db_201703200630.BAK'
with
move 'School' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\School.mdf',
move 'School_log' to 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\School_log.ldf',
NoRecovery,
Replace
go
結果
已選取檔案 "Snew_Data"。它在備份時的名稱是 "School"。RESTORE 將在重新命名的檔案上繼續作業。
已選取檔案 "Snew_Log"。它在備份時的名稱是 "School_log"。RESTORE 將在重新命名的檔案上繼續作業。
已處理資料庫 'School' 的 19552 頁,檔案 1 上的檔案 'Snew_Data'。
已處理資料庫 'School' 的 1 頁,檔案 1 上的檔案 'Snew_Log'。
RESTORE DATABASE 已於 9.148 秒內成功處理了 19553 頁 (17.508 MB/sec)。




無頭像
s6351301

註冊 2013-3-2
用戶註冊天數 4045
狀態 離線
發表於 2019-10-12 11:57 
219.85.85.155
2009年10月1日 星期四將SQL Server的bak備份擋還原到另一台SQL Server中
假設serverA備份了一個資料庫擋案my.bak,若要將此my.bak由另外一台serverB還原,會發生
如下的錯誤訊息:
System.Data.SqlClient.SqlError: 備份組包含現有的 'XXXX' 資料庫以外的資料庫備份。 (Microsoft.SqlServer.Express.Smo)

可以透過下面指令解決
步驟一:
restore DATABASE Test01 --假設要還原到serverB的Test01資料庫中(Test01資料庫已存在serverB上)
from disk='C:\my.bak' --指定備份檔案路徑
with
move 'Test01' to 'C:\Program Files\Microsoft SQL Server\myData\2005\Test01.mdf',
move 'Test01_Log' to 'C:\Program Files\Microsoft SQL Server\myData\2005\Test01_Log.ldf'
,NoRecovery
,Replace
go

執行後,出現下面訊息表示順利完成第一步驟
已處理資料庫 'Test01' 的 1000 頁,檔案 1 上的檔案 'my'。
已處理資料庫 'Test01' 的 2 頁,檔案 1 上的檔案 'my_log'。
RESTORE DATABASE 已於 0.757 秒內成功處理了 1002 頁 (10.833 MB/sec)。


步驟二:
再次使用傳統的還原步驟即可。


無頭像
s6351301

註冊 2013-3-2
用戶註冊天數 4045
狀態 離線
發表於 2019-10-12 12:02 
219.85.85.155
SQL作資料庫附加過程時吃鱉_在附加資料庫時發生錯誤。請在 [訊息] 資料行中按一下超連結,以取得詳細資料
資料來源  http://coolmandiary.blogspot.com/2018/02/sql.html


- 2月 19, 2018

資料庫附加動作示範










在附加資料庫時發生錯誤。請在 [訊息] 資料行中按一下超連結,以取得詳細資料


解法1.將 Management Studio用系統管理員重啟




解法2.將 MDF、 LDF檔案放置於如下路徑

C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA




成功附加資料庫!!!!