一、mysql中只用redo log或者只用binlog可以吗?
redo log是重做日志,作用是在服务器发生故障或者断电时能把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来。
binlog是二进制日志记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)。
redo log 和 binlog 很大的一个区别是,redo log是循环写,binlog是追加写。这意味着redo log只会记录未刷盘得日志,而binlog则是保存全部。
为什么不能只用其中得一个而是要两个都用?
redo log具有crash-safe,只要刷入磁盘的数据,都会从 redo log 中抹掉,所以假如服务器crash后需要恢复数据,单凭binlog的追加写无法判断那些数据已经写入,所以需要借助redo log的crash-safe功能来协作,重启数据库后,把 redo log 中的数据都恢复至内存就可以了。
二、iptables防止nmap扫描:
iptables -t filter -I INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j REJECT
iptables -t filter -I INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j REJECT
iptables -t filter -I INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j REJECT
iptables -t filter -I INPUT -p tcp --tcp-flags ALL SYN -j REJECT
iptables -t filter -R INPUT 1 -s 192.168.80.138 -p tcp --dport 1: --tcp-flags ALL ACK -j REJECT
三、binlog备份数据
添加一个配置文件
重启一下,可以看到日志开启
新建一个表,并插入一些数据
备份
修改一组数据
drop数据库: drop database aaa;
再备份一下最新的那条数据
刷新日志
恢复表
删除drop语句
然后就完成了。