Mysql kết xuất gzip

Như bạn có thể thấy, kích thước của tệp SQL là khoảng 1. 59 GB. Sau này, bạn phải biết cách nhập tệp SQL này vào cơ sở dữ liệu

Sao lưu dữ liệu và thói quen

Chúng tôi gọi tất cả các loại thủ tục được lưu trữ là các thường trình trong MySQL, bao gồm các thủ tục, chức năng, chế độ xem và sự kiện. Với -R , chúng tôi có thể thêm các quy trình vào tệp sao lưu.

[root@test ~]# mysqldump -u root -p'12345678' example_db -R > example_db_data_routines.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@test ~]# ll
...
-rw-r--r--. 1 root root 1713643597 Aug 21 15:41 example_db_data_routines.sql

Kích thước tệp lớn hơn một chút so với tệp SQL đầu tiên, nhưng không nhiều

Sao lưu dữ liệu và thói quen với nén

Nếu kích thước tệp quá lớn để lưu trữ, chúng tôi có thể chuyển luồng đầu ra thành gzip để nén tệp.

[root@test ~]# mysqldump -u root -p'12345678' example_db -R | gzip > example_db_data_routines.sql.gz
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@test ~]# ll
...
-rw-r--r--. 1 root root  317699305 Aug 21 15:43 example_db_data_routines.sql.gz

Kích thước tệp giảm đáng kể khi tỷ lệ nén tính toán là khoảng 18. 5%. Xin lưu ý rằng, bạn phải giải nén tệp trước khi nhập SQL vào cơ sở dữ liệu

Sao lưu dữ liệu và các thói quen với mức độ nén cao nhất

Tính năng nén tốt nhưng có giá. Bạn phải đánh đổi tài nguyên CPU với dung lượng ổ đĩa. Cấp độ cao nhất của gzip9 , cấp độ này có thể cho phép bạn trả nhiều tiền hơn .

[root@test ~]# mysqldump -u root -p'12345678' example_db -R | gzip -9 > example_db_data_routines.sql.gz9
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@test ~]# ll

-rw-r--r--. 1 root root  310848291 Aug 21 15:47 example_db_data_routines.sql.gz9

Tỷ số nén được cải thiện phần nào, khoảng 18. 1%, tốt hơn nhưng không ấn tượng

Sao lưu hoặc di chuyển cơ sở dữ liệu sang cục bộ

Không chỉ các tệp, bạn cũng có thể sao lưu toàn bộ cơ sở dữ liệu sang một cơ sở dữ liệu khác, cơ sở dữ liệu cục bộ hoặc cơ sở dữ liệu từ xa. Trong thực tế, chúng tôi thường xuyên sử dụng kỹ thuật này như thể chúng tôi chụp nhanh cơ sở dữ liệu

[root@test ~]# mysqldump -u root -p'12345678' exmaple_db -R | mysql -u root -p'12345678' -D exmaple_db_backup
mysql: mysqldump: [Warning] Using a password on the command line interface can be insecure.
[Warning] Using a password on the command line interface can be insecure.

Vì chúng tôi đang ở trong cùng một máy chủ nên không cần phải nén đầu ra

Sao lưu hoặc di chuyển cơ sở dữ liệu sang một cơ sở dữ liệu từ xa

Để sao lưu hoặc di chuyển toàn bộ cơ sở dữ liệu sang một cơ sở dữ liệu từ xa, chúng ta phải xem xét điều kiện mạng. Rất có thể, chúng ta có thể truyền dữ liệu qua internet chậm hơn nhiều so với mạng LAN. Do đó, chúng tôi nén đầu ra và sau đó chuyển luồng đến máy chủ từ xa thông qua đường hầm SSH trong ví dụ này

[root@test ~]# mysqldump -u root -p'12345678' exmaple_db -R | gzip | ssh 10.10.10.10 "gunzip | mysql -u root -p'12345678' -D exmaple_db_backup"
mysqldump: [Warning] Using a password on the command line interface can be insecure.
mysql: [Warning] Using a password on the command line interface can be insecure.

Như bạn có thể thấy, chúng tôi đã giải nén luồng đầu ra trước khi đưa nó vào cơ sở dữ liệu

Lựa chọn khác

Bất kỳ trường hợp sử dụng nào ở trên đều có thể được thêm một số tùy chọn khác để đáp ứng yêu cầu của bạn. Những kỹ thuật này có thể được sử dụng trong các tập lệnh shell và được lên lịch cho các công việc sao lưu thông thường của bạn

nếu bạn đọc bài viết trước của tôi về kết xuất tất cả cơ sở dữ liệu mysql, bạn sẽ nhận ra một số thông tin này. Tôi muốn chú ý cụ thể đến một số phương pháp khác nhau về cách nén đầu ra mysqldump

Rõ ràng việc nén xuất cơ sở dữ liệu mysql của bạn có thể có một số lợi ích chính. Lợi ích lớn nhất là kích thước tệp nhỏ. Cơ sở dữ liệu Mysql và thực sự tất cả các cơ sở dữ liệu đều có xu hướng phát triển đến kích thước lớn. Ngay cả các trang web nhỏ cũng có thể nhanh chóng tìm thấy dữ liệu trị giá hàng trăm MB trong cơ sở dữ liệu của họ. Lưu trữ các tệp xuất cơ sở dữ liệu lớn trong bản sao lưu của bạn có thể chiếm dung lượng ổ đĩa khá nhanh. Nén đầu ra mysql của bạn có thể giảm kích thước tệp xuất của bạn xuống bảy lần trở lên

Nếu bạn cần giữ các bản sao lưu cơ sở dữ liệu riêng lẻ thì việc nén thực sự có ý nghĩa. Nhưng nếu bạn đang sử dụng thứ gì đó như rdiff-backup thì sẽ hợp lý hơn khi bỏ qua quá trình nén. Rdiff-backup không thể thực hiện khác biệt trên dữ liệu nén, vì vậy nó sẽ không tiết kiệm dung lượng như bạn mong đợi

Các lệnh nén Mysqldump cơ bản

Dưới đây là một vài biến thể khác nhau của các lệnh nén theo đường ống mysqldump mà chúng tôi sẽ phân tích

1: mysqldump -u dbUser -p DBName > OutputFile.sql
2: mysqldump -u dbUser -p DBName | gzip > OutputFile.sql.gz
3: mysqldump -u dbUser -p DBName | gzip -9 > OutputFile.sql.gz
4: mysqldump -u dbUser -p DBName | zip > OutputFile.sql.zip
5: mysqldump -u dbUser -p DBName | bzip2 > OutputFile.sql.bz2

Trong các ví dụ này, chúng ta thấy cùng một cơ sở dữ liệu được xuất trong mỗi lệnh. Nhưng có một số điểm khác biệt, ở #1 chúng tôi không sử dụng tính năng nén. Lệnh #2 đang sử dụng gzip với cài đặt mặc định. Sau đó, lệnh #3 đang sử dụng gzip với độ nén tối đa. Lệnh #4 đang sử dụng zip để thực hiện nén. Và cuối cùng lệnh #4 đang sử dụng bzip2 để thực hiện quá trình nén của nó

So sánh các lệnh nén

Kiểm tra các lệnh trên trên cùng một cơ sở dữ liệu và trên cùng một phần cứng mang lại kết quả như sau

LệnhFilesizeThời gian đầu ra#1391MB13. 827s#257MB16. 122s#355MB32. 357s#457MB16. 169s#544MB1m 18. Kết quả lệnh Cơ sở dữ liệu Mysql 701sOutput

Bảng trên cho thấy hiệu quả của từng phương pháp nén trên cùng một tập dữ liệu. Lệnh đầu tiên đặt đường cơ sở để xuất dữ liệu mà không cần nén. Gzip áp dụng nén cơ bản và giảm kích thước đáng kể với tốc độ rất nhỏ. Nó đến nhanh hơn một sợi tóc so với zip với cùng kết quả nén

Thêm -9 vào lệnh Gzip trong #3 sẽ tăng gấp đôi thời gian đầu ra và chỉ tiết kiệm được 2MB dung lượng. Nhưng sau đó Bzip2 cân bằng lệnh số 5, mất thêm một phút so với Gzip hoặc Zip. Cần có thêm phút đó để đóng gói tệp đủ nhỏ để giải phóng 13 MB dung lượng khác

Nén kết quả đầu ra Mysqldump

Nếu bạn có thể nén đầu ra cơ sở dữ liệu của mình thì bạn sẽ thấy dung lượng lưu trữ dự phòng tiết kiệm được đáng kể. Ngay cả khi tốc độ sao lưu là cần thiết, gzip hoặc zip giúp giảm đáng kể kích thước để có thêm thời gian tối thiểu. Và nếu thời gian không phải là vấn đề lớn thì việc sử dụng bzip2 sẽ giúp bạn tiết kiệm không gian lớn hơn nhiều để đổi lấy

Hiểu và sử dụng nén như một phần của phương pháp sao lưu của bạn là một yếu tố cần thiết để lưu trữ thành công. Việc triển khai đúng cách có thể đảm bảo rằng bạn tiết kiệm được dung lượng cần thiết và giảm thời gian truyền dự phòng. Đặc biệt trong trường hợp bạn cần chuyển bản sao lưu của mình qua kết nối mạng chậm. Nén sẽ đến trợ giúp bạn và tiết kiệm trong ngày. Vì vậy, đừng ngần ngại nén đầu ra mysqldump, đó có thể là những gì bác sĩ đã yêu cầu

Đọc thêm

Để biết thêm chi tiết và thông tin, hãy xem bài đăng này nói thêm về Nén đầu ra Mysqldump

Chủ Đề