維護計畫可用於排程用於確保資料庫正常執行的工作,例如維持較小的資料庫和處理程序記錄檔大小以及檢查資料庫是否有不一致。
Autodesk 建議每週至少在非辦公時間執行一次維護計畫。
在連接的工作群組環境中,應在每個 SQL 伺服器上規劃維護計畫。
管理員的其中一部分工作是定期檢查維護計畫是否成功執行。
如果已對舊版 Vault 伺服器規劃維護計畫,請務必按照本文檢查並更新維護計畫。
以下步驟在所有與 Vault 伺服器配合使用的 SQL 版本 (速成版和完整版 SQL) 中通用。受支援的資料庫引擎的完整清單包含在產品的讀我檔案中。
注意事項:對於 SQL 2016 或更高版本,資料檔案將預設為 8 或設置所偵測到的邏輯核心數目 (取其中較低的值)。此值可根據特定工作量增加。次要資料檔案的檔名將遵循 tempdb_mssql_#.ndf 命名慣例,其中 # 代表每個額外檔案的檔案序數。
維護方案可用於排程用於確保資料庫正常執行的工作,例如維持較小的資料庫和事務處理記錄檔大小以及檢查資料庫是否存在不一致。
SQL Standard/Enterprise 2012
或者,使用表格形式:
邏輯名稱 |
大小 - MB |
自動成長 |
---|---|---|
KnowledgeVaultMaster |
|
以 10 MB 為單位成長,成長總量不受限制 |
KnowledgeVaultMaster_log |
|
以 10 個百分比為單位成長,成長總量不受限制 |
<Vault> |
|
以 100 MB 為單位成長,成長總量不受限制 |
<Vault>_log |
500 |
以 10 個百分比為單位成長,成長總量不受限制 |
<自訂資源庫> |
|
以 25 MB 為單位成長,成長總量不受限制 |
<自訂資源庫>_log |
|
以 10 個百分比為單位成長,成長總量不受限制 |
<標準資源庫> |
|
以 25 MB 為單位成長,成長總量不受限制 |
<標準資源庫>_log |
|
以 10 個百分比為單位成長,成長總量不受限制 |
Microsoft SQL Express 不允許您在 SQL Server Management Studio Express 內部建立維護計畫。
請確保執行 SQL 維護方案的作業系統 (Windows) 使用者,具有 SQL 中的 sysadmin 角色。
透過命令提示字元修改 tempdb
如上所述,如果未安裝 SQL Server Management Studio,可執行以下步驟,透過命令提示字元完成 tempdb 資料庫的變更:
SQLCMD -E -S".\AutodeskVault" -Q "ALTER DATABASE [tempdb] SET COMPATIBILITY_LEVEL = 110"
SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev', SIZE = 1024MB, FILEGROWTH = 100MB)"
SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', SIZE = 1024MB )"
注意事項:對於 SQL 2016 或更高版本,資料檔案將預設為 8 或設置所偵測到的邏輯核心數目 (取其中較低的值)。此值可根據特定工作量增加。次要資料檔案的檔名將遵循 tempdb_mssql_#.ndf 命名慣例,其中 # 代表每個額外檔案的檔案序數。
SQLCMD -E -S ".\AutodeskVault" -Q " ALTER DATABASE [tempdb] ADD FILE ( NAME = N'tempdev_2', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.AUTODESKVAULT\MSSQL\DATA\tempdev_2.ndf', SIZE = 1024MB, FILEGROWTH = 100MB)"
SQLCMD -E -S ".\AutodeskVault" -Q "ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', SIZE = 2048MB )"
維護計畫
複製下面的腳本,然後將其貼至新檔案並儲存成 VaultMaintenance.bat。
以下範例說明了如何針對名為 Vault 的資料庫執行 C:\ 根目錄下的批次檔案,並將結果輸出至文字檔。
C:\VaultMaintenance.bat Vault > results.txt
REM This begins the maintenance plan. @echo off if "%1"=="" goto NOPARAM set VAULTNAME=[%1] set VAULTLOG=[%1_log] @echo Setting %VAULTNAME% database compatibility to 110 sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET COMPATIBILITY_LEVEL = 110" @echo Setting %VAULTNAME% database recovery model to simple... sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET RECOVERY SIMPLE" @echo Setting %VAULTNAME% database Autogrowth value... sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% MODIFY FILE (NAME=%VAULTNAME%, FILEGROWTH=100MB)" @echo Setting %VAULTNAME% database Log filesize... sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% MODIFY FILE ( NAME = %VAULTLOG%, SIZE = 512000KB )" @echo Setting %VAULTNAME% database Autoclose to false... sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET AUTO_CLOSE OFF WITH NO_WAIT" @echo Reindexing %VAULTNAME% database... sqlcmd -E -S ".\AutodeskVault" -Q "USE %VAULTNAME% DECLARE tableCursor CURSOR FOR SELECT NAME FROM sysobjects WHERE xtype in('U') DECLARE @tableName nvarchar(128) OPEN tableCursor FETCH NEXT FROM tableCursor INTO @tableName WHILE @@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX(@tableName, '') FETCH NEXT FROM tableCursor INTO @tableName END CLOSE tableCursor DEALLOCATE tableCursor" @echo Updating Statistics on %VAULTNAME% database... sqlcmd -E -S ".\AutodeskVault" -Q "USE %VAULTNAME% Exec sp_MSForEachTable 'Update Statistics ? WITH FULLSCAN'" goto EXIT :NOPARAM echo [FAIL] Please indicate Vault database pause :EXIT REM This ends the maintenance plan.