2009-05-27 40 views
5

Tôi có một DB mysql được cấu hình với bộ lưu trữ innoDB. Tôi đã xóa cơ sở dữ liệu (drop database <dbname>) nhưng không gian đĩa đã không được giải phóng.mysql: Cách giải phóng dung lượng (innodb)

Tại /var/lib/mysql có một số tệp "lớn" được gọi là ib_logfile0, ib_logfile1ibdata1 vị trí cuối cùng thực sự lớn. Tôi nhấn mạnh rằng những tập tin này trong thực tế là DB gốc.

Làm cách nào để biết tôi có thể xóa chúng hay không. Hoặc một câu hỏi hay hơn là làm thế nào để thả một cơ sở dữ liệu để không gian đĩa được khai hoang.

Làm rõ
Tôi muốn thả cơ sở dữ liệu hoàn chỉnh và giải phóng dung lượng đĩa. Tôi không muốn thực hiện bất kỳ khôi phục nào.

Xin cảm ơn trước.

+0

Đây là câu hỏi dành cho serverfault.com – soulmerge

Trả lời

7

Rất tiếc, không có cách nào thu nhỏ các tệp này khi không gian đã được cấp phát. Tuy nhiên, MySQL sẽ sử dụng lại không gian khi dữ liệu mới được thêm vào, nhưng tệp sẽ không bị thu hẹp.

Để thu nhỏ kích thước, bạn sẽ cần phải đổ cơ sở dữ liệu và sau đó khôi phục lại chúng.

Bạn cũng có thể làm như sau:

Đặt innodb_file_per_table trong tập tin cấu hình của bạn, mà sẽ tạo ra một tập tin riêng biệt cho mỗi bảng. Điều đó sau đó sẽ cho phép bạn xóa các tệp này khi cơ sở dữ liệu bị loại bỏ và cũng cho phép bạn sử dụng lệnh OPTIMIZE TABLE để tạo lại các tệp ibd nếu bạn thu hẹp dữ liệu trong một bảng cụ thể.

+0

Cảm ơn bạn đã trả lời. BTW, đó là những hạn chế của việc tạo ra một tập tin riêng biệt cho mỗi bảng (nếu có)? Tôi có bị mất hiệu suất không? – Luixv

+0

Tôi không thể nghĩ ra một nhược điểm khi sử dụng tùy chọn innodb_file_per_table ngoài đỉnh đầu của tôi, ngoài việc tạo ra nhiều tệp hơn có thể khiến việc quản lý chúng hơi khó khăn hơn một chút. Nhưng việc sử dụng tùy chọn chắc chắn có một số lợi ích, chẳng hạn như ít phân mảnh hơn, khả năng thu nhỏ các tệp bảng riêng lẻ và nếu bạn có hệ thống tệp có giới hạn 2GB (rất hiếm, những ngày này) của toàn bộ sự việc. –

+0

Cảm ơn bạn đã trả lời. Tôi đặt bạn trả lời là 'chấp nhận' – Luixv

0

Một giải pháp là đổ và sau đó khôi phục.

Các vấn đề liên quan