維護計畫可用於排程用於確保資料庫正常執行的工作,例如維持較小的資料庫和處理程序記錄檔大小以及檢查資料庫是否有不一致。Autodesk 建議每週至少在非辦公時間執行一次維護計畫。
在連接的工作群組環境中,應在每個 SQL 伺服器上規劃維護計畫。
管理員的其中一部分工作是定期檢查維護計畫是否成功執行。
如果已對舊版 Vault 伺服器規劃維護計畫,請務必按照本文檢查並更新維護計畫。
以下步驟在所有與 Vault 伺服器配合使用的 SQL 版本 (速成版和完整版 SQL) 中通用。受支援的資料庫引擎的完整清單包含在產品的讀我檔案中。
維護計劃可用於排程用於確保資料庫正常執行的工作,例如維持較小的資料庫和事務處理記錄檔大小以及檢查資料庫是否存在不一致。
SQL Standard/Enterprise 2008 和 2008 R2
或者,使用表格形式:
邏輯名稱 |
初始大小 (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 2005,SQL 2008 進行了安全性模型變更。同時,也將需要確保執行 SQL 維護計畫的作業系統 (Windows) 使用者具有 SQL 中的系統管理員 (sysadmin) 角色。
透過命令提示字元修改 tempdb
如上所述,如果未安裝 SQL Server Management Studio,可執行以下步驟,透過命令提示字元完成 tempdb 資料庫的變更:
SQLCMD -E -S".\AutodeskVault" -Q "ALTER DATABASE [tempdb] SET COMPATIBILITY_LEVEL = 100"
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 )"
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 100 sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET COMPATIBILITY_LEVEL = 100" @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.