0

我有 150GB 数据库,我的 ibdata1 文件大小为 240GB,所以我想缩小 ibdata1 文件,因此我必须导出数据库,然后删除表,然后停止 mysql,删除 ibdata1 文件,然后再次启动 =MYSQL 并导入再次数据库。

如果上述解决方案是正确的,我如何导出和导入如此巨大的数据库,在数据库表中也创建了分区。

而且我也不确定在此过程中我是否会丢失任何数据。

提前致谢

4

1 回答 1

0

如果您使用 mysqldump 导出它,那么该文件可能包含之前重新创建表所需的 CREATE 语句,然后是 INSERT 以重新加载它。

建议您在此过程中(重新加载之前)也将其添加到 my.ini 中:

innodb_file_per_table = 1 

或者...如果磁盘空间甚至进行转储,您是否没有备用 150GB 的问题?如果是这样,你已经“把自己画到了一个角落”。

如果您可以得到另一台具有 150GB(或更多)空闲空间的机器,则从该机器运行 mysqldump,写入该机器。

至于“在DB表中创建了分区”;让我们看看细节。SHOW CREATE TABLE 会很有用。

于 2014-04-19T04:53:13.980 回答