MySQL备份方案–>(利用mysqldump以及binlog二进制日志)

使用mysqlhotcopy备份数据库(完全备份,备份策略三,物理备份,物理备份 只要备份物理文件 速度快不跨平台 linux windos,mysqldump备份方案,所以考虑采用mysqldump全备+日志增量备份的策略,后者需要导入SQL文件到原库中,前者是一个快速文件意义上的COPY

 

从:(能够毫无开启binlog效率)
6.mysql -uroot -p123 < db_backup.sql
将主服务的全备脚本拷贝到主服务器并且导入主服务器
7.cat /etc/my.cnf
[mysqld]
server-id=2 和主服务器不另行就可以
master-host=192.168.1.131 主服务器ip
master-user=slave 登陆时账号
master-password=123 mysql读取配置文件时,知道是以从服务器的样式运营

(6)    复苏纯净库:

if [[ ! -e $backupDir ]];then

 

vim /etc/my.cnf
[mysqld] 服务端
innodb_file_per_table=1 独立表空间
socket=/backup/mysql.sock

在测验服务器上导入库:

  www.2cto.com  

scriptsdir=`pwd`

一经在日记内有错误,我们能够依照日志里的时光开展局地苏醒;
mysqlbinlog –stop-datetime=’2012-03-22 23:20:44′ master-bin.000004 |
mysql
传说binlog日志里的字节数举办恢复生机
mysqlbinlog –stop-position=274 master-bin.000004 | mysql

全恢复:

tmpBackupDir=/tmp/mysqlblackup

 

4.检查主服务器日志和意况
mysql> show binlog events\G
*************************** 1. row
***************************
Log_name: master.000001
Pos: 4
Event_type: Format_desc
Server_id: 1
End_log_pos: 120
Info: Server ver: 5.6.22-log, Binlog ver: 4
1 row in set (0.00 sec)

Shell > chmod 777 /usr/script/*.sh

56

# name:mysqlfullbackup.sh

service mysqldd restart

Mysql> createtable tb1 ……;

  www.2cto.com  

 

mysql> show master status\G
*************************** 1. row
***************************
File: master.000001
Position: 120
Binlog_Do_DB:
Binlog_Ignore_DB:
Executed_Gtid_Set:
1 row in set (0.00 sec)

Shell>
/usr/local/mysql/bin/mysqlbinlog–start-date=”2010-12-21 13:42:36″
–stop-date=”2010-12-2113:43:16″  mysql-bin.000012
mysql-bin.000013|mysql -u root -p123456;

# 数据备份目录

 

[mysqld]
log-bin=slave
server-id=2
master-host=192.168.100.128
master-user=slave
master-password=123
auto-increment-increment=2
auto-increment-offset=2

es=FALSE –compress=FALSE
–replace=FALSE–insert-ignore=FALSE –extended-insert=TRUE
–quote-names=TRUE –hex-blob=TRUE–complete-insert=FALSE
–add-locks=TRUE –port=3306 –d

11

# last modify:2007-11-17

测试
A服务器
mysql> show master status\G

刷新日志:

/usr/local/mysql/bin/mysqlhotcopy –user=$mysqlUser –password=$mysqlPWD
-q “$databases” $tmpBackupDir

5、甘休从服务器上的mysqld服务并在其my.cnf文件中增加上面的行:

创立帐号king 能够修改mysql.user表的用户和host
查看权限对应表.删除king帐号

Shell>cd /usr/mysqlrestore/

20

获得快照并记下日志名和偏移量后,回到前一中端重新启用写活动:

使用binlog恢复
假诺际遇磨难事件,应该使用以来一回创建的欧洲经济共同体备份复苏数据库,然后选用备份之后的日志文件将数据库苏醒到最周边以往的可用状态.
动用日志恢复时,应依次展开,即最早转移的日记文件首先恢复生机:
mysqlbinlog master-bin.000001 | mysql -u root -p123
mysqlbinlog master-bin.000002 | mysql -u root -p123
mysqlbinlog master-bin.000001 master-bin.000002 |mysql
mysqlbinlog cat master-bin.index | mysql

Shell>/usr/local/mysql/bin/mysql -uroot
-p123456 < /tmp/mysqlbackup/mysql_20101216_231900.sql

done

1、确认保证在主服务器和从服务器上安装的mysql版本同样,并且最棒是mysql的新式牢固版本。

互主
[mysqld]
log-bin=mysql_bin
server-id=1
master-host=192.168.100.130
master-user=slave2
master-password=123
auto-increment-increment=2
auto-increment-offset=1

Mysql所提供的工具近来不可能做到这一步,有个方案是:先过来整个库到贰个测量试验数据服务器上,然后在此服务器上导出单张表的sql,然后把这几个sql导入进生产库上。

 

server-id=1

渴求:mysql客户端能够平素链接mysql
mysqlhotcopy 能够直接连接

方案一:mysqldump全备份+日志增量备份

40

 

[mysqld]
log_error=/mysql/uplooking.com.err
金沙国际唯一官网网址,socket=/mysql/mysql.sock

Mysql>flush logs;

        mkdir $tmpBackupDir

#!/bin/sh

cat c.txt
1,aa
1,aa
1,aa
1,aa
2,bb
3,cc

设若晚上全备份之后的insert数据被误删除,
在11点发生了误操作.丢失的数码是最后一遍备份从前录入的数额,则必须先用全备份文件进行全恢复生机,然后可以用bin-log日志将数据库苏醒到11点以前的那一刻,然后跳过故障时间点11点,再开始展览还原上边全数的操作,步骤进程如下:

39

# ps教程:mysql database backup,use mysqlhotcopy script.

mysql> start slave;
mysql> show slave status\G

(7)    基于单库中的各样时间点境况回复:

13

cat $emailfile | mail -s “mysql backup” $email

练习
构建表结构导入/etc/passwd文件
mysql> create table pass(a char(50),s char(50),g int,w int,h
char(50),dfds char(50),fds char(50));
load data infile ‘/etc/passwd’ into table pass fields terminated by ‘:’
lines terminated by ‘\n’;

(9)     电源故障苏醒

dateTime=`date “+%Y.%m.%d %H:%M:%S”`

            -> master_password=’replication_password’,

service mysqldd restart

Shell>/usr/local/myql/bin/mysqlbinlog
–stop-date=”2010-12-21 10:59:59″ mysql-bin.00011|mysql -u root -p
123456
跳过故障的时间点,继续试行前面的binlog,实现苏醒
Shell>
/usr/local/myql/bin/mysqlbinlog–start-date=”2010-12-21 10:59:59″
mysql-bin.00011| mysql -u root -p 123456

前端只可以运维在数据库目录所在的机械上,前面一个能够用在长距离客户端,但是备份的文本大概封存在服务器上。

 

表的导出和导入
select * from t9;
+——+——+
| id | name |
+——+——+
| 1 | aa |
| 1 | aa |
+——+——+
mysql> select * from t9 into outfile ‘/backup/a.txt’;
shell>cat a.txt
1 aa
1 aa
添加
2 bb
3 cc
mysql> load data infile ‘/backup/a.txt’ into table t9 fields
terminated by ‘\t’ lines terminated by ‘\n’ ;
mysql> select * from t9;
+——+——+
| id | name |
+——+——+
| 1 | aa |
| 1 | aa |
| 1 | aa |
| 1 | aa |
| 2 | bb |
| 3 | cc |
+——+——+

#每一种星期四凌晨3:00施行完全备份脚本

        mkdir $backupDir

  fi

实验碰着
1.完全部据
2.开启binlog日志
3.创建库 创建表
4.插入数据 2条数据 删除全部数据 再插入两条数据
5.切换日志
6.刨除全数数据 插入3条数据
7.删除表
8.rm -rf /usr/local/mysql/data/*

Shell>/root/s3cmd/s3cmd get
s3://csf-backup/mysqldb/
mysql_binlog_20101217_030100.tar.gz /usr/mysqlrestore/

51

2、通过在主服务器和从服务器之间切分管理客户询问的载重,能够博得更加好的客户响应时间。可是不要同偶尔间在着力服务器上实行更新,这样恐怕滋生龃龉。

恢复
1.杀mysql进程(关闭2进制binlog)
2.初阶化数据库
3.重操旧业全备
4.复苏binlog日志,删除已有日记
5.打开binlog

日记增量复苏到故障点从前

58

shell> make

备份你的myfarm库(mysqlhotcopy)

(2)    基于时间点恢复生机一,当天全备份之后的insert点数据故障误操作:

42

    echo “move backup files to backup server success!” >>
$emailfile

问题:
1.锁表(时间倒霉估摸)
2.快速照相大小

先从备份文件服务器上copy出来,解压缩,再回复

38

$backuppw -d0 -w workgroup -u $backupuser

钦命列分隔符和行分隔符
select * from emp into outfile ‘/backup/c.txt’ fields terminated by ‘,’
lines terminated by ‘\n’;

Shell>/root/s3cmd/s3cmd get
s3://csf-backup/mysqldb/mysql_20101216_231900.sql.tar.gz /usr/mysqlrestore/

if [[ $databases == “” ]]; then

0 3 * * 1-6 /root/mysqlbackup/mysqldailybackup.sh >/dev/null
2>&1

5.安装从服务器id,设置从服务器的安顿项,连接主服务器
vim /etc/my.cnf
[mysqld]
server-id=2

Shell>tar -xvf
mysql_binlog_20101217_030100.tar.gz

for databases in `find $dataDir -type d | \

# 备份服务器名

ls /tmp/hr

跳过故障点继续恢复生机:

28

 

练习:
主—-从(主)——从
log-slave-updates 中间那台效果与利益:中继日志内容写入到binlog日志

【注释】若果增量恢复生机操作中报“E福睿斯ROENCORE 1051
(42S02) at line 32: Unknown table
‘fin_cell_attr_his’”类似的失实,则须求现create一张空表,然后再实行增量苏醒。

scriptsDir=`pwd`

备份计策一:直接拷贝数据库文件(不引进)
备份战略二:使用mysqlhotcopy备份数据…


Shell>/root/s3cmd/s3cmd get
s3://csf-backup/mysqldb/ mysql_binlog_20101217_030100.tar.gz 
/usr/mysqlrestore/

 

userpwd=111111

A服务器做出数据变动 查看从服务器是还是不是有一头的改动

 

04

# 发送邮件布告

应用binlog-do-db能够内定记录的数据库;
接纳binlog-ignore-db能够内定不记录的数据库。
注意的是:binlog-do-db和binlog-ignore-db一次只钦命一个数据库,钦点四个数据库必要多个语句。而且,MySQL会将全体的数据库名称改成小写,在内定数据库时务必一切用到小写名字,不然不会起效用。

首先个故障点:2009-12-2113:41:41 –> 二〇〇八-12-21 13:42:36

08

(5) 、复苏数据库到备份时的景观

二进制日志的行使log-bin
binlog日志是把数据库的每三个变迁都记载到二个专项使用的公文里,这种文件叫日志文件,mysql暗许只开荒错误日志文件,因为过多的日记会耳濡目染系统的管理品质
启用方法
1.mysqld_safe –log-bin –user=mysql&
2.vim /etc/my.cnf
[mysqld]
log-bin=master 日志名称
log-bin-index=master
max-binlog-size=防止binlog大小

 

1

# write by:i.stone

[mysql] 客户端
user=root
password=123
socket=/backup/mysql.sock

Shell > chmod 755 /usr/mysqlbackup/daily;

# PS:MySQL DataBase Backup,Use mysqlhotcopy script.

 

MySQL 5.1 AB 复制

检查:

 

 

binlog文件存储地点/usr/local/mysql/var/
131-bin.000001 binlog日志
131-bin.index 记录binlog的文书个数以及名字

Shell>tar -xvf
mysql_20101216_231900.sql.tar.gz

# 用来备份数据库的用户名和密码

smbclientmv.sh注释:

MySQL 5.6 AB复制

 

# 定义变量,请依照具体意况修改

 

ibdata1 数据
ib_logfile0\

Shell>tar -xvf
mysql_20101216_231900.sql.tar.gz

47

假定未有提供那么些采用,应丰盛它们同样重视启服务器。

重启服务

 

17

 

练习:
始建/mysql目录 mysqld进度产生的套接文件放到/mysql目录下
把mysql错误日志放到/mysql下

0 3 * * 0 /usr/scrpit/mysqlFullBackup.sh>/dev/null 2>&1

else

            -> master_log_pos=recorded_log_position;

lvm的快照(mysql备份)
1.将lv挂载mysql数据目录
2.保证数据完整(全备 完全恢复生机)
3.锁库
mysql> FLUSH TABLES WITH READ LOCK;
4.创立快速照相
[root@robin data]# lvcreate -L 300M -s -n
/dev/vgmysql/lvmysql-snampshot /dev/vgmysql/lvmysql
5.解锁
mysql> unlock tables;
6.备份
[root@robin opt]# tar -cvf /backup/mysql.bak.tar /opt/*
7.删减快速照相
[root@robin /]# umount /opt/
[root@robin /]# lvremove /dev/vgmysql/lvmysql-snampshot

周四到周末凌晨3点增量备份

 

user=root

大要备份
关闭mysql
cp /usr/local/mysql/data/db/{t4.frm,t4.ibd} /backup/
cp /usr/local/mysql/data/ib* /backup/
drop table t4
恢复t4
cp /backup/t4.* /usr/local/mysql/data/db
chown mysql.mysql /usr/local/mysql/data/db/t4.*
cp /backup/ib* /usr/local/mysql/data/
/bin/cp /backup/ib* /usr/local/mysql/data/ 覆盖掉
启动mysql
select * from db.t4;

Shell>tar -xvf
mysql_binlog_20101217_030100.tar.gz

55

 

vim /usr/local/mysql/data/auto.cnf
[auto]
server-uuid=9f74856a-47d9-11e5-a20c-000c2929c607
管教主从uuid分裂(16进制)

Shell>cd /usr/mysqlrestore/

CentOS下采纳mysqlhotcopy定时备份MySQL数据库(MyISAM存款和储蓄引擎)

# 假设一时备份目录存在,清空它,即使不设有则制造它

进度:先把/etc/my.cnf改名,再最先化,将文件改回/etc/my.cnf,再开发银行服务。

请仿效 以上步骤(1)到(5),进程基本一致,只要在平复命令前面加上贰个空格和库名就能够了。

29

安装主从复制:

在从上采纳slave用户登陆测验:
3.mysql -u slave -p123 -h 192.168.1.14
4.mysqldump –all-database > db_backup.sql (主服务实行全备)
5.mysql> show master status;找到当前的日记文件和岗位号

 
操作系统恢复生机之后,重启数据库,mysql自动回复,系统崩溃时正在运作的数据库职责以及操作须要重新实践一次

 

 

双重运转slave
mysql> stop slave;
mysql> change master to master_host=’172.16.110.1′,
master_user=’slave’, master_password=’123′,
master_log_file=’master.000001′, master_log_pos=120;
mysql> start slave;
mysql> show slave status\G

日志增量恢复到第三个故障点在此以前:

49

  cat mysqlbackup.log | mail -s “mysql backup” $email

尝试碰着
数据库全备
1.开启binlog日志 将binlog和binglog索引文件 放到/backup下
2.创建库 创建表
3.刷新日志 flush logs
4.插入数据
5.物理删除库

Shell>tar -xvf
mysql_20101216_231900.sql.tar.gz

else

 

mysqlbinlog –start-position=1035 /backup/master.000001 | mysql -u root
-p123

Shell>tar -xvf
mysql_20101216_231900.sql.tar.gz

date=`date -I`

mysql教程数据库教程备份恢复之完全备份与增量备份计谋

mysqlbinlog –start-datetime=’2015-08-21 15:50:21′
–stop-datetime=’2015-08-21 15:50:32′ /backup/master.000002 | mysql -u
root -p123

0 3 * * 1-6/root/MySQLBackup/mysqlDailyBackup.sh >/dev/null 2>&1

# 得到数据库备份列表,在此能够过滤不想备份的数据库

 

innodb引擎 innodb hot backup收费199$ xtarbackup 免费

(11)  文件系统崩溃复苏

# Last Modify:2008-06-12

 

[mysqlhotcopy]
socket=/backup/mysql.sock
user=root
password=123

(5)    基于时间点苏醒四,多故障点复苏举例2个故障点数据故障误操作:

35

smbclient //$backupserver/$backupshare

询问第四个binlog日志
show binlog events in ‘131-bin.000002’;

Shell>cd /usr/mysqlrestore/

前端复苏只供给COPY备份文件到源目录覆盖就能够,后面一个需求导入SQL文件到原库中。(source
或 mysql < bakfile.sql)

#

mysql -u root -p123
mysql> show slave status\G 未有消息寻常
Empty set (0.06 sec)
mysql> change master to master_host=’172.16.110.1′,
master_user=’slave’, master_password=’123′,
master_log_file=’master.000001′, master_log_pos=120;

(8)    复苏单库中的单张表:

 

 

3.配置A服务器连接地址及用户音信
vim /etc/my.cnf
[mysqld]
server-id=2
master-user=slave
master-password=123
master-host=172.16.10.1

Shell>/root/s3cmd/s3cmd get
s3://csf-backup/mysqldb/mysql_20101216_231900.sql.tar.gz /usr/mysqlrestore/

45

mysql> grant replication slave on *.*

备份

重格磁盘,然后还原数据库。

 

backupserver=”backupservername”

切换日志 (重新运营会产生新日志 mysqladmin –flush-logs)
mysql>flush logs

Shell>/usr/local/mysql/bin/mysql -uroot
-p123456 < /tmp/mysqlbackup/ mysql_20101216_231900.sql

 

# 定义备份日志文件

物理备份
1.停掉数据库,cp相应的数据库目录或许表文件
my伊萨m引擎 备份表拷贝以下文件
tt.frm 表结构
tt.MYD 数据
tt.MYI 索引

上边是一些shell上单个手动推行的测验命令。

 

# name:mysqlbackup.sh

9.起步从服务器
mysql> slave start 可能是start slave,运行从服务器
mysql>show slave status 查看从服务器状态

文件系统苏醒之后,重启数据库就能够,系统崩溃时正在运维的数据库义务以及操作供给再行推行三遍。

        continue

 

1.关闭binlog
2.杀进程
3.初始化
4.启动mysql
5.过来全备
6.恢复binlog

1, mysqldump备份方案:

# 假如备份目录不存在则开创孾C

 

一般分为物理备份(物理文件)和逻辑备份(sql语句)
大要备份 只要备份物理文件 速度快不跨平台 linux windos
逻辑备份 sql语句的备份 速度慢 跨平台 linxu sql — > windos

周日凌晨3点全备

# 定义脚本所在目录

 

大要在线备份 myisam
1.锁定表 lock table t1 read;
2.cp 物理文件 备份
3.unlock tables;

Shell>/usr/local/myql/bin/mysqlbinlog
–stop-date=”2010-12-20 10:59:59″ mysql-bin.00010|mysql -u root -p
123456

36

当flush tables with read
lock所置读锁定有效时(即mysql客户端程序不脱离),读取主服务器上近些日子的二进制日志名和偏移量值:

B服务器
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Shell > chmod 755 /usr/mysqlbackup;

34

-c “put $backupdir/mysql-$date.tar.gz

1.承接保险焦点数据库数据一致(主服务器全备 从服务器复苏)
2.主服务器授权从服务器能够复制binlog日志(互主时必须也是slave用户)
grant replication slave on . to ‘slave’@’172.16.110.2’ identified by
‘123’;
从服务器测量试验连接
mysql -u slave -p123 -h 172.16.110.1
3.主服务器打开binlog日志,设置服务器id
vim /etc/my.cnf
[mysqld]
server-id=1
log-bin=master
log-bin-index=master

(1)     成立备份目录,备份脚本存放目录

4、启动mysql服务器

 

[msyql]
socket=/mysql/mysql.sock

Shell>/usr/local/mysql/bin/mysql -uroot
-pmysql csf <
/tmp/mysqlbackup/backup_20101215_single_table_013.sql

何以回复? 

 

事情消息
ib_logfile1/

(1)    全恢复:

14

dumpfile=mysql_$date.sql

ab复制(主从复制)
可以让mysql实现:
1.数码的备份(主服务器的数码总体育联合会见签字到从服务器)
2.得以负载均衡减小主服务器的下压力
3.着实达成mysql的读写分离

(4)    基于时间点过来三,昨日11点数据故障误操作:

mysqlhotcopy与mysqldump比较:
前面一个是八个飞跃文件意义上的COPY,后面一个是八个数额库…

# 压缩备份文件

要求:
回复全体删除数据

 

        rm -rf $tmpBackupDir/*

 


Shell>tar -xvf
mysql_binlog_20101217_030100.tar.gz

mysqlUser=root

#适合linux(mysql服务器)到linux(备份服务器)

查看binlog文件内容
mysqlbinlog /usr/local/mysql/var/master.000001

Shell> /usr/local/mysql/bin/mysqldump
-uroot-pnYuIman25040slave201012301124 –no-create-info=FALSE
–order-by-primary=FALSE–force=FALSE –no-data=FALSE –tz-utc=TRUE
–flush-privileg

1

mysqlbackup.sh注释:

从服务器
B ip 172.16.10.2
1.测量检验slave是还是不是能健康链接
mysql -u slave -p123 -h 172.16.10.1

     
Shell>/usr/local/mysql/bin/mysqlbinlog –start-date=”2010-12-21
13:46:05″ –stop-date=”2010-12-2113:46:33″ mysql-bin.000012
mysql-bin.000013| mysql -u root -p123456;

 

[email protected]

恢复
1.分明mysql进度截至
[root@robin backup]# killall -9 mysqld
2.解压过来
[root@robin backup]# tar -xvf /backup/mysql.bak.tar -C
/usr/local/mysql/data/

(3)     全备份,增量备份。

 

+—————+———-+————–+——————+

2.拷贝A服务器的全备,并且复苏
scp 172.16.10.1:/backup/all.sql ./
mysql -u root < /root/all.sql

 

# 借使临时备份目录存在,清空它,借使不存在则开创它

logfile=$databackupdir/mysqlbackup.log

还足以分为离线备份(物理)和在线备份(逻辑)

(5)    清除旧的备份文件。

50

 

斩草除根错误:
Fatal error: The slave I/O thread stops because master and slave have
equal MySQL server UUIDs; these UUIDs must be different for replication
to work.

重作冯妇最终一次全备份命令:

前端只适用于 MyISAM 引擎,而后则则可同不经常间接选举用于MyISAM引擎和InodDB引擎.

 

逻辑备份 不区分引擎
mysqldump -u root -p123 –all-databases > /all.sql 全备
删掉data目录
开首化数据库,加多暗许库
干掉进度(因为有原来进度,起始化时才要求杀死进程)
重启进度
数据库(修改权限)
mysql -u root < all.sql
mysqldump -u root -p123 –database hr >> hr.sql 备贰个库
mysql -u root < hr.sql
mysqldump -u root -p123 –databases hr db > hr.db.sql备四个库
mysql -u root <hr.db.sql
mysqldump -u root -p123 hr emp > emp.sql 备份表
mysql -u root -p123 hr < emp.sql 恢复

Mysql>flush logs;

52

  cat /dev/null >mysqlbackup.log

翻开是或不是运营了binlog日志
show binlog events \G
*************************** 1. row
***************************
Log_name: 131-bin.000001
Pos: 4
Event_type: Format_desc
Server_id: 1
End_log_pos: 106
Info: Server ver: 5.1.34-log, Binlog ver: 4
1 row in set (0.00 sec)

乘胜数据持续加码,而且为了配合现在的innodb存款和储蓄引擎,
所以思虑选用mysqldump全备+日志增量备份的政策。使用mysqldump对于mysql超越四分之二mysql存储引擎例如myisam、innodb都有很好的支撑。

 

实践那个程序后,从服务器应连接主服务器,并补充自从快照以来产生的任何更新。

主服务器
A ip 172.16.10.1
1.A全备份
mysqldump -u root -S /var/lib/mysql/mysql.sock –all-databases >>
/tmp/all.sql
2.开启binlog日志
vim /etc/my.cnf
[mysqld]
log-bin=master
log-bin-index=master
server-id=1

 

#En<span></span>d完成

            -> master_host=’master_host_name’,

工具mysqlhotcopy 适用于myIsam引擎 需要perl-DBD-MySQL包
/usr/local/mysql/bin/mysqlhotcopy -u root -p 123 -S /tmp/mysql.sock
db /tmp/

[mysqld]

33

 

8.从服务器从主服务器读取binlog发生难点时
mysql -u root -p
mysql> change master to
mysql> master_host=’192.168.1.131′,
mysql> master_user=’slave’,
mysql> master_password=’123′,
mysql> master_log_file=”,
mysql> master_log_pos=399;

先从备份文件服务器上把binlog日志copy出来,解压缩。

 

echo “backupfilenamegzdumpfile” >> $emailfile

准备2台linux系统
管教两台服务器都有mysql数据库(若无的话能够打包 拷贝)

Shell>tar -xvf
mysql_binlog_20101217_030100.tar.gz

投入定期职务

backupshare=”sharename”

3.授权B服务器 能够传输binlog日志
grant replication slave on . to slave@’172.16.10.2′ identified by
‘123’;

刷新日志:

 

 

service mysqld restart

Select* from csf.
tmp_excel_data_000728;

echo “$dateTime Database:$databases backup success!”
>>MySQLBackup.log

# 使用mysqldump备份数据库,请依照具体意况设置参数

布局方式
主服务器:
1.cat /etc/my.cnf
[mysqld]
log-bin=mysql_bin
server-id=1 不一致意再一次
2.grant replication slave on . to ‘slave‘@‘192.168.1.140‘ identified
by ‘123’;授权,内定从服务器只能复制binlog,从服务器的ip
mysql>show master status查看主服务器的运营状态

 

09

mysql> unlock tables;

Shell > mkdir /usr/script;

15

  else

 

# 压缩备份文件

 

接下来再度起动mysqld,会发出hostname-bin.000001以及hostname-bin.index,前边的日记文件是记录全体对数码的更新操作,前边的文书是积攒全部二进制文件的目录,不能随意被去除。

fi

# $scriptsdir/smbclientmv.sh

(4)    设置crontab职分,每一日试行备份脚本

22

mysql > show master status;

自笔者商量:查看数据库结构以及数额。

53

0 3 * * 0 /root/mysqlbackup/mysqlfullbackup.sh >/dev/null 2>&1

(12)  硬件坏块复苏

48

 

平复最终叁遍全备份之后的保有增量备份命令:

使用mysqlhotcopy从前需求安装perl-DBI和DBD-mysql:

 

用select * from tb等sql命令查看表以及数额是还是不是恢复生机。

sed -e “s/\/usr\/local\/mysql\/var\///” | \

  mkdir $tmpbackupdir

Shell>/usr/local/mysql/bin/mysql -uroot
-pmysql –database=csf
</tmp/mysqlbackup/backup_20101215_adb_003.sql

 

 

检查:

03

 

重启服务器之后,重启数据库,mysql自动恢复,断电时候正在运行的数据库职分和操作必要重新实行三遍。

fi

#星期日到礼拜三黎明(英文名:lí míng)3:00做增量备份

Shell>/usr/local/myql/bin/mysqlbinlog
–stop-date=”2010-12-21 10:59:59″ mysql-bin.00011|mysql -u root -p
123456
跳过故障的时间点,继续实施前面包车型客车binlog,实现恢复生机
Shell>
/usr/local/myql/bin/mysqlbinlog–start-date=”2010-12-21 10:59:59″
mysql-bin.00011| mysql -u root -p 123456

54

emailfile=$databackupdir/email.txt

-dump-date=TRUE
–lock-tables=TRUE–allow-keywords=FALSE –events=FALSE
–single-transaction=TRUE –routines–all-databases >
/backup/mysql/full/mysql_20110104_195546.sql

fi

# use mysqldump –help get more detail.

 

05

# write by:i.stone

Shell>/usr/local/mysql/bin/mysql -uroot
-p123456 </tmp/mysqlbackup/backup_20101215_adb.sql  

mysqlhotcopy与mysqldump比较:

/usr/local/mysql/bin/mysql -uroot -puserpwd db_name < db_name.sql
对于别的可适用的创新日志,将它们作为 mysql 的输入:
  % ls -t -r -1 hostname-bin* | xargs mysqlbinlog | mysql -uuser
-puserpwd

每一日去看查看下备份磁盘空间,删除旧的备份压缩文件。

 

 

恢复生机流程,先全苏醒,然前几日志增量复苏跳过11点后继续日志增量复苏,如下:

 

else

刷新日志:

 

else

先从备份文件服务器上copy出来,解压缩,再过来

30 5 * * * /root/mysqlbackup.sh >> mysqlbackup.log 2>&1

$mysqldir/bin/mysqldump -u$user -p$userpwd

 

cd $tmpBackupDir

backupdir=/tmp/mysqlbackup

(3)    基于时间点复苏二,当天11点数据故障误操作:

19

#

Shell>/root/s3cmd/s3cmd get
s3://csf-backup/mysqldb/ mysql_binlog_20101221_030100.tar.gz 
/usr/mysqlrestore/

未有差距于的地方都以在线实施 LOCK TABLES 以及 UNLOCK TABLES

echo “——————————————————–” >>
$logfile

Shell>/root/s3cmd/s3cmd get
s3://csf-backup/mysqldb/ mysql_binlog_20101217_030100.tar.gz 
/usr/mysqlrestore/

16

mysql-$date.tar.gz”

先从备份文件服务器上copy出来,解压缩,再复苏,举例:

37

 

#周日到周三黎明先生3:00做增量备份

2、复制备份的数据库目录到mysql数据目录下。 

    echo “$datetime databasedatabases backup success!”
>>mysqlbackup.log

全恢复:

tar czf $backupDir/mysql-$date.tar.gz ./

 

 

12

scriptsdir=`pwd`

第二个故障点:二零零六-12-2113:43:16 –> 二〇〇九-12-21 13:46:05

44

+—————+———-+————–+——————+

Shell > mkdir /usr/mysqlbackup/daily;

dataDir=/usr/local/mysql/var/

 

Shell > mkdir /usr/mysqlbackup;

25

rm -f $dumpfile

shell> crontab –e

27