lvchenotl 发表于 2016-05-19 10:18

使用mysqldump备份恢复数据库问题(密码+恢复方面)

      本人刚接触mysql不久,如果提的问题很菜,还请大家见谅
   情况是这样, 现在在做新上线数据库的自动化备份工作。
      1.先说说密码方面:近期由于安全考虑,root本地登录也设置了密码,限制root用户从服务器无密码直接登录数据库。由于之前的数据库从服务器上直接登录的root用户都是没有设置密码的,所以在自动化备份脚本里就不需要把密码直接贴进脚本里,直接执行mysqldump -h127.0.0.1 -Pxxxx-A database > xxxxxx就行了。
      现在的问题是,既然新上线的数据库root用户设置了密码,那么在自动化备份脚本里就需要把密码给写进脚本里,而这又是与安全规范相抵触的(安全规范禁止在脚本和配置文件里直接写入密码),所以我在苦恼该如何不在脚本里写入密码就能执行mysqldupm命令备份数据库,而又能够实现自动化执行,不然每次备份都需要人工手动执行,然后输入密码.....不知大家有何方法?

      2.数据的备份我打算在从库上做(每周一次全量备份+每天一次增量备份),问题是如果主库需要恢复的时候,在主库导入全量备份后,该如何导入增量备份文件呢?
      因为导出的增量备份文件的binlog位置点记录的都是从库上binlog的位置,那么在主库上进行恢复的时候该怎么办呢?

vagrant_1220 发表于 2016-05-20 10:30

使用 xtraback 备份吧

cjfeii 发表于 2016-05-20 11:46

1. 脚本中mysql密码安全问题:
    可以不用root用户去备份,增加一个备份用户,只赋予备份需要的权限即可。
    明文密码的问题可以考虑一下加密解密来解决。

action08 发表于 2016-05-23 04:56

xtrabackup确实不错

lvchenotl 发表于 2016-05-23 16:10

回复 3# cjfeii

关于脚本加密的问题,我使用shc解决了,请问第二个问题该如何操作呢?

cjfeii 发表于 2016-05-23 17:31

全量恢复之后,启动mysql,查看binlog的offset(show master status),从增量备份中找到offset之后的binlog,然后重新执行这些binlog
确认以上完成之后,重新设置master的信息(set master ...),就可以启动mysql的slave线程。

这样这台就完成了数据库角色的改变(旧主变新从)

回复 5# lvchenotl


   

lvchenotl 发表于 2016-05-25 10:33

回复 6# cjfeii


    我可以把从库上的binlog给拷到原来的主库上,然后在原来的主库上读取这些binlog来实现增量恢复吗?因为业务很多配置文件的IP都是写死的,不能随便修改主从关系。。。

stay_sun 发表于 2016-05-25 19:15

官方文档里有设置密码的 方法或者 设置环境变量

cjfeii 发表于 2016-05-26 14:28

是不是说:主数据库挂掉,就不对外部提供服务了?

回复 7# lvchenotl


   

lvchenotl 发表于 2016-05-26 17:46

回复 9# cjfeii


    是的,等主库恢复了再提供服务
页: [1] 2
查看完整版本: 使用mysqldump备份恢复数据库问题(密码+恢复方面)