Cơ sở dữ liệu lớn mysqldump

Trong bài viết này, tôi sẽ giải thích các cách khác nhau để tạo bản sao lưu trong máy chủ cơ sở dữ liệu MySQL. Như chúng ta đã biết, dữ liệu là tài sản quý giá của tổ chức. Là quản trị viên cơ sở dữ liệu, công việc chính và quan trọng của chúng tôi là giữ cho dữ liệu luôn sẵn có và an toàn. Nếu hệ thống hoặc trung tâm dữ liệu bị lỗi, hỏng cơ sở dữ liệu và mất dữ liệu, chúng tôi phải có khả năng khôi phục nó trong SLA đã xác định

Các nền tảng cơ sở dữ liệu khác nhau cung cấp các phương pháp khác nhau để tạo bản sao lưu và khôi phục cơ sở dữ liệu. Nhiều nhà cung cấp cung cấp các giải pháp phần cứng và phần mềm hiện đại có thể giúp sao lưu cơ sở dữ liệu và có thể khôi phục cơ sở dữ liệu trong RTO và RPO đã xác định

Ở đây, chúng tôi sẽ không thảo luận về bất kỳ giải pháp sao lưu nào của nhà cung cấp bên thứ ba. Tôi sẽ giải thích các phương thức gốc được sử dụng để tạo bản sao lưu của cơ sở dữ liệu. Chúng tôi có thể tạo bản sao lưu của cơ sở dữ liệu MySQL bằng bất kỳ phương pháp nào sau đây

  1. Tạo bản sao lưu bằng tiện ích mysqldump
  2. Tạo bản sao lưu gia tăng bằng Nhật ký nhị phân
  3. Tạo bản sao lưu bằng cách sử dụng Bản sao nô lệ

Trong bài viết này, tôi sẽ giải thích cách chúng ta có thể sử dụng mysqldump để tạo bản sao lưu của cơ sở dữ liệu MySQL

Tạo sao lưu bằng tiện ích mysqldump

Mysqldump là một tiện ích dòng lệnh được sử dụng để tạo bản sao lưu logic của cơ sở dữ liệu MySQL. Nó tạo ra các Câu lệnh SQL có thể được sử dụng để tạo lại các đối tượng và dữ liệu cơ sở dữ liệu. Lệnh này cũng có thể được sử dụng để tạo đầu ra ở định dạng XML, văn bản được phân tách hoặc định dạng CSV

Lệnh này rất dễ sử dụng, nhưng vấn đề duy nhất xảy ra khi khôi phục cơ sở dữ liệu. Như tôi đã đề cập, khi chúng tôi tạo bản sao lưu của cơ sở dữ liệu MySQL, nó sẽ tạo một tệp sao lưu chứa các lệnh SQL cần thiết để xây dựng lại hoặc khôi phục cơ sở dữ liệu. Bây giờ, khi chúng ta khôi phục cơ sở dữ liệu, lệnh sẽ thực thi tất cả các Câu lệnh SQL để tạo bảng và chèn dữ liệu. Nếu bạn có một cơ sở dữ liệu lớn thì quá trình khôi phục sẽ mất nhiều thời gian để hoàn thành

Ghi chú. Theo mặc định, lệnh mysqldump không kết xuất cơ sở dữ liệu information_schema, performance_schema và cơ sở dữ liệu ndbinfo của cụm MySQL

Nếu bạn muốn bao gồm các bảng information_schema, bạn phải chỉ định rõ ràng tên của cơ sở dữ liệu trong lệnh mysqldump, đồng thời bao gồm tùy chọn —skip-lock-tables

Có rất nhiều tùy chọn và tính năng có thể được sử dụng với mysqldump. Bạn có thể xem danh sách đầy đủ các tùy chọn tại đây. Tôi sẽ đi đến một số tính năng cơ bản. Sau đây là cú pháp của tiện ích mysqldump

1

mysqldump -u [người dùng name] p [password] [options] [database_name] [tablename] > [dumpfilename.sql]

Các thông số như sau

  1. -u [tên người dùng]. Đó là tên người dùng để kết nối với máy chủ MySQL. Để tạo bản sao lưu bằng mysqldump, ‘Select‘ để kết xuất bảng, ‘Show View‘ cho chế độ xem, ‘Trigger‘ cho trình kích hoạt. Nếu bạn không sử dụng tùy chọn —giao dịch đơn lẻ, thì phải cấp đặc quyền 'Bảng khóa' cho người dùng
  2. -p [mật khẩu]. Mật khẩu hợp lệ của người dùng MySQL
  3. [quyền mua]. Tùy chọn cấu hình để tùy chỉnh sao lưu
  4. [tên cơ sở dữ liệu]. Tên của cơ sở dữ liệu mà bạn muốn sao lưu
  5. [tên bảng]. Đây là một tham số tùy chọn. Nếu bạn muốn sao lưu các bảng cụ thể, thì bạn có thể chỉ định tên trong lệnh
  6. “”: This character indicates whether we are generating the backup of the database or restoring the database. You can use “>” to generate the backup and “ C:\Sao lưu MySQL\sakila_20200424. sql

    Khi bạn chạy lệnh này, nó sẽ nhắc nhập mật khẩu. Cung cấp mật khẩu phù hợp. Xem hình ảnh sau

    Sau khi backup thành công, chúng ta mở file backup để xem nội dung của file backup. Mở vị trí sao lưu và nhấp đúp vào “sakila_20200424. tập tin sql”

    Như bạn có thể thấy trong hình trên, tệp sao lưu chứa các câu lệnh T-SQL khác nhau có thể được sử dụng để tạo lại các đối tượng

    Tạo bản sao lưu của nhiều cơ sở dữ liệu hoặc tất cả các cơ sở dữ liệu

    Ví dụ: bạn muốn tạo bản sao lưu của nhiều cơ sở dữ liệu. Bạn phải thêm tùy chọn —databases trong lệnh mysqldump. Lệnh sau sẽ tạo bản sao lưu của cơ sở dữ liệu “sakila” và “nhân viên” với cấu trúc và dữ liệu

    1

    mysqldump -u root -p --databases sakila employees > C:\Sao lưu MySQL\sakila_employees_20200424. sql

    Xem hình ảnh sau

    Tương tự, nếu bạn muốn tạo bản sao lưu của tất cả các cơ sở dữ liệu, bạn phải sử dụng tùy chọn –all-databases trong lệnh mysqldump. Lệnh sau sẽ tạo bản sao lưu của tất cả các cơ sở dữ liệu trong Máy chủ MySQL

    1

    mysqldump -u root -p --all-databases > C:\Sao lưu MySQL\all_databases_20200424. sql

    Xem hình ảnh sau

    Tạo bản sao lưu của cấu trúc cơ sở dữ liệu

    Nếu bạn muốn tạo bản sao lưu của cấu trúc cơ sở dữ liệu, thì bạn phải sử dụng tùy chọn –no-data trong lệnh mysqldump. Lệnh sau tạo bản sao lưu cấu trúc cơ sở dữ liệu của cơ sở dữ liệu sakila

    1

    mysqldump -u root -p --no-data sakila > C:\Sao lưu MySQL\sakila_objects_definition_20200424. sql

    Xem hình ảnh sau

    Tạo bản sao lưu của một bảng cụ thể

    Nếu bạn muốn tạo bản sao lưu của một bảng cụ thể, thì bạn phải chỉ định tên của các bảng sau tên của cơ sở dữ liệu. Lệnh sau tạo bản sao lưu của bảng diễn viên của cơ sở dữ liệu sakila

    1

    mysqldump -u root -p sakila actor payment > C:\Sao lưu MySQL\actor_payment_table_20200424. sql

    Nếu bạn muốn tạo bản sao lưu của nhiều bảng, thì bạn phải phân tách tên của các bảng bằng dấu cách, lệnh sau sẽ tạo bản sao lưu của diễn viên và bảng thanh toán của cơ sở dữ liệu sakila

    Tạo sao lưu dữ liệu cơ sở dữ liệu

    Nếu bạn muốn tạo bản sao lưu dữ liệu mà không có cấu trúc cơ sở dữ liệu, thì bạn phải sử dụng tùy chọn –no-create-info trong lệnh mysqldump. Lệnh sau tạo bản sao lưu dữ liệu của cơ sở dữ liệu sakila

    1

    mysqldump -u root -p sakila --no-create-info > C:\Sao lưu MySQL\sakila_data_only_20200424. sql

    Xem hình ảnh sau

    Hãy cho chúng tôi xem nội dung của tập tin sao lưu

    Như bạn có thể thấy trong ảnh chụp màn hình ở trên, tệp sao lưu chứa các câu lệnh T-SQL khác nhau có thể được sử dụng để chèn dữ liệu vào bảng

    Khôi phục cơ sở dữ liệu MySQL

    Khôi phục cơ sở dữ liệu MySQL bằng mysqldump rất đơn giản. Để khôi phục cơ sở dữ liệu, bạn phải tạo một cơ sở dữ liệu trống. Đầu tiên, chúng ta hãy thả và tạo lại cơ sở dữ liệu sakila bằng cách thực hiện lệnh sau

    1

    2

    3

    4

    5

    mysql> thả cơ sở dữ liệu sakila;

    Truy vấn OK, 24 hàng affected [0.35 giây]

    mysql> tạo cơ sở dữ liệu sakila;

    Truy vấn OK, 1 hàng affected [0.01 giây]

    MySQL>

    Khi bạn khôi phục cơ sở dữ liệu, thay vì sử dụng mysqldump, bạn phải sử dụng mysql; . Thực hiện lệnh sau để khôi phục cơ sở dữ liệu sakila

    1

    mysql -u root -p sakila sử dụng sakila;
    Cơ sở dữ liệu đã thay đổi
    mysql> hiển thị bảng;

    Xem hình ảnh sau

    Khôi phục một bảng cụ thể trong cơ sở dữ liệu

    Chẳng hạn, ai đó đã đánh rơi một bảng khỏi cơ sở dữ liệu. Thay vì khôi phục toàn bộ cơ sở dữ liệu, chúng ta có thể khôi phục bảng bị hủy từ bản sao lưu có sẵn. Để chứng minh, hãy thả bảng diễn viên khỏi cơ sở dữ liệu sakila bằng cách thực hiện lệnh sau trên công cụ dòng lệnh MySQL

    1

    2

    3

    mysql> sử dụng sakila;

    Cơ sở dữ liệu đã thay đổi

    mysql> thả bảng diễn viên;

    Để khôi phục bảng diễn viên, hãy thực hiện quy trình từng bước sau

    Bước 1

    Tạo một cơ sở dữ liệu giả có tên sakila_dummy và khôi phục bản sao lưu của cơ sở dữ liệu sakila trên đó. Sau đây là lệnh

    1

    2

    3

    mysql> tạo cơ sở dữ liệu sakila_dummy;

    mysql> sử dụng sakila_dummy;

    mysql> nguồn C. \Sao lưu MySQL\sakila_20200424. sql

    Bước 2

    Sao lưu bảng diễn viên vào sakila_dummy_actor_20200424. tập tin sql. Sau đây là lệnh

    1

    C. \Người dùng\Nisarg> . mysqldump -u root -p sakila_dummy actor > C:\Sao lưu MySQL\sakila_dummy_actor_20200424. sql

    Bước 3

    Khôi phục bảng diễn viên từ “sakila_dummy_actor_20200424. tập tin sql”. Sau đây là lệnh trên công cụ dòng lệnh MySQL

    1

    mysql> nguồn C. \Sao lưu MySQL\sakila_dummy_actor_20200424. sql

    Thực hiện lệnh sau để xác minh bảng đã được khôi phục thành công

    1

    2

    3

    mysql> sử dụng sakila;

    Cơ sở dữ liệu đã thay đổi

    mysql> hiển thị bảng;

    Xem hình ảnh sau

    Bản tóm tắt

    Trong bài viết này, tôi đã giải thích cách chúng ta có thể sử dụng tiện ích dòng lệnh mysqldump để tạo các mục sau

Chủ Đề