【问题标题】:mysql restore for files on another servermysql恢复另一台服务器上的文件
【发布时间】:2009-08-24 02:31:56
【问题描述】:

我在与生产数据库不同的远程服务器上有一个测试数据库。每隔一段时间,我想通过将我的生产数据库的副本上传到我的测试数据库来尝试和测试。不幸的是,备份文件现在只有一半,我无法通过 FTP 或 SSH 传输它。有没有一种简单的方法可以在服务器之间使用 mysql restore 命令?另外,还有另一种方法可以移动我不考虑​​的大文件吗?半场演出似乎没有那么大,我想人们经常会遇到这个问题。

谢谢!

【问题讨论】:

    标签: mysql file upload restore


    【解决方案1】:

    服务器是否可以相互访问?

    如果是这样,您可以将数据从一个数据库传输到另一个数据库,而无需使用文件。

    例如:mysqldump [选项] | mysql -h 测试 -u 用户名 -ppasswd

    【讨论】:

      【解决方案2】:

      0.请考虑您是否真的需要生产数据(尤其是如果它包含一些敏感信息)

      1.最简单的解决方案是在源服务器上压缩备份(通常是gzip),通过网络传输,然后在目标服务器上解压缩。

      http://www.techiecorner.com/44/how-to-backup-mysql-database-in-command-line-with-compression/

      2.如果您不需要生产数据的精确副本(例如,您不需要一些应用程序日志、错误、其他一些技术资料),您可以考虑在源服务器上创建备份并恢复到不同的服务器数据库名称,删除所有不必要的数据,然后备份您将使用的数据。

      3.在您的开发环境中的参考服务器上恢复一次完整备份,然后仅复制事务日志(以在参考服务器上重放它们)。根据使用模式,事务日志可能占用整个数据库更少的空间。

      【讨论】:

        【解决方案3】:

        Mysql 允许您连接到远程数据库服务器以运行 sql 命令。使用这个特性,我们可以通过管道输出 mysqldump 并要求 mysql 连接到远程数据库服务器以填充新数据库。

        mysqldump -u root -p rootpass SalesDb | mysql --host=185.32.31.96 -C SalesDb 
        

        【讨论】:

          【解决方案4】:

          使用高效的传输方法,而不是 ftp。

          如果您在测试数据库服务器上有一个由 mysqldump 创建的转储文件,并且您经常更新它。我认为您可以通过使用 rsync 传输它来节省时间(如果不是磁盘空间)。 Rsync 将使用 ssh 并压缩数据进行传输,但我认为本地和远程文件都应该/可以解压缩。

          Rsync 只会传输文件的更改部分。

          可能需要一些时间来确定转储文件中具体发生了什么变化,但传输应该很快。

          我必须承认,我从来没有使用过半 GB 的转储文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-07-26
            • 2021-06-07
            • 2014-09-05
            • 2023-03-06
            • 2023-02-06
            • 2011-11-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多