mysql备份恢复用到日志_mysql日志、备份和恢复

mysql日志:

error log:记录错误信息、 启动停止过程中的日志信息 、 调度事件 、启用主从服务器会记录从服务器的信息

启用--log-error没参数会保存至数据目录下host_name.err即station_example.err

--log-error=/var/log/mysql.error

mysql_safe --log_warning 1会在错误日志中记录警告信息

binary log二进制日志

对数据修改的语句会记录下来 实现pitr point-in-time recovery将数据库恢复到某个时间点

实现数据库复制的

默认记录在数据目录下mysql-bin.index文本日志====mysql-bin.000001二进制格式

ls /data/

查看二进制日志show binary logs;

启用时添加--log-bin = /data/log/binary/changelog

--log-bin-index = /data/log/

查看二进制文件内容

# mysqlbinlog/data/mysql-bin.000001

mysqlbinlog /data/mysql-bin.000001 --start-datetime="2011-03-21 12:24:30"

--end-datetime="2011-03-21 14:24:30"

mysql中查看日志

show binlog envents

show binlog envents in 'mysql-bin.000001';

show binlog envents in 'mysql-bin.000001' from 525 limit 3;从525开始的前三行

general query log:一般日志文件 默认没开启

启用--general_log=

--general_log_file指定一般日志文件位置

--slow_query_log慢查询日志

--slow_query_log_log

--log_output慢日志记录的格式none不记录file记录在文件table记录在表中 默认为file

查看一般日志文件是否开启:

select @@general_log;

select @@general_log_log;

slow query log慢速日志查询日志

mysql的日志滚动:日志过大做出的策略

# mysqladminrefresh

flush logs手动滚动二进制和错误日志mysql中

可以将其脚本放到特定的目录crontab中

purge binary logs修剪二进制日志 删除指定位置以前的所有日志

purge binary logs to 'mysql-bin.000005'修剪000005之前的日志

purge binary logs before '2011-3-5 23:00:00';

检索修复表:

myisamchk --extend-check文件名 扩展检查修复

--recover stu2.MYI

myisamchk --extend-check /data/mydb/stu2.MYI

mysql中执行:

check table stu2检查表

repair table sru2修复表

analyze table stu2分析表

optimize table stu2又换表

mysql的备份和恢复:

数据库的损坏:电源 人为 硬件 网络失败

备份:完全增量差异

冷备温备热备

逻辑备份 物理备份

一致性备份 :文件的修改时间在备份之前 可用来做恢复的

非一致性备份

名字支持引擎类型备份速度恢复速度

工具:mysqldump逻辑all引擎温备:只读不写的慢慢

mysqldumpinnodb热备:可读可写慢慢

ibbackup商业的innodbhot速度快快

mk-parallel-backupall引擎温备中速中速

filesystemall冷备最快最快

snapshotallhot快快

mysqlhotcopymylsam几乎冷备快快

mysqldump-uroot -p mydb > /root/mysql.sql备份mydb数据库

mysqldump-uroot -pmydb,class > /root/mysql.sql备份mydb和class数据库

mysqldump-uroot -p--all-databases > /root/mysql.sql备份所有

恢复前一般先创建好改数据库

mysql-uroot -p mydb< /root/mysql.sql恢复 或

source /root/mysql.sqlmysql中执行

mysqldump参数:

mysqldump --flush-logs 备份前先日志滚动一下 达到同步状态

--lock-tables 备份前将表锁定一下 防止其他用户写

--lock-all-tables 锁定所有的表

--single-transaction 备份innodb数据库引擎时 可以备份一致性的innodb即使有事务没完成

--all-databases  备份所有数据库

--databases 备份多个不是所有数据库 中间用空格隔开

--master-data=n 数字 记录二进制文件名和位置

--events 备份事件

--triggers 备份触发器

--routines 备份存储过程和存储函数的

--where "" 指定过滤条件,只备份某些数据

mysqldump -uroot -p --flush-logs --lock-all-tables --events --routines --triggers mydb >/root/mysql-`date +"%F"`.sql

selectinfoutfile可以备份具体的表或数据

select * into outfile '/tmp/stu.sql' from stu备份具体表 要有file权限一般用在表数据不小心删除

truncated table stu删除表stu的数据

恢复表 先创建号该表的表结构

use mydb

load data infile '/tmp/stu.sql' into table stu

备份mk-parallel-backup

mk-parallel-backup --basedir=/bachup

恢复:

mk-parallel-restore /backup

http://www.maatkit.org网站下载该rpm包进行安装

snapshot快照备份 备份的整个数据库 数据要在同一个LVM分区上

mysqlhotcopy备份前要锁数据库 备份MyISAM的物理热备

LOCK TABLES stu READ;锁表 将所有的表都锁上

UNLOCK TABLE stu表解锁 或UNLOCK TABLES

备份:mysqlhotcopy

mysqlhotcopy mydb /backup

mysqlhotcopy --method=scp mydb root@192.168.0.65:/backup备份到其他主机上

恢复:

mysqlhotcopy

时间点备份:mysql

mysqlbinlog --start-position 15465完全备份后的位置--end-opsition 202010删除之前的位置| mysql -uroot -p

mysqlbinlog --start-position 15465 --end-opsition 202010 > /tmp/bin.sql

恢复:

mysql -uroot -p < /tmp/bin.sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值