CertSrvBackupTruncateLogs 函式 (certbcli.h)

CertSrvBackupTruncateLogs 函式會消除備援記錄,並減少記錄檔所使用的磁碟空間。 截斷記錄檔之前,請確定 已保護 CertSrvBackupGetDatabaseNamesCertSrvBackupGetBackupLogs 所傳回的所有檔案備份。

語法

HRESULT CERTBCLI_API CertSrvBackupTruncateLogs(
  [in] HCSBC hbc
);

參數

[in] hbc

憑證服務備份內容的句柄。

傳回值

傳回值為 HRESULT。 值S_OK表示成功。

備註

保護資料庫和記錄檔的備份之後,可以選擇性地截斷記錄檔。 記錄檔磁碟區會隨著資料庫活動而增加,並截斷記錄檔會減少記錄檔中的備援記錄 (藉此減少用來儲存記錄檔的磁碟空間) 。

記錄檔是針對資料庫完整性和效率而提供。 如果憑證服務應用程序發生小於正常結束,下次啟動憑證服務時,資料庫會重新執行記錄檔,以防止數據損毀進入資料庫。

根據記錄檔的磁碟區,記錄檔重新執行可能是耗時的程式。 在此重新執行期間, 證書頒發機構單位 將無法用於其他活動。 請注意,如果憑證服務應用程式已正確停止 (,例如停止服務或關閉操作系統正確) ,下次啟動時不會重新執行記錄檔。

注意 如果您呼叫 CertSrvBackupTruncateLogs 而不備份 從 CertSrvBackupGetDatabaseNamesCertSrvBackupGetBackupLogs 傳回的所有檔案,您將無法成功還原備份集,導致憑證服務計算機無法使用。 因此,只有在備份集包含從 CertSrvBackupGetDatabaseNamesCertSrvBackupGetBackupLogs 傳回的所有檔案時,才呼叫 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)
程式庫 Certadm.lib
Dll Certadm.dll

另請參閱

CertSrvBackupGetBackupLogs

使用憑證服務備份和還原函式