BackupClusterDatabase 函数 (clusapi.h)
[此函数可用于“要求”部分中指定的操作系统。 Windows Server 2008 中删除了对此函数的支持,此函数不执行任何操作并返回 ERROR_CALL_NOT_IMPLEMENTED。]
语法
DWORD BackupClusterDatabase(
[in] HCLUSTER hCluster,
[in] LPCWSTR lpszPathName
);
参数
[in] hCluster
要备份的群集的句柄。
[in] lpszPathName
以 Null 结尾的 Unicode 字符串,指定创建备份的路径。 群集配置信息将保存到此位置;这是应保护的敏感数据。 例如,可以使用访问控制列表来保护此数据,以限制对存储数据的位置的访问。
返回值
如果函数成功,则返回 ERROR_SUCCESS。
如果函数失败,它将返回 系统错误代码之一。
注解
理想情况下,指定的路径应该是对所有群集 节点可见的路径,例如 UNC 路径。 至少,路径必须对当前拥有 仲裁资源的节点可见。 不要在路径中包含文件名,否则函数将失败,返回 ERROR_DIRECTORY。 路径可以包含尾随反斜杠。
确保存在适当路径的一种方法是创建临时网络共享,如下所示:
- 调用函数 NetShareAdd 以创建临时网络共享。 所有群集节点都必须对此共享具有写入访问权限。
- 调用 BackupClusterDatabase,在 lpszPathName 参数中指定临时共享。
- 将备份文件 (如下) 复制到一个或多个安全存储位置。
- 调用函数 NetShareDel 以删除共享。
Path\File | 说明 |
---|---|
lpszPathName\chk????.Tmp | 快照文件。 |
lpszPathName\quolog.log | 仲裁日志文件。 |
resource>\*<的 lpszPathName\GUID。Cpt | GUID 标识的资源的注册表检查点文件。 |
resource>\*<的 lpszPathName\GUID。Cpr | GUID 标识的资源的加密检查点文件。 |
lpszPathName\Clusbackup.dat | 备份完成标记文件 (只读、隐藏的 0 字节文件) |
使用同一 lpszPath 参数的后续 BackupClusterDatabase 操作将覆盖现有备份文件。
如果可能,在不同的介质上创建备份目录的多个副本,并将这些副本存储在不同的位置。
示例
以下示例演示静态备份例程。 有关包含 RestoreClusterDatabase 的更完整示例,请参阅 备份和还原群集配置。 此示例使用故障转移群集文档中定义的 ClusDocEx.h 头文件。
int main( void )
{
HCLUSTER hCluster = NULL;
WCHAR szClusterName[] = L"CLUSTER_NAME";
WCHAR szPath[] = L"\\\\ClusBack\\19991215";
DWORD dwResult = ERROR_SUCCESS;
if( ( hCluster = OpenCluster( szClusterName ) ) != NULL )
{
dwResult = BackupClusterDatabase( hCluster, szPath );
CloseCluster( hCluster );
}
else
dwResult = GetLastError();
if( dwResult == ERROR_SUCCESS )
{
wprintf( L"\nDone. The cluster database has been backed up to %s. ", szPath );
wprintf( L"The backup consists of the following files:\n chk????.tmp\n"
L" quolog.log\n *.cpt\n *.cpr\n\n" );
return 0;
}
else
{
wprintf( L"The operation failed (%d)\n", dwResult );
return 1;
}
}
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 无受支持的版本 |
最低受支持的服务器 | Windows Server 2003 企业版、Windows Server 2003 Datacenter |
目标平台 | Windows |
标头 | clusapi.h |
Library | ClusAPI.lib |
DLL | ClusAPI.dll |