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을 다시 시작한 후 'log_bin'과 같은 변수 표시; 값은 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