首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 邏輯檔案名稱查詢、修改與資料庫檔案移動完整指南

     編輯:關於SqlServer

邏輯檔案名稱是 SQL Server 內部識別資料檔與記錄檔的名稱,與實體檔名、資料庫名稱皆可能不同。本文提供完整 T-SQL 腳本,涵蓋查詢邏輯名稱、修改邏輯名稱、離線移動資料/記錄檔至新路徑三大實務操作,並說明關鍵步驟與注意事項。

1. 查詢目前邏輯檔案名稱

USE mydb;
GO

-- 方法一:FILE_NAME 函數(檔案 ID 1 通常為資料檔,2 為記錄檔)
SELECT FILE_NAME(1) AS 'Data File', FILE_NAME(2) AS 'Log File';

-- 方法二:系統目錄檢視
SELECT name, type_desc, physical_name
FROM sys.database_files;

輸出範例:mydb / mydb_log

2. 修改邏輯檔案名稱

ALTER DATABASE [mydb]
MODIFY FILE (NAME = mydb, NEWNAME = new_mydb);

ALTER DATABASE [mydb]
MODIFY FILE (NAME = mydb_log, NEWNAME = new_mydb_log);
GO

-- 驗證
SELECT FILE_NAME(1) AS 'Data File', FILE_NAME(2) AS 'Log File';

輸出變更為:new_mydb / new_mydb_log

3. 移動資料庫檔案至新路徑(離線模式)

適用情境:磁碟空間不足、效能優化(分離資料/記錄檔至不同磁碟)、儲存架構調整。

步驟概覽

  1. 查詢目前實體路徑
  2. 切換至 master、殺掉所有連線、設定 OFFLINE
  3. 實體移動檔案(建議 COPY 後再刪除來源)
  4. 修改系統目錄中檔案路徑
  5. 設定 ONLINE、驗證新路徑

完整執行腳本

-- 3.1 查詢目前路徑
SELECT physical_name FROM sys.database_files;
/*
D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mydb.mdf
D:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\mydb_log.ldf
*/

-- 3.2 移動路徑
USE [master];
GO

-- 3.2.1 殺掉所有連線
DECLARE @str VARCHAR(500) = '';
SELECT @str = @str + 'KILL ' + RTRIM(spid) + ';' + CHAR(13) + CHAR(10)
FROM master.dbo.sysprocesses
WHERE dbid = DB_ID('mydb');
EXEC(@str);
GO

-- 3.2.2 設定離線
ALTER DATABASE [mydb] SET OFFLINE;
GO

-- 3.2.3 實體移動檔案(建議用 COPY 驗證後再 DEL 來源)
EXEC master..xp_cmdshell 'MOVE "D:\...\mydb.mdf" "E:\DBTEST"', NO_OUTPUT;
EXEC master..xp_cmdshell 'MOVE "D:\...\mydb_log.LDF" "E:\DBTEST"', NO_OUTPUT;
GO

-- 3.2.4 更新系統目錄路徑
ALTER DATABASE [mydb] MODIFY FILE (NAME = new_mydb, FILENAME = 'E:\DBTEST\mydb.mdf');
ALTER DATABASE [mydb] MODIFY FILE (NAME = new_mydb_log, FILENAME = 'E:\DBTEST\mydb_log.ldf');
GO

-- 3.2.5 設定線上
ALTER DATABASE [mydb] SET ONLINE;
GO

-- 3.2.6 驗證新路徑
USE mydb;
GO
SELECT physical_name FROM sys.database_files;
/*
E:\DBTEST\mydb.mdf
E:\DBTEST\mydb_log.ldf
*/

關鍵提醒

  • xp_cmdshell 需啟用:EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;(用畢建議關閉)。
  • 檔案移動建議 COPY + 驗證 + DEL,避免移動失敗導致資料遺失。
  • 邏輯名稱修改與路徑變更可合併在單一 ALTER DATABASE 陳述式中,減少 OFFLINE 時間。
  • AlwaysOn/叢集環境需在所有節點執行對應操作,並透過叢集管理員移動共享磁碟資源。

掌握邏輯檔案名稱管理與檔案重新定位技巧,能靈活應對儲存擴充、效能調校與災難復原遷移需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved