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

打印 上一主题 下一主题

主题 789|帖子 789|积分 2369

事件控制语句




行锁和死锁


行锁

两个客户端同时对同一索引行进行操纵
客户端1正常运行

客户端2想修改,被锁行

除非将事件提交才气继续运行
死锁

客户端1删除第5行

客户端2设置第1行为排他锁

客户端1删除行1被锁

客户端2更新行5被锁



怎样避免死锁


mysql的备份和还原以及日志管理

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


备份策略


全量备份


查看mysql数据保存路径
  1. vim /etc/my.cnf
复制代码

  1. tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/
复制代码
把mysql的data目次,打包的格式.xz,保存到opt的目次下

mysqldump的备份和恢复




热备份


通过二进制日志进行备份和还原

先将mysql的二进制日志功能打开

二进制日志的记录格式



使用mysqlbinlog命令来查看日志文件
  1. mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001
复制代码

二进制日志的分割

  1. mysqladimn -u root -p123456 flush-log
复制代码

通过二进制日志进行恢复

  1. mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p123456
复制代码
如果日志在当前文件则不必要指明路径,反之必须指明路径

  1. mysqladmin -u root -p123456 flush-logs
  2. 我们是按天来执行的,我们就可以按天对数据库进行增量的备份。
  3. 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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

拉不拉稀肚拉稀

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表