Professional Documents
Culture Documents
Prosedur backup dan pemulihan melindungi database Anda terhadap kehilangan data dan merekonstruksi data, harus kehilangan terjadi. The merekonstruksi data dicapai melalui media pemulihan, yang mengacu pada berbagai operasi yang terlibat dalam memulihkan, bergulir ke depan, dan rolling back cadangan dari file database. Bab ini memperkenalkan konsep dasar untuk merancang strategi backup dan recovery.
Pengantar Backup
Backup adalah salinan data. Salinan ini dapat mencakup bagian-bagian penting dari database, seperti file kontrol dan datafiles. Backup adalah suatu perlindungan terhadap kehilangan data tak terduga dan kesalahan aplikasi. Jika Anda kehilangan data asli, maka Anda dapat merekonstruksi itu dengan menggunakan cadangan. Backup dibagi menjadi backup fisik dan backup logis. Backup fisik, yang merupakan perhatian utama dalam strategi backup dan recovery, adalah salinan dari file database fisik. Anda dapat membuat backup fisik dengan baik Recovery Manager (RMAN) utilitas atau utilitas sistem operasi. Sebaliknya, backup logis berisi data logis (misalnya, tabel dan prosedur yang tersimpan) diekstraksi dengan utilitas Oracle dan disimpan dalam file biner. Anda dapat menggunakan backup logis untuk melengkapi backup fisik. Ada dua cara untuk melakukan backup dan pemulihan Oracle: Recovery Manager dan dikelola pengguna backup dan pemulihan. Recovery Manager (RMAN) adalah sebuah utilitas Oracle yang dapat cadangan, memulihkan, dan memulihkan file database. Ini adalah fitur dari server database Oracle dan tidak memerlukan instalasi terpisah. Anda juga dapat menggunakan perintah sistem operasi untuk backup dan SQL * Plus untuk pemulihan. Metode ini, juga disebut cadangan dikelola pengguna dan pemulihan, yang didukung sepenuhnya oleh Oracle, meskipun penggunaan RMAN sangat dianjurkan karena lebih kuat dan sangat menyederhanakan administrasi. Apakah Anda menggunakan RMAN atau pengguna yang dikelola metode, Anda dapat melengkapi backup fisik Anda dengan backup logis dari obyek skema yang dibuat menggunakan utilitas Ekspor. Utilitas menulis data dari database Oracle ke biner file sistem operasi. Anda kemudian dapat menggunakan Impor untuk mengembalikan data ini ke dalam database.
beroperasi di ARCHIVELOG modus. Saat ini jenis cadangan dipulihkan dan diarsipkan log yang tersedia, Anda memiliki pilihan untuk membuka database segera dan kehilangan transaksi yang dilakukan sejak backup diambil, atau menerapkan diarsipkan log untuk memulihkan transaksi.
cadangan file kontrol setelah backup selesai. Jika Anda tidak memiliki semua Redo log diarsipkan dihasilkan selama cadangan, maka Anda tidak dapat memulihkan cadangan karena Anda tidak memiliki semua catatan redo yang diperlukan untuk membuatnya konsisten.
Deskripsi "Gambar 15-1 Seluruh Cadangan Pilihan Database" Sebuah cadangan seluruh database bisa berupa cadangan konsisten atau cadangan tidak konsisten . Apakah cadangan adalah menentukan konsisten apakah Anda perlu menerapkan Redo log setelah memulihkan cadangan.
Backup tablespace
Sebuah cadangan tablespace adalah cadangan dari datafiles yang merupakan tablespace. Misalnya, jika tablespace users mengandung datafiles 2 , 3 , dan 4, maka cadangan tablespace users punggung ketiga datafiles. Backup tablespace, baik online atau offline, hanya berlaku jika database yang beroperasi di ARCHIVELOG modus. Alasannya adalah bahwa redo diperlukan untuk membuat tablespace dipulihkan konsisten dengan tablespace lain dalam database.
Backup datafile
Sebuah cadangan datafile adalah cadangan dari datafile tunggal. Backup datafile, yang tidak biasa seperti backup tablespace, yang berlaku di ARCHIVELOGdatabase. Satusatunya waktu backup datafile berlaku untuk database di NOARCHIVELOG modus jika:
Setiap datafile di tablespace yang didukung. Anda tidak dapat mengembalikan database kecuali semua datafiles yang didukung. Datafiles hanya dibaca atau offline-normal.
Selama backup RMAN, server database Oracle membaca file data, bukan utilitas sistem operasi. Server membaca setiap blok dan menentukan apakah blok tersebut retak. Jika blok tersebut retak, maka Oracle kembali membaca blok sampai mendapat gambaran yang konsisten dari data. Ketika Anda membuat cadangan datafile online dengan utilitas sistem operasi (bukan dengan RMAN), Anda harus menggunakan metode yang berbeda untuk menangani blok retak. Anda harus terlebih dahulu menempatkan file dalam mode cadangan dengan ALTER TABLESPACE BEGIN BACKUP pernyataan (untuk mendukung sebuah tablespace individual), atau ALTER DATABASE BEGIN BACKUP pernyataan (untuk membuat cadangan seluruh database). Setelah backup online selesai, Anda harus menjalankan ALTER TABLESPACE ... END BACKUP atau ALTER DATABASE END BACKUP pernyataan untuk mengambil tablespace keluar dari mode cadangan. Ketika update yang dibuat untuk file dalam mode cadangan, redo data tambahan Bahasa Inggris. Ini data tambahan yang dibutuhkan untuk memperbaiki blok retak yang mungkin didukung oleh utilitas sistem operasi.
RMAN BACKUP CURRENT CONTROLFILE perintah membuat cadangan biner dari file kontrol, seperti satu set cadangan atau salinan gambar. Pernyataan SQL ALTER DATABASE BACKUP CONTROLFILE membuat cadangan biner dari file kontrol. Pernyataan SQL ALTER DATABASE BACKUP CONTROLFILE TO TRACE ekspor isi file kontrol ke file script SQL. Anda dapat menggunakan script untuk membuat file kontrol baru. File backup jejak memiliki satu kelemahan utama: mereka tidak mengandung catatan arsip Redo log, dan backup RMAN dan salinan. Untuk alasan ini, backup biner yang lebih baik.
RMAN BACKUP ARCHIVELOG perintah The RMAN BACKUP ... PLUS ARCHIVELOG perintah Sebuah utilitas sistem operasi
Recovery
Untuk mengembalikan cadangan fisik file datafile atau kontrol untuk merekonstruksi dan membuatnya tersedia untuk server database Oracle. Untuk memulihkan datafile dipulihkan adalah untuk meng-update dengan menerapkan diarsipkan Redo log dan online redo log, yaitu, catatan perubahan yang dibuat ke database setelah cadangan itu diambil. Jika Anda menggunakan RMAN, maka Anda juga dapat memulihkan file data dengan incremental backup, yang merupakan backup dari datafile yang hanya berisi blok yang berubah setelah incremental backup sebelumnya. Setelah file yang diperlukan dikembalikan, media pemulihan harus dimulai oleh pengguna. Media pemulihan melibatkan berbagai operasi untuk memulihkan, roll ke depan, dan memutar kembali cadangan dari file database. Pemulihan Media berlaku diarsipkan Redo log dan online redo log untuk memulihkan file data. Setiap kali perubahan dibuat ke datafile, perubahan itu pertama kali tercatat di online Redo log. Media pemulihan selektif menerapkan perubahan yang direkam di online dan diarsipkan Redo log ke datafile dikembalikan untuk roll ke depan. Untuk memperbaiki masalah yang disebabkan oleh korupsi data logis atau kesalahan pengguna, Anda dapat menggunakan Oracle Flashback. Oracle Database dan Oracle Flashback Flashback Tabel memungkinkan Anda dengan cepat pulih ke waktu sebelumnya.
Gambar 15-2 mengilustrasikan prinsip dasar cadangan, memulihkan, dan melakukan pemulihan media pada database.
Deskripsi "Gambar 15-2 Media Pemulihan" Tidak seperti media pemulihan, Oracle melakukan pemulihan kecelakaan dan pemulihan misalnya secara otomatis setelah kegagalan misalnya. Kecelakaan dan pemulihan misalnya memulihkan database untuk negara transaksi-konsisten sebelum kegagalan misalnya. Menurut definisi, crash pemulihan adalah pemulihan database dalam konfigurasi single-contoh atau Oracle Application Cluster konfigurasi Estat di mana semua kasus telah jatuh. Sebaliknya, pemulihan misalnya adalah pemulihan satu contoh gagal oleh contoh hidup dalam Oracle Application Cluster konfigurasi Estate.
Lengkap Pemulihan
Pemulihan lengkap melibatkan menggunakan redo data atau backup incremental dikombinasikan dengan backup database, tablespace, atau datafile untuk update ke titik paling saat ini dalam waktu. Hal ini disebut lengkap karena Oracle menerapkan semua perubahan redo terkandung dalam diarsipkan dan online log untuk cadangan. Biasanya, Anda melakukan pemulihan media lengkap setelah kerusakan kegagalan media yang datafiles atau control file. Anda dapat melakukan pemulihan lengkap pada database, tablespace, atau datafile. Jika Anda melakukan pemulihan lengkap pada seluruh database, maka Anda harus:
Gunung database Pastikan bahwa semua datafiles Anda ingin memulihkan sedang online Mengembalikan cadangan dari seluruh database atau file yang ingin memulihkan Terapkan online redo log atau diarsipkan, atau kombinasi dari dua
Jika Anda melakukan pemulihan lengkap pada tablespace atau datafile, maka Anda harus:
Ambil tablespace atau datafile untuk dipulihkan offline jika database terbuka Mengembalikan cadangan dari datafiles Anda ingin memulihkan Terapkan online redo log atau diarsipkan, atau kombinasi dari dua
Pemulihan lengkap
Pemulihan tidak lengkap, atau pemulihan point-in-time, menggunakan cadangan untuk menghasilkan versi lancar database. Dengan kata lain, Anda tidak berlaku semua catatan redo dihasilkan setelah cadangan yang terbaru. Anda biasanya melakukan pemulihan lengkap dari seluruh database dalam situasi berikut:
Kegagalan Media menghancurkan beberapa atau semua online redo log. Sebuah kesalahan pengguna menyebabkan kehilangan data, misalnya, pengguna secara tidak sengaja menjatuhkan meja.
Anda tidak dapat melakukan pemulihan lengkap karena log redo diarsipkan hilang. Anda kehilangan file kontrol Anda saat ini dan harus menggunakan file kontrol cadangan untuk membuka database.
Untuk melakukan pemulihan media yang lengkap, Anda harus mengembalikan semua datafiles dari backup yang dibuat sebelum waktu yang Anda ingin memulihkan dan kemudian membuka database dengan RESETLOGS pilihan ketika pemulihan selesai. The RESETLOGS operasi menciptakan baru inkarnasi dari database-dengan kata lain, database dengan aliran baru log urutan nomor yang dimulai dengan log urutan 1. Sebelum menggunakan OPEN RESETLOGS perintah untuk membuka database dalam membaca / modus setelah pemulihan lengkap menulis, itu adalah ide yang baik untuk pertama kali membuka database dalam mode read-only, dan memeriksa data untuk memastikan bahwa database telah pulih ke titik yang benar.Jika pemulihan dilakukan untuk titik yang salah, maka lebih mudah untuk kembali menjalankan pemulihan jika tidak ada OPEN RESETLOGS telah dilakukan. Jika Anda membuka database read-only dan menemukan bahwa tidak cukup pemulihan itu dilakukan, maka hanya menjalankan pemulihan lagi untuk waktu yang diinginkan. Jika Anda menemukan bahwa terlalu banyak pemulihan dilakukan, maka Anda harus mengembalikan database lagi dan kembali menjalankan pemulihan. Catatan: Flashback database adalah cara lain untuk melakukan pemulihan lengkap.
Pulih dari penurunan yang keliru atau memotong meja operasi Recover tabel yang telah menjadi logis rusak Pulih dari pekerjaan batch salah atau pernyataan DML lain yang telah mempengaruhi hanya subset dari database Recover satu skema independen ke titik yang berbeda dari sisa database fisik (dalam kasus di mana ada beberapa skema independen dalam tablespace terpisah satu database fisik) Recover tablespace pada database yang sangat besar (VLDB) daripada mengembalikan seluruh database dari backup dan melakukan database yang lengkap roll-maju
Anda tidak dapat menggunakannya pada SYSTEM tablespace, sebuah UNDO tablespace, atau tablespace yang berisi segmen rollback. Tablespace yang berisi data saling tergantung harus dipulihkan bersamasama. Sebagai contoh, jika dua tabel dalam tablespace terpisah dan memiliki hubungan kunci asing, maka kedua tablespace harus dipulihkan pada saat yang sama, Anda tidak dapat memulihkan hanya salah satu dari mereka.Oracle dapat menegakkan keterbatasan ini ketika mendeteksi hubungan data yang telah secara eksplisit dinyatakan dengan kendala basis data. Mungkin ada hubungan data lain yang tidak dideklarasikan dengan kendala basis data. Oracle tidak bisa mendeteksi ini, dan DBA harus berhati-hati untuk selalu mengembalikan set konsisten tablespace.
Berlaku perubahan backup dipulihkan datafiles rusak. Dapat menggunakan log diarsipkan serta log online. Membutuhkan doa eksplisit oleh pengguna.
Tidak mendeteksi kegagalan media (yaitu, kebutuhan untuk mengembalikan cadangan) secara otomatis. Setelah cadangan telah dipulihkan, namun, deteksi kebutuhan untuk memulihkannya melalui pemulihan media otomatis. Memiliki waktu pemulihan diatur sendiri oleh pengguna kebijakan (misalnya, frekuensi backup, pemulihan parameter paralel, jumlah database transaksi sejak terakhir cadangan) bukan oleh mekanisme internal Oracle.
Database tidak dapat dibuka jika ada datafiles online perlu pemulihan media, juga tidak dapat datafile yang perlu pemulihan media yang dibawa online sampai media pemulihan selesai. Skenario berikut memerlukan pemulihan media:
Anda mengembalikan cadangan dari datafile. Anda mengembalikan file kontrol cadangan (bahkan jika semua datafiles adalah lancar). Sebuah datafile diambil offline (baik oleh Anda atau secara otomatis oleh Oracle) tanpa OFFLINE NORMAL pilihan.
Kecuali database tidak terbuka dengan hal apapun, media pemulihan datafile hanya dapat beroperasi pada datafiles offline. Anda dapat memulai pemulihan Media datafile sebelum membuka database bahkan ketika crash pemulihan akan cukup. Jika demikian, pemulihan kecelakaan masih berjalan secara otomatis pada database terbuka. Perhatikan bahwa ketika file membutuhkan pemulihan media, Anda harus melakukan pemulihan media yang bahkan jika semua perubahan yang diperlukan yang terkandung dalam log online. Dengan kata lain, Anda masih harus menjalankan pemulihan meskipun diarsipkan log tidak diperlukan. Media pemulihan bisa menemukan tidak ada hubungannya - dan sinyal "ada pemulihan yang diperlukan" kesalahan - jika dipanggil untuk file yang tidak perlu pemulihan.
Oracle Database Backup dan Recovery Referensi untuk informasi tentang bagaimana
untuk katalog user-dikelola datafile dan log backup diarsipkan dan untuk melakukan blok media pemulihan
Gunakan utilitas RMAN untuk mengembalikan dan memulihkan database Kembalikan backup melalui utilitas sistem operasi, dan kemudian pulih dengan menjalankan SQL * Plus RECOVER command
Apapun metode yang Anda pilih, Anda dapat memulihkan database, tablespace, atau datafile. Sebelum melakukan pemulihan media, Anda perlu menentukan datafiles untuk pulih. Sering kali Anda dapat menggunakan tampilan tetap V$RECOVER_FILE . Pandangan ini daftar semua file yang membutuhkan pemulihan dan menjelaskan kesalahan yang mengharuskan pemulihan.
Jika Anda tidak dapat mengembalikan datafile ke lokasi semula, kemudian merelokasi datafile dipulihkan dan mengubah lokasi dalam file kontrol. 3. Kembalikan file log redo diperlukan diarsipkan. 4. Gunakan SQL * Plus RECOVER perintah untuk memulihkan backup datafile.
tidak mengikat dan beberapa blok data yang hilang perubahan dari transaksi yang dilakukan. Dua masalah potensial dapat terjadi jika terjadi kegagalan contoh:
Blok data dimodifikasi oleh transaksi mungkin tidak ditulis ke file data pada waktu komit dan mungkin hanya muncul dalam redo log. Oleh karena itu, Redo log berisi perubahan yang harus diterapkan kembali ke database selama pemulihan. Setelah fase maju roll, datafiles bisa berisi perubahan yang belum dilakukan pada saat kegagalan. Perubahan ini tidak mengikat harus digulung kembali untuk memastikan konsistensi transaksional. Perubahan ini baik disimpan ke datafiles sebelum kegagalan, atau diperkenalkan selama roll ke depan fase.
Untuk mengatasi dilema ini, dua langkah terpisah umumnya digunakan oleh Oracle untuk pemulihan yang sukses dari kegagalan sistem: bergulir maju dengan Redo log (pemulihan Cache) dan rolling kembali dengan rollback atau membatalkan segmen (pemulihan transaksi).
Anda dapat menjalankan Oracle baik pengguna membatalkan modus manajemen atau otomatis membatalkan modus manajemen . Dalam mode manual, Anda harus membuat dan mengelola rollback segmen s untuk merekam sebelum-gambar perubahan ke database. Dalam otomatis membatalkan modus manajemen, Anda membuat satu atau lebih tablespace undo. Ini membatalkan tablespace mengandung membatalkan segmen yang mirip dengan segmen rollback tradisional. Perbedaan utama adalah bahwa Oracle mengelola membatalkan untuk Anda. Undo blok (baik dalam segmen rollback atau otomatis membatalkan tablespace) catatan tindakan database yang harus dibatalkan selama operasi database tertentu. Dalam pemulihan database, undo blok memutar kembali efek dari transaksi uncommitted sebelumnya diterapkan oleh fase maju bergulir. Setelah roll ke depan, setiap perubahan yang tidak berkomitmen harus dibatalkan. Oracle berlaku membatalkan blok untuk memutar kembali perubahan terikat dalam blok data yang baik ditulis sebelum kegagalan atau diperkenalkan oleh aplikasi Redo selama pemulihan tembolok. Proses ini disebut bergulir kembaliatau pemulihan transaksi . Gambar 15-3 mengilustrasikan bergulir ke depan dan rolling kembali, dua langkah yang diperlukan untuk pulih dari semua jenis kegagalan sistem.
Gambar 15-3 Langkah Pemulihan Dasar: Bergulir Maju dan Rolling Kembali
Deskripsi "Gambar 15-3 Langkah Pemulihan Dasar: Bergulir Maju dan Rolling Kembali" Oracle dapat memutar kembali beberapa transaksi bersamaan sesuai kebutuhan. Semua transaksi systemwide yang aktif pada saat kegagalan ditandai sebagai dihentikan. Daripada menunggu SMON untuk memutar kembali transaksi
dihentikan, transaksi baru bisa pulih memblokir transaksi sendiri untuk mendapatkan baris mengunci mereka butuhkan.
Redo perubahan menggunakan datafiles online saat (sebagai kiri pada disk setelah kegagalan atau SHUTDOWN ABORT ) Gunakan hanya online redo log dan tidak pernah memerlukan penggunaan log diarsipkan Memiliki waktu pemulihan diatur oleh jumlah kasus dihentikan, jumlah redo dihasilkan dalam setiap thread redo dihentikan sejak pemeriksaan terakhir, dan oleh faktor dikonfigurasi pengguna seperti jumlah dan ukuran file Redo log, frekuensi pemeriksaan, dan pemulihan paralel pengaturan
Pada database pertama kali membuka setelah kegagalan dari sebuah database tunggal-contoh atau semua contoh Aplikasi Oracle Nyata Cluster database (crash pemulihan). Ketika beberapa tapi tidak semua contoh dari Oracle Application Clusters Nyata konfigurasi gagal (pemulihan misalnya). Pemulihan dilakukan secara otomatis oleh contoh hidup di konfigurasi.
Titik penting adalah bahwa dalam kedua kecelakaan dan contoh recovery, Oracle berlaku redo secara otomatis: tidak ada intervensi pengguna dibutuhkan untuk
memasok Redo log. Namun, Anda dapat mengatur parameter di server database yang dapat mengatur durasi contoh dan kinerja pemulihan kecelakaan.Juga, Anda dapat mengatur bergulir ke depan dan memutar kembali fase pemulihan misalnya secara terpisah. Lihat Juga:
Oracle Database Backup dan Pemulihan Guide Lanjutan Pengguna untuk pembahasan
contoh mekanika pemulihan dan instruksi untuk tuning contoh dan pemulihan kecelakaan
Flashback Tabel menggunakan informasi di undo tablespace untuk mengembalikan meja. Hal ini memberikan manfaat yang signifikan atas pemulihan media dalam hal kemudahan penggunaan, ketersediaan, dan pemulihan lebih cepat. Flashback Flashback Database dan Tabel berbeda dalam granularity, kinerja, dan pembatasan. Untuk database utama, pertimbangkan untuk menggunakan Flashback database daripada Flashback Tabel dalam situasi berikut:
Ada korupsi data logis, terutama undo korupsi. Sebuah kesalahan pengguna mempengaruhi seluruh database. Sebuah kesalahan pengguna dipengaruhi meja atau satu set kecil tabel, tetapi dampak dari pengembalian set tabel tidak jelas karena hubungan logis antara tabel. Sebuah kesalahan pengguna dipengaruhi meja atau satu set kecil tabel, tetapi menggunakan Flashback Tabel akan gagal karena pembatasan DDL nya. Flashback database bekerja melalui semua operasi DDL, sedangkan Flashback Tabel tidak. Juga, karena Flashback database bergerak seluruh database kembali dalam waktu, kendala tidak akan menjadi masalah, sedangkan mereka dengan Flashback Table. Flashback Tabel tidak dapat digunakan pada database siaga.
Karena dari penciptaan tempat meja, Anda hanya mendapatkan kembali data. Kendala, indeks, dan sebagainya tidak dikembalikan. Ini bisa memakan signifikan lebih waktu dan ruang dari Flashback Table. Namun, Flashback Tabel hanya mengembalikan baris dalam blok yang dimodifikasi setelah waktu yang ditentukan, sehingga lebih efisien.
Meskipun impor dan ekspor dirancang untuk memindahkan data Oracle, Anda juga dapat menggunakannya sebagai metode tambahan untuk melindungi data dalam database Oracle. Anda tidak harus menggunakan Oracle impor dan ekspor utilitas sebagai satu-satunya metode back up data Anda. Oracle impor dan ekspor utilitas bekerja sama dengan CTAS, tetapi mereka mengembalikan kendala, indeks, dan sebagainya. Mereka efektif menciptakan kembali seluruh tabel jika ekspor dilakukan sebelumnya sesuai dengan waktu Flashback. Flashback Tabel lebih efisien daripada kinerja impor / ekspor utilitas, karena hanya akan mengembalikan subset dari baris yang mendapat dimodifikasi.
File kontrol saat Log online Diarsipkan log Flashback log Kontrol autobackups berkas Kontrol salinan berkas Salinan datafile Potongan Backup