mysql数据库的备份和主从

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 TABLE,DROP TABLE,RENAMETABLE,TRUNCATE 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;



  


新闻标题:mysql数据库的备份和主从
转载注明:http://hbruida.cn/article/phdojj.html