维护计划可用于安排确保数据库正常执行所需的任务,例如保持较小的数据库和事务日志文件,以及检查数据库是否存在不一致。
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.