mysql备份和恢复

mysql备份和恢复

        • 一、备份(全量+增量)
        • 二、恢复
        • 三、测试

一、备份(全量+增量)

# 全量备份
mysqldump  -uroot -proot --databases 数据库名> /home/mysql-backup/数据库名_`date +%Y%m%d`.sql;
#删除增量数据
mysql -uroot -p数据库密码
# 删除当前的binlog文件
reset master;
# 删除slave的中继日志
reset slave;
# 删除指定日期前的日志索引中binlog日志文件
purge master logs before '2019-03-09 14:00:00';
# 删除指定日志文件
purge master logs to 'master.000003';
exit

二、恢复

#登录msql
mysql -uroot -proot
show master status;                 
show binlog events in 'back.000001'; 
exit
mysqlbinlog --no-defaults  back.000001 | mysql -uroot -p数据库密码
# 从日志开头截止到某个时间点的恢复
mysqlbinlog --no-defaults --database=数据库名 --stop-datetime="2023-02-16 19:43:00" back.000001 | mysql -uroot -proot -s -N -f -D 数据库名
# 从某个时间点到日志结尾的恢复
mysqlbinlog --no-defaults --database=数据库名 --start-datetime="2023-02-16 19:43:00" back.000001 | mysql -uroot -proot -s -N -f -D 数据库名
# 从开始position到结束position,一般是SET @@SESSION.GTID_NEXT= 'ANONYMOUS'之前的position
mysqlbinlog --start-position=开始节点 --stop-position=结束节点 --skip-gtids back.000001|mysql -uroot -p数据库密码 -s -N -f 

三、测试

# 创建表
CREATE TABLE IF NOT EXISTS `t_user`(
   `id` INT UNSIGNED AUTO_INCREMENT,
   `name` VARCHAR(100) NOT NULL,
   PRIMARY KEY ( `id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# 增删查
insert into t_user(name) values('cgh');
delete from t_user where name='cgh';
select * from t_user;

你可能感兴趣的:(mysql,数据库,java)