维护计划可用于安排确保数据库正常执行所需的任务,例如保持较小的数据库和事务日志文件,以及检查数据库是否存在不一致。
Autodesk 建议在非办公时间每周至少运行一次维护计划。
在联网的工作组环境中,应该在每个 SQL Server 上配置维护计划。
管理员的部分任务应包括定期检查是否成功运行了维护计划。
如果为早期版本的 Vault 服务器配置了维护计划,请确保按照本文您检查并更新计划。
以下步骤在所有与 Vault 服务器配合使用的 SQL 版本(Express 和完整版 SQL)中通用。受支持的数据库引擎的完整列表位于产品自述文件中。
注意:如果使用 SQL 2016 或更高版本,则默认情况下,数据文件的值将小于 8 或为设置过程中检测到的逻辑内核数。可根据需要为特定工作负载增加该值。第二级数据文件的文件名将遵循 tempdb_mssql_#.ndf 命名约定,其中 # 表示每个附加文件的文件序数。
维护计划可用于安排确保数据库正常执行所需的任务,例如保持较小的数据库和事务日志文件,以及检查数据库是否存在不一致。
SQL Standard/Enterprise
或者,在表格中:
逻辑名称 |
大小 (MB) |
自动增长 |
---|---|---|
KnowledgeVaultMaster |
|
按 10 MB,不限制增长 |
KnowledgeVaultMaster_log |
|
按 10%,不限制增长 |
<Vault> |
|
按 100 MB,不限制增长 |
<Vault>_log |
500 |
按 10%,不限制增长 |
<Custom_Library> |
|
按 25 MB,不限制增长 |
<Custom_Library>_log |
|
按 10%,不限制增长 |
<Standard_Library> |
|
按 25 MB,不限制增长 |
<Standard_Library>_log |
|
按 10%,不限制增长 |
灰色单元指示默认值,如果使用其他值,应按上述方式进行设置的。
Microsoft SQL Express 不允许您在 SQL Server Management Studio Express 内创建维护计划。
确保运行 SQL 维护计划的操作系统 (Windows) 用户在 SQL 内部拥有系统管理员角色。
通过命令提示修改 Tempdb
如此部分中先前所述,如果未安装 SQL Server Management Studio,可以通过命令提示执行以下操作来完成 tempdb 数据库更改:
SQLCMD -E -S".\AutodeskVault" -Q "ALTER DATABASE [tempdb] SET COMPATIBILITY_LEVEL = 130"
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\MSSQL15.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 130 sqlcmd -E -S ".\AutodeskVault" -Q "ALTER DATABASE %VAULTNAME% SET COMPATIBILITY_LEVEL = 130" @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.