zoukankan      html  css  js  c++  java
  • MySQL的mysqldump的完全+增量备份与恢复

    @ 查看数据库:
    mysql -uroot -p -e "show databases;"

    @ 在master上进行全库备份:
    innobackupex --user=root --password=123456 --host=127.0.0.1 /backups/
    #--user=root 指定备份用户
    #--password=123456 指定备份用户密码
    #--host  指定主机
    #/backups  指定备份目录


    备份
    mysqldump -uroot -p --databases qqq >qqq.backup.sql;

    恢复
    source /root/qqq.backup.sql

    单表的备份与恢复:
    备份:mysqldump -uroot -p asd a > bf/asd_a_$(date +%F_%T).sql
    mysqldemp -u用户 -p 数据库名 库中表名 > 某个目录下/备份名

    恢复: mysql -uroot -p asd < bf/asd_a_2020-02-14_11:43:43.sql
    mysql -u用户 -p 数据库名 < 某个目录下/备份名
    注意: $$数据库名不能删除$$






    mysqldump -uroot -p --all-databases --master-data=1 --flush-logs > /backup/all_$(date +%F_%T).sql
    查more /backup/all_2020-02-16_23:54:58.sql

    mysql -uroot -p < all_2020-02-17_12:24:17.sql
    //第一次完全备份恢复完成


    完全备份前必须--添加二进制:
    打开:vim /etc/my.cnf
    添加:log-bin=mysql-bin
    server_id=10
    重新启动服务器: systemctl restart mysqld

    查 :ll /var/lib/mysql



    -----------mysqldump的完全+增量备份与恢复-----------

    完全备份:
    mysqldump --user=root -p --flush-logs --lock-all-tables --all-databases > all_$(date +%F_%T).sql

    第一次完全备份恢复完成:
    mysql -uroot -p < all_2020-02-17_12:24:17.sql

    第一次增量备份完成:
    mysqlbinlog -uroot -p /var/lib/mysql/mysql-bin.000004 > increment_.sql

    第二次增量备份完成:
    mysqlbinlog -uroot -p --start-position=421 /var/lib/mysql/mysql-bin.000004 > increment_2.sql
    --start-position=421 //是第一次增量备份的位置


    第一次增量恢复完成:
    source /root/increment_.sql //数据库操作

    第二次增量恢复完成:
    mysql -uroot -p < increment_2.sql //Linux操作

    |--------------------------------------------------------------|
    | systemctl stop mysqld MySQL停一下 |
    | rm -rf /var/lib/mysql/* 不加*的话会把MySQL会这个目录删除的 |
    | systemctl start mysqld MySQL启动 |
    |--------------------------------------------------------------|

    查看数据库密码:grep password /var/log/mysqld.log

    @ 查看用户密码权限
    show variables like '%validate%';
    @ 密码安全类型
    set global validate_password_policy=0;
    @ 密码最少长度:
    set global validate_password_length = 1;
    @ 修改密码:
    alter user user() identified by '666666';

    刷新:flush privileges;


    service mysqld restart mysql如果全部删除的话




    -----------------总结----------------

    xtrabackup的完备+增备的一般步骤就三步:
    1. innobackupxe -uroot -proot <完全备份目录>
    2. innobackupxe -uroot -proot --incremental 增备目录 --incremental-basedir=完全备份目录
    3. innobackupxe -uroot -proot --incremental 增备目录 --incremental-basedir=上一次增备份目录

    xtrabackup的完备+增备的恢复步骤步:
    1. 准备:
    <1>innobackupxe -uroot -proot --apply-logs --redo-only 完全背备份目录
    <2>innobackupxe -uroot -proot --apply-logs --redo-only 完全背备份目录 --incremental-dir 第一次增量备份目录
    <3>innobackupxe -uroot -proot --apply-logs --redo-only 完全背备份目录 --incremental-dir 第二次增量备份目录
    2.恢复:innobackupxe -uroot -proot --copy-back 完全背备份目录 执行完报错
    3. 停止mysql服务:systemctl stop mysqld 然后执行命令:rm -rf /var/lib/mysql/*
    4.恢复数据:innobackupxe -uroot -proot --copy-back 完全背备份目录
    5. ll /var/lib/mysql 显示该目录的所有用户及其所属组均为root
    6. chown -R mysql.mysql /var/lib/mysql 修改该目录的下的所有文件的所有用户所有组均为mysql 7.重启mysql服务:systemctl start mysqld

    -----------------------------------------------------------------

    mysqldump全量备份+增量备份的步骤:
    1.mysqldump --user --password --all-databases --master-data=2 --lock-all-tables --flush-logs > 备份路径+完全备份的文件名称
    2.mysqlbinlog /var/lig/mysql/mysql-bin.00000X > 备份路径+增量备份的文件名称(在该操作之前,一定要对数据库做改变:比如插入操作)
    3.mysqlbinlog --start-position=value (--start-datetime=year-month-day hour:min:sec) /var/lig/mysql/mysql-bin.00000X > 备份路径+第二次增量备份的文件名称(在该操作之前,一定要对数据库做改变:比如插入操作)
    4.systemctl stop mysqld
    5.rm -rf /var/lib/mysql/*:删除该目录下的所有myql的文件
    6.systemctl start mysqld

    完全备份+增量备份的恢复
    7.mysql -uroot -proot < 备份路径+完全备份的文件名称(此时的状态是安装过数据后的状态)
    8.再次执行步骤7(会把db1恢复)
    9.mysql -uroot -proot < 备份路径+第一次增量备份的文件名称
    10.mysql -uroot -proot < 备份路径+第二次增量备份的文件名称

  • 相关阅读:
    PHP 数组和字符串转换(超详细
    获取客户端ip、地理信息、浏览器、真实IP的php类库
    将博客搬至CSDN
    1.0.1unity服务器学习经验
    音游制作插件Koreographer-第0篇 简介
    Unity UIWidgets
    Unity UIWidgets
    Unity UIWidgets
    Lua中ipairs和pairs的区别详解
    ubuntu下面配置apache
  • 原文地址:https://www.cnblogs.com/yangyongchao/p/12331304.html
Copyright © 2011-2022 走看看