Sql-Server
如何移動 SQL Server 數據庫文件?
我有一個數據庫,想將
.mdf
和.ldf
文件移動到另一個位置。但我不想停止MSSQLSERVER
服務,也不想導出到另一台伺服器。我怎樣才能做到這一點?
您不必停止 SQL Server 服務來移動數據庫文件,但您必須使特定數據庫離線。這是因為您無法在訪問文件時移動文件,並且使數據庫離線會阻止 SQL Server 應用程序使用這些文件。
移動它們的過程相當簡單。已經描述了分離/附加,但它幾乎沒有這麼複雜。
使用命令更改文件位置
ALTER DATABASE
:USE master; --do this all from the master ALTER DATABASE foo MODIFY FILE (name='DB_Data1' ,filename='X:\NewDBFile\DB_Data1.mdf'); --Filename is new location
請注意,您不需要在此命令中聲明舊位置。更改此路徑不會立即生效,但會在下次數據庫啟動時使用。
將數據庫設置為離線
(我
WITH ROLLBACK IMMEDIATE
過去常常把所有人踢出去並回滾所有目前打開的交易)ALTER DATABASE foo SET OFFLINE WITH ROLLBACK IMMEDIATE;
將文件移動/複製到新位置
只需使用您喜歡的方法複製文件(點擊“n 拖動”、XCopy、Copy-Item、Robocopy)
使數據庫聯機
ALTER DATABASE foo SET ONLINE;
您可以在此處看到更詳細的描述。
MDF 和 LDF 文件受到保護,並且在數據庫聯機時無法移動。
如果您不介意停止數據庫工作,那麼您可以
DETACH
,移動文件,然後移動ATTACH
它。
- 右鍵點擊數據庫名稱
- 選擇
Properties
- 轉到
Files
選項卡- **記下MDF 和 LDF 文件
Path
的FileName
**和。如果您不想最終搜尋失去的文件,此步驟很重要…- 右鍵點擊數據庫名稱
- 選擇
Tasks -> Detach
- 將文件移動到您想要的位置
- 右鍵點擊
Databases
伺服器的節點- 選擇
Attach
- 點擊
Add
按鈕- 指向新位置
- 點擊
OK
你現在應該沒事了。可以在此處找到有關該過程
DETACH
的資訊。ATTACH
在關於
DETACH
-如果將數據庫保持在同一 SQL Server 實例上,則ATTACH
建議使用 using語句的連結。ALTER DATABASE
移動使用者數據庫中的更多參考。如果您想讓它在移動時保持執行,請執行
BACKUP
-RESTORE
。在恢復過程中,您可以定義數據庫文件的新位置。