# 物理备份的恢复
存在问题,因为我们是要恢复到docker上的自建数据库,使用mysqld_safe命令启动,我们不好操作
其实只需要吧对应的数据指向容器的/var/lib/mysql 配置指向/etc/my.cnf即可
backup-my.cnf需要修改
## This MySQL options file was generated by innobackupex.
## The MySQL server
[mysqld]
##innodb_checksum_algorithm=innodb
##innodb_log_checksum_algorithm=innodb
##innodb_data_file_path=ibdata1:200M:autoextend
##innodb_log_files_in_group=2
##innodb_log_file_size=1048576000
##innodb_fast_checksum=false
##innodb_page_size=16384
##innodb_log_block_size=512
##innodb_undo_directory=.
##innodb_undo_tablespaces=0
##rds_encrypt_data=false
##innodb_encrypt_algorithm=aes_128_ecb
- 如下为docker-compose.yml文件
version: '3.1'
services:
db:
image: mysql:5.6
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
command:
--default-authentication-plugin=mysql_native_password
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
ports:
- 3306:3306
volumes:
- /home/mysql/data:/var/lib/mysql
- /home/mysql/data/backup-my.cnf:/etc/my.cnf
- 自己测试数据库的备份和恢复,包括逻辑备份以及binlog的恢复
# mysqlbinlog的恢复
直接获取到的binlog的日志是通过base64加密的,需要查看的话,需要通过解密
mysqlbinlog --base64-output=decode-rows -v mysql-bin.000001
通过position恢复的命令
mysqlbinlog --start-position="230" --stop-position="689" binlog.000004 |mysql -uroot -p
通过时间点来进行恢复
mysqlbinlog --start-datetime="2019-10-24 3:21:26" --stop-datetime="2019-10-24 3:21:29" binlog.000004 |mysql -uroot -p