拉不拉稀肚拉稀 发表于 4 天前

mysql的事件控制和数据库的备份和恢复

事件控制语句

https://i-blog.csdnimg.cn/direct/82143d4d3aae4efeb885d558640523b3.png
https://i-blog.csdnimg.cn/direct/8ea825dd58fb473cb36730acec086f65.png
https://i-blog.csdnimg.cn/direct/b59dbb68fe9c416595dc163d46e3809e.pnghttps://i-blog.csdnimg.cn/direct/05edfec7fb33457d9a6fe3852deb733d.png
行锁和死锁

https://i-blog.csdnimg.cn/direct/23b13b7a113747edbe52fbf6f570a0ea.png
行锁

两个客户端同时对同一索引行进行操纵
客户端1正常运行
https://i-blog.csdnimg.cn/direct/4e90097b6b294bb5aeb5437d311054c9.png
客户端2想修改,被锁行
https://i-blog.csdnimg.cn/direct/f525e7de569746cca493591241dddb46.png
除非将事件提交才气继续运行
死锁

客户端1删除第5行
https://i-blog.csdnimg.cn/direct/451fbe49bdc74b2bb98c151896c42627.png
客户端2设置第1行为排他锁
https://i-blog.csdnimg.cn/direct/7881759c135a45b9a1e6b6e4a27e18e4.png
客户端1删除行1被锁
https://i-blog.csdnimg.cn/direct/f7e0ae914bc44df6860bd936df8a6b3e.png
客户端2更新行5被锁
https://i-blog.csdnimg.cn/direct/b61059d29db245e7a2747f744a28e1c1.png
https://i-blog.csdnimg.cn/direct/d43c0b1522ec4550a4e5df96e1de5568.png

怎样避免死锁

https://i-blog.csdnimg.cn/direct/f3801185d5c9451da977623974dd29db.png
mysql的备份和还原以及日志管理

备份的目标就是劫难恢复
数据备份的分类

https://i-blog.csdnimg.cn/direct/05dc677343c346aeacba1cc503df8cd1.png
备份策略

https://i-blog.csdnimg.cn/direct/cbc40111fa0c403d84264cfa7ccf182d.png
全量备份

https://i-blog.csdnimg.cn/direct/e530cb3f40d74971874b19d5e38fc907.png
查看mysql数据保存路径
vim /etc/my.cnf https://i-blog.csdnimg.cn/direct/ee5038a1901148059a85a21deb845eaa.png
tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/ 把mysql的data目次,打包的格式.xz,保存到opt的目次下
https://i-blog.csdnimg.cn/direct/267c7f4a84f3491b8e17d7fed313a1a0.png
mysqldump的备份和恢复

https://i-blog.csdnimg.cn/direct/fe62b8c2e213482685362aecafd59bde.png
https://i-blog.csdnimg.cn/direct/7ef23a1bd9e14b6cae6e5e6cc3397bf8.png
https://i-blog.csdnimg.cn/direct/3b95770114ca4aa79a23231493f07564.png
热备份

https://i-blog.csdnimg.cn/direct/57eb99f17cd34a28aab0d2923905d55f.png
通过二进制日志进行备份和还原

先将mysql的二进制日志功能打开
https://i-blog.csdnimg.cn/direct/09ca84bc62a64caba3c94dc7c217df54.png
二进制日志的记录格式

https://i-blog.csdnimg.cn/direct/eef3fc6934af406ab234b28f35bd110e.png
https://i-blog.csdnimg.cn/direct/e2b1ab531b6d4edeb3e51a021168a5cf.png
使用mysqlbinlog命令来查看日志文件
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001 https://i-blog.csdnimg.cn/direct/bef4262bbbe24927adcff069ce7454c6.png
二进制日志的分割

mysqladimn -u root -p123456 flush-log https://i-blog.csdnimg.cn/direct/0469b4a961de40ed9e39af2118029957.png
通过二进制日志进行恢复

mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p123456 如果日志在当前文件则不必要指明路径,反之必须指明路径
https://i-blog.csdnimg.cn/direct/c4eb3916aa884973884629bd01eba37a.png
mysqladmin -u root -p123456 flush-logs
我们是按天来执行的,我们就可以按天对数据库进行增量的备份。
mysqlbinlog --no-defaults mysql-bin.000004 | mysql -u root -p123456
基于位置和时间进行恢复

mysqlbinlog --no-defaults --start-position='1338' mysql-bin.000005 | mysql -u root -p123456
从指定位置开始恢复数据,一直恢复到文件的结尾。
mysqlbinlog --no-defaults --stop-position='1338' mysql-bin.000005 | mysql -u root -p123456
从开始恢复到竣事位置
从指定位置开始,到指定的位置竣事:
mysqlbinlog --no-defaults --start-position='1338' --stop-position='1338' mysql-bin.000005 |mysql -u root -p123456
mysqlbinlog --no-defaults --start-datetime='1338' mysql-bin.000005 | mysql -u root -p123456
从指定时间开始恢复数据,一直恢复到文件的结尾。
mysqlbinlog --no-defaults --stop-datetime='1338' mysql-bin.000005 | mysql -u root -p123456
从开始时间到竣事位置
从指定时间开始,到指定的时间竣事:
mysqlbinlog --no-defaults --start-datetime='2024-12-20 13:47:17' --stop-datetime='2024-12-20 13:47:38' mysql-bin.000005 |mysql -u root -p123456
log-error=/usr/local/mysql/date/mysql-error.log
#记录mysql在启动,克制或者是运行时,产生错误的日志
general_log=ON general_log_file=/usr/local/mysql/date/mysql_general.log
#开启mysql在使用过程中的记录日志
slow_query_log=ON slow_query_log_file=/usr/local/mysql/date/mysql_slow_query.log long_query_time=5
#开启慢查询日志,用来记录所有查询的时间凌驾long_query_time=5的记录,查询的执行时间凌驾5秒钟就会记录。
不注明,默认是10秒
开启错误日志

og-error=/usr/local/mysql/date/mysql-error.log
#记录mysql在启动,克制或者是运行时,产生错误的日志
general_log=ON general_log_file=/usr/local/mysql/date/mysql_general.log
#开启mysql在使用过程中的记录日志
slow_query_log=ON slow_query_log_file=/usr/local/mysql/date/mysql_slow_query.log long_query_time=5
#开启慢查询日志,用来记录所有查询的时间凌驾long_query_time=5的记录,查询的执行时间凌驾5秒钟就会记录。
不注明,默认是10秒

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: mysql的事件控制和数据库的备份和恢复