Wednesday, October 31, 2007

Hướng dẫn cài đặt replication cho MySQL.

Sao lưu dữ liệu là yêu cầu với bất cứ hệ thống lưu trữ nào để đảm bảo trong trường hợp mất dữ liệu do hỏng hóc gây ra.

MySQL có sẵn cơ chế sao lưu dữ liệu (replication) để tạo một bản sao của dữ liệu. Bài này sẽ hướng dẫn bạn cài đặt và cấu hình replication cho MySQL.

Giả sử bạn có hai máy Master và Slave với hai IP tương ứng là: 192.168.1.3 và 192.168.1.4
Trên master và slave đều đã cài đặt MySQL server.

1. Cấu hình master
Tạo user trên mysql để cho slave có thể kết nối vào được
mysql> GRANT REPLICATION,RELOAD,SUPER SLAVE ON *.* TO ‘repl’@’192.168.1.4’ IDENTIFIED BY ‘user_password’;
Cấu hình /etc/mysql/my.cnf

[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
server-id=1
# ten database
binlog_do_db =
database_name
Khởi động lại mysql
/etc/init.d/mysql restart

Khóa database cần đồng bộ để lấy trạng thái
mysql> use database_name
mysql> FLUSH TABLES WITH READ LOCK;
mysql > SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000195 | 7332719 | web10_db2 | |
+------------------+----------+--------------+------------------+
Backup database
mysqldump -u root -p --opt database_name> database_name.sql
Mở khóa database
mysql>
UNLOCK TABLES;
2.Cấu hình slave
Tạo database, database_name.sql được lấy từ master
mysql> CREATE DATABASE database_name;
mysql -u root -p database_name< /path/to/database_name.sql


#Configuration MySql Replication Slave /etc/mysql/my.cnf
server-id=2
master-host=192.168.1.3
master-user=repl
master-password=user_password
replicate-do-db=database_name
report-host=slave-on-192.168.1.4

Khởi động lại mysql
/etc/init.d/mysql restart
mysql> SLAVE STOP;

mysql> CHANGE MASTER TO MASTER_HOST='192.168.1.3', MASTER_USER='repl', MASTER_PASSWORD='', MASTER_LOG_FILE='mysql-bin.000195', MASTER_LOG_POS=7332719 ;

mysql>START SLAVE;

Done.

No comments: