我有150GB的数据库,我的ibdata1文件大小是240GB所以我想缩小ibdata1文件,所以我必须导出数据库然后删除表然后停止mysql,删除ibdata1文件,然后启动= MYSQL再次导入数据库。
如果上述解决方案是正确的,我如何导出和导入如此庞大的数据库,也会在数据库表中创建分区。
我也不确定在此过程中我是否会丢失任何数据。
先谢谢
答案 0 :(得分:0)
如果使用mysqldump导出它,那么该文件可能包含之前重新创建表所需的CREATE语句,然后是INSERT重新加载它。
建议您在此过程中(重新加载之前)将此内容添加到my.ini:
innodb_file_per_table = 1
或者......如果磁盘空间甚至做了转储,你的问题是你没有备用的150GB?如果是这样的话,你就会把自己画成一个角落"。
如果您可以使用150GB(或更多)备用空间的另一台计算机,则从该计算机运行mysqldump,写入该计算机。
对于"在DB表中创建了分区&#34 ;;让我们看看细节。 SHOW CREATE TABLE会很有用。