我在与生产数据库不同的远程服务器上有一个测试数据库。每隔一段时间,我想通过将我的生产数据库的副本上传到我的测试数据库来尝试和测试。不幸的是,备份文件现在只有一半,我无法通过 FTP 或 SSH 传输它。有没有一种简单的方法可以在服务器之间使用 mysql restore 命令?另外,还有另一种方法可以移动我不考虑的大文件吗?半场演出似乎没有那么大,我想人们经常会遇到这个问题。
谢谢!
服务器是否可以相互访问?
如果是这样,您可以将数据从一个数据库传输到另一个数据库,而无需使用文件。
例如:mysqldump [选项] | mysql -h 测试 -u 用户名 -ppasswd
0.请考虑您是否真的需要生产数据(特别是如果它包含一些敏感信息)
1.最简单的解决方案是在源服务器上压缩备份(通常是gzip),通过网络传输,然后在目标服务器上解压。
http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/
2.如果您不需要生产数据的精确副本(例如,您不需要一些应用程序日志、错误、一些其他技术资料),您可以考虑在源服务器上创建备份并恢复到不同的数据库名称,删除所有不必要的数据,然后备份您将使用的备份。
3.在您的开发环境中的参考服务器上恢复一次完整备份,然后仅复制事务日志(以在参考服务器上重放它们)。根据使用模式,事务日志可能占用整个数据库的更少空间。
Mysql 允许您连接到远程数据库服务器以运行 sql 命令。使用这个特性,我们可以通过管道输出 mysqldump 并要求 mysql 连接到远程数据库服务器以填充新数据库。
mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb
使用高效的传输方法,而不是 ftp。
如果您在测试数据库服务器上有一个由 mysqldump 创建的转储文件,并且您经常更新它。我认为您可以通过使用 rsync 传输它来节省时间(如果不是磁盘空间)。Rsync 将使用 ssh 并压缩数据进行传输,但我认为本地和远程文件都应该/可以解压缩。
Rsync 只会传输文件的更改部分。
可能需要一些时间来确定转储文件中的确切更改内容,但传输应该很快。
不过我必须承认,我从来没有使用过半 GB 的转储文件。