如何删除本地数据库但在 NDB 集群中保留包含的 ndbcluster table
How to drop a local DB but keep included ndbcluster table in the NDB cluster
我有以下情况,但没法做测试。非常感谢您的建议。
A) 带有 MySQL 服务器的本地主机(一个旧的 mysql 5.0)
A.1) 这个MySQL服务器有几个数据库
A.2) 其中一个数据库包含一些 innoDB tables,但也有一些 "ndbcluster" (ENGINE=ndbcluster)。
B) 远程 NDB 集群,在 A) 中的本地主机上使用了大量数据
我的目标是缩小本地主机上的数据库(删除 table 数据文件)。
为此,我将不得不删除所有数据库,然后删除物理数据库文件。然后,将 innodb_file_per_table 添加到 my.cnf 并启动 MySQL 服务器。
题目:
1) 据我所知,当我执行 DROP DATABASE db_name 时,它首先会删除数据库中的所有 table。如何确保当我删除数据库时,远程 NDB 集群中的 tables/data 不受影响(它被其他类似的本地服务器使用)?
2) 当我将转储(它将重新创建删除的数据库)插入到刷新的本地 MySQL 服务器时,它会 add/connect 来自 NDB 的 ndbcluster tables自动集群?
local my.cnf 有以下几行:
ndbcluster
ndb-connectstring="nodeid=35,1.2.64.69,1.2.64.70"
3) 我真的需要删除所有数据库以删除物理文件并根据 table 模式在文件夹中重新创建数据库吗?
DROP DATABASE 将删除数据库中的所有 tables,包括
InnoDB 和 NDB。因此,您必须通过 table 删除 table
如果你想保留 NDB tables.
不确定与 InnoDB 相关的答案。
为了确保我没有触及 NDB table,我跳过了删除虚拟数据库的步骤。因此,该过程简要如下所示:
- 转储 mysql 数据库和其他重要的数据库
- 停止 MySQL 服务
Move/remove 数据库文件:
cd /var/lib/mysql/ && rm -f ib_logfile0 ib_logfile1 tablespace1 tablespace2
重新初始化mysql并添加root用户(因为无法正常启动):
cd /var/lib/mysql && mysql_install_db
- 启动 mysql 服务器
- 使用没有密码的默认 root 用户插入 mysql 数据库(来自转储)。
- 使用旧的(恢复的)用户插入其他数据库。
插入包含 NDB table 的数据库时,将自动连接 NDB table。
我有以下情况,但没法做测试。非常感谢您的建议。
A) 带有 MySQL 服务器的本地主机(一个旧的 mysql 5.0)
A.1) 这个MySQL服务器有几个数据库
A.2) 其中一个数据库包含一些 innoDB tables,但也有一些 "ndbcluster" (ENGINE=ndbcluster)。
B) 远程 NDB 集群,在 A) 中的本地主机上使用了大量数据
我的目标是缩小本地主机上的数据库(删除 table 数据文件)。 为此,我将不得不删除所有数据库,然后删除物理数据库文件。然后,将 innodb_file_per_table 添加到 my.cnf 并启动 MySQL 服务器。
题目:
1) 据我所知,当我执行 DROP DATABASE db_name 时,它首先会删除数据库中的所有 table。如何确保当我删除数据库时,远程 NDB 集群中的 tables/data 不受影响(它被其他类似的本地服务器使用)?
2) 当我将转储(它将重新创建删除的数据库)插入到刷新的本地 MySQL 服务器时,它会 add/connect 来自 NDB 的 ndbcluster tables自动集群?
local my.cnf 有以下几行: ndbcluster ndb-connectstring="nodeid=35,1.2.64.69,1.2.64.70"
3) 我真的需要删除所有数据库以删除物理文件并根据 table 模式在文件夹中重新创建数据库吗?
DROP DATABASE 将删除数据库中的所有 tables,包括 InnoDB 和 NDB。因此,您必须通过 table 删除 table 如果你想保留 NDB tables.
不确定与 InnoDB 相关的答案。
为了确保我没有触及 NDB table,我跳过了删除虚拟数据库的步骤。因此,该过程简要如下所示:
- 转储 mysql 数据库和其他重要的数据库
- 停止 MySQL 服务
Move/remove 数据库文件:
cd /var/lib/mysql/ && rm -f ib_logfile0 ib_logfile1 tablespace1 tablespace2
重新初始化mysql并添加root用户(因为无法正常启动):
cd /var/lib/mysql && mysql_install_db
- 启动 mysql 服务器
- 使用没有密码的默认 root 用户插入 mysql 数据库(来自转储)。
- 使用旧的(恢复的)用户插入其他数据库。
插入包含 NDB table 的数据库时,将自动连接 NDB table。