mysql数据备份和恢复

mysql数据备份和恢复


全量备份使用mysqldump命令,增量备份使用binlog配置

全量备份

1.全量备份命令

mysqldump -u${
    
    DB_USER} -P${
    
    DB_PORT} -p${
    
    DB_PWD} --host=${
    
    HOST} ${
    
    DATABASE} | gzip > ${
    
    BACKUP}/${
    
    DATETIME}.sql.gz

增量备份

2.增量备份 binlog配置

[mysqld]

#binlog 配置
binlog_format=mixed 	#此参数配置binlog的日志格式,默认为mixed。
log-bin =/var/lib/mysql//logs/mysql-bin.log #此参数表示启用binlog日志功能,并可以定制路径名称,默认为mysql-bin
expire-logs-days = 14	#日志保留的时间,默认单位是天
binlog-do-db=db_name 	#记录指定数据库日志
binlog-ignore-db=db_name		#忽略指定数据库
max-binlog-size = 500M		#binlog的日志最大值,最大和默认值是1GB
server-id = 1		#同步时用的 不要与其他server-id重复

重启mysql后 show variables like ‘log_bin’; Value 为 ON即可

恢复数据

echo "解压昨日备份文件获得全量sql"
gunzip ${
    
    BACKUP}/${
    
    DATETIME}.sql.gz
echo "获得当日增量sql"
mysqlbinlog -v --start-datetime="2020-09-04 00:00:00" --stop-datetime="2020-09-04 23:00:00" //var/lib/mysql//logs/mysql-bin.log.000* > 20200908.sql
echo "执行昨天全量sql"
mysql -h${
    
    HOST} -u${
    
    DB_USER} -p${
    
    DB_PWD}  --default-character-set=utf8 ${
    
    DATABASE} < ${
    
    BACKUP}/${
    
    DATETIME}.sql
echo "执行当日增量sql"
mysql -h${
    
    HOST} -u${
    
    DB_USER} -p${
    
    DB_PWD}  --default-character-set=utf8 ${
    
    DATABASE} < ${
    
    BACKUP}/${
    
    DATETIME}.sqll

猜你喜欢

转载自blog.csdn.net/chen_cxl/article/details/108442931