新增和平衡資料檔案 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

新增和平衡資料檔案

EnterpriseOne 提供的 SQL Server 資料庫通常可以從其他檔案中受益。其他檔案可讓儲存核心與處理器核心達到最佳平衡。平衡檔案是一個多步驟程序。其中許多步驟都需要對資料庫物件的獨佔存取權,因此必須讓 EnterpriseOne 和存取資料庫的其他系統離線。

完成檔案大小計算

若要查找資料庫檔案的適當大小,請先使用下列查詢來檢查目前 ROW 資料的大小。

USE JDE_PRIST920 SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

然後完成以下計算並填寫您的值欄位:

折線圖 名稱 範例 您的值 描述
1 目前的資料列大小 1 TB 上一個查詢的結果。
2 規劃的增長 20% 未來幾個月的預期增長,包括安全邊際。
3 所需尺寸 1.2 TB 第 1 行乘以第 2 行。
4 檔案數目 8 目標檔案數目。
5 每個檔案大小 150 GB 第 3 行除以第 4 行。
6 自動增長百分比 10% 自動增長的大小。對於最小的分段,10% 是一個很好的目標。
7 自動增長大小 15 GB 第 5 行乘以第 6 行。

建立新檔案

使用下列指令碼做為範本,將檔案新增至資料庫。修改下列參數:

  • JDE-PRIST920 變更為要向其中新增檔案的資料庫名稱。

  • 對於 NAME,請指定要新增之每個檔案的邏輯名稱。

  • 對於 FILENAME,請指定要新增之每個檔案的實體名稱。

  • 對於 FILEGROWTH,請使用上一個表格第 7 列計算出的值。

  • 對於 SIZE,指定上一個表格第 5 列中的值。

USE master; GO ALTER DATABASE JDE_PRIST920 MODIFY FILE (NAME = JDE_PRIST920_Data, FILEGROWTH = 15GB); GO ALTER DATABASE JDE_PRIST920 ADD FILE (NAME = JDE_PRIST920_Data2, FILENAME = 'M:\DATA\PRIST920_Data2.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data3, FILENAME = 'M:\DATA\PRIST920_Data3.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data4, FILENAME = 'M:\DATA\PRIST920_Data4.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data5, FILENAME = 'M:\DATA\PRIST920_Data5.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data6, FILENAME = 'M:\DATA\PRIST920_Data6.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data7, FILENAME = 'M:\DATA\PRIST920_Data7.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_Data8, FILENAME = 'M:\DATA\PRIST920_Data8.ndf', SIZE=150GB, FILEGROWTH = 15GB), (NAME = JDE_PRIST920_TEMP, FILENAME = 'M:\DATA\PRIST920_TEMP.ndf', SIZE=150GB, FILEGROWTH = 15GB) GO

暫時清空 MDF 檔案

建立檔案後,請針對每個檔案執行下列命令,將資料從 MDF 檔案遷移至 NDF 檔案。調整檔案名稱以反映資料庫中的檔案名稱。

USE JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, EMPTYFILE)

EMPTYFILE 命令會產生錯誤,因為某些內容無法移動到 NDF 檔案。可以忽略此錯誤訊息。

清空 MDF 檔案時出現錯誤訊息

調整 MDF 檔案的大小

若要將 MDF 檔案大小縮減為目標大小,請執行以下命令。調整檔案大小以反映表格中第 5 列計算的值。

JDE_PRIST920 DBCC SHRINKFILE (JDE_PRIST920_Data, 150000);

有時,由於放置了無法移至 NDF 檔案的內容,SHRINKFILE 命令會失敗。在這種情況下,可能需要執行 DBCC DBREINDEX 命令,重新執行該程序來清空檔案,然後再次嘗試 SHRINKFILE 操作。

清除

已建立目標檔案並且正確調整 MDF 檔案大小後,請使用以下命令將資料從 TEMP 檔案遷回 MDF 檔案。調整檔案名稱以反映資料庫中的檔案名稱。

DBCC SHRINKFILE (JDE_PRIST920_TEMP, EMPTYFILE)

若檔案為空,請使用以下命令來移除它:

ALTER DATABASE JDE_PRIST920; REMOVE FILE JDE_PRIST920_TEMP;

驗證結果

若要在平衡後檢查資料庫的當前磁碟空間使用率,請執行以下指令碼。

USE JDE_PRIST920 SELECT DB_NAME() AS DbName, type_desc, CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'; SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS TotalSpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

輸出格式應類似以下內容。檔案很少會完全平衡,因為某些內容只能存在於 MDF 檔案中。

平衡後驗證磁碟空間使用率