- Ia memeriksa satu kali setiap menit untuk melihat apakah ada cukup ruang untuk menulis baris saat ini. Jika ada cukup ruang, terus seolah-olah tidak ada yang terjadi.
- Setiap enam menit itu menulis sebuah entri ke file log, memperingatkan tentang kondisi disk penuh.
- Untuk melanjutkan, Anda hanya perlu membebaskan ruang disk yang cukup untuk memasukkan semua catatan.
- Untuk benang membatalkan, Anda harus menggunakan mysqladmin kill. Thread akan dibatalkan pada saat cek disk (dalam satu menit).
- Benang lain mungkin menunggu untuk tabel yang menyebabkan kondisi disk penuh. Jika Anda memiliki beberapa "terkunci" benang, membunuh satu thread yang menunggu pada kondisi disk penuh akan memungkinkan benang lain untuk melanjutkan.
A.4.4 Dimana MySQL Menyimpan File Sementara
MySQL menggunakan nilai variabel lingkungan TMPDIR sebagai nama path direktori di mana untuk menyimpan file-file sementara. Jika Anda tidak memiliki set TMPDIR, MySQL menggunakan default sistem, yang biasanya / tmp, / var / tmp, atau / usr / tmp. Jika filesystem yang berisi direktori file sementara Anda terlalu kecil, Anda dapat menggunakan opsi - tmpdir untuk mysqld untuk menentukan direktori di filesystem di mana Anda memiliki cukup ruang.Mulai dari MySQL 4.1, opsi - tmpdir dapat diatur untuk daftar beberapa jalur yang digunakan dalam round-robin fashion. Jalan harus dipisahkan dengan karakter titik dua (':') pada Unix dan karakter titik koma (';') pada Windows, NetWare, dan OS / 2 Catatan:. Untuk menyebarkan beban secara efektif, jalur ini harus ditempatkan pada disk fisik yang berbeda, tidak berbeda partisi dari disk yang sama.
Jika server MySQL bertindak sebagai budak replikasi, Anda tidak harus menetapkan - tmpdir untuk menunjuk ke sebuah direktori pada sistem berkas berbasis memori atau ke direktori yang akan dihapus ketika restart server host. Seorang budak replikasi membutuhkan file-file sementara untuk bertahan hidup mesin restart sehingga bisa meniru tabel sementara atau LOAD DATA INFILE operasi. Jika file dalam direktori file sementara yang hilang ketika restart server, replikasi akan gagal.
MySQL menciptakan semua file temporer sebagai file tersembunyi. Hal ini menjamin bahwa file-file sementara akan dihapus jika mysqld diakhiri. Kerugian dari menggunakan file tersembunyi adalah bahwa Anda tidak akan melihat file sementara besar yang mengisi filesystem di mana direktori file sementara berada.
Ketika menyortir (ORDER BY atau GROUP BY), MySQL biasanya menggunakan satu atau dua file sementara. Ruang disk maksimum yang diperlukan ditentukan oleh ekspresi berikut:
(Panjang dari apa yang diurutkan + sizeof (pointer baris)) * Jumlah baris yang cocok * 2Ukuran pointer baris biasanya empat byte, tetapi dapat tumbuh di masa depan untuk tabel yang sangat besar.
Untuk beberapa permintaan SELECT, MySQL juga menciptakan tabel SQL sementara. Ini tidak tersembunyi dan memiliki nama dalam bentuk SQL_ *.
ALTER TABLE membuat tabel sementara di direktori yang sama dengan tabel asli.
A.4.5 Bagaimana Melindungi atau Ubah File MySQL Socket / tmp / mysql.sock
Lokasi default untuk file socket Unix yang menggunakan server untuk komunikasi dengan klien lokal adalah / tmp / mysql.sock. Hal ini dapat menimbulkan masalah, karena pada beberapa versi Unix, siapapun dapat menghapus file di direktori / tmp.Pada sebagian besar versi Unix, Anda dapat melindungi direktori / tmp sehingga file dapat dihapus hanya oleh pemiliknya atau superuser (root). Untuk melakukan ini, mengatur bit lengket pada direktori / tmp dengan login sebagai root dan dengan menggunakan perintah berikut:
shell> chmod + t / tmpAnda dapat memeriksa apakah bit sticky diset dengan menjalankan ls-ld / tmp. Jika karakter izin terakhir adalah t, bit diatur.
Pendekatan lain adalah mengubah tempat di mana server membuat file socket Unix. Jika Anda melakukan ini, Anda juga harus membiarkan program klien mengetahui lokasi baru dari file. Anda dapat menentukan lokasi file dalam beberapa cara:
- Tentukan path dalam file opsi global atau lokal. Misalnya, masukkan baris berikut di / etc / my.cnf:
[Mysqld] socket = / path / to / socket [Client] socket = / path / to / socket
- Lihat Bagian 3.3.2, "Menggunakan File Option."
- Tentukan Opsi - soket pada baris perintah untuk mysqld_safe dan ketika Anda menjalankan program klien.
- Mengatur lingkungan MYSQL_UNIX_PORT variabel path dari file socket Unix.
- Kompilasi ulang MySQL dari source menggunakan standar Unix soket lokasi file yang berbeda. Tentukan path ke file dengan - with-unix-socket-path pilihan ketika Anda menjalankan mengkonfigurasi. Lihat Bagian 2.3.2, "Opsi configure Khas."
shell> mysqladmin - socket = / path / ke / socket versi
Zona Waktu Masalah A.4.6
Jika Anda memiliki masalah dengan SELECT NOW () mengembalikan nilai dalam GMT dan tidak waktu lokal Anda, Anda harus memberitahu server zona waktu Anda saat ini. Hal yang sama berlaku jika UNIX_TIMESTAMP () mengembalikan nilai salah. Hal ini harus dilakukan untuk lingkungan di mana server berjalan, misalnya, di mysqld_safe atau mysql.server. Lihat Lampiran B, "Variabel Lingkungan."Anda dapat mengatur zona waktu untuk server dengan - zona waktu = opsi timezone_name untuk mysqld_safe. Anda juga dapat mengaturnya dengan menyetel variabel lingkungan TZ sebelum Anda mulai mysqld.
Nilai-nilai yang diijinkan untuk - zona waktu atau TZ adalah bergantung pada sistem. Konsultasikan dokumentasi sistem pengoperasian untuk melihat apa nilai-nilai yang dapat diterima.
Tidak ada komentar:
Posting Komentar