Əsas səhifə > Linux, MySQL backup and recovery > MySQL binary log-un aktiv edilməsi

MySQL binary log-un aktiv edilməsi

MySQL Binary log-u enable etmək istəyərkən mysql start olmadı. Başıma gələn bədbəxt hadisə sizə də olmasın deyə yazıram…
İlk öncə binary log nədir? From Documentation:
The binary log contains “events” that describe database changes such as table creation operations or changes to table data. It also contains events for statements that potentially could have made changes (for example, a DELETE which matched no rows), unless row-based logging is used. The binary log also contains information about how long each statement took that updated data

Və binary log-un 2 əsas yerdə istifadə olunur. Yenə də from Documentation:
The binary log has two important purposes:

1. For replication, the binary log on a master replication server provides a record of the data changes to be sent to slave servers. The master server sends the events contained in its binary log to its slaves, which execute those events to make the same data changes that were made on the master.

2. Certain data recovery operations require use of the binary log. After a backup has been restored, the events in the binary log that were recorded after the backup was made are re-executed. These events bring databases up to date from the point of the backup.

Bizim üçün indiki halda 2-ci bənd maraqlıdır. Qısaca onu deyim ki binary log vasitəsilə Point-in-Time (Incremental) Recovery icra olunur. MySQL backup and recovery haqqında mövzunu genişləndirəcəm təbii ki indiki halda sadəcə binary log-u necə enable edirlər ona baxırıq.

Deməli bunun üçün my.cnf faylına [mysqld] kataloqunun altından bunları yazırıq:

log_bin=/var/lib/mysql/data/mysql-bin
expire_logs_days=14
sync_binlog=1
binlog_format=row
log_bin_index=/var/lib/mysql/data/mysql-bin

1. log_bin=/var/lib/mysql/data/mysql-bin onu göstərir ki, bizim yaradılacaq binary log fayllarımızın adları mysql-bin-le başlayacaq. Məsələn mysql-bin.000003
2. log_bin_index=/var/lib/mysql/data/mysql-bin onu göstərir ki, mysql-bin.index adlı bir faylımız yaranacaq…bu fayl məqsədi: To keep track of which binary log files have been used, mysqld also creates a binary log index file that contains the names of all used binary log files..
3. expire_logs_days=14 hər 14 gündən bir köhnə binary log-lar avtomatik silinəcək.
4. sync_binlog=1 If the value of this variable is greater than 0, the MySQL server synchronizes its binary log to disk. Default qiymət =0-dır bu isə crash zamanı itkilərə yol aça bilər,ona görə də =1 yazmışıq.
5. binlog_format=row In row-based logging, the master writes events to the binary log that indicate how individual table rows are affected

my.cnf faylını Save edirik və mysql-i start etməyə çalışırıq.

[root@sh ~]# systemctl start mysqld.service
Job failed. See system journal and 'systemctl status' for details.

oops və dərhal log-a baxırıq:

/usr/libexec/mysqld: File '/var/lib/mysql/data/mysql-bin.000001' not found (Errcode: 13)
121225 22:29:02 [ERROR] Could not use /var/lib/mysql/data/mysql-bin for logging (error 13). Turning logging off for the whole duration of the MySQL server process. To turn it on again: fix the cause, shutdown the MySQL server and restart it.
121225 22:29:02 [ERROR] Aborting

Errorcode: 13
Vaxt itirmədən perror utility vasitəsilə bunun nə olduğuna baxırıq:

[root@sh ~]# perror 13
OS error code  13:  Permission denied

Permission denied bu bizə ipucu verir ki, problem MySQL-də yox məhz Linux-dadır yani OS imkan vermir ki MySQL /var/lib/mysql/data/ direktoriyasına nəsə yazsın.
Həlli:

[root@sh ~]# chown mysql:mysql /var/lib/mysql/data -R

MySQL-i start edirik:

[root@sh ~]# systemctl start mysqld.service

Və həqiqətən də ilk mysql-bin.000001 binary log-umuz yaradıldı.. Təbriklər🙂

[root@sh ~]# ls /var/lib/mysql/data
mysql-bin.000001  mysql-bin.index  sh-slow.log
  1. Hələlik heç bir şərh yoxdur
  1. No trackbacks yet.

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

%d bloqqer bunu bəyənir: