Cài đặt và sử dụng pv
(nó có sẵn dưới dạng gói yum cho CentOS)
http://www.ivarch.com/programs/pv.shtml
Giả sử kích thước mong đợi của tệp dumpfile.sql kết quả là 100m (100 megabyte), việc sử dụng pv
sẽ như sau:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Đầu ra của bảng điều khiển sẽ giống như sau:
[===> ] 20%
Nhìn vào trang người đàn ông man pv
để có nhiều lựa chọn hơn. Bạn có thể hiển thị tốc độ truyền hoặc thời gian đã trôi qua hoặc bao nhiêu byte đã chuyển và hơn thế nữa.
Nếu bạn không biết kích thước của tệp kết xuất của mình, có một cách để lấy kích thước của cơ sở dữ liệu MySQL từ table_schema - nó sẽ không phải là kích thước của tệp kết xuất của bạn, nhưng nó có thể đủ gần cho nhu cầu của bạn:
SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;
Cập nhật
Theo kinh nghiệm của tôi, khi kết xuất toàn bộ máy chủ MySQL, kích thước thực tế không nén của kết xuất mysql (sử dụng tùy chọn mysqldump --hex-blob) là khoảng từ 75% đến 85% kích thước thực của dữ liệu MySQL thu được từ information_schema. Vì vậy, để có một giải pháp chung, tôi có thể thử những cách sau:
SIZE_BYTES=$(mysql --skip-column-names <parameters> <<< 'SELECT ROUND(SUM(data_length) * 0.8) AS "size_bytes" FROM information_schema.TABLES;')
mysqldump <parameters> --hex-blob | pv --progress --size $SIZE_BYTES > dumpfile.sql