数据备份与恢复

一、 数据备份与恢复

1.1 备份数据的方式

物理备份:cp   tar

Mysqlhotcopy:只能备份存储引擎是myisam的表

且依赖于perl-DBD-MySQL

Yum   -y  install  perl-DBD-MySQL

备份格式:

Mysqlhotcopy -uroot  -p123  原库名  新库名;

逻辑备份:用mysql自己提供的命令或第三方软件提供的备份命令,

备份创建库,表和产生表记录时的sql语句。

1.2 数据备份策略

完全/完整备份:备份数据库服务器上的所有库所有表。

差异备份:备份自完整备份后所产生的新数据。

增量备份:备份自上一次备份后所产生的新数据。

(1) 完整备份:

Mysqldump  命令做数据的完整备份

备份格式:

mysqldump  -h 服务ip  -u用户名  -p密码  数据库名 > 目录名/备份文件名

数据库名表示方式:--all-databases       备份所有库所有表

数据库名             对某个库备份

数据库名 表名        指定库的指定表备份

-B数据库1 数据库2  备份多个数据库

目录名:若备份时不写目录名,备份文件存放在执行备份命令时所在的库目录下

备份文件名:可以自己定义,要有标识性,文件名以.sql结尾

若文件名重复,上次备份会被当前备份覆盖。

*备份时用来连接数据库服务器的用户,要对备份的目标库有相应的权限

[[email protected] ~]# service mysql  restart

[[email protected] ~]# mkdir /mysqlbak

[[email protected] ~]# mysqldump -hlocalhost -uroot -p999 --all-databases > /mysqlbak/all-`date +%d`.sql

恢复格式:

Mysql    -h服务器ip   -u用户名  -p密码   目标库名 <目录名/备份文件

[[email protected]~]#mysqldump -hlocalhost -uroot -p999 db100 > /mysqlbak/aldb100-`date +%d`.sql     //备份

mysql> use db100

mysql>drop table  t1,t2,t3;

[[email protected]~]#mysql-hlocalhost -uroot -p999 db100 < /mysqlbak/db100.06.sql;            //恢复

二、 使用binlog日志

1、 mysql日志类型

常用日志及选项

2、 启用binlog日志

采用binlog日志的好处

实现数据的增量备份和增量恢复

掌控所有更改操作,必要时可用于数据恢复

数据库主从复制的必要条件

[[email protected] ~]# Vim  /etc/my.cnf

[mysqld]

.. ..

Log_bin       //启用二进制日志

[[email protected] ~]# Service  mysql   restart

[[email protected] ~]# ls /var/lib/mysql/

localhost-bin.000001       //第一份二进制文件

localhost-bin.index        //记录日志列表

*一下情况可以生成一份新的日志:
        (1)重启mysql服务

(2)执行sql操作flush   logs;

(3)备份时添加- -flush-logs选项

Mysqldump - -flush-logs  -h  -u  -p  库名 > xxx.sql

(4)在命令行下执行SQL语句(用选项-e)

Mysql   -h  -uroot   -p密码  -e “flush  logs”

3、 查看binlog日志文件

[[email protected] mysql]# mysqlbinlog [选项]  binlog日志名

常用选项:

--start-datetime=”YY-mm-dd  HH:MM:SS”

--stop-datetime=”YY-mm-dd  HH:MM:SS”

--start-position=起始位置

--start-position=结束位置

*应用实例:

[[email protected]]#mysqlbinlog --start-datetime="2014-05-06 15:26:40" localhost-bin.000001

4、 清理binlog日志

删除早于指定版本的binlog日志:

Purge  master  logs  to  “binlog文件”;

删除所有binlog日志,重建新日志:

Reset  master;

5、 曾量恢复

Mysqlbinlog  日志名(xxx.sql) | mysql  –hip  -u用户名  -p密码

示例:

[[email protected] mysql]# cd /var/lib/mysql/

[[email protected] mysql]# mysqlbinlog localhost-bin.000001 | mysql -uroot -ptarena

6、 错误日志

存放位置:数据库目录下

默认名:主机名.err

设置错误日志:

[[email protected] ~]# Vim  /etc/my.cnf

[mysqld_safe]        //启用错误日志

Log_error=文件名   //指定错误日志名

[ro[email protected] ~]#Service   mysql   restart

7、 查询日志

存放在:数据库目录/localhost.log

[[email protected] ~]#Vim  /etc/my.cnf

[mysqld]

General-log   //启用查询日志

General-log-file=目录名/xxx  //指定查询日志名(默认名:主机名.log)

[[email protected] ~]#Service   mysql   restart

[[email protected] ~]#tail -f /var/lib/mysql/localhost.log //动态查询

8、 慢查询日志

只记录超过指定时间显示查询结果的sql语句。默认时间是10秒。

帮助找出执行效率低的SQL语句

[[email protected] ~]#Vim  /etc/my.cnf

[mysqld]

Slow-query-log      //启用慢查询日志

Long-query-time=3  //设置耗时超过3秒才记录

Long-query-file=目录名/xxx  //设置慢查询文件名

[[email protected] ~]#Service   mysql   restart

慢查询的默认名:主机名-slow.log

三、 XtraBackup备份

Mysqldump:数据备份与恢复都会锁表

Mysqlhotcopy:只适用于myisam引擎,也会锁表

Binlog:不是真正意义上的增量备份与恢复

Xtrabackup:是第三方数据备份软件,完整备份、增量备份、差异备份、在线备份

(1) 安装软件包:

Rpm  -ivh  percona-xtrabackup(或用yum)

依赖包(perl-DBD-MySQL、perl-Time-HiRes 、perl-DBI)

[[email protected] Packages]# rpm -ql percona-xtrabackup

.. ..

/usr/bin/xtrabackup_55    //适用于MySQL 5.5.x

/usr/bin/xtrabackup_56   //适用于MySQL 5.6.x

(2) Xtrabackup基本选项

--backup:执行备份操作

--target-dir:备份的目标文件

--datadir:备份的原始文件夹(MySQL库的位置)

--prepare:准备恢复数据

--incremental-basedir:增量备份时,指定参照的完整备份路径

--incremental-dir:准备恢复目录时,指定增量备份的路径

1、 Xtrabackup完整备份与恢复

Xtrabackup:只备份表记录,不备份表结构。所以用Xtrabackup备份的文件恢复时库、表一定要存在

完整备份:

[[email protected] ~]#mkdir  -p  /dbbak/first

[[email protected]~]#xtrabackup_56  --backup

--datadir=/var/lib/mysql  --target-dir=/dbbak/first

[[email protected] ~]#ls /dbbak/first

Xtrabackup_logfile

Xtrabackup_checkpoints

恢复:

[[email protected]~]#xtrabackup_56 --prepare

--datadir=/var/lib/mysql  --target-dir=/dbbak/first

[[email protected]~]#cp /dbbak/first/xtrabackupdb/*

/var/lib/mysql/ xtrabackupdb/

2、 Xtrabackup曾量备份与恢复

增量备份时,必须事先有一个完整备份,这样才知道哪些数据是新产生的数据。

增量备份:

[[email protected] ~]# mkdir -p /dbbak/second

[[email protected] ~]#xtrabackup_56  --backup  --datadir=/var/lib/mysql

---target-dir=/dbbak/second  --incremental-dasedir=/dbbak/first

增量备份:

[[email protected] ~]# mkdir -p /dbbak/three

[[email protected] ~]#xtrabackup_56  --backup  --datadir=/var/lib/mysql

---target-dir=/dbbak/three  --incremental-dasedir=/dbbak/first

增量恢复:

数据备份与恢复

时间: 2024-10-10 05:57:23

数据备份与恢复的相关文章

Oracle 和SQL server中数据备份与恢复

Oracle 侧 创建一个表,将现有表数据导入其中. create Table  TB_NYU_TENDERTBL_BAK   as  select *  from  TB_NYU_TENDERTBL  where  1=1 删除原来表内容. DELETE  FROM TB_NYU_TENDERTBL 恢复表的内容 insert  into TB_NYU_TENDERTBL  select  * from  TB_NYU_TENDERTBL_BAK SQL server侧 select  * i

Redis 数据备份与恢复

Redis 数据备份与恢复参考资料:http://www.runoob.com/redis/redis-backup.htmlRedis SAVE 命令用于创建当前数据库的备份.语法redis Save 命令基本语法如下:redis 127.0.0.1:6379> SAVE 实例redis 127.0.0.1:6379> SAVE OK该命令将在 redis 安装目录中创建dump.rdb文件.恢复数据如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服

Redis之数据备份与恢复

Redis 数据备份与恢复 Redis SAVE 命令用于创建当前数据库的备份. 语法 redis Save 命令基本语法如下: redis 127.0.0.1:6379> SAVE 实例 redis 127.0.0.1:6379> SAVE OK 该命令将在 redis 安装目录中创建dump.rdb文件. 恢复数据 如果需要恢复数据,只需将备份文件 (dump.rdb) 移动到 redis 安装目录并启动服务即可.获取 redis 目录可以使用 CONFIG 命令,如下所示: redis

服务器的数据备份与恢复

虽然数据备份是一个关系着很多软.硬件技术的系统工程,但备份软件在整个数据备份过程中所担当的角色相当重要.它在一定程度上决定了数据备份的可行性和经 济实用性,也影响着硬件的发展.随着存储技术的发展,在SAN.NAS这些新的存储架构中,也发展出了LAN Free backup.Serverless Backup等全新的备份技术.下面简单予以介绍. 传统的备份与恢复模型主要特征是,每台特定主机服务器都配有专门的磁盘和磁带系统,每台主机都将自己的数据备份到本地连接的磁带机或磁带库上,这实际就是 DAS直

CentOS 6.5 MySQL/MariaDB数据备份与恢复备份详解

MySQL/MariaDB数据备份与恢复备份 数据对我们来说再重要不过了,那我们如何做到对数据尽可能的安全呢,当我们的数据丢失了那又该怎么做呢,所以说数据备份对我们的数据安全性来说太重要了. 数据对我们来说再熟悉不过了,也最平常不过了,我们每天都在接触各色各样的数据,数据记录了我们平常相关的业务信息,所以数据对于我们来说是很重要的,这么重要的数据如果我们的数据丢失了那我们是不是相关的业务都没法进行了呢,这应该是个很麻烦的问题,那我们怎么保护我们的数据的安全呢,这就要用到我们的数据备份了. 如何执

Redis数据备份与恢复

Redis数据备份与恢复 持久化 一.RDB方式(默认) RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并存储在硬盘上.进行快照的条件可以由用户在配置文件中自定义,由两个参数构成:时间和改动的键的个数.当在指定的时间内被更改的键的个数大于指定的数值时就会进行快照.RDB是Redis默认采用的持久化方式,在配置文件中已经预置了3个条件: save 900 1    # 900秒内有至少1个键被更改则进行快照 save 30

MySQL 数据备份与恢复

mysqldump 数据备份与恢复 mysqlbinlog 数据增量恢复

DBA成长之路---mysql数据备份与恢复

数据备份与恢复 备份方式: 物理备份:直接拷贝备份库和表对应的文件 cp -r /var/lib/mysql/mysql  /mysql.bak tar -zcvf /mysql.tar.gz  /varlib/mysql/mysql/* 逻辑备份:执行备份时,根据已有的库和表生成对应的sql命令,把生成的sql命令存储到指定的备份文件里 备份策略: 完全备份: 备份所有数据(表,库,服务器) 差异备份:备份自完全备份后所新产生(备份新产生的数据) 增量备份:备份自上一次备份后,所有新产生(备份

数据备份与恢复、系统备份与恢复

数据备份与恢复.系统备份与恢复一.数据备份与恢复1.什么是备份备份,即另外准备一–为应付文件.数据丢失或损坏等可能出现的意外情况,将电子计算机存储设备中的数据复制到大容量存储设备中2.备份对象的类别系统备份–针对整个操作系统进行备份–当操作系统损坏或者无法启动时,能通过备份快速恢复数据备份–针对用户的数据文件.应用软件.数据库进行备份–当这些数据丢失或损坏时,也能通过备份恢复3.数据冷备份?什么是冷备份–指需要备份的文档不被占用的情况下执行备份的方式–比如将数据库软件关闭,对数据库资料做备份?冷