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 Show
Sao lưu dữ liệu và thói quenChú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 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énNế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 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ấtTí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 gzip là 9 , 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 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 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" 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ácBấ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ảnDướ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énKiể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 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 MysqldumpNế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 |