Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
File log basis data MariaDB
Anda dapat memantau log kesalahan, log kueri lambat, dan log umum MariaDB. Log kesalahan MariaDB dihasilkan secara default; Anda dapat membuat log kueri lambat dan log umum dengan mengatur parameter di grup parameter DB. Amazon RDS merotasi semua file log MariaDB; interval untuk setiap jenis ditentukan sebagai berikut.
Anda dapat memantau log MariaDB secara langsung melalui konsol Amazon RDS, Amazon RDS API, Amazon RDS CLI, atau SDK. AWS Anda juga dapat mengakses log MariaDB dengan mengarahkan log ke tabel basis data di basis data utama dan mengkueri tabel tersebut. Anda dapat menggunakan utilitas mysqlbinlog untuk mengunduh log biner.
Untuk informasi selengkapnya tentang melihat, mengunduh, dan melihat log basis data berbasis file, lihat Memantau file log Amazon RDS.
Topik
Mengakses log kesalahan MariaDB
Log kesalahan MariaDB ditulis ke file <host-name>.err
Anda. Anda dapat melihat file ini dengan menggunakan konsol Amazon RDS, Anda juga dapat mengambil log menggunakan Amazon RDS API, Amazon RDS CLI, atau SDK. AWS File <host-name>.err
di-flush setiap 5 menit, dan kontennya ditambahkan ke mysql-error-running.log
. File mysql-error-running.log
lalu dirotasi setiap jam dan file per jam yang dihasilkan selama 24 jam terakhir dipertahankan. Setiap file log memiliki jam pembuatan (dalam UTC) yang ditambahkan pada namanya. File log juga memiliki stempel waktu yang membantu Anda menentukan kapan entri log ditulis.
MariaDB menulis ke log kesalahan hanya pada saat dinyalakan, dimatikan, dan saat mengalami kesalahan. Instans DB dapat memakan waktu berjam-jam atau berhari-hari tanpa perlu menulis entri baru ke log kesalahan. Jika Anda tidak melihat entri terbaru, berarti server tidak mengalami kesalahan yang mengakibatkan entri log.
Mengakses log umum dan kueri lambat MariaDB
Anda dapat menulis log umum dan log kueri lambat MariaDB ke file atau tabel basis data dengan mengatur parameter di grup parameter DB. Untuk informasi tentang pembuatan dan modifikasi grup parameter DB, lihat Menggunakan grup parameter. Anda harus mengatur parameter ini sebelum dapat melihat log kueri lambat atau log umum di konsol Amazon RDS atau dengan menggunakan Amazon RDS API, AWS CLI, atau AWS SDK.
Anda dapat mengontrol pengelogan MariaDB dengan menggunakan parameter dalam daftar ini:
-
slow_query_log
ataulog_slow_query
: Untuk membuat log kueri lambat, atur ke 1. Default-nya adalah 0. -
general_log
: Untuk membuat log umum, atur ke 1. Default-nya adalah 0. -
long_query_time
ataulog_slow_query_time
: Untuk mencegah kueri yang berjalan cepat agar tidak masuk ke log kueri lambat, tentukan nilai untuk waktu proses kueri terpendek yang akan dicatat, dalam hitungan detik. Nilai default-nya adalah 10 detik; nilai minimumnya adalah 0. Jika log_output = FILE, Anda dapat menentukan nilai titik mengambang yang masuk ke resolusi mikrodetik. Jika log_output = TABLE, Anda harus menentukan nilai integer dengan resolusi kedua. Hanya kueri yang waktu jalannya melebihilog_slow_query_time
nilailong_query_time
atau yang dicatat. Misalnya, pengaturanlong_query_time
ataulog_slow_query_time
ke 0,1 mencegah kueri apa pun yang berjalan kurang dari 100 milidetik untuk dicatat. -
log_queries_not_using_indexes
: Untuk mencatat semua kueri yang tidak menggunakan indeks ke log kueri lambat, atur parameter ini ke 1. Nilai default-nya adalah 0. Kueri yang tidak menggunakan indeks dicatat meskipun runtime-nya kurang dari nilai parameterlong_query_time
. -
log_output
: Anda dapat menentukan salah satu opsi berikut untuk parameteroption
log_output
:-
TABLE (default)– Menulis kueri umum ke tabel
mysql.general_log
, dan kueri lambat ke tabelmysql.slow_log
. -
FILE– Menulis log umum dan log kueri lambat ke sistem file. File log dirotasi setiap jam.
-
NONE– Menonaktifkan pengelogan.
-
Saat pengelogan diaktifkan, Amazon RDS merotasi log tabel atau menghapus file log secara berkala. Langkah ini merupakan tindakan pencegahan untuk mengurangi kemungkinan file log besar memblokir penggunaan basis data atau memengaruhi performa. Rotasi dan penghapusan pendekatan pengelogan FILE
dan TABLE
sebagai berikut:
Saat pengelogan
FILE
diaktifkan, file log akan diperiksa setiap jam dan file log yang lebih lama dari 24 jam akan dihapus. Dalam beberapa kasus, ukuran file log gabungan yang tersisa setelah penghapusan mungkin melebihi ambang batas 2 persen dari ruang yang dialokasikan oleh instans DB. Dalam kasus ini, file log paling besar akan dihapus hingga ukuran file log tidak lagi melebihi ambang batas.Saat pengelogan
TABLE
diaktifkan, dalam beberapa kasus tabel log dirotasi setiap 24 jam. Rotasi ini terjadi jika ruang yang digunakan oleh log tabel lebih dari 20 persen dari ruang penyimpanan yang dialokasikan. Ini juga terjadi jika ukuran semua log yang digabungkan lebih besar dari 10 GB. Jika jumlah ruang yang digunakan untuk instans DB lebih besar dari 90 persen dari ruang penyimpanan yang dialokasikan untuk instans DB, ambang untuk rotasi log akan berkurang. Tabel log ini kemudian dirotasi jika ruang yang digunakan oleh log tabel lebih dari 10 persen dari ruang penyimpanan yang dialokasikan. Tabel ini juga dirotasi jika ukuran semua log yang digabungkan lebih besar dari 5 GB.Saat tabel log dirotasi, tabel log saat ini disalin ke tabel log cadangan dan entri di tabel log saat ini dihapus. Jika sudah ada, tabel log cadangan akan dihapus sebelum tabel log saat ini disalin ke cadangan. Anda dapat meminta tabel log cadangan jika diperlukan. Tabel log cadangan untuk tabel
mysql.general_log
bernamamysql.general_log_backup
. Tabel log cadangan untuk tabelmysql.slow_log
bernamamysql.slow_log_backup
.Anda dapat merotasi tabel
mysql.general_log
dengan mengikuti prosedurmysql.rds_rotate_general_log
. Anda dapat merotasimysql.slow_log
tabel dengan mengikutimysql.rds_rotate_slow_log
prosedur.Log tabel dirotasi selama upgrade versi basis data.
Amazon RDS mencatat rotasi log TABLE
dan FILE
dalam peristiwa Amazon RDS dan mengirimkan pemberitahuan kepada Anda.
Untuk bekerja dengan log dari konsol Amazon RDS, Amazon RDS API, Amazon RDS CLI, AWS atau SDK, setel parameter ke FILE. log_output
Seperti log kesalahan MariaDB, file log ini dirotasi setiap jam. File log yang dihasilkan selama 24 jam sebelumnya akan dipertahankan.
Untuk informasi selengkapnya tentang kueri lambat dan log umum, buka topik berikut di dokumentasi MariaDB:
Menerbitkan log MariaDB ke Log Amazon CloudWatch
Anda dapat mengonfigurasi instans MariaDB Anda untuk mempublikasikan data log ke grup log di Amazon Logs. CloudWatch Dengan CloudWatch Log, Anda dapat melakukan analisis real-time dari data log, dan menggunakannya CloudWatch untuk membuat alarm dan melihat metrik. Anda dapat menggunakan CloudWatch Log untuk menyimpan catatan log Anda dalam penyimpanan yang sangat tahan lama.
Amazon RDS menerbitkan masing-masing log basis data MariaDB sebagai aliran basis data terpisah di grup log. Misalnya, misalkan Anda mengonfigurasi fungsi ekspor untuk menyertakan log kueri lambat. Kemudian data kueri lambat disimpan dalam log stream kueri lambat di grup log /aws/rds/instance/
.my_instance
/slowquery
Log kesalahan diaktifkan secara default. Tabel berikut merangkum persyaratan untuk log MariaDB lainnya.
Log | Persyaratan |
---|---|
Log audit |
Instans DB harus menggunakan grup opsi kustom dengan opsi |
Log umum |
Instans DB harus menggunakan grup parameter kustom dengan pengaturan parameter |
Log kueri lambat |
Instans DB harus menggunakan grup parameter khusus dengan pengaturan parameter |
Output log |
Instans DB harus menggunakan grup parameter khusus dengan pengaturan parameter |
Untuk memublikasikan log MariaDB CloudWatch ke Log dari konsol
Buka konsol Amazon RDS di https://console.aws.amazon.com/rds/
. -
Di panel navigasi, pilih Basis Data, lalu pilih instans DB yang ingin diubah.
-
Pilih Ubah.
-
Di bagian Log ekspor, pilih log yang ingin Anda mulai terbitkan ke CloudWatch Log.
-
Pilih Lanjutkan, lalu pilih Ubah Instans DB di halaman ringkasan.
Anda dapat mempublikasikan log MariaDB dengan file. AWS CLI Anda dapat memanggil perintah modify-db-instance
dengan parameter berikut:
-
--db-instance-identifier
-
--cloudwatch-logs-export-configuration
catatan
Perubahan pada opsi --cloudwatch-logs-export-configuration
selalu diterapkan ke instans DB secara langsung. Oleh karena itu, opsi --apply-immediately
dan --no-apply-immediately
tidak akan berpengaruh.
Anda juga dapat mempublikasikan log MariaDB dengan memanggil perintah berikut: AWS CLI
Jalankan salah satu AWS CLI perintah ini dengan opsi berikut:
-
--db-instance-identifier
-
--enable-cloudwatch-logs-exports
-
--db-instance-class
-
--engine
Opsi lain mungkin diperlukan tergantung pada AWS CLI perintah yang Anda jalankan.
contoh
Contoh berikut memodifikasi instance MariaDB yang ada untuk mempublikasikan file log ke Log. CloudWatch Nilai --cloudwatch-logs-export-configuration
adalah objek JSON. Kunci untuk objek ini adalah EnableLogTypes
, dan nilainya adalah serangkaian string dengan setiap kombinasi audit
, error
, general
, dan slowquery
.
Untuk Linux, macOS, atau Unix:
aws rds modify-db-instance \ --db-instance-identifier
mydbinstance
\ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
Untuk Windows:
aws rds modify-db-instance ^ --db-instance-identifier
mydbinstance
^ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit","error","general","slowquery"]}'
contoh
Perintah berikut membuat instance MariaDB dan menerbitkan file log ke Log. CloudWatch Nilai --enable-cloudwatch-logs-exports
adalah rangkaian string JSON. String dapat berupa kombinasi audit
, error
, general
, dan slowquery
.
Untuk Linux, macOS, atau Unix:
aws rds create-db-instance \ --db-instance-identifier
mydbinstance
\ --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' \ --db-instance-classdb.m4.large
\ --enginemariadb
Untuk Windows:
aws rds create-db-instance ^ --db-instance-identifier
mydbinstance
^ --enable-cloudwatch-logs-exports '["audit","error","general","slowquery"]' ^ --db-instance-classdb.m4.large
^ --enginemariadb
Anda dapat menerbitkan log MariaDB dengan RDS API. Anda dapat memanggil operasi ModifyDBInstance
dengan parameter berikut:
-
DBInstanceIdentifier
-
CloudwatchLogsExportConfiguration
catatan
Perubahan pada parameter CloudwatchLogsExportConfiguration
selalu diterapkan ke instans DB secara langsung. Oleh karena itu, parameter ApplyImmediately
tidak memiliki dampak.
Anda juga dapat menerbitkan log MariaDB dengan memanggil operasi RDS API berikut:
Jalankan salah satu operasi RDS API ini dengan parameter berikut:
-
DBInstanceIdentifier
-
EnableCloudwatchLogsExports
-
Engine
-
DBInstanceClass
Parameter lain mungkin diperlukan tergantung pada AWS CLI perintah yang Anda jalankan.
Ukuran file log
Ukuran file log umum, log kesalahan, dan log kueri lambat MariaDB dibatasi hingga tidak lebih dari 2 persen dari ruang penyimpanan yang dialokasikan untuk instans DB. Untuk mempertahankan ambang batas ini, log secara otomatis dirotasi setiap jam dan file log yang lebih lama dari 24 jam dihapus. Jika ukuran file log gabungan melebihi ambang batas setelah menghapus file log lama, file log paling besar akan dihapus hingga ukuran file log tidak lagi melebihi ambang batas.
Mengelola log MariaDB berbasis tabel
Anda dapat mengarahkan log kueri lambat dan log umum ke tabel di instans DB. Untuk melakukannya, buat grup parameter DB dan atur parameter server log_output
ke TABLE
. Kueri umum lalu dicatat ke tabel mysql.general_log
, dan kueri lambat dicatat ke tabel mysql.slow_log
. Anda dapat mengueri tabel untuk mengakses informasi log. Mengaktifkan pencatatan ini akan meningkatkan jumlah data yang akan ditulis ke basis data. Hal ini dapat menurunkan performa.
Log umum dan log kueri lambat dinonaktifkan secara default. Untuk mengaktifkan pencatatan ke tabel, Anda juga harus mengatur parameter server berikut ke1
:
general_log
slow_query_log
ataulog_slow_query
Tabel log terus bertambah hingga aktivitas pencatatan terkait dinonaktifkan dengan mengatur ulang parameter yang sesuai ke 0
. Banyak data yang sering terakumulasi seiring berjalannya waktu, yang dapat menghabiskan banyak persentase ruang penyimpanan yang dialokasikan. Amazon RDS tidak mengizinkan Anda memotong tabel log, tetapi Anda dapat memindahkan kontennya. Merotasi tabel akan menyimpan kontennya ke tabel cadangan, lalu membuat tabel log kosong yang baru. Anda dapat merotasi tabel log secara manual dengan mengikuti prosedur perintah berikut, dengan permintaan perintah ditunjukkan oleh PROMPT>
:
PROMPT> CALL mysql.rds_rotate_slow_log; PROMPT> CALL mysql.rds_rotate_general_log;
Untuk menghapus data lama sepenuhnya dan mengosongkan kembali ruang disk, lakukan prosedur yang sesuai dua kali secara berurutan.
Format pengelogan biner
MariaDB di Amazon RDS mendukung format pengelogan biner berbasis baris, berbasis pernyataan, dan campuran. Format pengelogan biner default adalah campuran. Untuk detail tentang format log biner MariaDB lainnya, lihat Format log biner
Jika Anda berencana menggunakan replikasi, format pengelogan biner itu penting. Hal ini karena menentukan catatan perubahan data yang dicatat di sumber dan dikirim ke target replikasi. Untuk informasi tentang kelebihan dan kelemahan format pengelogan biner lainnya untuk replikasi, lihat Kelebihan dan kelemahan replikasi berbasis pernyataan dan berbasis baris
penting
Mengatur format pengelogan biner ke berbasis baris dapat menghasilkan file log biner yang sangat besar. File log biner besar mengurangi jumlah penyimpanan yang tersedia untuk instans DB. File ini juga dapat meningkatkan jumlah waktu untuk melakukan operasi pemulihan instans DB.
Replikasi berbasis pernyataan dapat menyebabkan inkonsistensi antara instans DB sumber dan replika baca. Untuk informasi selengkapnya, lihat Pernyataan yang tidak aman untuk replikasi berbasis pernyataan
Untuk mengatur format pengelogan biner MariaDB
Masuk ke AWS Management Console dan buka konsol Amazon RDS di https://console.aws.amazon.com/rds/.
Di panel navigasi, pilih Grup parameter.
Pilih grup parameter yang digunakan oleh instans DB yang ingin diubah.
Anda tidak dapat mengubah grup parameter default. Jika instans DB menggunakan grup parameter default, buat grup parameter baru dan hubungkan dengan instans DB.
Untuk informasi selengkapnya tentang grup parameter DB, lihat Menggunakan grup parameter.
Untuk Tindakan grup parameter, pilih Edit.
Atur parameter
binlog_format
ke format pengelogan biner pilihan Anda (ROW, STATEMENT, atau MIXED).Pilih Simpan perubahan untuk menyimpan pembaruan ke grup parameter DB.
Mengakses log biner MariaDB
Anda dapat menggunakan utilitas mysqlbinlog untuk mengunduh log biner dalam format teks dari instans DB MariaDB. Log biner diunduh ke komputer lokal Anda. Untuk informasi selengkapnya tentang penggunaan utilitas mysqlbinlog, buka Menggunakan mysqlbinlog
Untuk menjalankan utilitas mysqlbinlog terhadap instans Amazon RDS, gunakan opsi berikut:
-
Tentukan opsi
--read-from-remote-server
. -
--host
: Tentukan nama DNS dari titik akhir instans. -
--port
: Tentukan port yang digunakan oleh instans. -
--user
: Tentukan pengguna MariaDB yang telah diberikan izin slave replikasi. -
--password
: Tentukan kata sandi untuk pengguna, atau menghapus nilai kata sandi agar utilitas meminta Anda memasukkan kata sandi. -
--result-file
: Tentukan file lokal yang menerima output. -
Tentukan nama satu atau beberapa file log biner. Untuk mendapatkan daftar log yang tersedia, gunakan perintah SQL SHOW BINARY LOGS.
Untuk informasi selengkapnya tentang opsi mysqlbinlog, buka opsi mysqlbinlog
Berikut ini adalah contohnya:
Untuk Linux, macOS, atau Unix:
mysqlbinlog \ --read-from-remote-server \ --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com \ --port=3306 \ --user ReplUser \ --password <password> \ --result-file=/tmp/binlog.txt
Untuk Windows:
mysqlbinlog ^ --read-from-remote-server ^ --host=mariadbinstance1.1234abcd.region.rds.amazonaws.com ^ --port=3306 ^ --user ReplUser ^ --password <password> ^ --result-file=/tmp/binlog.txt
Amazon RDS biasanya membersihkan log biner sesegera mungkin. Namun, log biner harus tetap tersedia di instans untuk diakses oleh mysqlbinlog. Untuk menentukan jumlah jam bagi RDS untuk mempertahankan log biner, gunakan prosedur tersimpan mysql.rds_set_configuration
. Tentukan periode dengan waktu yang cukup bagi Anda untuk mengunduh log. Setelah Anda mengatur periode retensi, pantau penggunaan penyimpanan untuk instans DB guna memastikan bahwa log biner yang dipertahankan tidak memakan terlalu banyak ruang penyimpanan.
Contoh berikut menetapkan periode retensi ke 1 hari.
call mysql.rds_set_configuration('binlog retention hours', 24);
Untuk menampilkan pengaturan saat ini, gunakan prosedur tersimpan mysql.rds_show_configuration
.
call mysql.rds_show_configuration;
Anotasi log biner
Di instans DB MariaDB, Anda dapat menggunakan peristiwa Annotate_rows
untuk menganotasi peristiwa baris dengan salinan kueri SQL yang menyebabkan peristiwa baris. Pendekatan ini memberikan fungsionalitas serupa untuk mengaktifkan parameter binlog_rows_query_log_events
di instans DB RDS for MySQL.
Anda dapat mengaktifkan anotasi log biner secara global dengan membuat grup parameter kustom dan mengatur parameter binlog_annotate_row_events
ke 1
. Anda juga dapat mengaktifkan anotasi pada tingkat sesi, dengan memanggil SET SESSION binlog_annotate_row_events = 1
. Gunakan replicate_annotate_row_events
untuk mereplikasi anotasi log biner instans replika jika pengelogan biner diaktifkan pada instans tersebut. Tidak ada hak istimewa khusus yang diperlukan untuk menggunakan pengaturan ini.
Berikut ini adalah contoh dari transaksi berbasis baris di MariaDB. Penggunaan pengelogan berbasis baris dipicu dengan mengatur tingkat isolasi transaksi ke read-committed.
CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; BEGIN INSERT INTO square(x, y) VALUES(5, 5 * 5); COMMIT;
Tanpa anotasi, entri log biner untuk transaksi terlihat seperti berikut:
BEGIN /*!*/; # at 1163 # at 1209 #150922 7:55:57 server id 1855786460 end_log_pos 1209 Table_map: `test`.`square` mapped to number 76 #150922 7:55:57 server id 1855786460 end_log_pos 1247 Write_rows: table id 76 flags: STMT_END_F ### INSERT INTO `test`.`square` ### SET ### @1=5 ### @2=25 # at 1247 #150922 7:56:01 server id 1855786460 end_log_pos 1274 Xid = 62 COMMIT/*!*/;
Pernyataan berikut memungkinkan anotasi tingkat sesi untuk transaksi yang sama ini, dan menonaktifkannya setelah melakukan transaksi:
CREATE DATABASE IF NOT EXISTS test; USE test; CREATE TABLE square(x INT PRIMARY KEY, y INT NOT NULL) ENGINE = InnoDB; SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED; SET SESSION binlog_annotate_row_events = 1; BEGIN; INSERT INTO square(x, y) VALUES(5, 5 * 5); COMMIT; SET SESSION binlog_annotate_row_events = 0;
Dengan anotasi, entri log biner untuk transaksi terlihat seperti berikut:
BEGIN /*!*/; # at 423 # at 483 # at 529 #150922 8:04:24 server id 1855786460 end_log_pos 483 Annotate_rows: #Q> INSERT INTO square(x, y) VALUES(5, 5 * 5) #150922 8:04:24 server id 1855786460 end_log_pos 529 Table_map: `test`.`square` mapped to number 76 #150922 8:04:24 server id 1855786460 end_log_pos 567 Write_rows: table id 76 flags: STMT_END_F ### INSERT INTO `test`.`square` ### SET ### @1=5 ### @2=25 # at 567 #150922 8:04:26 server id 1855786460 end_log_pos 594 Xid = 88 COMMIT/*!*/;