CertSrvBackupTruncateLogs 函式 (certbcli.h)
CertSrvBackupTruncateLogs 函式會消除備援記錄,並減少記錄檔所使用的磁碟空間。 截斷記錄檔之前,請確定 已保護 CertSrvBackupGetDatabaseNames 和 CertSrvBackupGetBackupLogs 所傳回的所有檔案備份。
語法
HRESULT CERTBCLI_API CertSrvBackupTruncateLogs(
[in] HCSBC hbc
);
參數
[in] hbc
憑證服務備份內容的句柄。
傳回值
傳回值為 HRESULT。 值S_OK表示成功。
備註
保護資料庫和記錄檔的備份之後,可以選擇性地截斷記錄檔。 記錄檔磁碟區會隨著資料庫活動而增加,並截斷記錄檔會減少記錄檔中的備援記錄 (藉此減少用來儲存記錄檔的磁碟空間) 。
記錄檔是針對資料庫完整性和效率而提供。 如果憑證服務應用程序發生小於正常結束,下次啟動憑證服務時,資料庫會重新執行記錄檔,以防止數據損毀進入資料庫。
根據記錄檔的磁碟區,記錄檔重新執行可能是耗時的程式。 在此重新執行期間, 證書頒發機構單位 將無法用於其他活動。 請注意,如果憑證服務應用程式已正確停止 (,例如停止服務或關閉操作系統正確) ,下次啟動時不會重新執行記錄檔。
注意 如果您呼叫 CertSrvBackupTruncateLogs 而不備份 從 CertSrvBackupGetDatabaseNames 和 CertSrvBackupGetBackupLogs 傳回的所有檔案,您將無法成功還原備份集,導致憑證服務計算機無法使用。 因此,只有在備份集包含從 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) |
程式庫 | Certadm.lib |
Dll | Certadm.dll |