这是一个自由职业者提出的方法问题,对 MySQL 有一个推论。有没有一种方法可以从旧的专用服务器迁移到新的服务器,而不会丢失任何数据,而且不会停机?过去,我不得不在新服务器启动(即所有文件传输、系统启动并准备就绪)和我关闭旧服务器(数据仍然传输到旧服务器直到新服务器之间)之间丢失 MySQL 数据一个接管)。还有一段短暂的时间,两者都关闭以供 DNS 等刷新。
MySQL/root 有没有办法轻松传输在某个时间范围内更新/插入的所有数据?
这是一个自由职业者提出的方法问题,对 MySQL 有一个推论。有没有一种方法可以从旧的专用服务器迁移到新的服务器,而不会丢失任何数据,而且不会停机?过去,我不得不在新服务器启动(即所有文件传输、系统启动并准备就绪)和我关闭旧服务器(数据仍然传输到旧服务器直到新服务器之间)之间丢失 MySQL 数据一个接管)。还有一段短暂的时间,两者都关闭以供 DNS 等刷新。
MySQL/root 有没有办法轻松传输在某个时间范围内更新/插入的所有数据?
我喜欢做的是关闭站点并开始使用以下命令将数据库移动到其他服务器: 2,然后将所有文件(php ..etc)移动到另一台服务器(如果您有一些存储数据或每小时更改文件,比如图片上传)。并将旧服务器指向新的数据库服务器,而 DNS 将全部更改为新服务器。
我会做一个抱歉的页面,把它放在旧服务器上,将所有数据传输到新服务器,然后切换 DNS。虽然会有停机时间。
最长的停机时间来自 DNS 切换 - 可能需要几个小时甚至几天,直到所有客户端缓存都过期。
为了避免它:
slave
,在引擎盖下它只是从主服务器上下载 binlog 并且您将节省传输整个日志的时间,很可能在最小负载期间从服务器将是仅落后master几秒钟,一旦app被关闭,很快就会赶上,看看如何强制slave赶上。此外,如果您使用文件上传到本地文件系统 - 这些也需要同步,并且在大量文件上这比使用 db 更痛苦,因为即使 rsync 扫描更改也可能需要很多时间。
查看MySQL 二进制日志。
当然。在源服务器上启用 bin 日志记录。启动后,进行数据库转储并将其传输到新服务器并导入。然后,当您准备好进行切换时,更改 DNS(让更改在您工作时传播),然后在两台服务器上关闭该站点。将二进制日志复制到新服务器并从转储的日期/时间开始再次运行它们。