指定したバックアップ・アーカイブ・ファイルからデータベースを復元します。
構文
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); }
関連トピック