发布网友 发布时间:2022-04-22 00:14
共3个回答
懂视网 时间:2022-04-07 23:03
set autocommit = 0; insert into t1(name) values ("user1"); savepoint p1; insert into t1(name) values("user2"); svaepoint p2; insert into t1(name) values("user3"); savepoint p3; rollback to p2; //结果是user3数据插入失败mysql创建还原点
标签:
热心网友 时间:2022-04-07 20:11
1、首先确定my.ini(Win系统)或my.cnf(Linux系统)是否有如下配置
[mysqld]
log-bin=mysql-bin
等号后面是文件名或者路径加文件名。
或者
用命令看是否开启binlog配置:
mysql> show master logs;
mysql> show binlog events g;
2、提供故障时点描述信息
3、如果开启了binglog那就可以按故障还原点或者时间点进行还原操作了
mysqlbinlog --start-position=
mysqlbinlog --start-datetime=
这里语法是进一步查询的线索,不知道你是什么OS、开发还是生产库?不能乱指挥。
【备份:做故障还原及数据恢复前切忌做好备份(数据文件以及日志文件)】
热心网友 时间:2022-04-07 21:29
您好,很高兴为您解答。
要想通过日志恢复数据库,在my.cnf文件里应该有如下的定义,log-bin=mysql-bin,这个是必须的.binlog-do-db=db_test,这个是指定哪些数据库需要日志,如果有多个数据库就每行一个,如果不指定的话默认就是所有数据库.
[mysqld]
log-bin=mysql-bin
binlog-do-db=db_test
binlog-do-db=db_test2
删除二进制日志:
a.mysql> system ls -ltr /var/lib/mysql/bintest*;
mysql>reset master(清空所有的二进制日志文件)
b.purge master logs to 'bintest.000006';(删除bintest.000006之前的二进制日志文件)
c.purge master logs before '2007-08-10 04:07:00'(删除该日期之前的日志)
d.在my.cnf 配置文件中[mysqld]中添加:
expire_logs_day=3设置日志的过期天数,过了指定的天数,会自动删除
下面就是恢复操作了
特别提示,mysql每次启动都会重新生成一个类似mysql-bin.000003的文件,如果你的mysql每天都要重新启动一次的话,这时候你就要特别注意不要选错日志文件了。
可以看下这个:http://wenku.baidu.com/link?url=K4RYPxyNXo9gVJd3Rr-FBk4fWaz8I7v3M8U5zkvX6tE58h5kC29w4tv1atq-KhYFfnzb7krZAEk-1kjC17Uas-8Kym3pudnF_eGMkz7Vi
如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】
希望我的回答对您有所帮助,望采纳!
~ O(∩_∩)O~