MySQL主从同步集群在生成环境使用过程中,如果主从服务器之间网络通信条件差或者数据库数据量非常大,容易导致MySQL主从同步延迟。...MySQL主从产生延迟之后,一旦主库宕机,会导致部分数据没有及时同步至丛库,重新启动主库,会导致丛库与主库同步错误,如何快速恢复主从同步关系呢,如下有两种方法: 1、忽略错误后,继续同步(只有一次错误)...Master端执行如下命令,将数据库设置全局读锁,不允许写入新数据: flush tables with read lock; Slave端停止Slave I/O及sql线程,同时将同步错误的SQL...跳过1次,跳过会导致数据不一致,最后启动start slave,同步状态恢复,命令如下: stop slave; set global sql_slave_skip_counter =1; start...备份文件传到从库机器,进行数据恢复: scp mysql.sql root@10.6.97.134:/tmp/ 5)停止从库的状态,导入数据备份 mysql> stop slave; mysql> source
导读当mysql存在坏块的时候, 查询对应的表就会报错,然后数据库就crash了....比如:也就是只有我们查询有坏块的表的时候才会发现有坏块,启动的时候并不会做坏块检查, 那么我们要怎么知道数据库有哪些表有坏块了呢? 有坏块后怎么处理呢?...innochecksummysql提供了一个工具innochecksum来检查数据块.正常情况下, 打印页信息, 比如:代码语言:shell复制(venv) 14:03:07 [root@ddcw21...ibd -SFail: page 4 invalidExceeded the maximum allowed checksum mismatch count::0也就是可以使用innochecksum来检查数据库是否存在坏块...即要停库后再检查.不然会有如下报错:fcntl: Resource temporarily unavailable 为了安全, 也就将就把. 所以本文就结束了. 感谢观看!
导读当mysql存在坏块的时候, 查询对应的表就会报错,然后数据库就crash了....比如:也就是只有我们查询有坏块的表的时候才会发现有坏块,启动的时候并不会做坏块检查, 那么我们要怎么知道数据库有哪些表有坏块了呢? 有坏块后怎么处理呢?...innochecksummysql提供了一个工具innochecksum来检查数据块.正常情况下, 打印页信息, 比如:(venv) 14:03:07 [root@ddcw21 mysql-8.0.37...ibd -SFail: page 4 invalidExceeded the maximum allowed checksum mismatch count::0也就是可以使用innochecksum来检查数据库是否存在坏块...即要停库后再检查.不然会有如下报错:fcntl: Resource temporarily unavailable 为了安全, 也就将就把. 所以本文就结束了. 感谢观看!
故障场景: 周三下午2点,开发Navicat连接数据库实例错误,导致生产数据被误删除(DROP) 恢复思路: 挂维护页。 检查备份、日志可用。...如果只是部分损坏,建议找一个应急库进行恢复 全备恢复 日志截取并恢复 恢复后数据校验 (业务测试部门验证) 立即备份(停机冷备) 恢复架构系统 撤维护页,恢复业务 环境搭建 mysql> create...> source /tmp/bin.sql mysql> set sql_log_bin=1; 100G mysqldump全备恢复时间很长,误删除的表10M大小 ,有什么思路可以快速恢复?...检查备份:周日full+周一inc1+周二inc2,周三的完整二进制日志 3. 进行备份整理(细节),截取关键的二进制日志(从备份——误删除之前) 4. 测试库进行备份恢复及日志恢复 5....进行恢复 [root@cs lib]# innobackupex --copy-back /tmp/backup/full/ [root@cs lib]# chown -R mysql.mysql mysql
查看 查看mysql版本 select version(); 查看开启状态 show variables like 'log_bin'; 如果值为OFF 则未开启 ?...(注:名称若带有小数点,则只取第一个小数点· 前的部分作为名称) mkdir /data/mysql/logs/ chown -R mysql.mysql /data/mysql/logs/ [mysqld...] #设置日志格式 binlog_format = row #设置日志路径,注意路经需要mysql用户有权限写 log-bin = /data/mysql/logs/mysql-bin.log #设置binlog...# 是否启用binlog日志 show variables like 'log_bin'; # 查看详细的日志配置信息 show global variables like '%log%'; # mysql
MySQL 数据恢复 前言 前两天因为没注意的误操作, 直接把某个数据表清掉了, 心慌慌. 怪自己学艺不精, 当时整了一下午也没把数据找回来....对于 MySQL 数据的备份, 主要有两种: 全量备份和增量备份. 全量备份: 将数据库中的所有数据全部进行备份. 相当于复制粘贴的步骤...., 找到当天的全量备份数据恢复, 然后在这基础上进行增量恢复即可恢复到某个特定的时间点....增量备份就是 mysql 的binlog了....通过全量备份, 将数据恢复到今天凌晨的时刻 进入 MySQL命令行, 执行数据恢复文件: source /Users/hujing/dir/tmp/mysqldump_log/2020-09-04.sql
=0,5.6及以上版本应该配置为skip_symbolic_links=yes,并重启mysql服务。...执行SQL语句: OPTIMIZE TABLE user; flush privileges; 9.确保配置了log-error选项 描述 启用错误日志可以提高检测针对mysql和其他关键消息的恶意尝试的能力...,例如,如果错误日志未启用,则连接错误可能会被忽略。...,并重启mysql服务: log-error= 10.删除’test’数据库 描述 测试数据库可供所有用户访问,并可用于消耗系统资源。...删除测试数据库将减少MySQL服务器的攻击面。
例如,如果要安装需要特定 MySQL 版本的应用程序,则需要在安装开始之前确定 MySQL 服务器的版本。...在本文中,我们将向您展示如何检查系统上安装的 MySQL 或 MariaDB 服务器的版本。...64 使用 MySQL 客户端查看版本 命令客户端实用程序 mysql 也可用于确定 MySQL 服务器的版本。...要连接到 MySQL 服务器,只需键入 mysql : mysql 连接到 MySQL shell 后,该版本将打印在屏幕上: Welcome to the MySQL monitor....这样的 MySQL 客户端,则可以使用 PHP 确定 MySQL 服务器的版本。
MySQL 基线检查项 参考链接: https://github.com/wstart/DB_BaseLine 账号权限基线检查 run_power_test 启动 MySQL 的系统账号 是否单独创建...且 不允许登陆 默认管理员账号是否存在 高级权限账号 是否是必须 系统数据库 MySQL 的高级权限账号 是否必须 具有特定的高级权限账号是否必须 File_priv 文件权限 Process_priv...= 'datadir' 检查MYSQL命令执行历史记录 ~/.mysql_history 敏感的日志,查询,错误,审计文件 log_bin_basename log_error slow_query_log_file...general_log_file audit_log_file relay_log_basename 数据库配置基线检查 run_config_test 错误日志是否开启 SHOW variables...LIKE 'log_error'; 错误日志等级设置 SHOW GLOBAL VARIABLES LIKE 'log_warnings'; 测试数据库是否存在 SHOW DATABASES LIKE
由于MySQL为多引擎数据库,所以需要说明的是MySQL实例恢复,实质上指的是对事务进行恢复,即对innodb恢复。...本文简要描述mysql实例恢复的步骤,并通过具体演示来感受mysql实例恢复的过程。 一、MySQL实例 MySQL实例就是mysqld后台进程以及多个线程再加上内存分配 ?...二、MySQL实例恢复的步骤 ? 三、InnoDB恢复过程 InnoDB崩溃恢复包括几个步骤: 1、应用重做日志 重做日志应用程序是第一步,在实例初始化期间执行,此时不接受任何连接。...在回滚操作完成之前,新连接可能会遇到与已恢复事务的锁定冲突。在大多数情况下,即使MySQL服务器在繁重的活动中被意外杀死,恢复过程自动发生,DBA不需要任何操作。...如果是硬件失败或严重的系统错误导致InnoDB数据损坏,MySQL可能会拒绝启动。
今天分享一下binlog2sql,它是一款比较常用的数据恢复工具,可以通过它从MySQL binlog解析出你要的SQL,并根据不同选项,可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等...2.1 参数设置 MySQL server必须设置以下参数 [mysqld] server_id = 128 log_bin = /data/mysql/mysql3306/logs/mysql-bin...max_binlog_size = 512M binlog_format = row binlog_row_image = full # 默认值,可以不显式设置 2.2 创建恢复账号 因binlog2sql...3.1 生成恢复SQL 因知道大概误删除的时间,因此通过解析对应时间的binlog恢复出指定库表的数据,生成的结果是用于恢复的sql python binlog2sql.py --flashback...7 | vgcess | 29 | | 8 | hdgd | 0 | +----+--------+-------+ 8 rows in set (0.00 sec) 数据已恢复
1.确保MYSQL_PWD环境变量未设置 描述 MYSQL_PWD环境变量的使用意味着MYSQL凭证的明文存储,极大增加MySQL凭据泄露风险。...加固建议 删除系统环境变量中MySQL密码(MYSQL_PWD)配置 2.匿名登录检查 描述 检查MySQL服务是否允许匿名登录 加固建议 登录MySQL数据库,执行以下命令删除匿名账户: delete...加固建议 编辑Mysql配置文件/my.cnf,删除log-raw参数,并重启mysql服务 4.禁止使用–skip-grant-tables选项启动MySQL服务 描述 使用此选项...加固建议 编辑Mysql配置文件/my.cnf,删除skip-grant-tables参数,并重启mysql服务 5.为MySQL服务使用专用的最低特权账户 描述 使用最低权限账户运行服务可减小...MySQL天生漏洞的影响。
一、mysql冷备及恢复 1.1、冷备 # 停止mysql mysqladmin -uroot -proot123 shutdown # 拷贝数据文件 scp -r /data/mysql root@...back ip:/root cp -r /data/mysql /本地新目录 1.2、恢复 将已经备份的数据目录替换到原有的目录, 重启mysql服务 二、mysql热备及恢复 2.1、mysqldump.../all-20190217incr --incremental-basedir=/data/mysql_back/all-20190216bak 增量恢复 # 恢复全备 innobackupex --.../ mysql chown -R mysql:mysql mysql # 启动mysql mysqld_safe --defaults-file=/etc/my.cnf & 三、msyql误删恢复 3.1....000012' --start-position=902 --stop-position=2974 -B > rollback.sql | cat 4、执行回滚语句,并检查是否正确 # 执行回滚语句
# 查看备份文件 all-data.sql databases.sql user-table.sql 恢复数据库: 恢复库中的表 mysql [选项] 库名 恢复操作 Enter password: [root@mysql /]# mysql -u root -p -e ' show databases;' // 确认恢复后结果...,恢复: [root@mysql /]# mysql -u root -p test mysql_bak/test_userinfo2019-08-02.sql # 先恢复完整备份...'456' /mysql_bak/mysql-bin.000002 | mysql -u root -p # 恢复操作ID‘456’ 之前的操作 Enter password...谨记,所有类型的增量恢复之前,都必须先执行最近一次的完全恢复。 谨记,所有类型的增量恢复之前,都必须先执行最近一次的完全恢复。
前面一篇已经介绍了MySQL 备份相关的原理与方法,要是还没有来得及看的可以戳此查看『MySQL 备份恢复(一)』,那么今天就接着上一篇的内容继续谈谈备份恢复相关内容。...select …… into outfile SELECT INTO…OUTFILE 语句是一种逻辑备份方法,恢复速度非常快,比 inser的插入速度要快很多。...将表数据导出到一个文本文件中,并用LOAD DATA …INFILE 语句恢复数据。...但是这种方法只能导出或导入数据的内容,不包括表的结构,如果表的结构文件损坏或者表被 drop,则必须先恢复原来的表的结构。...当备份时出现了如上 ERROR 1290 的错误,网上查阅资料时说是由于参数 --secure-file-priv 设置为空的问题,此问题在 MySQL5.6 中不会出现,5.7 中则会出现如上错误
Redis主从架构 问题:redis down重启后,能恢复key值,时间会有延迟,down机之间的值将会丢失。 实验环境,主从做在一台服务器上,利用不同端口。...思路原理: redis有两种持久化方式,rdb 与aof模式,考虑到aof模式增长过快,恢复比较缓慢,就在从上做rdb模式,主down之后,脚本检查主的状态,之后在从上做bgsave,把从上的rdb文件...通过判断主上key值得数量,是否跟从上的数量一样,来判断是否恢复正常,然后就可以实现key值得完全恢复。备份方式为,一个小时copy一次从上的rbd文件,做一个小时一次的备份。...,比较主的key和主宕机后从的key,来判断是否恢复正常, 遇到的问题:在恢复过程中,主key的值一直小于从的key的值,但是主启动完全正常,key值也完全一样,经过思考发现,是程序执行问题,脚本执行太快...,当执行到比较的时候,key值得数量未完全恢复,只是时间的问题,所以执行了sleep 3 秒之后,一切正常。
1、备份 mysqldump -u x -p x dbname1 > dbname1.date.sql 还原 mysql -uroot -px <x.date.sql mysqldump -ux -px...utf8; system cat filename load data infile 'filename' into table tblname fields terminated by '-'; 4、恢复...source xx.sql gzip -d xx.sql.gz mysql -e "" 5、查看连接线程 show full processlist; 6、查看和设置超时 show variables...dbname1 xx-bin.000004 -r x.sql --start-position --stop-position --start-datetime --stop-datetime 8、恢复
恢复数据到从库 设置MySQL还原点 启动从库开始主从复制 连接数据库 先连接主库 mysql -uroot -p 切换数据库(或者不切换也行) use yourdatabase; 停止主从复制 stop...提高mysql导入速度。...(和磁盘IO差不多就行) set global bulk_insert_buffer_size=128*1024*1024; 恢复数据 (根据自己的备份方式恢复) source /bakfile 找到mysql..._sync', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin-190.000640', MASTER_LOG_POS=120; 修改缓存。...查看mysql 错误日志。
为了正确恢复,该选项应该用于导出mysql数据库和依赖mysql数据库数据的任何时候。 20 --force在导出过程中忽略出现的SQL错误。..._$(date +%F).sql (2)恢复操作 a、删除student表(库必须要保留,空库都行) mysql -uroot -p'123456' -e "use mytest;drop table...student;" b、恢复数据 mysql -uroot -p'123456' mytest < /mnt/mytest_bak.sql c、查看数据 mysql -uroot -p'123456...(2)恢复操作 a、删除mytest库 mysql -uroot -p'123456' -e "drop database mytest;" b、恢复数据 (1)使用不带参数的导出文件导入(导入时不指定要恢复的数据库...(2)使用带-B参数的导出文件导入(导入时也不指定要恢复的数据库),成功 mysql -uroot -p'123456' < /mnt/mytest_bak_B.sql c、查看数据 mysql -
前面三篇已经介绍了 MySQL 备份相关的原理与方法,要是还没有来得及看的可以戳此查看『MySQL 备份恢复(三)』,那么今天就接着继续谈谈备份恢复相关内容之 Xtrabackup 的原理、安装与使用,...crash recovery 则是在 InnoDB 内部维护了一个 redo log,又叫事务日志 transaction log,它包含了 InnoDB 数据的所有更改信息;在 InnoDB 启动时,会先检查...XtraBackup 备份恢复操作 1、创建备份账号 我们可以使用 MySQL 的 root 用户进行备份工作,也可以单独创建一个用于数据库备份的用户,过程如下。...先做一次全备,然后查看表 t ,然后在插入数据,做一次增备,查看备份的相关信息,然后在做一次增备,检查备份相关信息后模拟故障删除表 t ,实现一个增量备份恢复的过程。...MySQL 备份相关的知识点应该是全部结束了,其他几篇可以查看历史记录。备份恢复的时候翻出来瞅瞅,大概率是有帮助的,有帮助我也很欣慰,好久没开过赞赏了,要是下面能出现你的头像,那我会更加欣慰的!