sql?server修改數(shù)據(jù)庫文件位置的詳細(xì)步驟記錄
背景:
裝數(shù)據(jù)庫的時(shí)候?qū)⑽募恢醚b在了C盤,C盤分的又比較小,每日數(shù)據(jù)量增加會(huì)導(dǎo)致系統(tǒng)崩潰,沒有服務(wù)端,只有數(shù)據(jù)庫。
注:1.實(shí)體機(jī)不要在業(yè)務(wù)時(shí)間操作,拔了網(wǎng)線操作是安全有保障的方法-防止有其他連接,數(shù)據(jù)寫入這些。
2.所有操作先搭測試環(huán)境多操作幾次,然后再在實(shí)體機(jī)上操作,畢竟數(shù)據(jù)很重要,備份也非常重要。
3.不要去移動(dòng)系統(tǒng)數(shù)據(jù)庫(如master,tempdb…這些),不然整個(gè)數(shù)據(jù)庫都會(huì)用不了
步驟
下面是將數(shù)據(jù)庫從一個(gè)路徑轉(zhuǎn)移到另一個(gè)路徑的常見步驟(以ReportServer為例):
1.備份數(shù)據(jù)庫
在轉(zhuǎn)移數(shù)據(jù)庫之前,我們首先需要備份數(shù)據(jù)庫,以便在出現(xiàn)任何問題時(shí)能夠恢復(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ù)庫時(shí),必須先關(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.移動(dòng)數(shù)據(jù)庫文件(文件位置我移到D盤,根據(jù)個(gè)人情況。文件夾可以不需要建那么長)
注:必須要先把文件夾位置建好,才能執(zhí)行下列移動(dòng)位置命令
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ù)庫時(shí)提示報(bào)錯(cuò)信息
USE master; GO ALTER DATABASE ReportServer SET ONLINE; GO
這是因?yàn)槲募壿嬑恢米隽烁?,但是文件物理位置沒變導(dǎo)致的,需要先找到該數(shù)據(jù)庫在C盤下的位置,移動(dòng)到D盤下新建的位置即可

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

7.手動(dòng)拖過去即可

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

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

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

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

10.執(zhí)行成功

注:執(zhí)行成功之后,去文件夾下看兩邊都會(huì)有,但是以后寫數(shù)據(jù)只會(huì)寫在移動(dòng)到D盤的文件位置里邊。以上為我親測有效的方法。
總結(jié)
到此這篇關(guān)于sql server修改數(shù)據(jù)庫文件位置的文章就介紹到這了,更多相關(guān)sqlserver修改數(shù)據(jù)庫文件位置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用xp_cmdshell注銷Windows登錄用戶(終端服務(wù)器超出最大連接數(shù))
關(guān)于終端服務(wù)器超出最大連接數(shù)的解決方法有很多種,最簡單的就是下載加強(qiáng)版本客戶端即可,下面的文章主要是介紹了sqlserver中通過xp_cmdshell用戶2012-12-12
SQL Server 的 SQL 語句導(dǎo)入導(dǎo)出大全
SQL Server 的 SQL 語句導(dǎo)入導(dǎo)出大全...2006-12-12
SQL 復(fù)合查詢條件(AND,OR,NOT)對(duì)NULL值的處理方法
在SQL的3值邏輯下,一個(gè)查詢條件可以產(chǎn)生以下三種情況:TRUE,FALSE,NULL。只有那些滿足WHERE子句的值是TRUE的記錄才出現(xiàn)在結(jié)果表中。2011-04-04
sql動(dòng)態(tài)行轉(zhuǎn)列的兩種方法
sql動(dòng)態(tài)行轉(zhuǎn)列的兩種方法,需要的朋友可以參考一下2013-04-04
SQL Server 數(shù)據(jù)庫每天自動(dòng)備份作業(yè)操作圖文詳解
這篇文章主要介紹了SQL Server 數(shù)據(jù)庫每天自動(dòng)備份的設(shè)置方法,然后可以通過rsync定時(shí)同步到別的服務(wù)器上,通過bak還原數(shù)據(jù)庫也可以達(dá)到每天備份的目的2024-04-04
每個(gè)分類取最新的幾條的SQL實(shí)現(xiàn)代碼
每個(gè)分類取最新的幾條的SQL實(shí)現(xiàn)代碼,需要的朋友可以參考下2012-08-08
SQL Server連接中三個(gè)常見的錯(cuò)誤分析
SQL Server連接中三個(gè)常見的錯(cuò)誤分析...2007-03-03
SQL Server"錯(cuò)誤 21002: [SQL-DMO]用戶 * 已經(jīng)存在問題解決
在分配數(shù)據(jù)庫登錄用戶的數(shù)據(jù)庫訪問權(quán)限的時(shí)候出現(xiàn)這種錯(cuò)誤,如果選中某一個(gè)數(shù)據(jù)庫的任何一個(gè)角色就會(huì)出現(xiàn)這個(gè)錯(cuò)誤2009-04-04

