CertSrvBackupTruncateLogs 函数 (certbcli.h)

CertSrvBackupTruncateLogs 函数消除了冗余记录并减少了日志文件使用的磁盘存储空间。 截断日志文件之前,请确保已保护 CertSrvBackupGetDatabaseNamesCertSrvBackupGetBackupLogs 返回的所有文件的备份。

语法

HRESULT CERTBCLI_API CertSrvBackupTruncateLogs(
  [in] HCSBC hbc
);

参数

[in] hbc

证书服务备份上下文的句柄。

返回值

返回值为 HRESULT。 值为 S_OK 表示成功。

注解

保护数据库和日志文件的备份后,可以选择截断日志文件。 日志文件量随数据库活动而增加,截断日志文件将减少日志文件中的冗余记录 (从而减少用于) 存储日志文件的磁盘空间。

提供日志文件是为了提高数据库的完整性和效率。 如果证书服务应用程序出现不正常退出,则下次启动证书服务时,数据库将重播日志文件,以防止将数据损坏引入数据库。

根据日志文件的量,日志文件重播可能是一个耗时的过程。 在此重播期间, 证书颁发机构 将不可用于其他活动。 请注意,如果证书服务应用程序 (正确停止,例如通过停止服务或) 正确关闭操作系统,则下次启动时不会重播日志文件。

注意 如果调用 CertSrvBackupTruncateLogs 而不备份从 CertSrvBackupGetDatabaseNamesCertSrvBackupGetBackupLogs 返回的所有文件,则将无法成功还原备份集,从而导致证书服务计算机不可用。 因此,仅当备份集包含从 CertSrvBackupGetDatabaseNames 和 CertSrvBackupGetBackupLogs 返回的所有文件时,才调用 CertSrvBackupTruncateLogs
 

示例

FNCERTSRVBACKUPTRUNCATELOGS* pfnTruncateLogs;
char * szTruncateLogsFunc = "CertSrvBackupTruncateLogs";

HRESULT    hr=0;

// Get the address for the desired function.
// hInst was set by calling LoadLibrary for Certadm.dll.
pfnTruncateLogs = (FNCERTSRVBACKUPTRUNCATELOGS*)GetProcAddress( hInst,
                                           szTruncateLogsFunc );
if ( NULL == pfnTruncateLogs )
{
    printf("Failed GetProcAddress - %s, error=%d\n",
           szTruncateLogsFunc,
           GetLastError() );
    exit(1); // Or other appropriate error action.
}

// After they have been backed up, truncate the logs.
// hCSBC is a previously set HCSBC variable.
hr = pfnTruncateLogs(hCSBC);
if (FAILED(hr))
{
    printf("Failed pfnTruncateLogs call [%x]\n", hr);
    exit(1); // Or other appropriate error action.
}
else
    printf("Logs truncated\n");

要求

要求
最低受支持的客户端 无受支持的版本
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 certbcli.h (包括 Certsrv.h)
Library Certadm.lib
DLL Certadm.dll

另请参阅

CertSrvBackupGetBackupLogs

使用证书服务备份和还原功能