这是规划移民时的一个问题。
mysql 服务器 5.1.58-1-log(Debian)将 datadir 设置为 disk0 上的 /dbs0 以及其中的所有 myisam 数据库。
我们将在磁盘 1 上创建新的 /dbs1,停止服务器,只移动 /dbs1 上的某些数据库,对于保留在 /dbs0 中的其他数据库,我们将在 /dbs1 中创建符号链接。完成后,将 datadir 重新设置为 /dbs1 并启动服务器。
这部分很简单,它会起作用,预计会分配 IO 并提高性能。
假设您是 root。如果在 datadir /dbs1 中创建了新的 myisam 数据库,是否可以将其移动到 /dbs0,然后在 datadir 中创建符号链接,所有这些都是在服务器运行时进行的?
答案1
移动数据库命名轻拍从/dbs1到/dbs0这种简单的方法有效,无需停止服务器,甚至不需要刷新锁定它,只需锁定您正在处理的当前数据库。
- 启动线程0:
- 连接到 mysql,使用轻拍
- 锁定表...(所有表)写入
- 启动线程1
- sudo mv /dbs1/dab /dbs0/dab && ln -s /dbs0/dab /dbs1/dab
- 结束线程1
- 解锁表,断开连接