Bagikan melalui


Fungsi JetRestoreInstance

Berlaku untuk: Windows | Windows Server

Fungsi JetRestoreInstance

Fungsi JetRestoreInstance memulihkan dan memulihkan cadangan streaming instans termasuk semua database yang terlampir. Ini dirancang untuk bekerja dengan cadangan yang dibuat dengan fungsi JetBackupInstance . Ini adalah fungsi pemulihan yang paling sederhana dan paling dienkapsulasi.

Windows XP:JetRestoreInstance diperkenalkan di Windows XP.

    JET_ERR JET_API JetRestoreInstance(
      __in          JET_INSTANCE instance,
      __in          JET_PCSTR sz,
      __in_opt      JET_PCSTR szDest,
      __in          JET_PFNSTATUS pfn
    );

Parameter

Sebagai contoh

Menentukan instans yang akan digunakan untuk panggilan ini.

Untuk rilis Windows XP dan yang lebih baru, penggunaan parameter ini tergantung pada mode operasi mesin. Jika mesin beroperasi dalam mode warisan (mode kompatibilitas Windows 2000) di mana hanya satu instans yang didukung maka parameter ini mungkin NULL atau dapat diatur ke buffer output yang valid yang berisi NULL atau JET_instanceNil yang akan mengembalikan handel instans global yang dibuat sebagai efek samping dari inisialisasi. Handel instans ini kemudian dapat diteruskan ke API lain yang mengambil instans. Jika mesin beroperasi dalam mode multi-instans, parameter ini harus diatur ke buffer input yang valid yang berisi handel instans yang dikembalikan oleh JetCreateInstance yang sedang diinisialisasi.

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.

JetRestoreInstance harus dipanggil pada instans yang sudah dibuat menggunakan JetCreateInstance.

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 atau Windows XP.

Server

Memerlukan Windows Server 2008 atau Windows Server 2003.

Header

Dinyatakan dalam Esent.h.

Pustaka

Gunakan ESENT.lib.

DLL

Membutuhkan ESENT.dll.

Unicode

Diimplementasikan sebagai JetRestoreInstanceW (Unicode) dan JetRestoreInstanceA (ANSI).

Lihat juga

JET_ERR
JET_GRBIT
JET_INSTANCE
JetBackup
JetBackupInstance
JetCreateInstance
JetSetSystemParameter