sql?server修改數(shù)據(jù)庫文件位置的詳細(xì)步驟記錄
背景:
裝數(shù)據(jù)庫的時候?qū)⑽募恢醚b在了C盤,C盤分的又比較小,每日數(shù)據(jù)量增加會導(dǎo)致系統(tǒng)崩潰,沒有服務(wù)端,只有數(shù)據(jù)庫。
注:1.實體機(jī)不要在業(yè)務(wù)時間操作,拔了網(wǎng)線操作是安全有保障的方法-防止有其他連接,數(shù)據(jù)寫入這些。
2.所有操作先搭測試環(huán)境多操作幾次,然后再在實體機(jī)上操作,畢竟數(shù)據(jù)很重要,備份也非常重要。
3.不要去移動系統(tǒng)數(shù)據(jù)庫(如master,tempdb…這些),不然整個數(shù)據(jù)庫都會用不了
步驟
下面是將數(shù)據(jù)庫從一個路徑轉(zhuǎn)移到另一個路徑的常見步驟(以ReportServer為例):
1.備份數(shù)據(jù)庫
在轉(zhuǎn)移數(shù)據(jù)庫之前,我們首先需要備份數(shù)據(jù)庫,以便在出現(xiàn)任何問題時能夠恢復(fù)數(shù)據(jù)??梢允褂靡韵耇-SQL語句進(jìn)行數(shù)據(jù)庫備份:
----1.備份
BACKUP DATABASE [數(shù)據(jù)庫名] TO DISK ='D:\Backup\數(shù)據(jù)庫名.bak'
[也可以用塊設(shè)備的方法備份可以看到更多信息 斜體部分不用操作,了解一下]
[
-----設(shè)備塊備份
–Use 學(xué)生成績管理
–GO
—Exec sp_addumpdevice ‘disk’,‘備份設(shè)備01’,‘d:\backup1\學(xué)生成績管理.bak’
備份數(shù)據(jù)庫命令:
—backup database 學(xué)生成績管理 to 備份設(shè)備01
還原數(shù)據(jù)庫
—restore database 學(xué)生成績管理from 備份設(shè)備01 with replace
注意:在還原數(shù)據(jù)庫時,必須先關(guān)閉要還原的數(shù)據(jù)庫]
2.先將所需更改的數(shù)據(jù)庫的路徑先查詢出來再進(jìn)行關(guān)閉
USE [數(shù)據(jù)庫名];
GO
SELECT name As [Database Name],
physical_name As [File Path],
type_desc As [File Type],state_desc
FROM sys.master_files
WHERE database_id= DB_ID(' [數(shù)據(jù)庫名]');

3.關(guān)閉該數(shù)據(jù)庫
USE master; GO ALTER DATABASE [數(shù)據(jù)庫名] SET OFFLINE WITH ROLLBACK IMMEDIATE; GO

4.再次查詢發(fā)現(xiàn)已經(jīng)是離線
USE [數(shù)據(jù)庫名];
GO
SELECT name As [Database Name],
physical_name As [File Path],
type_desc As [File Type],state_desc
FROM sys.master_files
WHERE database_id= DB_ID(' [數(shù)據(jù)庫名]');

5.移動數(shù)據(jù)庫文件(文件位置我移到D盤,根據(jù)個人情況。文件夾可以不需要建那么長)
注:必須要先把文件夾位置建好,才能執(zhí)行下列移動位置命令
USE master; GO ALTER DATABASE ReportServer MODIFY FILE(NAME = 'ReportServer', FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ReportServer.mdf'); GO ALTER DATABASE ReportServer MODIFY FILE (NAME = 'ReportServer_log', FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\ReportServer_log.ldf'); GO
----執(zhí)行成功提示如下

6.開啟數(shù)據(jù)庫時提示報錯信息
USE master; GO ALTER DATABASE ReportServer SET ONLINE; GO
這是因為文件邏輯位置做了更改,但是文件物理位置沒變導(dǎo)致的,需要先找到該數(shù)據(jù)庫在C盤下的位置,移動到D盤下新建的位置即可

D盤下現(xiàn)在還沒有移動過去

7.手動拖過去即可

注:還有另外一種情況,手動移動過去報錯,提示****已在文件中打開,此時需要加權(quán)限,如此類報錯

解決方法如下
將2個文件都把everyone添加進(jìn)去,權(quán)限為完全控制,即可復(fù)制過去。

8.然后移動過去又報操作系統(tǒng)錯誤5:“5(拒絕訪問。)”

9.這是需要將移動到D盤的數(shù)據(jù)文件中user的權(quán)限改為完全控制,(2個文件都需要這么操作,不然也會報錯)然后再次執(zhí)行

10.執(zhí)行成功

注:執(zhí)行成功之后,去文件夾下看兩邊都會有,但是以后寫數(shù)據(jù)只會寫在移動到D盤的文件位置里邊。以上為我親測有效的方法。
總結(jié)
到此這篇關(guān)于sql server修改數(shù)據(jù)庫文件位置的文章就介紹到這了,更多相關(guān)sqlserver修改數(shù)據(jù)庫文件位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL恢復(fù)master數(shù)據(jù)庫方法 只有mdf文件的數(shù)據(jù)庫如何恢復(fù)
這篇文章主要為大家詳細(xì)介紹了SQL恢復(fù)master數(shù)據(jù)庫方法,還分析了只有mdf文件的數(shù)據(jù)庫如何進(jìn)行恢復(fù)的情況,也就是沒有l(wèi)og文件的數(shù)據(jù)庫文件恢復(fù)方法,感興趣的小伙伴們可以參考一下2016-05-05
sqlserver數(shù)據(jù)庫獲取數(shù)據(jù)庫信息
這篇文章主要介紹了sqlserver數(shù)據(jù)庫獲取數(shù)據(jù)庫文件信息,大家參考使用吧2014-01-01
有關(guān)數(shù)據(jù)庫SQL遞歸查詢在不同數(shù)據(jù)庫中的實現(xiàn)方法
這篇文章主要介紹了有關(guān)數(shù)據(jù)庫SQL遞歸查詢在不同數(shù)據(jù)庫中的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2015-10-10
sql lite 數(shù)據(jù)庫之間表復(fù)制的方法
最近用sql lite數(shù)據(jù)庫,因為數(shù)據(jù)庫版本的問題,導(dǎo)致數(shù)據(jù)庫中的數(shù)據(jù)表內(nèi)容不同步,所以需要整合二個數(shù)據(jù)庫中的對應(yīng)表及其表中數(shù)據(jù)。2013-04-04
除MSSQL數(shù)據(jù)庫text字段中惡意腳本的刪方法
刪除MSSQL數(shù)據(jù)庫text字段的替換處理示例--全表替換,看到有人提問,所以整理了一個好久以前的處理方法,以供大家參考2009-07-07
SQL Server 2005附加數(shù)據(jù)庫時Read-Only錯誤的解決方案
本文我們主要介紹了SQL Server 2005附加數(shù)據(jù)庫時提示Read-Only錯誤的解決方案,需要的朋友可以參考下2015-08-08
批量替換sqlserver數(shù)據(jù)庫掛馬字段并防范sql注入攻擊的代碼
有時候網(wǎng)站sqlserver數(shù)據(jù)庫被掛馬了,網(wǎng)上的很多軟件與方法都是針對text小于8000的,這里的方法貌似可行,需要的朋友可以參考下。2010-04-04

