您的位置:首页 > 数据库

数据库备份基本操作

2019-05-25 17:34 2226 查看

基本命令

查询用户授权
Select host,user from mysql.user

查看用户授权权限
Show grants from 用户@’地址’;

授权用户链接后修改密码:
Set password = password(“新密码”);

管理员重置授权用户连接密码
Set password for 用户名@’客户端地址’=passwd(‘新密码’);

撤销用户权限
Revoke 权限列表 on 数据库名from 用户名@”客户端地址”;

删除授权用户
Drop user 用户名@”客户端地址”;

备份:

物理备份
cp -r /var/lib/mysql /mybak/mysql.bak
打包压缩
Tar -zcvf /mybak/mysql.tar.gz /var/lib/mysql/*
新服务器
安包,停服务,解压缩覆盖/var/lib/mysql

逻辑备份:
Mysqldump -u用户 -p密码 库名 > 路径/xxx.sql
逻辑恢复:
Musql -u用户 -p密码 库名 < 路径/xxx.sql

库名表达方式
–all-databases 或 -A 所有库
数据库名 单个库
数据库名 表名 单张表
-B 数据库1 数据库2 单个库

数据恢复

Mysql -u用户 -p密码 库名 < /路径/备份的库.sql

增量日志备份:
启动自定义binlog日志:
Vim /etc/my.cnf
[mysqld]
Server_id=日志id
Log-bin=日志存放目录

创建目录并重启mysqld
Mysql50-bin.0000001是日志文件
Mysql50-bin.index是索引文件

手动创建binlog日志
1.重启mysqld
2.mysql -uroot -p123456 -e --flush-logs
Mysql> flush logs;刷新日志

删除日志:
Mysql> show master status;
查看日志信息
Mysql> purge master logs to “日志”;
删除日志
Mysql> reset master;
重启日志

查看日志
Mysqlbinlog [选项] binlog日志文件名

选项:
–start-datetime=”yyyy-mm-dd hh:mm:ss”
–stop-datetime=”yyyy-mm-dd hh:mm:ss”
–start-position=偏移量
–stop-position=偏移量

查询日志记录的格式
Mysql>show variables like “binlog_format”;
Statement:记录每条数据
Row只记录修改的数据
Mixed:混合使用

在/etc/my.conf下修改
Binlog_format=mixed

重启mysqld

恢复
日志恢复中最后一条命令必须要有commit
Mysqlbilog --start-position=起始偏移量 --stop-position=要恢复到的偏移量 /日志文件 | mysql -uroot -p密码

Innobackupex备份恢复工具

优点不锁表
安装软件包
Libev、percona-xtrabackup

完全备份
Innobackupex --user 用户 --password 密码 /备份到的路径
不用时间戳来当备份的目录,由自己指定目录名
Innobackupex --user 用户 --password 密码 /备份的目录 --no-timestamp

备份恢复
1.关闭mysql
2.删除 /var/lib/mysql/
3.准备恢复数据
Innobackupex --apply-log /备份目录

备份目录下的xtrabackup_checkpoints
Backup_type属性
Full-backuped 完全备份
Full-prepared 准备恢复状态
Incremental 增量备份状态
To_lsn 备份到的数据编号
Last_lsn 下个个数据的编号

4.Innobackupex --copy-back /备份目录
5.修改mysql目录属主属组改为mysql

增量备份:
1.先完全备份
Innobackupex --user root --password 密码 /备份目录 --notimestamp
2.第1次增量备份
Innobackupex --user root --password 密码 --incremental /备份到的目录 --incrementtal-basedir=/完全备份的目录 --no-timestamp
3.第2次增量备份
Innobackupex --user root --password 密码 --incremental /备份到的目录 --incrementtal-basedir=/上一次备份的目录 --no-timestamp

增量恢复:
1.停mysql服务
2.删/var/lib/mysql
3.合并增量备份的日志
Innobackupex --apply-log --redo-only /首次备份的目录
Innobackupex --apply-log --redo-only --incremental-dir=/第1次增量备份的目录 /首次恢复的目录
Innobackupex --apply-log --redo-only --incremental-dir=/第2次增量备份的目录 /首次恢复的目录
4.拷贝至数据库
Innobackupex --copy-back /合并后的目录
5.修改/var/lib/mysql的属主属组为mysql
6.启动服务

增量备份单个库只恢复其中一个表
1.备份
Innobackupex --user 用户名 --password 密码 --databases=”库名” /备份的目录 --no-timestamp
2.恢复一个表

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐