MYSQL实时备份教程

[复制链接]
查看: 22|回复: 2
  • TA的每日心情
    慵懒
    2018-4-28 09:37
  • 1459

    主题

    1479

    帖子

    11万

    积分

    管理员

    小语

    Rank: 9Rank: 9Rank: 9

    积分
    110351
    发表于 2018-3-28 10:18:33 | 显示全部楼层 |阅读模式
    1、MYSQL数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库里面,从而实现MYSQL数据库的实时备份。
    2、版本要求,首先要保证主服务器和从服务器的MYSQL版本都高于3.2,另外,从数据库的版本可以高于主服务器,但不能低于主服务器。
    3、主服务器设置:
    A、先修改MY.INI中有关log-bin的设置,这是记录数据库更改的日志,由于MYSQL的复制机制,是基于日志的,所以主服务器必须要支持更改日志才可以。
    接着设置要写入日志的数据库,或者不要写入日志的数据库,这是为了告诉MYSQL,那个库需要备份,哪个不需要。
    下面是配置详情:
    server-id=1 //数据库的id这个应该默认是1就不用改动
    log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
    binlog-do-db=db_name //记录日志的数据库
    binlog-ignore-db=db_name //不记录日志的数据库
    上面的binlog-do-db和binlog-ignore-db可以设置成多个数据库,每个数据库名称之间用“,”分割开。
    下一步是设置同步数据库的用户账号
    mysql> GRANT REPLICATION SLAVE ON *.*
    -> TO ‘备份用户名’@'只能从这个IP登录’ IDENTIFIED BY ‘备份用户密码’;
    设置好以后,重启一下数据库服务。
    B、锁定现有的数据,并将数据备份
    数据库锁定的命令是:
    mysql> FLUSH TABLES WITH READ LOCK;
    然后进入mysql的data目录,然后打包你需要备份的数据库目录。
    C、现在可以查看主服务器的状态了:
    命令如下:
    mysql> show master statusG;
    返回结果会是这样的
    +—————+———-+————–+——————+
    | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +—————+———-+————–+——————+
    | mysql-bin.003 | 73 | test | manual,mysql |
    +—————+———-+————–+——————+
    当然,这个表,显示了你刚才在MY.INI中写入的配置。
    然后解锁数据库:
    mysql> UNLOCK TABLES;
    4、从服务器设置
    还是和刚才一样,修改数据库配置文件,即MY.INI
    配置详情如下:
    server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。
    master-host=db-master.mycompany.com //主服务器的IP地址或者域名
    master-port=3306 //主数据库的端口号
    master-user=pertinax //同步数据库的用户
    master-password=freitag //同步数据库的密码
    master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
    report-host=db-slave.mycompany.com //报告错误的服务器
    然后将你刚才打包的数据库文件拷贝到你的从数据库目录中。
    重启从数据库服务器。
    然后停止SLAVE的服务
    mysql> slave stop; //停止slave的服务
    停止之后,还是在mysql提示符下,设置主服务器的各种参数
    命令如下:
    mysql> CHANGE MASTER TO
    -> MASTER_HOST=’master_host_name’, //主服务器的IP地址
    -> MASTER_USER=’replication_user_name’, //同步数据库的用户
    -> MASTER_PASSWORD=’replication_password’, //同步数据库的密码
    -> MASTER_LOG_FILE=’recorded_log_file_name’, //主服务器二进制日志的文件名(前面要求记住的参数)
    -> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
    然后启动同步数据库的进程
    mysql> slave start;
    没有意外的话基本上到这一步,双库同步就已经实现了。

    该用户从未签到

    0

    主题

    18

    帖子

    186

    积分

    注册会员

    Rank: 2

    积分
    186
    QQ
    发表于 2018-5-5 03:01:27 | 显示全部楼层
    额,看不懂在说神马~@_@
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-5-5 16:11
  • 0

    主题

    5

    帖子

    10

    积分

    注册会员

    Rank: 2

    积分
    10
    发表于 2018-5-15 00:02:02 | 显示全部楼层
    我只是路过打酱油的
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    精选推荐

    在线客服
    热线电话

    微信公众账号
    返回顶部 关注微信 下载APP 返回列表