[root@client ~]# cp -r /var/lib/mysql/mysql /opt/mysql.bak
[root@client ~]# ls /opt/mysql.bak/
[root@client ~]# ls /var/lib/mysql/mysql/user.*
[root@client ~]# cp /var/lib/mysql/mysql/user.*
[root@client ~]# cp /var/lib/mysql/mysql/user.* /opt/
[root@client ~]# ls /opt/
[root@client ~]# chown -R mysql:mysql /var/lib/mysql/mysql
[root@client ~]# systemctl stop mysqld.service
[root@client ~]# systemctl start mysqld
逻辑备份:执行备份时,会根据已有的库·表,记录生成对用的sql命令,把sql保存到备份文件里。
数据备份策略?
完全备份 :备份所有数据(一台数据库服务器 一个库的 一张表)
差异备份 备份自完全备份后, 所有新产生的数据
增量备份 备份自上一次备份后 所有新产生的数据
生产环境下对数据做备份时,要考虑哪些问题
备份频率
备份策略
备份时间
存储空间 LV
备份文件的命名 日期-库名.sql
执行数据备份的手段 Crond + 备份脚本
root@client ~]# mkdir /mydbbak
[root@client ~]# mysqldump -uroot -pabc123 userdb > /mydbbak/userdb.sql
root@client ~]#mkdir /mydbbak
root@client ~]#mysqldump -uroot -pabc123 userdb > /mydbbak/userdb.sql 备份文件
root@client ~]# ls /mydbbak/ -l
root@client ~]# vim /mydbbak/userdb.sql
root@client ~]# mysql -uroot -pabc123
mysql> delete from userdb.teacher;
mysql -uroot -pabc123 userdb < /mydbbak/userdb.sql 完全恢复
root@client ~]# mysql -uroot -pabc123
mysql> select * from teacher;
计划任务
[root@client ~]# vim /root/allbak.sh
#!/bin/bash
day=
(
d
a
t
e
+
i
f
[
!
−
e
/
m
y
d
b
b
a
k
]
;
t
h
e
n
m
k
d
i
r
/
m
y
d
b
b
a
k
f
i
m
y
s
q
l
d
u
m
p
−
u
r
o
o
t
−
p
a
b
c
123
u
s
e
r
d
b
>
/
m
y
d
b
b
a
k
/
(date +%F) if [ ! -e /mydbbak ];then mkdir /mydbbak fi mysqldump -uroot -pabc123 userdb > /mydbbak/
(date+if[!−e/mydbbak];thenmkdir/mydbbakfimysqldump−uroot−pabc123userdb>/mydbbak/day-userdb.sql
[root@client ~]# chmod +x /root/allbak.sh
[root@client ~]# /root/allbak.sh
[root@client ~]# /root/allbak.sh &> /dev/null
[root@client ~]# ls /mydbbak/
[root@client ~]# mkdir /logdir
[root@client ~]# chown mysql /logdir
[root@client ~]# vim /etc/my.cnf
[root@client ~]# systemctl stop mysqld
[root@client ~]# systemctl start mysqld
[root@client ~]# ls /logdir/
[root@client ~]# mysqlbinlog /logdir/plj.000001
[root@client ~]# cat /logdir/plj.index
[root@client ~]# mysql -uroot -pabc123
mysql> insert into userdb.teacher(name,uid)
-> values(“hanmm”,3003);
mysql> show variables like “binlog_format”;
mysql> set binlog_format=“mixed”;
mysql> insert into userdb.teacher(name,uid) values(“hanmm”,3003);
[root@client ~]# mysqlbinlog /logdir/plj.000001 | grep -i insert
mysql> flush logs;刷新生成新的数据。
[root@client logdir]# mysqlbinlog plj.000003 | mysql -uroot -pabc123恢复数据。
[root@client logdir]# mysqldump -uroot -pabc123 --flush-logs userdb > /mydbbak/userdb.sql
mysql> show engines; 查看存储引擎。
[root@client ~]# innobackupex --user root --password abc123 --databases=“bbsdb” /allbak