完全バックアップには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」のような変数を表示します。値はオンです。
データ復旧
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