如何删除本地数据库,但将ndbcluster表包含在NDB集群中

时间:2018-04-12 11:53:03

标签: mysql mysql-cluster

我有以下情况,但没有可能进行测试。感谢你的建议。

A)具有MySQL服务器的本地主机(旧的mysql 5.0)

A.1)这个MySQL服务器有几个数据库

A.2)其中一个数据库包含一些innoDB表,还包含一些“ndbcluster”(ENGINE = ndbcluster)表。

B)远程NDB集群,在A)中本地主机上使用了大量数据

我的目标是缩小本地主机上的DB(删除tabledata文件)。 为此,我将删除所有数据库,然后删除物理数据库文件。然后,将innodb_file_per_table添加到my.cnf并启动MySQL服务器。

问题:

1)AFAIK当我执行DROP DATABASE db_name时,它首先删除数据库中的所有表。如何确保在删除数据库时,远程NDB集群中的表/数据不受影响(由其他类似的本地服务器使用)?

2)当我将转储插回(它将重新创建已删除的数据库)到刷新的本地MySQL服务器时,它是否会自动添加/连接NDB集群中的ndbcluster表?

本地my.cnf有以下几行: NDBCLUSTER NDB-CONNECTSTRING = “NODEID = 35,1.2.64.69,1.2.64.70”

3)我是否真的需要删除所有数据库以删除物理文件并在每个表模式下在文件夹中重新创建数据库?

2 个答案:

答案 0 :(得分:0)

DROP DATABASE将删除数据库中的所有表 InnoDB和NDB。所以你必须逐个表删除 如果你想保留NDB表。

不确定与InnoDB相关的答案。

答案 1 :(得分:0)

为了确保我没有触及NDB表,我跳过了删除虚拟数据库。所以,程序简要地看起来像这样:

  • 转储mysql数据库和其他重要数据库
  • 停止MySQL服务
  • 移动/删除db文件:

    cd / var / lib / mysql /&& rm -f ib_logfile0 ib_logfile1 tablespace1 tablespace2

  • 重新初始化mysql并添加root用户(因为它无法正常启动):

    cd / var / lib / mysql&& mysql_install_db的

  • 启动mysql服务器
  • 使用没有密码的默认root用户插入mysql db(来自dump)。
  • 使用旧(已恢复)用户插入其他数据库。

当插入包含NDB表的数据库时,NDB表将自动连接。