Rumah >pangkalan data >Oracle >Bagaimana untuk menetapkan tamat masa dalam pangkalan data Oracle
Pangkalan data Oracle ialah pangkalan data hubungan yang sangat popular, tetapi semasa penggunaan, kami sering menghadapi masalah tamat masa sambungan pangkalan data Masalah ini boleh menyebabkan beberapa masalah seperti gangguan penghantaran data dan kemerosotan prestasi. Jadi, bagaimana untuk menetapkan tamat masa dalam pangkalan data Oracle? Artikel ini akan memperkenalkan anda kepada kaedah khusus.
1. Prinsip tetapan tamat masa
Dalam Oracle, tempoh tamat masa dilaksanakan melalui parameter tamat masa baca dan tulis SQLnet. SQLnet ialah komponen rangkaian Pangkalan Data Oracle yang menyediakan sokongan untuk komunikasi antara pelanggan dan pelayan. Apabila melaksanakan tamat masa, klien mengeluarkan permintaan Apabila pelayan tidak bertindak balas, pelanggan menunggu masa yang ditentukan Jika masa menunggu melebihi tamat masa yang ditentukan, sambungan akan terputus.
Biasanya, terdapat dua jenis tetapan tamat masa Oracle:
1 tamat masa peringkat sesi
Tamat masa peringkat sesi sah untuk satu sesi, melalui SESI ALTER. perintah untuk menetapkan.
2. Tamat masa tahap SQLNET
Tamat masa tahap SQLNET adalah sah untuk semua sesi bagi keseluruhan sambungan SQLNET dan ditetapkan dengan mengubah suai fail SQLNET.ORA. SQLNET.ORA ialah fail konfigurasi rangkaian Oracle, di mana parameter peringkat SQLNET boleh ditakrifkan.
Anda boleh memilih kaedah tetapan tamat masa yang sesuai mengikut situasi sebenar.
2. Tetapan tamat masa peringkat sesi
Dalam Oracle, anda boleh menggunakan arahan ALTER SESSION untuk menetapkan tamat masa peringkat sesi. Sintaksnya adalah seperti berikut:
SET SESI ALTER SQL_TRACE = TRUE | FALSE;
Antaranya, SQL_TRACE = TRUE bermaksud membolehkan mod penjejakan dalam mod ini, pangkalan data Oracle akan merekodkan pelaksanaan semua pernyataan SQL.
SET SESI UBAH SQL_TRACE = FALSE;
SQL_TRACE = FALSE bermaksud melumpuhkan mod pengesanan.
Anda boleh menetapkan parameter TIMED_STATISTICS kepada benar apabila SQL_TRACE = TRUE untuk mendayakan output maklumat statistik dalam mod penjejakan, seperti ditunjukkan di bawah:
UBAH SET SESI TIMED_STATISTICS = BENAR;
Untuk tamat masa tahap sesi, ini boleh dicapai dengan menetapkan parameter SQLNET.ALLOWED_LOGON_VERSION kepada 10 atau lebih tinggi.
SQLNET.ALLOWED_LOGON_VERSION ialah parameter SQLNET.ORA yang mentakrifkan versi pangkalan data Oracle yang boleh disahkan. Contohnya, apabila membenarkan Oracle 10g untuk pengesahan, anda boleh menetapkan parameter ini:
SQLNET.ALLOWED_LOGON_VERSION_CLIENT = 10
Ini akan membenarkan pelanggan yang disambungkan ke pangkalan data Oracle 10g untuk menyambung.
3. Tetapan tamat tahap SQLNET
Tamat masa tahap SQLNET adalah berdasarkan tetapan parameter fail SQLNET.ORA. Fail SQLNET.ORA biasanya terletak dalam direktori khusus pada klien atau pelayan Oracle.
Dalam fail SQLNET.ORA, anda boleh mengawal tamat masa tahap SQLNET dengan menetapkan dua parameter, iaitu SQLNET.INBOUND_CONNECT_TIMEOUT dan SQLNET.OUTBOUND_CONNECT_TIMEOUT.
SQLNET.INBOUND_CONNECT_TIMEOUT ialah parameter pada bahagian pelayan, digunakan untuk mengawal masa pelayan menerima sesi klien.
SQLNET.OUTBOUND_CONNECT_TIMEOUT ialah parameter klien, digunakan untuk mengawal masa apabila klien menyambung ke pelayan.
Dengan menetapkan dua parameter ini, anda boleh menghalang sambungan jangka panjang antara klien dan pelayan, dengan itu mengelakkan pembaziran terlalu banyak masa dan sumber pada sambungan.
Tambah parameter berikut dalam fail SQLNET.ORA untuk menetapkan SQLNET.INBOUND_CONNECT_TIMEOUT:
INBOUND_CONNECT_TIMEOUT_LISTENER = 120
Tambah parameter berikut dalam fail SQLNET.ORA untuk menetapkan SQLNET.OUTBOUND_CONNECT_TIMEOUT:
SQLNET.OUTBOUND_CONNECT_TIMEOUT=10
Perlu diambil perhatian bahawa apabila mengubah suai parameter dengan mengubah suai fail SQLNET.ORA, anda perlu memulakan semula pangkalan data Oracle atau pendengar Oracle untuk parameter berkuat kuasa.
4 Bagaimana untuk mengesahkan sama ada tetapan tamat masa berkuat kuasa
Selepas anda melengkapkan tetapan tamat masa Oracle, bagaimana untuk mengesahkan sama ada ia berkuat kuasa? Ini boleh disahkan melalui paparan dinamik v$session Oracle atau dengan mengesan pernyataan SQL.
Anda boleh melihat sesi semasa pengguna melalui pernyataan SQL berikut:
PILIH * DARI v$session DI MANA sid = '&sid';
&sid di sini ialah SID pengguna semasa, yang boleh diperolehi melalui pernyataan SQL berikut:
PILIH sid, siri# DARI v$session WHERE nama pengguna = '&nama pengguna' ;
Apabila SESSION yang ditentukan ditemui, parameter CONNECT_TIME dan IDLE_TIME bagi SESSION boleh disoal untuk menentukan sama ada ia berkesan.
Jika anda perlu mengesan penyataan SQL pangkalan data Oracle, anda boleh menetapkan parameter TRACEFILE_IDENTIFIER SESSION dan menggunakan alat Oracle Trace untuk mengesan pernyataan SQL. Perlu diingatkan di sini bahawa anda memerlukan kebenaran SYSDBA atau SYSOPER untuk melaksanakan operasi penjejakan.
Anda boleh mengesahkan sama ada tetapan tamat masa Oracle sah melalui dua kaedah di atas Jika anda mendapati tetapan itu tidak sah, anda boleh menyemak sama ada fail SQLNET.ORA dikonfigurasikan sepenuhnya dan betul.
Ringkasan
Dalam pangkalan data Oracle, memandangkan sambungan jangka panjang akan menjejaskan prestasi sistem dan faktor lain, sambungan perlu dikawal. Melalui arahan ALTER SESSION dan tetapan fail SQLNET.ORA yang diperkenalkan dalam artikel ini, anda boleh menetapkan tamat masa untuk pangkalan data Oracle. Sudah tentu, dalam penggunaan sebenar, adalah perlu untuk memilih kaedah tetapan tamat masa yang sesuai mengikut persekitaran yang berbeza dan keperluan sebenar.
Nota: Artikel ini merujuk kepada banyak bahan yang sangat baik Jika terdapat sebarang pelanggaran, sila hubungi kami untuk memadamkannya.
Atas ialah kandungan terperinci Bagaimana untuk menetapkan tamat masa dalam pangkalan data Oracle. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!