苏州cms建站,做网站搭建环境,群晖安装多个wordpress,苏州网站建设建站网1.1 问题简述
开发反馈误删除了部分业务数据#xff0c;需要恢复数据。 这里采用binlog2sql工具进行数据回滚。 1.2 环境 CentOS Linux release 7.4.1708 (Core) mysql Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL) 1.3 数据库开启binlog 因为数据库serve…1.1 问题简述
开发反馈误删除了部分业务数据需要恢复数据。 这里采用binlog2sql工具进行数据回滚。 1.2 环境 CentOS Linux release 7.4.1708 (Core) mysql Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL) 1.3 数据库开启binlog 因为数据库server端服务器没有root权限为了方便安装 所以在网络打通且有root权限的测试服务器上安装工具恢复数据。
下载及安装
2.1 安装包下载 由于环境无法连接互联网所有采用下载安装包的方式进行安装。 1下载Python-3.8.2 https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz 2下载Binlog2sql https://codeload.github.com/danfengcao/binlog2sql/zip/master
3下载PyMySQL-0.9.3 https://codeload.github.com/PyMySQL/PyMySQL/tar.gz/v0.9.3
4下载mysql-replication-0.21 https://files.pythonhosted.org/packages/e3/54/8c496e300d610299bf168e2068dc10a64b66b299cbe596a27aac5d5b3e7b/mysql-replication-0.21.tar.gz 2.2 pip安装 #yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel #tar -xvf Python-3.8.2.tar.xz #cd Python-3.8.2 ./configure --prefix/usr --with-ensurepip --with-system-ffi make make install rootlocalhost.localdomain:[/root/soft]python3 --version Python 3.8.2 rootlocalhost.localdomain:[/root/soft]pip3 --version pip 19.2.3 from /usr/lib/python3.8/site-packages/pip (python 3.8)
2.3 PyMySQLmysql-replication安装 #pip3 install PyMySQL-0.9.3.tar.gz #pip3 install mysql-replication-0.21.tar.gz rootlocalhost.localdomain:[/root/soft]pip3 list Package Version mysql-replication 0.21 pip 19.2.3 PyMySQL 0.9.3 setuptools 41.2.0 2.4 解压binlog2sql #unzip binlog2sql-master.zip #mv binlog2sql-master/binlog2sql ./ 常用参数 可选参数 –stop-never -K, --no-primary-key -B, --flashback –back-interval 连接参数 -h -u -p -P 日志过滤参数 –start-file --stop-file --start-position --stop-position --start-datetime --stop-datetime 对象过滤参数 -d DATABASES2 DATABASES2 -t TABLE1 TABLE2 类型过滤参数 –only-dml --sql-type INSERT UPDATE DELETE
数据恢复
同开发确认误操作的时间以及表名。根据binlog的时间确定采用哪个binlog进行数据恢复。
执行命令可以查看恢复前执行的SQL。 python binlog2sql/binlog2sql.py -utestuser -pxxx-dtestdb -t test --start-file‘mysql-bin.000013’ --start-datetime‘2022- 03-01 14:30:00’ --stop-datetime‘2022-03-01 15:30:00’ --only-dml –sql-type DELETE delete.txt
执行命令生成回滚SQL。 python binlog2sql/binlog2sql.py -B -utestuser -pxxx-dtestdb -t test --start-file‘mysql-bin.000013’ --start- datetime‘2022-03-01 14:30:00’ --stop-datetime‘2022-03-01 15:30:00’ --onl 最终执行回滚SQL重新插入数据即成功恢复数据。 mysqlsource insert.txt