Home > Quản trị Linux > Thủ thuật Linux > Các lệnh backup và restore MySQL Database dành cho DBA
Kênh Youtube chính thức của freetuts, các bạn hãy sub ủng hộ mình với nhé, từ giờ mình đang làm sạch lại nội dung học tập trên kênh này. Xem kênh

Các lệnh backup và restore MySQL Database dành cho DBA

Trong bài này mình sẽ giới thiệu các lệnh dùng để backup và restore MySQL Database dành cho Database Administration, phương pháp này chỉ dành cho những chuyên viên DBA.

Trong Linux, để backup MySQL thì chúng ta sử dụng lệnh mysqldump, còn để restore thì sử dụng lệnh mysqlimport. Đây là hai lệnh sử dụng rất nhiều trong việc quản lý MySQL.

I. Cách backup MySQL Database

mysqldump là một ứng dụng command line, nó được sử dụng để tạo ra file backup database ở local hoặc thông qua remote, kết quả của lệnh này là sẽ trả về một file db ở dạng SQL duy nhất.

Để backup với lệnh mysqldump thì điều kiện là database cần backup phải tồn tại trên server, và tài khoản bạn đang đăng nhập vào có quyền truy xuất vào database đó. Tất cả thông tin sẽ được nhập vào lệnh mysqldump qua cú pháp sau.

# mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

Trong đó:

  • [username] là tên đăng nhập vào MySQL có quyền truy xuất đến database
  • [password] là mật khẩu của username
  • [database_name] là tên của database cần backup
  • [dump_file.sql] là tên file backup được lưu lại. Bạn sẽ tải file này về máy tính của mình để sau này phục hồi lại.

1. Backup một database duy nhất

Để backup một database thì ta sử dụng cú pháp sau.

# mysqldump -u root -ptecmint rsyslog > rsyslog.sql

Trong lệnh này thì database cần backup là rsyslog, và file sau khi backup là rsyslog.sql.

2. Backup nhiều database cùng lúc

Nếu muốn backup nhiều database vào một file duy nhất thì bạn hãy nhập tên database cách nhau bởi khoảng trắng.

# mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql

Như bnạ thấy, mình đã backup 2 database tên là rsyslog syslog.

3. Backup tất cả database của user

Nếu bạn muốn backup tất cả database của một user thì sử dụng cú pháp sau.

# mysqldump -u root -ptecmint --all-databases > all-databases.sql

Tham số --all-databases sẽ cho biết bạn muốn backup mọi database của user ptecmint.

4. Chỉ backup database structure table

Nếu bạn chỉ muốn backup lại cấu trúc các table trong database thì sử dụng tham số -–no-data.

# mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql

5. Chỉ backup dữ liệu, không backup cấu trúc db

Nếu bạn muốn chỉ backup dữ liệu mà khong muốn backup cấu trúc của các table thì sử dụng hai tham số, đó là --no-create-db--no-create-info.

# mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql

6. Backup một table trong một database

Nếu chỉ muốn backup một table thôi thì hãy cung cấp tên database và tên table.

# mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql

Trong đó wordpress là tên database, còn wp_posts là tên table.

7. Backup nhiều table trong một database

Rất đơn giản, trường hợp này thì ta chỉ cần thêm danh sách table cần backup và cách nhau bởi khoảng trắng là được.

# mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql

Mình đã backup 2 table tên là wp_posts và wp_comments.

8. Backup thông qua remote đến server của database

Trường hợp này bạn phải cung cấp địa chỉ IP của server chứa database.

# mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql

Lưu ý là tài khoản và mật khẩu mà bạn cung cấp phải chuẩn xác nhé.

II. Cách restore MySQL Database

Ở phần I mình đã hướng dẫn xong các backup và kết quả là nó sẽ tạo ra một file .sql. Bây giờ muốn restore nó thì cực kì đơn giản, bạn có thể sử dụng PHP MyAdmin hoặc một công cụ quản lý DB nào đó cũng được. Tuy nhiên trong bài này mình sẽ hướng dẫn sử dụng lệnh mysqlimportmysql để phục hồi.

Đây là cú pháp sử dụng lệnh mysql.

# mysql -u [username] –p[password] [database_name] < [dump_file.sql]

Đầu tiên bạn phải chắc chắn rằng đã có một database trống nhé, nếu chưa có thì hãy tạo nó trước. Như ví dụ này mình đã có một database tên là rsyslog nên sẽ chạy lệnh sau để restore.

# mysql -u root -ptecmint rsyslog < rsyslog.sql

Trường hợp database của bạn đã tồn tại trên server và nó không rỗng thì có thể sử dụng lệnh mysqlimport.

# mysqlimport -u root -ptecmint rsyslog < rsyslog.sql

Tùy vào từng trường hợp mà bạn chọn giải pháp cho riêng mình nhé.

Trên là cách backup và restore MySQL Database bằng cách sử dụng thư viẹn mysqldum trong Linux. Chúc bạn thực hiện thành công.

giam gia tino jpg

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP