如何轉移數據庫MDF和LDF文件


我們可以很輕易地使用SQL Server來創建一個數據庫,創建的數據庫實例將存儲在指定的默認位置(不一定是C盤,可以手動變更默認存儲位置)。假設此時數據庫實例創建在了C盤中的默認位置,亦即是與數據庫安裝位置保持一致性,對於64位的操作系統來說,存儲在C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA中。由於各種原因,我們的代碼持續性在寫數據庫,數據庫中LDF文件變得越來越大,而C盤的空間越來越小,此時,我們首先想到的就是為數據庫瘦身,瘦身很簡單,右擊數據庫名稱選擇Tasks --> Shrink,如下圖所示:

瘦身之后,我們會看到C盤空間的確有被釋放一部分,至於釋放的大小就要看情況了。有時候,我們也會考慮將數據庫文件轉移到其他盤來解決C盤空間問題,但是要怎么做呢?其實很簡單!

現在假設,我們需要將數據庫文件從C盤的數據庫實例(pubs)默認路徑轉移到D盤指定文件夾loc1中, 第一步,打開SQL Server,創建一個新的query文件,輸入以下代碼:

USE MASTER;
GO
-- Take database in single user mode -- if you are facing errors
 -- This may terminate your active transactions for database
ALTER DATABASE pubs
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
-- Detach DB
EXEC MASTER.dbo.sp_detach_db @dbname = N'pubs'
GO
View Code

執行以上代碼,會看到如下提示信息:

此時會發現原有路徑下的MDF 和 LDF文件前面多了一把小鎖:

第二步,將數據庫MDF和LDF兩個文件復制到想轉移的目標文件夾中,這里是D:\loc1:

第三步,回到SQL Server,輸入以下代碼:

CREATE DATABASE pubs ON
( FILENAME = N'D:\loc1\pubs.mdf' ),
 ( FILENAME = N'D:\loc1\pubs_log.ldf' )
FOR ATTACH
GO
View Code

執行代碼,將看到提示信息:Command(s) completed successfully.

到這里,數據庫轉移就完成了,此時,可以放心刪除C盤中相關的數據文件了。

這里還有一個小小的提醒:你可以使用ROLLBACK IMMEDIATE即時終止你的活動事務,但不要讓它隨機執行,除非你明確知道它們不再需要或者經過審查發現因任何原因出現數據庫的連接我們無法手動終止,那就做吧~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM