指定したバックアップ・アーカイブ・ファイルからデータベースを復元します。
構文
ESS_FUNC_M EssRestoreDatabase (hCtx, AppName, DbName, BackupFileName, bForceDiffName, Count, ReplaceVol);
| パラメータ | データ型 | 説明 | ||
|---|---|---|---|---|
hCtx |
ESS_HCTX_T |
ログイン・コンテキスト。 |
||
AppName |
ESS_STR_T |
アプリケーション名。
|
||
DbName |
ESS_STR_T |
データベース名。 |
||
BackupFileName |
ESS_STR_T |
アーカイブ・データの読込み元となるバックアップ・ファイルのフル・パス。次の例のようにフル・パスを指定します:
c:\hyperion\Test.arc
|
||
bForceDiffName |
ESS_BOOL_T |
復元には別のアプリケーション名とデータベース名を使用します。
|
||
Count |
ESS_USHORT_T |
オプション。 復元するディスク・ボリューム置換構造体の数。 |
||
ReplaceVol |
ESS_PDISKVOLUME_REPLACE_T |
オプション。 ディスク・ボリューム置換入力構造体。 |
戻り値
戻り値:
0 - 正常終了の場合
エラー番号 - 失敗した場合
アクセス
呼出し元は、データベースへの管理者アクセス権を持っている必要があります。
例
void RestoreDB()
{
ESS_FUNC_M sts = ESS_STS_NOERR;
ESS_STR_T AppName = "Backup";
ESS_STR_T DbName = "Basic";
ESS_STR_T BackupFileName =
"F:\\testArea\\ArchiveAndRestore\\TempBackup.arc";
ESS_STR_T optionsFileName = "";
ESS_BOOL_T bOverWrite;
ESS_BOOL_T bForceDiffName;
ESS_USHORT_T count;
ESS_PDISKVOLUME_REPLACE_T replaceVol;
printf("\nArchive DB:\n");
bOverWrite = ESS_TRUE;
sts = EssArchiveDatabase(hCtx, AppName, DbName,
BackupFileName, optionsFileName,
bOverWrite)
printf("EssArchiveDatabase sts: %ld\r\n",sts);
sts = EssUnloadApplication(hCtx, AppName);
printf("\nEssUnloadApplication sts: %ld\r\n",sts);
printf("\nCase with no volume replacement:\n");
bForceDiffName = ESS_FALSE;
count = 0;
replaceVol = ESS_NULL;
sts =
EssRestoreDatabase (hCtx, AppName, DbName,
BackupFileName, bForceDiffName,
count, replaceVol);
printf("EssRestoreDatabase sts: %ld\r\n",sts);
printf("\nCase with a replacement volume (index and page files to a different volume):\n");
bForceDiffName = ESS_FALSE;
count = 1;
if (count)
{
sts = EssAlloc(hInst, count * sizeof(ESS_DISKVOLUME_REPLACE_T),
(ESS_PPVOID_T)&replaceVol);
memset(replaceVol, 0, count * sizeof(ESS_DISKVOLUME_REPLACE_T));
}
strcpy(replaceVol->szPartition_Src, "C");
strcpy(replaceVol->szPartition_Dest, "F");
sts = EssUnloadApplication(hCtx, AppName);
printf("\nEssUnloadApplication sts: %ld\r\n",sts);
sts =
EssRestoreDatabase (hCtx, AppName, DbName,
BackupFileName, bForceDiffName,
count, replaceVol);
printf("EssRestoreDatabase sts: %ld\r\n",sts);
if (replaceVol)
EssFree(hInst, replaceVol);
}
関連トピック