网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
date_now=KaTeX parse error: Expected 'EOF', got '#' at position 117: …zero\_customs" #̲定义备份文件名 fileNam…{db_name}_KaTeX parse error: Expected 'EOF', got '#' at position 18: …ate\_now}.sql" #̲定义备份文件目录 backUp…{backUpFolder}/
d
a
t
e
_
s
i
m
p
l
e
/
{date\_simple}/
date_simple/{fileName}"
echo "starting backup mysql ${db_name} at
d
a
t
e
_
n
o
w
.
"
d
o
c
k
e
r
e
x
e
c
−
i
t
m
y
s
q
l
m
a
s
t
e
r
/
u
s
r
/
b
i
n
/
m
y
s
q
l
d
u
m
p
−
u
{date\_now}." docker exec -it mysqlmaster /usr/bin/mysqldump -u
date_now."dockerexec−itmysqlmaster/usr/bin/mysqldump−u{username} -p${password} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd
b
a
c
k
U
p
F
o
l
d
e
r
/
{backUpFolder}/
backUpFolder/{date_simple}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}
rm -rf ${fileName}
use nodejs to upload backup file other place
#NODE_ENV=
b
a
c
k
U
p
F
o
l
d
e
r
@
backUpFolder@
backUpFolder@backUpFileName node /home/tasks/upload.js
date_end=$(date “+%Y%m%d-%H%M%S”)
echo “finish backup mysql database ${db_name} at ${date_end}.”
date_now=KaTeX parse error: Expected 'EOF', got '#' at position 118: …ero\_platform" #̲定义备份文件名 fileNam…{db_name}_KaTeX parse error: Expected 'EOF', got '#' at position 18: …ate\_now}.sql" #̲定义备份文件目录 backUp…{backUpFolder}/
d
a
t
e
_
s
i
m
p
l
e
/
{date\_simple}/
date_simple/{fileName}"
echo "starting backup mysql ${db_name} at
d
a
t
e
_
n
o
w
.
"
d
o
c
k
e
r
e
x
e
c
−
i
t
m
y
s
q
l
m
a
s
t
e
r
/
u
s
r
/
b
i
n
/
m
y
s
q
l
d
u
m
p
−
u
{date\_now}." docker exec -it mysqlmaster /usr/bin/mysqldump -u
date_now."dockerexec−itmysqlmaster/usr/bin/mysqldump−u{username} -p${password} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd
b
a
c
k
U
p
F
o
l
d
e
r
/
{backUpFolder}/
backUpFolder/{date_simple}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}
rm -rf ${fileName}
use nodejs to upload backup file other place
#NODE_ENV=
b
a
c
k
U
p
F
o
l
d
e
r
@
backUpFolder@
backUpFolder@backUpFileName node /home/tasks/upload.js
date_end=$(date “+%Y%m%d-%H%M%S”)
echo “finish backup mysql database ${db_name} at ${date_end}.”
#### 2.恢复全量备份
mysql -h localhost -uroot -proot < bakdup.sql
或者
mysql> source /path/backup/bakdup.sql
在恢复全量备份之后,要将全量备份之后的增量备份也恢复回数据库中。
#### 3.定时备份
输入如下命令,进入 crontab 定时任务编辑界面:
crontab -e
添加如下命令,其意思为:每分钟执行一次备份脚本:
-
-
-
-
- sh /usr/your/path/mysqlBackup.sh
-
-
-
每五分钟执行 :
*/5 * * * * sh /usr/your/path/mysqlBackup.sh
每小时执行:
0 * * * * sh /usr/your/path/mysqlBackup.sh
每天执行:
0 0 * * * sh /usr/your/path/mysqlBackup.sh
每周执行:
0 0 * * 0 sh /usr/your/path/mysqlBackup.sh
每月执行:
0 0 1 * * sh /usr/your/path/mysqlBackup.sh
每年执行:
0 0 1 1 * sh /usr/your/path/mysqlBackup.sh
重启crontab
service crond restart
### 三、增量备份
首先在进行增量备份之前需要查看一下配置文件,查看 log\_bin 是否开启,因为要做增量备份首先要开启 log\_bin 。首先,进入到 myslq 命令行,输入如下命令:
show variables like ‘%log_bin%’;
如下命令所示,则为未开启
mysql> show variables like ‘%log_bin%’;
±--------------------------------±------+
| Variable_name | Value |
±--------------------------------±------+
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
±--------------------------------±------+
#### 1.修改配置文件,开启日志记录
编辑Mysql配置文件my.ini或者docker.cnf
[mysqld]
lower_case_table_names=1
max_connections=2000
server-id=1
log-bin=master-bin #只是读写,就只要主库配置即可.如果要做主从切换,那么主库和从库都需要开启.
skip-host-cache
skip-name-resolve
collation-server = utf8_unicode_ci
init-connect=‘SET NAMES utf8’
slave_skip_errors=1032
character-set-server = utf8
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
修改之后,重启 mysql 服务,输入:
show variables like ‘%log_bin%’;
状态如下
mysql> show variables like ‘%log_bin%’;
±--------------------------------±-------------------------------+
| Variable_name | Value |
±--------------------------------±-------------------------------+
| log_bin | ON |
| log_bin_basename | /var/lib/mysql/mysql-bin |
| log_bin_index | /var/lib/mysql/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
| sql_log_bin | ON |
±--------------------------------±-------------------------------+
#### 2.增量备份脚本文件
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
g-U4rImq0s-1715233850942)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新