Rumah >pangkalan data >Oracle >Penjelasan grafik terperinci seni bina pangkalan data oracle
Artikel ini membawakan anda pengetahuan yang berkaitan tentang Oracle, yang terutamanya memperkenalkan isu berkaitan seni bina pangkalan data yang terdiri daripada Oracle DB dan satu atau lebih contoh pangkalan data proses latar belakang saya harap ia akan membantu semua orang.
Tutorial yang disyorkan: "Tutorial Oracle"
Pelayan DB Oracle terdiri daripada DB Oracle dan an Atau berbilang contoh pangkalan data. Contoh terdiri daripada struktur memori dan proses latar belakang. Setiap kali kejadian dilancarkan, kawasan memori kongsi yang dipanggil Kawasan Global Sistem (SGA) diperuntukkan dan proses latar belakang dimulakan.
Pangkalan data termasuk struktur fizikal dan struktur logik. Memandangkan struktur fizikal dan logik adalah berasingan, akses kepada struktur storan logik tidak terjejas apabila menguruskan storan fizikal data.
Kejadian Oracle menggunakan struktur dan proses memori untuk mengurus dan mengakses pangkalan data. Semua struktur memori wujud dalam ingatan utama komputer tersebut yang membentuk pelayan pangkalan data. Proses ialah kerja yang berjalan dalam ingatan komputer ini. Proses ditakrifkan sebagai "benang kawalan" atau mekanisme dalam sistem pengendalian yang menjalankan urutan langkah.
Kejadian Oracle mempunyai dua struktur memori asas yang berkaitan:
1. Kawasan Global Sistem (SGA)
dipanggil komponen SGA Kumpulan kongsi struktur memori yang mengandungi data dan maklumat kawalan untuk contoh Oracle DB. SGA dikongsi oleh semua pelayan dan proses latar belakang. Contoh data yang disimpan dalam SGA termasuk blok data cache dan kawasan SQL yang dikongsi.
SGA ialah kawasan memori yang mengandungi data dan maklumat kawalan kejadian. SGA mengandungi struktur data berikut:
• Cache penimbal pangkalan data: digunakan untuk cache blok data yang diambil daripada pangkalan data
• Buat semula penimbal log: digunakan untuk cache buat semula maklumat yang digunakan misalnya pemulihan sehingga Boleh ditulis ke log buat semula fizikal fail yang disimpan pada cakera
• Kumpulan kongsi: digunakan untuk cache pelbagai struktur yang boleh dikongsi di kalangan pengguna
• Kumpulan besar: digunakan untuk beberapa proses besar seperti sandaran Oracle dan operasi Pemulihan) dan proses pelayan I/O menyediakan pilihan kawasan peruntukan memori yang besar.
• Java Pool: digunakan untuk semua kod Java khusus sesi dan data dalam Java Virtual Machine (JVM)
• Stream Pool: digunakan oleh Oracle Streams untuk menyimpan maklumat yang diperlukan untuk menangkap dan operasi aplikasi
2. Program Global Area (PGA)
Kawasan memori yang mengandungi data dan maklumat kawalan untuk proses pelayan atau proses latar belakang.
PGA ialah memori bukan kongsi yang dicipta oleh Oracle DB apabila proses pelayan atau proses latar belakang bermula. Akses proses pelayan kepada PGA adalah saling eksklusif. Setiap proses pelayan dan proses latar belakang mempunyai PGA sendiri.
Program Global Area (PGA) ialah kawasan memori yang mengandungi data dan maklumat kawalan untuk setiap proses pelayan. Pelayan Oracle memproses permintaan pelanggan perkhidmatan. Setiap proses pelayan mempunyai PGA tersendiri, yang dibuat apabila proses pelayan bermula Akses kepada PGA adalah terhad kepada proses pelayan tersebut dan hanya boleh dibaca dan ditulis oleh kod Oracle bagi pihak proses pelayan tersebut.
Oracle DB menggunakan parameter permulaan untuk mencipta dan mengurus struktur memori. Cara paling mudah untuk mengurus memori ialah membenarkan pangkalan data mengurus dan mengoptimumkan memori secara automatik. Untuk melakukan ini (yang berikut berfungsi pada kebanyakan platform), cuma tetapkan parameter permulaan saiz memori sasaran (MEMORY_TARGET) dan parameter permulaan saiz memori maksimum (MEMORY_MAX_TARGET).
Cache penimbal pangkalan data ialah sebahagian daripada SGA dan digunakan untuk menyimpan salinan blok data yang dibaca daripada fail data. Semua pengguna yang disambungkan kepada contoh secara selari berkongsi akses kepada cache penimbal pangkalan data.
Kali pertama proses pengguna Oracle DB memerlukan sekeping data tertentu, ia mencari cache penimbal pangkalan data untuk data tersebut.
Jika proses menjumpai data dalam cache (dipanggil cache hit), data dibaca terus daripada memori. Jika proses tidak dapat mencari data dalam cache (dipanggil cache miss), blok data daripada fail data pada cakera mesti disalin ke penimbal dalam cache sebelum data boleh diakses. Mengakses data pada cache hit adalah lebih pantas daripada mengakses data pada cache miss.
Penampan dalam cache diuruskan oleh algoritma kompleks yang menggunakan gabungan senarai paling kurang digunakan baru-baru ini (LRU) dan mekanisme pengiraan dok.
Penimbal log buat semula ialah penimbal bulat dalam SGA yang menyimpan maklumat tentang perubahan yang dibuat pada pangkalan data. Maklumat ini disimpan dalam entri buat semula. Entri buat semula mengandungi maklumat yang diperlukan untuk membina semula (atau buat semula) perubahan yang dibuat pada pangkalan data oleh DML, DDL atau operasi dalaman. Jika perlu, buat semula entri akan digunakan untuk pemulihan pangkalan data.
Apabila proses pelayan menukar cache penimbal, entri buat semula dijana dan ditulis kepada penimbal log buat semula dalam SGA. Buat semula entri menduduki ruang jujukan bersebelahan dalam penimbal. Proses latar belakang LGWR menulis penimbal log buat semula kepada fail log semula aktif (atau kumpulan fail) pada cakera.
Bahagian kumpulan kongsi SGA termasuk cache pustaka, cache kamus data, cache hasil pertanyaan SQL, cache hasil fungsi PL/SQL, penampan mesej Pelaksanaan selari dan struktur kawalan.
"Kamus data" ialah koleksi jadual dan paparan pangkalan data yang mengandungi maklumat rujukan tentang pangkalan data, strukturnya dan penggunanya. Semasa penghuraian pernyataan SQL, Oracle DB kerap mengakses kamus data. Operasi capaian ini penting untuk operasi berterusan Oracle DB.
Oracle DB mengakses kamus data dengan sangat kerap, jadi dua lokasi khas ditetapkan dalam memori untuk menyimpan data kamus.
Sesuatu kawasan dipanggil "cache kamus data", juga dikenali sebagai "cache baris" kerana ia menyimpan data dalam bentuk baris dan bukannya dalam bentuk penimbal (penampan digunakan untuk menyimpan sekeping data yang lengkap). Satu lagi kawasan memori yang digunakan untuk data kamus dipanggil "cache perpustakaan." Semua proses pengguna Oracle DB berkongsi kedua-dua cache ini untuk akses kepada maklumat kamus data.
Oracle DB menggunakan kawasan SQL kongsi (serta kawasan SQL peribadi yang dikhaskan dalam PGA) untuk mewakili setiap pernyataan SQL yang dijalankannya. Oracle DB mengiktiraf apabila dua pengguna melaksanakan pernyataan SQL yang sama dan menggunakan semula rantau SQL yang dikongsi untuk pengguna tersebut.
"Kawasan SQL Dikongsi" mengandungi pepohon parse dan pelan pelaksanaan untuk pernyataan SQL yang diberikan. Oracle DB menjimatkan memori dengan menggunakan kawasan SQL yang dikongsi untuk pernyataan SQL yang dijalankan beberapa kali. Apabila ramai pengguna menjalankan aplikasi yang sama, pernyataan SQL yang sama sering dijalankan beberapa kali.
Apabila pernyataan SQL baharu dihuraikan, Oracle DB memperuntukkan memori daripada kumpulan kongsi untuk menyimpan pernyataan dalam kawasan SQL kongsi. Saiz ingatan ini bergantung pada kerumitan pernyataan.
Oracle DB mengendalikan unit program PL/SQL (prosedur, fungsi, pakej, blok tanpa nama dan pencetus data) dengan cara yang sama ia mengendalikan pernyataan SQL individu. Oracle DB memperuntukkan kawasan kongsi untuk menyimpan unit program dalam bentuk yang dihuraikan dan disusun. Oracle DB memperuntukkan kawasan persendirian untuk menyimpan nilai khusus untuk sesi di mana unit program dijalankan, termasuk pembolehubah tempatan, pembolehubah global dan pembolehubah pakej (juga dipanggil "penyerahan pakej"), dan untuk menyimpan penimbal yang digunakan untuk melaksanakan SQL . Jika berbilang pengguna menjalankan unit program yang sama, semua pengguna menggunakan kawasan kongsi yang sama tetapi mengekalkan salinan berasingan kawasan SQL peribadi mereka sendiri untuk menyimpan nilai khusus untuk sesi mereka sendiri.
Penyataan SQL individu yang terkandung dalam unit program PL/SQL diproses sama dengan penyataan SQL yang lain.
Tidak kira asal usul penyata SQL ini dalam unit program PL/SQL, mereka menggunakan kawasan kongsi untuk memegang perwakilan penghuraian mereka dan kawasan khusus untuk setiap sesi di mana penyata dijalankan.
Cache hasil pertanyaan SQL dan cache hasil fungsi PL/SQL ialah ciri baharu dalam Pangkalan Data Oracle 11g.
Mereka berkongsi infrastruktur yang sama, muncul dalam paparan prestasi dinamik (V$) yang sama dan diurus menggunakan pakej yang sama yang disediakan.
Hasil pertanyaan dan serpihan pertanyaan boleh dicache dalam ingatan dalam "SQL Query Results Cache". Dengan cara ini, pangkalan data boleh menggunakan hasil cache untuk menjawab pelaksanaan kemudian bagi pertanyaan dan serpihan pertanyaan ini. Oleh kerana mendapatkan semula hasil daripada cache hasil pertanyaan SQL adalah lebih pantas daripada menjalankan semula pertanyaan, menyimpan cache
hasil pertanyaan yang kerap dijalankan boleh meningkatkan prestasi pertanyaan tersebut.
Fungsi ini kadangkala digunakan untuk mengembalikan hasil pengiraan jika input kepada pengiraan adalah satu atau beberapa pertanyaan berparameter yang dikeluarkan oleh fungsi PL/SQL. Dalam sesetengah kes, pertanyaan ini mengakses data yang jarang berubah (berbanding dengan kekerapan fungsi dipanggil).
Anda boleh memasukkan sintaks dalam teks sumber fungsi PL/SQL untuk meminta hasil fungsi dicache dalam "Cache Hasil Fungsi PL/SQL" dan cache dikosongkan apabila DML ditemui untuk jadual dalam senarai jadual (bermula dengan Pastikan ia betul).
Pentadbir pangkalan data boleh mengkonfigurasi kawasan memori pilihan yang dipanggil "Kolam Besar" untuk menyediakan peruntukan memori yang besar untuk:
• Pelayan kongsi Memori sesi dan Oracle XA atau Penampan Pertanyaan Selari memperuntukkan memori sesi, Oracle DB terutamanya boleh menggunakan kumpulan kongsi untuk cache SQL kongsi dan mengelakkan overhed prestasi yang disebabkan oleh mengecilkan cache SQL kongsi.
Selain itu, memori untuk operasi sandaran dan pemulihan Oracle DB, proses pelayan I/O dan penimbal selari diperuntukkan dalam penimbal ratusan KB. Kolam besar melayani permintaan memori yang besar seperti itu lebih baik daripada kolam kongsi.
Tiada senarai LRU untuk kolam besar. Ia berbeza daripada ruang tersimpan dalam kumpulan kongsi, yang menggunakan senarai LRU yang sama seperti memori lain yang diperuntukkan daripada kumpulan kongsi.
kolam java dan kolam strim
Statistik Panduan Kolam Java menyediakan maklumat tentang memori cache perpustakaan untuk Java dan meramalkan cara perubahan dalam saiz kolam Java mempengaruhi kadar penghuraian. Apabila statistics_level ditetapkan kepada TYPICAL atau lebih tinggi, panduan pool Java dihidupkan secara dalaman. Statistik ini akan ditetapkan semula apabila anda menutup panduan. Kolam aliran digunakan secara eksklusif oleh Oracle Streams. Kolam strim menyimpan mesej baris gilir penimbal dan menyediakan memori untuk proses tangkapan Oracle Streams dan proses aplikasi.
Melainkan kolam strim dikonfigurasikan khas, saiznya bermula pada sifar. Apabila menggunakan Oracle Streams, saiz kolam berkembang secara dinamik mengikut keperluan.
Program Global Area (PGA)
Setiap PGA mengandungi ruang tindanan. Dalam persekitaran pelayan khusus, terdapat proses pelayan yang berasingan untuk setiap pengguna yang menyambung ke contoh pangkalan data. Untuk jenis sambungan ini, PGA mengandungi subbahagian memori yang dipanggil Kawasan Global Pengguna (UGA). UGA termasuk bahagian berikut: • Kawasan kursor, digunakan untuk menyimpan maklumat masa jalan kursor
• Kawasan penyimpanan data sesi pengguna, digunakan untuk menyimpan maklumat kawalan tentang sesi
• Ruang kerja SQL, digunakan untuk memproses SQL Kenyataan, termasuk:
Proses dalam sistem Oracle DB terutamanya dibahagikan kepada dua kumpulan:
1. Proses pengguna yang menjalankan aplikasi atau kod alat Oracle
Untuk berbeza Konfigurasi Oracle DB, struktur proses pengguna berbeza-beza bergantung pada sistem pengendalian dan pilihan OracleDB yang dipilih. Kod untuk pengguna yang disambungkan boleh dikonfigurasikan sebagai pelayan khusus atau pelayan kongsi.
• Pelayan Khusus: Bagi setiap pengguna, proses pengguna yang menjalankan aplikasi pangkalan data dilayan oleh proses pelayan khusus yang melaksanakan kod pelayan Oracle DB.
• Pelayan Dikongsi: Tidak perlu mempunyai proses pelayan khusus untuk setiap sambungan. Penghantar mengarahkan berbilang permintaan sesi rangkaian masuk ke kumpulan proses pelayan kongsi. Proses pelayan kongsi menyediakan semua permintaan pelanggan.
2. Proses Oracle DB menjalankan kod pelayan Oracle DB (termasuk proses pelayan dan proses latar belakang)
2.1 Proses pelayan
Oracle DB mencipta proses pelayan untuk mengendalikan permintaan daripada proses pengguna yang disambungkan kepada contoh. Proses pengguna mewakili aplikasi atau alatan yang bersambung ke Oracle DB. Ia boleh berada pada komputer yang sama dengan Oracle DB, atau ia boleh berada pada klien jauh menggunakan rangkaian untuk mengakses Oracle DB. Proses pengguna mula-mula berkomunikasi dengan proses pendengar, yang dalam persekitaran khusus mewujudkan proses pelayan.
Proses pelayan yang dibuat untuk mewakili setiap aplikasi pengguna boleh melakukan satu atau lebih daripada yang berikut:
• Menghuraikan dan menjalankan pernyataan SQL yang dikeluarkan melalui aplikasi
• Dari cakera Baca blok data yang diperlukan daripada fail data pada SGA ke dalam penimbal pangkalan data kongsi SGA (jika blok belum ada dalam SGA)
• Kembalikan keputusan supaya aplikasi boleh memproses maklumat
2.2.2 memaksimumkan prestasi dan memenuhi keperluan berbilang pengguna, sistem Oracle DB berbilang proses menggunakan beberapa proses Oracle DB tambahan yang dipanggil "proses latar belakang". Contoh Oracle DB boleh mempunyai pelbagai proses latar belakang.
Proses latar belakang biasa dalam persekitaran bukan RAC, bukan ASM termasuk:
• Proses tulis pangkalan data (DBWn)
• Proses tulis log (LGWR)
• Proses pusat pemeriksaan (CKPT)
• Proses Pemantauan Sistem (SMON)
• Proses Pemantauan Proses (PMON)
• Proses Pemulih (RECO)
• Penyelaras Giliran Kerja (CJQ0)
• Proses Hamba Kerja (Jnnn)
• Arkib proses (ARCn)
• Proses monitor baris gilir (QMNn)
Mungkin terdapat proses latar belakang lain dalam konfigurasi yang lebih maju (seperti RAC). Untuk mendapatkan maklumat lanjut tentang proses latar belakang, lihat paparan V$BGPROCESS.
Sesetengah proses latar belakang dibuat secara automatik apabila memulakan tika, manakala yang lain dibuat atas permintaan.
Struktur proses lain tidak khusus untuk satu pangkalan data, tetapi boleh dikongsi antara berbilang pangkalan data pada pelayan yang sama. Proses Infrastruktur Grid dan proses rangkaian termasuk dalam kategori ini.
Proses Infrastruktur Grid Oracle pada sistem Linux dan UNIX termasuk:
• ohasd: Daemon Perkhidmatan Ketersediaan Tinggi Oracle, bertanggungjawab untuk memulakan proses Perisian Kluster Oracle
• ocssd: Daemon Perkhidmatan Penyegerakan Kluster
• diskmon: Pemantauan cakera daemon, bertanggungjawab untuk memantau input dan output HP Oracle Exadata Storage Server
• cssdagent: Mula, hentikan dan semak status CSS daemon ocssd
• oraagent: Lanjutkan perisian kluster untuk menyokong keperluan dan kerumitan khusus Oracle Sumber
• orarootagent: Proses ejen Oracle khusus yang membantu mengurus sumber (seperti rangkaian) yang dimiliki oleh pengguna root
Proses menulis pangkalan data (DBWn) boleh menulis kandungan penimbal ke fail data. Proses DBWn bertanggungjawab untuk menulis penimbal diubah suai (penampan data kelabu) dalam cache penimbal pangkalan data ke cakera. Walaupun untuk kebanyakan sistem, satu proses menulis pangkalan data (DBW0) adalah mencukupi, namun, jika sistem memerlukan pengubahsuaian data yang kerap, proses tambahan (DBW1 kepada DBW9 dan DBWa kepada DBWz) boleh dikonfigurasikan untuk meningkatkan prestasi tulis. Proses DBWn tambahan ini tidak berguna pada sistem unipemproses.
Apabila penimbal dalam cache penimbal pangkalan data diubah suai, ia ditandakan sebagai penimbal data kelabu dan ditambah pada kepala baris gilir pusat pemeriksaan dalam susunan SCN. Oleh itu, tertib adalah konsisten dengan tertib di mana entri buat semula untuk penimbal yang diubah ini ditulis pada log buat semula. Apabila bilangan penimbal percuma dalam cache penimbal jatuh di bawah beberapa ambang dalaman (ke tahap di mana proses pelayan menganggap sukar untuk mendapatkan penimbal percuma), DBWn menulis penimbal yang jarang digunakan pada fail data, menulis Pesanan bermula pada penghujung senarai LRU, membenarkan proses menggantikan penimbal apabila diperlukan. DBWn juga menulis dari ekor barisan pusat pemeriksaan untuk melindungi pusat pemeriksaan bergerak ke hadapan.
Terdapat struktur memori dalam SGA yang memegang alamat bait semula (RBA) lokasi dalam strim buat semula yang pemulihan akan bermula apabila kejadian gagal. Struktur ini berfungsi sebagai penunjuk untuk membuat semula dan ditulis ke fail kawalan oleh proses CKPT sekali setiap tiga saat. Memandangkan DBWn menulis penimbal data kelabu dalam susunan SCN, dan buat semula dilakukan dalam susunan SCN, setiap kali DBWn menulis penimbal data kelabu daripada senarai LRUW, penunjuk yang dipegang dalam struktur memori SGA juga akan dialihkan ke hadapan untuk memudahkan pemulihan contoh. Jika perlu) Mulakan baca buat semula dari kira-kira kedudukan yang betul dan elakkan I/O yang tidak perlu. Ini dipanggil "pusat pemeriksaan tambahan".
Nota: Terdapat situasi lain di mana DBWn boleh melakukan operasi tulis (contohnya, apabila ruang jadual ditetapkan kepada baca sahaja atau diambil di luar talian). Dalam kes ini, pusat pemeriksaan tambahan tidak berlaku kerana susunan penampan data kelabu yang dimiliki hanya kepada fail data yang sepadan ditulis ke pangkalan data adalah bebas daripada susunan SCN.
Algoritma LRU menyimpan blok yang lebih kerap diakses dalam cache penimbal untuk meminimumkan bacaan cakera. Anda boleh menggunakan pilihan CACHE dengan jadual untuk membantu menyimpan blok dalam ingatan lebih lama.
Parameter permulaan DB_WRITER_PROCESSES menentukan bilangan proses DBWn. Bilangan maksimum proses DBWn ialah 36. Jika pengguna tidak menyatakan bilangan proses ini semasa permulaan, Oracle DB akan menentukan cara untuk menetapkan DB_WRITER_PROCESSES berdasarkan bilangan CPU dan kumpulan pemproses.
Proses DBWn menulis penimbal data kelabu ke cakera di bawah keadaan berikut:
• Apabila proses pelayan tidak dapat mencari penimbal boleh guna semula yang bersih selepas mengimbas nombor ambang penimbal, DBWn dimaklumkan untuk melaksanakan operasi tulis. DBWn menulis penimbal data kelabu ke cakera secara tidak segerak semasa melakukan pemprosesan lain.
• Penampan tulis DBWn untuk memajukan pusat pemeriksaan. Pusat pemeriksaan ialah kedudukan permulaan dalam benang buat semula (log) yang digunakan untuk melakukan pemulihan contoh. Kedudukan log ditentukan oleh penimbal data kelabu tertua dalam cache penimbal. Dalam semua kes, DBWn melakukan operasi tulis berkelompok (berbilang blok) untuk meningkatkan kecekapan. Bilangan blok yang ditulis dalam operasi tulis berbilang blok berbeza-beza bergantung pada sistem pengendalian.
Proses Tulis Log (LGWR) bertanggungjawab untuk menguruskan penimbal log buat semula dengan menulis entri penimbal log buat semula ke penimbal log buat semula pada cakera. Buat fail log. LGWR menulis semua entri buat semula yang disalin ke dalam penimbal sejak penulisan terakhir.
Penampan log buat semula ialah penimbal bulat. Selepas LGWR menulis entri buat semula dalam penimbal log buat semula ke fail log buat semula, proses pelayan boleh menyalin entri baharu ke dalam penimbal log buat semula di atas mereka yang telah ditulis ke cakera. Kelajuan tulis LGWR biasanya cukup pantas untuk memastikan sentiasa ada ruang dalam penimbal untuk entri baharu, walaupun ketika akses kepada log buat semula adalah berat. LGWR menulis bahagian bersebelahan penimbal ke cakera.
LGWR melakukan penulisan apabila:
• Apabila proses pengguna melakukan transaksi
• Apabila satu pertiga daripada penimbal log buat semula penuh
• Apabila proses DBWn memindahkan yang diubah suai Sebelum penimbal ditulis ke cakera (jika perlu)
• Setiap 3 saat
Semua rekod buat semula yang berkaitan dengan perubahan penimbal mesti ditulis ke cakera sebelum DBWn boleh menulis penimbal yang diubah suai ke Daerah cakera (tulis perjanjian dahulu). Jika DBWn mendapati bahawa beberapa rekod buat semula masih belum ditulis, ia memberitahu LGWR
untuk menulis rekod buat semula ini ke cakera dan menunggu LGWR selesai menulis penimbal log buat semula sebelum menulis kepada penimbal data. LGWR akan menulis kepada kumpulan log semasa. Jika fail dalam kumpulan menjadi rosak atau tidak tersedia, LGWR akan terus menulis ke fail lain dalam kumpulan dan log ralat dalam fail surih LGWR dan log amaran sistem. Jika semua fail dalam kumpulan rosak, atau kumpulan itu tidak tersedia kerana ia belum diarkibkan, LGWR tidak boleh terus berfungsi.
Apabila pengguna mengeluarkan kenyataan COMMIT, LGWR akan meletakkan rekod komit dalam penimbal log buat semula dan segera menulis rekod itu ke cakera bersama-sama log buat semula transaksi. Perubahan yang sepadan dengan blok data ditangguhkan sehingga ia boleh ditulis dengan lebih cekap. Ini dipanggil "mekanisme komitmen cepat". Tulisan atom bagi entri buat semula yang mengandungi rekod komit transaksi ialah peristiwa tunggal yang menentukan sama ada transaksi telah dilakukan.
Oracle DB mengembalikan kod kejayaan untuk transaksi yang dilakukan walaupun penimbal data belum lagi ditulis ke cakera.
Jika lebih banyak ruang penimbal diperlukan, LGWR kadangkala akan menulis entri log buat semula sebelum melakukan transaksi. Entri ini menjadi kekal hanya jika urus niaga itu dilakukan kemudian. Apabila pengguna melakukan transaksi, transaksi diberikan nombor perubahan sistem (SCN), yang Oracle DB merekodkan dalam log buat semula bersama-sama dengan entri buat semula transaksi. SCN direkodkan dalam log buat semula supaya operasi pemulihan boleh disegerakkan antara Kluster Aplikasi Sebenar dan pangkalan data yang diedarkan.
Apabila aktiviti tinggi, LGWR boleh menulis fail log buat semula dengan menggunakan komit kumpulan. Sebagai contoh, anggap pengguna menyerahkan transaksi. LGWR mesti menulis entri buat semula untuk transaksi ini ke cakera. Apabila ini berlaku, pengguna lain akan mengeluarkan kenyataan COMMIT. Walau bagaimanapun, LGWR tidak boleh menulis ke fail log semula untuk melakukan transaksi ini sehingga ia menyelesaikan operasi tulis sebelumnya. Selepas entri urus niaga pertama ditulis ke fail log buat semula, keseluruhan senarai entri buat semula untuk urus niaga yang belum selesai (belum dilakukan) boleh ditulis ke cakera dalam satu operasi, yang lebih cepat daripada memproses entri transaksi individu secara individu. O diperlukan. Akibatnya, Oracle DB boleh meminimumkan I/O cakera dan memaksimumkan prestasi LGWR. Jika kadar permintaan komit adalah tinggi secara konsisten, setiap operasi tulis daripada penimbal log buat semula (dilakukan oleh LGWR) mungkin mengandungi berbilang rekod komit.
"Titik pemeriksaan" ialah struktur data yang mentakrifkan Nombor Perubahan Sistem (SCN) dalam urutan ulang pangkalan data . Pusat pemeriksaan direkodkan dalam fail kawalan dan dalam pengepala setiap fail data. Ia adalah elemen kritikal dalam operasi pemulihan.
Apabila pusat pemeriksaan berlaku, Oracle DB mesti mengemas kini pengepala semua fail data untuk merekodkan butiran pusat pemeriksaan. Ini dilakukan melalui proses CKPT. Proses CKPT tidak menulis blok ke cakera; SCN yang direkodkan dalam pengepala fail menjamin bahawa semua perubahan pada blok pangkalan data sebelum SCN itu ditulis ke cakera.
Pemantau SYSTEM_STATISTICS dalam Pengurus Perusahaan Oracle memaparkan statistik pusat pemeriksaan DBWR yang menunjukkan bilangan permintaan pusat pemeriksaan yang lengkap.
Proses Pemantauan Sistem (SMON) melakukan pemulihan apabila kejadian bermula (jika perlu). SMON juga bertanggungjawab untuk membersihkan segmen sementara yang tidak lagi digunakan. Jika mana-mana urus niaga yang ditamatkan dilangkau semasa pemulihan contoh kerana ralat membaca fail atau luar talian, SMON akan menyambung semula transaksi tersebut apabila ruang jadual atau fail kembali dalam talian.
SMON menyemak secara berkala untuk melihat sama ada proses itu diperlukan. Proses lain juga boleh memanggilnya apabila mereka mengesan keperluan untuk SMON.
Proses Monitor Proses (PMON) melaksanakan pemulihan proses apabila proses pengguna gagal. PMON bertanggungjawab untuk mengosongkan cache penimbal pangkalan data dan melepaskan sumber yang diduduki oleh proses pengguna. Contohnya, PMON menetapkan semula keadaan jadual transaksi aktif, melepaskan kunci dan mengalih keluar ID proses daripada senarai proses aktif.
PMON menyemak status proses penghantar dan pelayan secara berkala dan memulakan semula mana-mana proses penghantar dan pelayan yang telah berhenti berjalan (melainkan ditamatkan dengan sengaja oleh OracleDB). PMON juga mendaftarkan maklumat tentang kejadian dan proses penghantar dengan pendengar rangkaian.
Seperti SMON, PMON menyemak secara berkala untuk melihat sama ada ia juga boleh dipanggil oleh proses lain jika ia mengesan bahawa ia diperlukan.
Proses pemulihan (RECO) ialah proses latar belakang untuk konfigurasi pangkalan data teragih yang secara automatik menyelesaikan kegagalan yang melibatkan pemprosesan transaksi teragih. Proses RECO instance bersambung secara automatik ke pangkalan data lain yang terlibat dalam pemprosesan transaksi teragih yang dipersoalkan. Apabila proses RECO mewujudkan semula sambungan antara pelayan pangkalan data yang terlibat, ia secara automatik menyelesaikan semua urus niaga yang bermasalah dan mengalih keluar daripada jadual transaksi tertunda setiap pangkalan data semua transaksi yang sepadan dengan transaksi bermasalah yang diselesaikan.
Jika proses RECO tidak dapat menyambung ke pelayan jauh, RECO akan cuba menyambung semula secara automatik selepas selang masa tertentu. Walau bagaimanapun, RECO akan menunggu lebih lama (secara eksponen) sebelum cuba menyambung semula.
Selepas suis log berlaku, proses pengarkiban (ARCn) menyalin fail log semula ke peranti storan yang ditentukan. Proses ARCn hanya wujud apabila pangkalan data berada dalam mod ARCHIVELOG dan pengarkiban automatik didayakan.
Jika anda menjangkakan beban kerja pengarkiban yang berat (seperti semasa pemuatan kumpulan data), anda boleh meningkatkan bilangan maksimum proses arkib menggunakan parameter permulaan LOG_ARCHIVE_MAX_PROCESSES. Pernyataan ALTER SYSTEM boleh menukar nilai parameter ini secara dinamik untuk menambah atau mengurangkan bilangan proses ARCn.
Fail yang membentuk Oracle DB boleh dibahagikan kepada kategori berikut:
• Fail Kawalan: Mengandungi data yang berkaitan dengan pangkalan data itu sendiri, iaitu maklumat struktur pangkalan data fizikal. Fail-fail ini penting kepada pangkalan data. Tanpa fail ini, fail data tidak boleh dibuka untuk mengakses data dalam pangkalan data.
• Fail data: Mengandungi data pengguna atau aplikasi untuk pangkalan data, serta metadata dan kamus data
• Fail log semula dalam talian: Digunakan sebagai contoh pemulihan pangkalan data. Jika pelayan pangkalan data ranap tetapi tiada fail data hilang, contoh boleh menggunakan maklumat dalam fail ini untuk memulihkan pangkalan data.
Fail tambahan berikut adalah penting untuk berjaya menjalankan pangkalan data:
• Fail parameter: Digunakan untuk menentukan konfigurasi apabila tika dimulakan
• Fail kata laluan: Membenarkan sysdba, sysoper dan sysasm menyambung ke contoh dari jauh dan melaksanakan tugas pentadbiran
• Fail sandaran: digunakan untuk pemulihan pangkalan data. Fail sandaran biasanya dipulihkan jika fail asal rosak atau dipadam kerana kegagalan media atau ralat pengguna.
• Fail log buat semula diarkibkan: Mengandungi sejarah masa nyata perubahan data (buat semula) yang berlaku pada tika. Menggunakan sandaran fail dan pangkalan data ini, fail data yang hilang boleh dipulihkan. Dalam erti kata lain, log arkib boleh memulihkan fail data yang dipulihkan.
• Fail jejak: Setiap pelayan dan proses latar belakang boleh menulis ke fail surih yang berkaitan. Apabila proses mengesan ralat dalaman, proses membuang maklumat tentang ralat ke dalam fail surih yang sesuai. Beberapa maklumat yang ditulis pada fail surih disediakan untuk pentadbir pangkalan data, manakala maklumat lain disediakan untuk Perkhidmatan Sokongan Oracle.
• Fail log amaran: Fail ini mengandungi entri surih khas. Log amaran pangkalan data ialah log mesej dan log ralat yang disenaraikan dalam susunan kronologi. Oracle mengesyorkan anda menyemak log amaran secara berkala.
Slaid ini menerangkan hubungan antara pangkalan data, ruang jadual dan fail data Hubungannya ialah dijelaskan. Setiap pangkalan data dibahagikan secara logik kepada dua atau lebih ruang jadual. Satu atau lebih fail data dicipta secara eksplisit dalam setiap ruang jadual untuk menyimpan secara fizikal data semua struktur logik dalam ruang jadual. Untuk ruang meja SEMENTARA, fail data tidak dibuat, tetapi fail
sementara dibuat. Fail data ruang jadual boleh disimpan secara fizikal menggunakan mana-mana teknologi storan yang disokong.
Pangkalan data dibahagikan kepada berbilang unit storan logik, dipanggil "ruang jadual", yang digunakan untuk mengumpulkan struktur logik atau fail data yang berkaitan. Sebagai contoh, ruang jadual biasanya mengumpulkan semua segmen aplikasi ke dalam satu kumpulan untuk memudahkan beberapa operasi pengurusan.
Pangkalan data dibahagikan kepada "ruang jadual", yang merupakan unit storan logik yang boleh digunakan untuk mengumpulkan struktur logik yang berkaitan bersama-sama. Setiap pangkalan data secara logik dibahagikan kepada dua atau lebih ruang jadual: ruang jadual SYSTEM dan SYSAUX. Satu atau lebih fail data dicipta secara eksplisit dalam setiap ruang jadual untuk menyimpan secara fizikal data semua struktur logik dalam ruang jadual.
Segmen 160 KB merangkumi dua fail data dan terdiri daripada dua takat. Tahap pertama dalam fail data pertama dan bersaiz 64 KB; tahap kedua adalah dalam fail data kedua dan bersaiz 96 KB; Kedua-dua takat terdiri daripada beberapa blok Oracle 8Kb bersebelahan.
Nota: Anda boleh membuat ruang jadual fail yang besar, yang mengandungi hanya satu fail, yang biasanya sangat besar. Fail boleh mencapai saiz maksimum yang dibenarkan oleh seni bina ID baris. Saiz maksimum ini ialah saiz blok ruang meja didarab dengan 236, atau jika saiz blok ialah 32 KB, saiz maksimum ialah 128 TB. Ruang jadual fail kecil tradisional (lalai) boleh mengandungi berbilang fail data, tetapi fail ini tidak begitu besar.
Data Oracle DB disimpan dalam "blok data", yang merupakan tahap butiran terendah. Blok data sepadan dengan bilangan bait tertentu ruang fizikal pada cakera. Saiz blok data setiap ruang jadual ditentukan apabila ruang jadual dibuat. Pangkalan data menggunakan dan memperuntukkan ruang pangkalan data percuma dalam unit blok data Oracle.
Tahap seterusnya ke bawah ruang pangkalan data logik ialah "daerah". Satu tahap ialah bilangan tertentu blok bersebelahan data Oracle (diperolehi daripada satu peruntukan) yang digunakan untuk menyimpan jenis maklumat tertentu. Sekatan data Oracle dalam satu tahap adalah secara logik bersebelahan, tetapi boleh disebarkan secara fizikal di lokasi yang berbeza pada cakera (jalur RAID dan pelaksanaan sistem fail boleh menyebabkan tingkah laku ini).
Tahap atas kawasan dalam storan pangkalan data logik dipanggil "segmen". Segmen ialah satu set kawasan yang diperuntukkan untuk struktur logik tertentu. Contohnya:
• Segmen data: Setiap jadual bukan berkelompok, bukan tersusun indeks mempunyai segmen data, kecuali jadual luaran, jadual sementara global dan jadual terbahagi, setiap satunya mempunyai segmen atau Berbilang. Semua data dalam jadual disimpan dalam takat segmen data yang sepadan. Untuk jadual partitioned, terdapat satu segmen data untuk setiap partition. Setiap kluster juga mempunyai segmen data. Data untuk setiap jadual dalam kelompok disimpan dalam segmen data kelompok.
• Segmen Indeks: Setiap indeks mempunyai segmen indeks yang menyimpan semua datanya. Untuk indeks partitioned, terdapat satu segmen indeks untuk setiap partition.
• Buat asal segmen: Sistem mencipta ruang jadual UNDO untuk setiap contoh pangkalan data. Ruang meja ini mengandungi sejumlah besar segmen pemulihan yang digunakan untuk menyimpan maklumat pemulihan sementara. Maklumat dalam segmen pemulihan digunakan untuk menjana maklumat pangkalan data konsisten baca untuk melancarkan transaksi tanpa komitmen pengguna semasa pemulihan pangkalan data.
• Segmen Sementara: Segmen sementara dicipta oleh Oracle DB apabila pernyataan SQL memerlukan kawasan kerja sementara untuk menyelesaikan pelaksanaan. Selepas penyataan selesai pelaksanaan, takat segmen sementara dikembalikan kepada contoh untuk kegunaan masa hadapan. Anda boleh menentukan ruang jadual sementara lalai untuk setiap pengguna, atau menentukan ruang jadual sementara lalai yang digunakan dalam skop pangkalan data.
Nota: Terdapat juga beberapa jenis segmen lain yang tidak disenaraikan di atas. Selain itu, terdapat beberapa objek skema, seperti paparan, pakej dan pencetus, yang tidak dianggap sebagai segmen walaupun ia adalah objek pangkalan data. Segmen mempunyai peruntukan ruang cakera yang berasingan. Objek lain disimpan sebagai baris dalam segmen metadata sistem.
Pelayan Oracle DB memperuntukkan ruang secara dinamik. Jika takat sedia ada dalam segmen penuh, takat tambahan akan ditambah. Oleh kerana takat diperuntukkan mengikut keperluan, takat dalam segmen mungkin bersebelahan atau mungkin tidak pada cakera, dan ia mungkin datang daripada fail data berbeza yang dimiliki oleh ruang jadual yang sama.
Pengurusan Storan Automatik (ASM) menyediakan sistem fail menegak dan penyepaduan pengurus volum untuk fail Oracle DB. ASM boleh mengurus komputer berbilang pemprosesan (SMP) simetri tunggal, atau berbilang nod kluster untuk menyokong Kluster Aplikasi Sebenar Oracle (RAC).
Oracle ASM Cluster File System (ACFS) ialah sistem fail berskala berbilang platform dan teknologi pengurusan storan yang memanjangkan fungsi ASM untuk menyokong fail aplikasi di luar Oracle DB, seperti fail boleh laku, Laporan, BFILE, video, audio, teks, imej dan data fail aplikasi tujuan umum yang lain.
ASM mengedarkan beban input/output (I/O) merentas semua sumber yang ada, menghapuskan pengoptimuman manual I/O dan mengoptimumkan prestasi. ASM membantu DBA mengurus persekitaran pangkalan data dinamik dengan membenarkan DBA melaraskan peruntukan storan dengan meningkatkan saiz pangkalan data tanpa menutup pangkalan data.
ASM boleh mengekalkan salinan data yang berlebihan untuk memberikan toleransi kesalahan, atau ia boleh dibina di atas mekanisme storan yang disediakan oleh vendor. Pengurusan data dicapai dengan memilih metrik kebolehpercayaan dan prestasi yang diperlukan untuk setiap jenis data, dan bukannya interaksi manual berdasarkan fail demi fail.
Dengan mengautomasikan tugas storan yang dilakukan secara manual, fungsi ASM menjimatkan masa DBA, sekali gus meningkatkan keupayaan pentadbir untuk mengurus lebih banyak pangkalan data yang lebih besar dengan kecekapan yang lebih tinggi.
ASM tidak menghalang sebarang fungsi pangkalan data sedia ada. Pangkalan data sedia ada boleh berfungsi seperti biasa. Fail baharu boleh dibuat sebagai fail ASM dan fail sedia ada boleh diuruskan seperti sedia ada atau dipindahkan ke ASM.
Gambar rajah di atas menggambarkan hubungan antara fail data Oracle DB dan komponen storan ASM. Tanda kaki gagak mewakili hubungan satu-dengan-banyak. Terdapat hubungan satu dengan satu antara fail data Oracle DB dan fail atau fail ASM yang disimpan dalam sistem fail sistem pengendalian.
Kumpulan cakera Oracle ASM ialah koleksi satu atau lebih cakera Oracle ASM yang diuruskan sebagai unit logik. Struktur data dalam kumpulan cakera adalah serba lengkap dan menggunakan sebahagian daripada ruang untuk keperluan metadata. Cakera Oracle ASM ialah peranti storan yang diperuntukkan untuk kumpulan cakera Oracle ASM, yang boleh menjadi cakera fizikal, partition,
nombor unit logik (LUN) dalam tatasusunan storan, volum logik (LV) atau fail yang disambungkan kepada rangkaian. Setiap cakera ASM dibahagikan kepada beberapa unit peruntukan ASM (AU), iaitu jumlah terkecil ruang cakera bersebelahan yang boleh diperuntukkan oleh ASM. Apabila anda mencipta kumpulan cakera ASM, anda boleh menetapkan saiz unit peruntukan ASM kepada 1, 2, 4, 8, 16, 32 atau 64 MB, bergantung pada tahap keserasian kumpulan cakera. Satu atau lebih unit peruntukan ASM membentuk rantau ASM. Kawasan Oracle ASM ialah storan mentah yang digunakan untuk menyimpan kandungan fail Oracle ASM. Fail Oracle ASM terdiri daripada satu atau lebih takat fail. Untuk menyokong fail ASM yang sangat besar, takat saiz boleh ubah boleh digunakan, dengan saiz takat sama dengan saiz AU 1x, 4x dan 16x.
Tutorial yang disyorkan: "Tutorial Video Oracle"
Atas ialah kandungan terperinci Penjelasan grafik terperinci seni bina pangkalan data oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!