Thứ Bảy, 29 tháng 7, 2023

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.

Mục lục

  • I. Cách backup MySQL Database
    • 1. Backup một database duy nhất
    • 2. Backup nhiều database cùng lúc
    • 3. Backup tất cả database của user
    • 4. Chỉ backup database structure table
    • 5. Chỉ backup dữ liệu, không backup cấu trúc db
    • 6. Backup một table trong một database
    • 7. Backup nhiều table trong một database
    • 8. Backup thông qua remote đến server của database
  • II. Cách restore MySQL Database

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.

Bài viết này được đăng tại tranvanbinh.vn

1
# 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.

1
# 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.

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

Như bnạ thấy, mình đã backup 2 database tên là rsyslog và 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.

1
# 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.

1
# 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 và --no-create-info.

1
# 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.

1
# 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.

1
# 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.

1
# 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 mysqlimport và mysql để phục hồi.

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

1
# 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.

1
# 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.

1
# 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.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master