Hưỡng dẫn backup và restore với MySQL (hoặc MariaDB) databases sử dụng command line

Đây là bài viết cơ bản giành cho những bạn mới sử dụng mysql chưa biết sử dụng command line để backup hoặc restore database trong quá trình sử dụng (miễn bàn với  bạn nào biết roài nhé :”> )

Yêu Cầu:

– OS: Centos 5, 6, 7

– Dịch vụ : Mysql Server version > 5

– Thông tin truy cập mysql (tuỳ ý đặt) ở đây là root / 123456

1. Backup databases:

Cú pháp :

mysqldump –opt -u [uname] -p [dbname] > [backupfile.sql]

Trong đó:

[uname] : User của database

[dbname]: tên database của bạn

[backupfile.sql]: Tên file backup muốn lưu

–opt : các tuỳ chọn khác

Trường hợp backup 1 database

# mysqldump ten_database_cua_ban -u root -pmysql123456 > /var/backup/data_duoc_backup_ra.sql

Trường hợp backup nhiều databases 1 lúc, ví dụ : db1, db2, db3

# mysqldump –database db1 db2 db3 -u root -pmysql123456 > /var/backup/nhieu_database.sql

Trường hợp bạn muốn backup toàn bộ database , thay cho việc phải liệt kê từng database, ta sử dụng –all-database

# mysqldump –all-database -u root -pmysql123456 > /var/backup/tat_ca_database.sql

Trường hợp backup đồng thời nén Gzip

mysqldump -u [uname] -p [dbname] | gzip -9 > [backupfile.sql.gz]

2. Restore database

Cú pháp:

mysql -u [uname] -p [dbname] < [backupfile.sql]

Trong đó:

[uname] : User của database

[dbname]: Tên của database

[backupfile.slq] : Tên file backup cần phục hồi

Trường hợp restore 1 database:

# mysql ten_database_cua_ban -u root -pmysql123456 < /var/backup/data_duoc_backup_ra.sql

Trường hợp restore toàn bộ database:

# mysql -u root -pmysql123456 < /var/backup/tat_ca_database.sql

Phục hồi database được nén

gunzip < [backupfile.sql.gz] | mysql -u [uname] -p [dbname]

3. Khởi động lại dịch vụ

– Sau khi backup/restore database xong, chúng ta cần khởi động lại dịch vụ mysql

# service mysqld restart

 

4. Kinh nghiệm cần lưu ý
– Theo kinh nghiệm của mình , nếu website của bạn có lượng truy cập lớn và tốc độ đọc ghi cao tầm vài GB trở lên thì việc backup sẽ gây ảnh hưởng đến người dùng. Do Mysql sẽ lock tables để backup, dẫn tới người dùng sẽ không thể truy xuất được database, sẽ có thông báo lỗi không thể connect được database hoặc website của bạn không thể load được

– File backup lớn thì dẫn tới tải trung bình của hệ thống cũng sẽ bị tăng cao, do đó bạn cần xây dựng Slave database và việc backup sẽ được đẩy ra slave database này thì sẽ không gây ảnh hưởng gì đến site hiện tại của bạn cũng như người dùng đang có

Thanks !

@betapcode

Bình luận về bài viết này

Trang web này sử dụng Akismet để lọc thư rác. Tìm hiểu cách xử lý bình luận của bạn.