温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql数据库的备份和主从

发布时间:2020-07-19 04:41:04 来源:网络 阅读:185 作者:派獭星 栏目:系统运维

mysql数据库的备份和主从


一 冷备份:

  份,停服,tar命令,直接将mysql的数据目录打包

mysql数据库的备份和主从

mysqldump hellodb(库名) > hellodb.sql 这种方式是不会备份库的创建方式的,所以在当把hellodb数据库删除之后,可以把库里面的表和里面的数据恢复,但是恢复不了库;

mysqldump -B hellodb(库名)> hellodb.sql 这种方式不仅会备份库里面的表和数据,而且会将库的创建过程也备份;

mysqldump份数据-A,份mysql和⾃定数据,推荐使⽤。 会将mysql库和自定义的库包括创建方式和数据都备份下来;


mysqldump份数据,-R份所有存储过程和⾃定函数;


mysqldump -A 完全备份+mysqlbinlog组合 在完全备份前查看二进制日志当前的标记位,在完全备份后如果继续对库进行操作,就会使用二进制日志做增量备份

   > mysqldump -A > xx.sql (此时查看show master logs是mysql-bin.000001 8099)

   > mysqlbinlog --start-position=8099 /data/bin/mysql-bin.000001 > /data/backup/inc.sql(这个操作会将标记位8099后的对数据库的操作记载下来,不会记载8099前的)

 > 在恢复数据时,先恢复全局备份,然后再恢复增量备份;



InnoDB选项

  支持热备,可用温备但不建议用 --single-transaction 此选项Innodb中推荐使用,不适用MyISAM,此选项会开始备份前,先执行START TRANSACTION指令开启事务 此选项通过在单个事务中转储所有表来创建一致的快照。 仅适用于存储在支持多版本控制的存储引擎中的表(目 前只有InnoDB可以); 转储不保证与其他存储引擎保持一致。 在进行单事务转储时,要确保有效的转储文件(正 确的表内容和二进制日志位置),没有其他连接应该使用以下语句:ALTER TABLEDROP TABLERENAME TABLETRUNCATE TABLE此选项和--lock-tables(此选项隐含提交挂起的事务)选项是相互排斥备份大型表 时,建议将--single-transaction选项和--quick结合一起使用

 InnoDB建议备份策略 mysqldump –uroot –A –F –E –R --single-transaction --master-data=1 --flush-privileges -- triggers --default-character-set=utf8 --hex-blob > $BACKUP/fullbak_$BACKUP_TIME.sql

   推荐的InnoDB选项 mysqldump -A --single-transaction --master-data=1 --hex-blob > /data/backup/fullbak_`date +%F`.sql


  一个Innodb分库备份的脚本

      #!/bin/bsah 

      for db in `mysql -e 'show databases'|grep -Evi 'information_schema|performance_schema|test|Database'`;do 

               mysqldump -B ${db} --single-transaction --master-data=2 |gzip > /data/backup/${db}_`date +%F`.sql.gz 

      done


MyISAM选项

   支持温备;不支持热备,所以必须先锁定要备份的库,而后启动备份操作 锁定方法如下: -x,--lock-all-tables:加全局读锁,锁定所有库的所有表,同时加--singletransaction--lock-tables 选项会关闭此选项功能 注意:数据量大时,可能会导致长时间无法并发访问数据库 -l,--lock-tables:对于需要备份的每个数据库,在启动备份之前分别锁定其所有表,默认为on,--skip-locktables选项可禁用,对备份MyISAM的多个库,可能会造成数据不一致 注:以上选项对InnoDB表一样生效,实现温备,但不推荐使用 

  MyISAM建议备份策略 mysqldump –uroot –A –F –E –R –x --master-data=1 --flush-privileges --triggers --defaultcharacter-set=utf8 --hex-blob > $BACKUP/fullbak_$BACKUP_TIME.sql





mysql的主从

在主节点上开启二进制日志,从节点上开启中继日志,而且server_id的编号主从不能相同,

主例子:

mysql数据库的备份和主从

从:


mysql数据库的备份和主从


在主服务器上创建一个有权限同步的用户

  GRANT REPLICATION SLAVE ON *.* TO repluser@'192.168.23.148' IDENTIFIED BY '123456';   

从服务器:

CHANGE MASTER TO MASTER_HOST='master2.mycompany.com', MASTER_USER='replication', MASTER_PASSWORD='bigs3cret', MASTER_PORT=3306, MASTER_LOG_FILE='master2-bin.001', MASTER_LOG_POS=4;

start slave;










  

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI