Функция BackupClusterDatabase (clusapi.h)
[Эта функция доступна для использования в операционных системах, указанных в разделе Требования. Поддержка этой функции была удалена в Windows Server 2008, и эта функция ничего не делает и возвращает ERROR_CALL_NOT_IMPLEMENTED.]
Создает резервную копию базы данных кластера и всех контрольных точек реестра.
Синтаксис
DWORD BackupClusterDatabase(
[in] HCLUSTER hCluster,
[in] LPCWSTR lpszPathName
);
Параметры
[in] hCluster
Дескриптор в кластер для резервного копирования.
[in] lpszPathName
Строка Юникода со значением NULL, указывающая путь к месту создания резервной копии. Сведения о конфигурации кластера будут сохранены в этом расположении; это конфиденциальные данные, которые должны быть защищены. Например, эти данные можно защитить с помощью списка управления доступом, чтобы ограничить доступ к расположению, где хранятся данные.
Возвращаемое значение
Если функция выполняется успешно, она возвращает ERROR_SUCCESS.
Если функция завершается сбоем, она возвращает один из кодов системных ошибок.
Комментарии
В идеале указанный путь должен быть видимым для всех узлов кластера, например UNC-путь. Как минимум, путь должен быть видимым для узла, которому в данный момент принадлежит ресурс кворума. Не включайте имя файла в путь, иначе функция завершится ошибкой, возвращая ERROR_DIRECTORY. Путь может содержать обратную косую черту в конце.
Один из способов убедиться в наличии соответствующего пути — создать временную сетевую папку, как показано ниже.
- Вызовите функцию NetShareAdd , чтобы создать временную сетевую папку. Все узлы кластера должны иметь доступ на запись к этой общей папке.
- Вызовите BackupClusterDatabase, указав временную общую папку в параметре lpszPathName .
- Скопируйте файлы резервных копий (см. ниже) в одно или несколько безопасных хранилищ.
- Вызовите функцию NetShareDel , чтобы удалить общую папку.
Путь\Файл | Описание |
---|---|
lpszPathName\chk????. Tmp | Файлы моментальных снимков. |
lpszPathName\quolog.log | Файл журнала кворума. |
lpszPathName\<GUID ресурса>\*. CPT | Файлы контрольных точек реестра для ресурса, определяемого с помощью GUID. |
lpszPathName\<GUID ресурса>\*. CPR | Файлы контрольных точек шифрования для ресурса, определяемого с помощью GUID. |
lpszPathName\Clusbackup.dat | Файл маркера завершения резервной копии (только для чтения, скрытый, 0-байтовый файл) |
Последующие операции BackupClusterDatabase , использующие тот же параметр lpszPath , перезаписывают существующие файлы резервных копий.
По возможности создайте несколько копий каталога резервного копирования на разных носителях и сохраните эти копии в разных расположениях.
Примеры
В следующем примере показана статическая процедура резервного копирования. Более полный пример включения 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 |
Header | clusapi.h |
Библиотека | ClusAPI.lib |
DLL | ClusAPI.dll |