Bagikan melalui


Fungsi JetRestore2

Berlaku untuk: Windows | Windows Server

Fungsi JetRestore2

JetRestore2 memulihkan dan memulihkan cadangan streaming instans, termasuk semua database yang dilampirkan. Fungsi ini terutama untuk kompatibilitas mundur dengan Windows 2000 dan mesin database yang lebih lama, di mana hanya satu instans database yang diizinkan. Dalam hal ini, instans aktif adalah instans yang dipulihkan.

    JET_ERR JET_API JetRestore2(
      __in          JET_PCSTR sz,
      __in_opt      JET_PCSTR szDest,
      __in          JET_PFNSTATUS pfn
    );

Parameter

Sz

Folder tempat cadangan berada. Cadangan seharusnya dibuat menggunakan API JetBackup .

szDest

Nama folder tempat file database dari kumpulan cadangan akan disalin dan dipulihkan. Jika ini diatur ke NULL (yang merupakan kasus untuk JetRestore warisan), file database akan disalin dan dipulihkan ke lokasi aslinya.

pfn

Penunjuk opsional ke fungsi yang akan dipanggil sebagai informasi pemberitahuan tentang kemajuan operasi 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_errAlreadyInitialized

Operasi gagal karena mesin sudah diinisialisasi untuk instans ini.

JET_errInvalidLogSequence

Kumpulan file log dari kumpulan cadangan dan dari jalur log saat ini tidak cocok.

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. Kesalahan ini akan dikembalikan oleh JetRestoreInstance ketika mesin berada dalam mode multi-instans dan penyematan mengacu pada instans Windows XP yang tidak valid dan rilis yang lebih baru.

JET_errInvalidPath

Operasi gagal karena beberapa jalur yang disediakan tidak valid (jalur cadangan, jalur tujuan, log atau jalur sistem untuk instans).

JET_errPageSizeMismatch

Operasi gagal karena mesin dikonfigurasi untuk menggunakan ukuran halaman database (menggunakan JetSetSystemParameter untuk JET_paramDatabasePageSize) yang tidak cocok dengan ukuran halaman database yang digunakan untuk membuat file log transaksi atau database yang terkait dengan file log transaksi.

JET_errRunningInMultiInstanceMode

Operasi gagal karena parameter menyiratkan mode instans tunggal (mode kompatibilitas Windows 2000) dan mesin sudah dalam mode multi-instans.

Setelah berhasil, file database dari kumpulan cadangan akan dipulihkan ke lokasi mereka dan pemulihan akan dijalankan sedih sehingga database akan berada dalam status konsistensi transaksional yang bersih. Pemulihan akan memutar ulang file log dari kumpulan cadangan dan file log dari jalur log jika file tersebut memang ada. Pemulihan ini akan menghasilkan perubahan pada file titik pemeriksaan, file log transaksi, dan database apa pun yang dirujuk oleh file log transaksi tersebut.

Jika gagal, instans tetap dalam keadaan tidak diinisialisasi. Status file log transaksi dan database apa pun yang dirujuk oleh file log transaksi tersebut kemungkinan akan diubah dalam upaya untuk menginisialisasi pemulihan dan memulihkan database.

Keterangan

Proses pemulihan akan merekonstruksi database yang dilampirkan ke instans selama pencadangan dan menyimpan perubahan kembali ke file database. Hasilnya akan menjadi database yang konsisten dengan transaksi. Jika memungkinkan, itu juga akan menyimpan ke database perubahan yang dilakukan sejak cadangan diambil sampai perubahan terbaru ditemukan dalam log transaksi. Ini akan dimungkinkan jika log transaksi yang dihasilkan sejak cadangan diambil masih ada di direktori log transaksi. Perhatikan bahwa jika pengelogan melingkar diaktifkan untuk instans, log transaksi yang dihasilkan digunakan kembali sehingga pemulihan akan dapat menyimpan perubahan yang terjadi hingga saat pencadangan. Bagaimanapun, proses ini mungkin memakan waktu cukup lama jika jumlah file log transaksi untuk diputar ulang terhadap database besar.

Fungsi JetRestore harus dipanggil pada instans sebelum JetInit dipanggil untuk instans tersebut.

Karena selama pemulihan sejumlah besar halaman database dan log transaksi akan digunakan, ada seluruh rangkaian kesalahan yang mungkin dikembalikan oleh fungsi-fungsi ini. Kesalahan tersebut dapat berasal dari kegagalan alokasi sumber daya sementara seperti Jet_errOutOfMemory hingga kesalahan yang mewakili kerusakan fisik seperti JET_errReadVerifyFailure, JET_errLogFileCorrupt, atau JET_errBadPageLink. Kesalahan ini hampir selalu disebabkan oleh masalah perangkat keras dan dengan demikian tidak dapat dihindari. Kesalahan manajemen file akan memanifestasikan dirinya paling sering sebagai JET_errMissingLogFile atau JET_errAttachedDatabaseMismatch atau JET_errDatabaseSharingViolation atau JET_errInvalidLogSequence. Kesalahan ini dapat dicegah oleh aplikasi. Aplikasi harus berhati-hati untuk melindungi repositori file-file ini dari manipulasi oleh kekuatan luar seperti pengguna atau aplikasi lain. Jika aplikasi ingin menghancurkan instans sepenuhnya maka semua file yang terkait dengan instans harus dihapus. Ini termasuk file titik pemeriksaan, file log transaksi, dan file database apa pun yang dilampirkan ke instans.

Langkah-langkah pemulihan yang berbeda akan memiliki entri Log Peristiwa yang dihasilkan termasuk kemajuan pemutaran ulang log transaksi dan hasil akhir pemulihan.

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 JetRestore2W (Unicode) dan JetRestore2A (ANSI).

Lihat juga

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetInit
JetRestore
JetRestoreInstance
JetSetSystemParameter