iT邦幫忙

0

SQL SERVER DB邏輯名稱 重複問題

  • 分享至 

  • xImage

如下圖:
https://ithelp.ithome.com.tw/upload/images/20230530/20104095HnTZaXxtS3.png

若有有A,B,C 三個DB
因為都是由A COPY 過來

資料庫  邏輯名稱         實體名稱
A      XXT_Data        E:\MSSQL\DATA\XX_TEST.mdf
A      XXT_Data_Log    E:\MSSQL\DATA\XX_TEST.ldf
B      XXT_Data        E:\MSSQL\DATA\YY_TEST.mdf
B      XXT_Data_Log    E:\MSSQL\DATA\YY_TEST.ldf
C      XXT_Data        E:\MSSQL\DATA\ZZ_TEST.mdf
C      XXT_Data_Log    E:\MSSQL\DATA\ZZ_TEST.ldf

這樣,邏輯名稱都相同,是否會有影響
可以直接改掉嗎?

2.若我用
DBCC SHRINKFILE (應該是邏輯名稱, 100);
我切換到 C 資料庫
DBCC SHRINKFILE (XXT_Data_Log, 100);
這樣應該不會影響到 A 及B 吧

ALTER DATABASE C
SET RECOVERY SIMPLE;
GO
-- Shrink the truncated log file to 1 MB.
DBCC SHRINKFILE (XXT_Data_log, 100);
GO
-- Reset the database recovery model.
ALTER DATABASE C
SET RECOVERY FULL;
GO

謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
pilipala
iT邦研究生 5 級 ‧ 2023-05-30 19:57:36
最佳解答

邏輯名稱雖然可以一樣,但實務上都會讓它唯一才是

DBCC SHRINKFILE (邏輯名稱, 100),會根據所在 DB 去壓縮該 DB 的檔案,EX

USE A
DBCC SHRINKFILE(邏輯名稱) => 這個是壓縮 A DB 內的邏輯名稱檔案

USE B
DBCC SHRINKFILE(邏輯名稱) => 這個是壓縮 B DB 內的邏輯名稱檔案

官方文章 - DBCC SHRINKFILE 內的範例,一開頭都會 USE DBName 就是要確認要壓縮哪一個 DB 內的邏輯名稱

我要發表回答

立即登入回答