【问题标题】:How best could I optimize the way I'm backing up MySQL databases?如何最好地优化备份 MySQL 数据库的方式?
【发布时间】:2011-07-22 15:50:09
【问题描述】:

我有几个网站托管在 VPS 上,目前正在通过 cron 运行 shell 脚本来执行数据库备份,看起来像这样:

mysqldump -uusername1 -prootpassword dbname1 > /backup/dbname1.bak
mysqldump -uusername2 -prootpassword dbname2 > /backup/dbname2.bak
mysqldump -uusername3 -prootpassword dbname3 > /backup/dbname3.bak

我对这个过程有一些担忧。

首先,我使用根服务器密码执行 mysqldump,并且文件以明文形式存储在服务器上(不可公开访问或其他任何内容,但如果我授予其他用户访问服务器的权限,显然存在担忧出于某种原因)。我使用 root 是因为它比跟踪创建数据库的每个人并询问他们特定的数据库密码要简单。

其次,这个过程只有在人们告诉我他们已经添加了一个数据库时才有效(这在大多数情况下都很好,我们在这里没有做任何超级复杂的事情)。我宁愿备份所有内容,而不必担心我忽略了某些内容。

【问题讨论】:

    标签: mysql backup mysqldump database-backups backup-strategies


    【解决方案1】:

    您总是可以转储所有数据库:

    mysqldump --all-databases | gzip -9 > /backup/dbs.bak.gz
    

    这样您就不必跟踪有哪些数据库了。缺点是恢复有点复杂。

    至于使用 root,您没有理由不能创建另一个有权进行备份的帐户 - 除了初始设置之外,您不应该使用 root 帐户。

    【讨论】:

      【解决方案2】:

      我使用这个脚本:http://sourceforge.net/projects/automysqlbackup/ 它运行良好。此外,您应该添加一个具有全局 SELECT 和 LOCK TABLES 权限的备份 MySQL 用户。这样你就不需要每个人的用户名和密码/

      【讨论】:

        猜你喜欢
        • 2018-11-01
        • 1970-01-01
        • 2011-10-31
        • 1970-01-01
        • 1970-01-01
        • 2012-02-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多