Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: Windows | Windows Server
Fungsi JetExternalRestore
Fungsi JetExternalRestore memulihkan cadangan eksternal yang diambil dengan API cadangan eksternal dan menentukan rentang nomor file log untuk diputar ulang selama proses pemulihan. Ini dikenal sebagai pemulihan keras, yang mirip dengan tetapi berbeda dari pemulihan lunak seperti yang dilakukan oleh fungsi JetInit .
JET_ERR JET_API JetExternalRestore(
__in JET_PSTR szCheckpointFilePath,
__in JET_PSTR szLogPath,
__in_opt JET_RSTMAP* rgrstmap,
__in long crstfilemap,
__in JET_PSTR szBackupLogPath,
__in long genLow,
__in long genHigh,
__in JET_PFNSTATUS pfn
);
Parameter
szCheckpointFilePath
Jalur untuk file titik pemeriksaan yang akan digunakan selama pemulihan jika szTargetInstanceCheckpointPath tidak ditentukan atau sudah memiliki instans aktif atau berjalan.
szLogPath
Jalur atau direktori untuk log untuk fase akhir (membatalkan) pemulihan, dan mungkin untuk roll forward log. Jalur ini mungkin sama dengan szBackupLogPath.
rgrstmap
Ini adalah array struktur JET_RSTMAP . Ini adalah peta jalur database atau nama file lama dan baru. Ini digunakan karena database mungkin perlu dipulihkan ke lokasi selain lokasi tempat database dicadangkan. Dalam kasus di mana beberapa database dilampirkan ke satu kumpulan pengelogan, peta pemulihan dapat menentukan subset database untuk dipulihkan.
crstfilemap
Jumlah entri dalam parameter array rgrstmap .
szBackupLogPath
Jalur ke direktori tempat file log dipulihkan. Ini adalah log yang dibaca selama urutan cadangan eksternal. Jalur ini mungkin sama dengan szLogPath.
genLow
Nomor file log terendah yang akan diputar ulang dari szBackupLogPath. Keakuratan penuh dari panjang yang tidak ditandatangani harus dipertahankan, tetapi dalam versi mesin saat ini angka ini adalah angka heksadesimal dalam rentang dari 0x00000 hingga 0xFFFFF. Ini dapat berubah dalam versi yang akan datang.
genHigh
Nomor file log tertinggi yang akan diputar ulang dari szBackupLogPath. Keakuratan penuh dari panjang yang tidak ditandatangani harus dipertahankan, tetapi dalam versi mesin saat ini angka ini adalah angka heksadesimal dalam rentang dari 0x00000 hingga 0xFFFFF. Ini dapat berubah dalam versi yang akan datang.
pfn
Panggilan balik status, untuk melaporkan kemajuan pemulihan.
Tampilkan Nilai
Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Kesalahan Mesin Penyimpanan yang Dapat Diperluas dan Parameter Penanganan Kesalahan.
Menampilkan kode |
Deskripsi |
|---|---|
JET_errSuccess |
Operasi berhasil diselesaikan. |
JET_errOutOfMemory |
Operasi gagal karena memori tidak cukup dapat dialokasikan untuk menyelesaikannya. |
JET_errInvalidParameter |
Salah satu parameter yang disediakan berisi nilai yang tidak terduga atau berisi nilai yang tidak masuk akal ketika dikombinasikan dengan nilai parameter lain. Ini dapat terjadi untuk JetExternalRestore, dan sebagainya ketika szTargetCheckpointPath dan szTargetInstanceLogPath tidak ditentukan atau tidak keduanya tidak ditentukan. Artinya, mereka harus cocok, dan ditentukan atau keduanya tidak ditentukan. |
JET_errDatabaseCorrupted |
Ini menunjukkan database rusak, atau file yang tidak dikenali. |
JET_errFileNotFound |
Operasi gagal karena tidak dapat membuka file yang diminta karena tidak dapat ditemukan pada jalur yang ditentukan. |
JET_errInvalidPath |
Operasi gagal karena jalur yang ditentukan tidak dapat ditemukan. |
JET_errRestoreOfNonBackupDatabase |
Kesalahan ini dikembalikan jika file database yang ditentukan selama pemulihan bukan database yang dicadangkan dengan cadangan eksternal. |
JET_errStartingRestoreLogTooHigh |
Kesalahan ini dikembalikan jika salah satu file log di szBackupLogPath, memiliki pembuatan log di bawah yang ditentukan oleh genLow atau pLogInfo.ulGenLow. |
JET_errEndingRestoreLogTooLow |
Kesalahan ini dikembalikan jika satu file log di szBackupLogPath, memiliki pembuatan log di atas yang ditentukan dalam genHigh atau pLogInfo.ulGenHigh. |
JET_errBadRestoreTargetInstance |
szTargetInstanceLogPath yang ditentukan bukan milik instans yang diinisialisasi. Kesalahan ini hanya akan dikembalikan di Windows XP dan yang lebih baru. |
JET_errRunningInOneInstanceMode |
Mesin database tidak dapat menjalankan pemulihan eksternal atau pemulihan keras dalam mode instans tunggal. Kesalahan ini hanya akan dikembalikan di Windows XP dan yang lebih baru. |
Setelah berhasil, semua database dari rgrstmap sepenuhnya pulih dan dalam keadaan bersih atau konsisten. Pada titik ini database dapat dilepaskan kembali ke instans yang ada.
Jika gagal, mesin tidak dapat memulihkan database. Database dalam status tidak valid, dan untuk mencoba kembali pemulihan keras seluruh database harus dipulihkan lagi. Biasanya, sumber situasi seperti itu adalah disk atau kerusakan log, atau beberapa bentuk kesalahan pengelolaan log lainnya, atau kumpulan log yang tidak berkelanjutan.
Keterangan
Untuk memahami cara kerja pemulihan "keras", Anda harus memahami bahwa ada tiga fase pemulihan, dan fase kedua dapat memiliki dua bagian. Pada Fase I, log diperlukan untuk membawa database yang dicadangkan ke konsistensi (atau sekumpulan awal log inkremental dapat digunakan). Pada Fase II, setiap log roll forward tambahan yang tersedia dikonsumsi untuk membuat database konsisten. Ada juga pemutaran ulang log roll forward tambahan. Fase III adalah fase pemulihan urung.
Fase I: Pemutaran ulang kumpulan log yang harus dipulihkan agar database dibawa ke status konsisten (atau set awal file log) dilakukan. Pada dasarnya, ini adalah pemutaran ulang kumpulan file log yang tidak opsional untuk database yang dipulihkan. Jika ada log yang hilang dari rentang log ini, pemulihan akan gagal. Log ini harus dimasukkan ke dalam direktori yang ditentukan dalam parameter szBackupLogPath .
Fase II: Secara opsional, mungkin ada beberapa set file log yang bergulir meneruskan file log yang berasal dari cadangan bertahap atau diferensial dan dari file log instans aktif. Dalam kasus file log dari cadangan inkremental atau diferensial, file log dapat ditempatkan di direktori yang ditentukan dalam parameter szBackupLogPath atau szTargetInstanceLogPath , dengan sebelumnya menjadi direktori yang direkomendasikan. Log yang digunakan untuk fase roll forward (fase II) harus berasal dari seri log yang sama yang dimainkan selama Fase I dan seharusnya terus meningkatkan nomor log tanpa celah dari log Fase I. Untuk memutar database agar sepenuhnya diperbarui dengan file log yang saat ini digunakan oleh instans aktif, parameter szTargetInstanceLogPath dan szTargetInstanceCheckpointPath harus ditentukan. Ini dapat dilakukan bahkan saat database lain dilampirkan ke kumpulan log tersebut.
Fase III: Dalam fase akhir pemulihan, setiap transaksi yang tidak dilakukan digulung balik, yang memerlukan pembuatan file log baru dan memperbarui file titik pemeriksaan. Fase ini terkadang disebut sebagai "batalkan". Jalur file titik pemeriksaan yang akan digunakan selama fase ini adalah jalur yang dianalogikan dengan lokasi log fase III, yaitu, jika szLogPath digunakan untuk Fase III, szCheckpointFilePath akan digunakan, jika szTargetInstanceLogPath digunakan untuk fase III pemulihan szTargetInstanceCheckpointPath akan digunakan.
Untuk memahami cara kerja jalur, gunakan bagan alur ini:
Persyaratan
| Persyaratan | Nilai |
|---|---|
Klien |
Memerlukan Windows Vista, Windows XP, atau Windows 2000 Professional. |
Server |
Memerlukan Windows Server 2008, Windows Server 2003, atau Windows 2000 Server. |
Header |
Dinyatakan dalam Esent.h. |
Pustaka |
Gunakan ESENT.lib. |
DLL |
Membutuhkan ESENT.dll. |
Unicode |
Diimplementasikan sebagai JetExternalRestoreW (Unicode) dan JetExternalRestoreA (ANSI). |
Lihat juga
JET_ERR
JET_PFNSTATUS
JET_RSTMAP
JET_LOGINFO
JetBeginExternalBackup
JetInit