Mysql运维管理-MySQL备份与恢复实战案例及生产方案17

1.全量备份与增量备份

1.1 全量备份

全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份。

备份所有库:

mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B –A gzip >/server/backup/mysq_backup_$(date +%F).sql.gz

备份一个库:

mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B linzhongniao|gzip >/server/backup/mysq_backup_$(date +%F).sql.gz

1.2 增量备份

增量备份是从上次全量备份之后更新的数据,对mysql来说binlog就是增量备份数据。增量备份可以按天备份。第二天做全备了,理论上前一天的备份就没用了。我们一般主服务器的增量备份一般保持七天,可以通过设置my.cnf配置文件中的expire_logs_days参数让它的值等于7.备份服务器上增量备份一般保持180天。按天备份就是一天做一次全量备份,每天的零点全量备份,零点之前做增量备份;除了按天全备也可以按周全备,一周做一次全备每天做增量备份。

按天备份的优点:恢复时间:短 维护成本:低

缺点:占用空间多,占用系统资源多,经常锁表影响用户体验。

按周全备的优点:占用空间少,占用系统资源少用户体验好一些。

缺点:恢复麻烦维护正本高,时间长。

企业场景全备和增量的频率是怎么做的呢?

(1)中小公司,全量一般是每天一次,业务流量低谷执行全备,执行前需要锁表。

(2)单台数据库没有做主从同步,如何增量。用rsync(配合定时任务频率大点,或者inotify,主从复制)把所有binlog备份到远程服务器,尽量做主从复制。

增量备份的例子:

rsync –avz /data/3306/mysql-bin.000* [email protected]::backup –-password-file=/etc/rsync.password

(3)大公司周备,每周六00点一次全量,下周日-下周六00点前都是增量。

有点:节省备份时间,减小备份压力,缺点:增量的binlog文件副本太多,还原会很麻烦。

(4)一主多从,会有一个从库做备份,延迟同步。

Mysql的mysqldump备份什么时候派上用场?

a.迁移或者升级数据库时。

b.增加从库的时候。

c.因为硬件或特殊异常情况,主库或从库宕机,主从可以切换,无需备份。把其中一个同步最快的切换为主库即可。

d.人为的DDL、DML语句,主从库没办法了,所有库都会执行,此时需要备份。

e.跨机房灾备,需备份拷贝走数据。

2.MySQL增量恢复必备条件

2.1 开启MySQL log-bin 日志功能

[[email protected] ~]# egrep "\[mysqld]|log-bin" /data/3306/my.cnf
[mysqld]
log-bin = /data/3306/mysql-bin

提示:主库和备份的从库都需要开启binlog记录功能。

小结:增量恢复的条件:

存在一份全备加上全备之后的时刻到出问题时刻的所有增量binlog文件备份。

2.2 存在MySQL数据库全备

2.2.1 生产环境mysqldump备份命令

在凌晨某一时刻进行数据库全备(生产场景一般通过定时任务每日凌晨执行),备份命令如下:

mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B linzhongniao|gzip >/server/backup/mysq_backup_$(date +%F).sql.gz

innode引擎备份

mysqldump -uroot -p123456 -S /data/3306/mysql.sock --single-transaction -A -B|gzip >/server/backup/mysql_$(date +%F).sql.gz

myisam引擎备份

mysqldump -uroot -p123456 -S /data/3306/mysql.sock --lock-all-tables  -A -B|gzip >/server/backup/mysql_$(date +%F).sql.gz

2.3 数据恢复思想

恢复思想就是先找到发生故障的原因,,谁在什么时候做了什么操作,检查是不是这个操作导致数据库故障。之后尽量停止数据库对外访问,先备份0:00到十点更新的数据binlog日志文件,刷新binlog。第一步先恢复全备,第二步增量恢复0:00到10:00这个时间段的数据。

3.实战演示数据恢复过程

3.1 执行语句并检查环境

3.1.1 执行建库建表语句及插入数据库语句
[[email protected] ~]# mysql -uroot -p123456 -S /data/3306/mysql.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.5.32-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> show variables like ‘%chaeacter_set%‘;
Empty set (0.01 sec)
mysql> create table student(
-> id int(4) not null AUTO_INCREMENT,
-> name char(20) not null,
-> primary key(id)
-> );
Query OK, 0 rows affected (0.01 sec)
mysql> insert into student(name) values(‘nishishei‘);
Query OK, 1 row affected (0.00 sec)

mysql> insert into student(name) values(‘zhangsan‘);
Query OK, 1 row affected (0.00 sec)

mysql> insert into student(name) values(‘lisi‘);
Query OK, 1 row affected (0.00 sec)
3.1.2 检查数据库及数据

检查是否有linzhongniao库

mysql> show databases like ‘linzhongniao‘;
+-------------------------+
| Database (linzhongniao) |
+-------------------------+
| linzhongniao|
+-------------------------+
1 row in set (0.00 sec)

4.凌晨0点全量备份数据库

4.1 定时任务数据库备份脚本

(1) 这里我们使用MySQL主从复制课程内容里的备份脚本

#/bin/sh
#Date: 2018-02-11
#Author: Create by linzhongniao
#Mail: [email protected]
#Function:This scripts function is More complex backup scripts, which need to find binlog log files and location points
#Version: 1.1
USER=root
PASS=123456
MYSOCK=/data/3306/mysql.sock
DATA_PATH=/server/backup
DATA_FILE=${DATA_PATH}/mysql_backup_`date +%F`.sql.gz
LOG_FILE=${DATA_PATH}/mysql_backup_`date +%F`.log
MYSQL_PATH=/usr/local/mysql/bin
mysqldb=linzhongniao
#--single-transaction Specifically for the InnoDB engine, when the data is updated when the data is updated, it can‘t see the whole isolation.
MYSQL_DUMP="${MYSQL_PATH}/mysqldump -u$USER -p$PASS -S $MYSOCK --events -B -F --master-data=2 --single-transaction $mysqldb"
MYSQL_CMD="${MYSQL_PATH}/mysql -u$USER -p$PASS -S $MYSOCK"
cat |${MYSQL_CMD}<<EOF
flush table with read lock;
system echo "-----show master status result-----" >>$LOG_FILE;
system ${MYSQL_CMD} -e "show master status"|tail -1 >>$LOG_FILE;
system ${MYSQL_DUMP}|gzip > $DATA_FILE;
unlock tables;
quit
EOF  

(2) 执行脚本全量备份linzhongniao库原理

[[email protected] ~]# date -s ‘2018/02/11‘ 更改系统时间模拟零点时刻
2018年 02月 11日 星期日 00:00:00 CST
[[email protected] ~]# mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B --master-data=2 linzhongniao|gzip >/server/backup/bak_$(date +%F).sql.gz

查看备份的数据

[[email protected] ~]# ll /server/backup/
总用量 684
 -rw-r--r--. 1 root root203 2月  10 23:26 mysq_backup_2018-02-10.sql.gz
 -rw-r--r--. 1 root root 529266 2月   8 19:11 mysql_backup_2018-02-08.sql
 -rw-r--r--. 1 root root805 2月  10 23:18 mysql_backup_2018-02-10.sql.gz
 -rw-r--r--. 1 root root306 2月  11 00:25 mysql_backup_2018-02-11.log
 -rw-r--r--. 1 root root915 2月  11 00:25 mysql_backup_2018-02-11.sql.gz
 -rw-r--r--. 1 root root805 2月  10 23:18 mysql_backup_.sql

(3) 实际工作中是通过定时任务来备份的

[[email protected] ~]# crontab –l
#mysql backup by linzhongniao on 20180211
00 00 * * * /bin/sh beifen1.sh >/dev/null 2>&1

4.2 备份后查看binlog日志情况

[[email protected] ~]# ll /data/3306/
总用量 172
drwxr-xr-x. 8 mysql mysql  4096 2月  12 2018 data
-rw-r--r--. 1 mysql mysql  2099 2月  10 06:48 my.cnf
-rwx------. 1 root  root   1126 2月   8 10:10 mysql
-rw-rw----. 1 mysql mysql  1227 2月   8 19:17 mysql-bin.000001
-rw-rw----. 1 mysql mysql   126 2月   9 05:20 mysql-bin.000002
-rw-rw----. 1 mysql mysql   239 2月   9 05:25 mysql-bin.000003
-rw-rw----. 1 mysql mysql   458 2月   9 05:30 mysql-bin.000004
-rw-rw----. 1 mysql mysql   233 2月   9 05:34 mysql-bin.000005
-rw-rw----. 1 mysql mysql   415 2月   9 05:57 mysql-bin.000006
-rw-rw----. 1 mysql mysql   126 2月   9 05:59 mysql-bin.000007
-rw-rw----. 1 mysql mysql   126 2月   9 05:59 mysql-bin.000008
-rw-rw----. 1 mysql mysql   388 2月   9 08:22 mysql-bin.000009
-rw-rw----. 1 mysql mysql   652 2月  10 04:51 mysql-bin.000010
-rw-rw----. 1 mysql mysql   107 2月  10 04:51 mysql-bin.000011
-rw-rw----. 1 mysql mysql  3355 2月  10 06:17 mysql-bin.000012
-rw-rw----. 1 mysql mysql   126 2月  10 06:17 mysql-bin.000013
-rw-rw----. 1 mysql mysql   126 2月  10 06:17 mysql-bin.000014
-rw-rw----. 1 mysql mysql  1914 2月  10 08:34 mysql-bin.000015
-rw-rw----. 1 mysql mysql   150 2月  10 23:18 mysql-bin.000016
-rw-rw----. 1 mysql mysql   150 2月  10 23:18 mysql-bin.000017
-rw-rw----. 1 mysql mysql   126 2月  11 2018 mysql-bin.000018
-rw-rw----. 1 mysql mysql   150 2月  11 00:24 mysql-bin.000019
-rw-rw----. 1 mysql mysql   150 2月  11 00:24 mysql-bin.000020
-rw-rw----. 1 mysql mysql   150 2月  11 00:25 mysql-bin.000021
-rw-rw----. 1 mysql mysql   893 2月  11 01:41 mysql-bin.000022
-rw-rw----. 1 mysql mysql   616 2月  11 00:25 mysql-bin.index
-rw-rw----. 1 mysql mysql 5 2月  12 2018 mysqld.pid
srwxrwxrwx. 1 mysql mysql 0 2月  12 2018 mysql.sock
-rw-r-----. 1 mysql root  42156 2月  12 2018 mysql_zbf3306.err
-rw-rw----. 1 mysql mysql56 2月  11 00:34 relay-bin.index
-rw-rw----. 1 mysql mysql55 2月  11 01:41 relay-log.info

提示:我们可以看用-F参数备份生成的新的文件mysql-bin.000022,增量恢复就是从mysql-bin.000022开始的。

5.备份后模拟用户继续更新数据

5.1 模拟网站用户更新数据

因为在0点备份后到发生故障这个时间段内,用户还会随时的更新数据

[[email protected] ~]# mysql -uroot -p123456 -S /data/3306/mysql.sock
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 18
Server version: 5.5.32-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> use linzhongniao
Database changed
mysql> insert into student(name) values(‘linzhongniao10‘);
Query OK, 1 row affected (0.35 sec)

mysql> insert into student(name) values(‘linzhongniao11‘);
Query OK, 1 row affected (0.00 sec)

mysql> insert into student(name) values(‘linzhongniao12‘);
Query OK, 1 row affected (0.00 sec)

mysql> select * from student;
+----+----------------+
| id | name   |
+----+----------------+
|  1 | nishishei  |
|  3 | zhangsan   |
|  5 | lisi   |
|  6 | burenshi   |
|  8 | liushishi  |
| 10 | luhan  |
| 11 | linzhongniao10 |
| 13 | linzhongniao11 |
| 15 | linzhongniao12 |
+----+----------------+
9 rows in set (0.00 sec)
mysql>

5.2 查看备份后再次更新后的数据库内容

一会儿我们模拟故障恢复后还应是这些数据,如果不是这些数据就是丢失了数据。

mysql> select * from linzhongniao.student;
+----+----------------+
| id | name   |
+----+----------------+
|  1 | nishishei  |
|  3 | zhangsan   |
|  5 | lisi   |
|  6 | burenshi   |
|  8 | liushishi  |
| 10 | luhan  |
| 11 | linzhongniao10 |
| 13 | linzhongniao11 |
| 15 | linzhongniao12 |
+----+----------------+
9 rows in set (0.00 sec)

6.模拟用户破坏数据库

6.1 删除数据库linzhongniao

公司的老大于早晨10点,执行了删除数据库语句。然后跟没事儿人一样,本来想删除一个没有用的库。

mysql> drop database linzhongniao;
Query OK, 1 row affected (0.11 sec)

6.2 检查破坏结果

Linzhongniao库不见了

mysql> show databases;
+--------------------+
| Database   |
+--------------------+
| information_schema |
| dfhjdhf|
| mysql  |
| performance_schema |
| school |
| test   |
+--------------------+

6 rows in set (0.00 sec)

6.3 发现故障排查并检查原因

数据库出问题10分钟后,公司的网站运营人员报网站故障,联系dba运维人员解决。此时,dba人员或开发人员查看网站报错(或者查看后台日志)。可以看到连不上linzhongniao数据库的显示。然后登录数据库排查,可以发现数据库linzhongniao库确实不在。经过多方询问得知老大早晨要处理一下数据库,于是问老大都干啥了。答曰,10点左右刚刚清除了一个“没有用的”数据库。致此问题原因找到,开始准备恢复,原因还有可能是开发人员通过程序日志判断。
提示:数据库的权限管理思想就在这里。不让别人有delete权限。

7.增量备份过程

通过防火墙禁止web等应用向主库写数据,让主库暂停更新,然后进行恢复。

7.1 检查全备及binlog日志

7.1.1 检查凌晨备份
[[email protected] ~]# ll /server/backup/mysql_backup_2018-02-11.*
-rw-r--r--. 1 root root 306 2月  11 00:25 /server/backup/mysql_backup_2018-02-11.log
-rw-r--r--. 1 root root 915 2月  11 00:25 /server/backup/mysql_backup_2018-02-11.sql.gz
7.1.2 检查全备后的所有binlog
[[email protected] backup]# ls -lrt /data/3306/ >/opt/mysql-bin.txt
[[email protected] backup]# sed -n "21,30p" /opt/mysql-bin.txt
 -rw-rw----. 1 mysql mysql   150 2月  11 00:24 mysql-bin.000019
 -rw-rw----. 1 mysql mysql   150 2月  11 00:24 mysql-bin.000020
 -rw-rw----. 1 mysql mysql   150 2月  11 00:25 mysql-bin.000021
 -rw-rw----. 1 mysql mysql   616 2月  11 00:25 mysql-bin.index
 -rw-rw----. 1 mysql mysql   253 2月  11 00:34 relay-bin.000023
 -rw-rw----. 1 mysql mysql   253 2月  11 00:34 relay-bin.000024
 -rw-rw----. 1 mysql mysql56 2月  11 00:34 relay-bin.index
 -rw-rw----. 1 mysql mysql   126 2月  11 07:51 mysql-bin.000018
drwxr-xr-x. 7 mysql mysql  4096 2月  11 23:52 data
 -rw-rw----. 1 mysql mysql   995 2月  11 23:52 mysql-bin.000022

提示:我们在0点执行的全备,所以binlog日志文件是从0点往后更新的。我们可以用mysqlbinlog参数查看一下零点之后更新的binlog文件,看看里面有没有更新的数据。当然我们也可以通过查看0点全备的数据文件里面的change master的位置来查看最新更新的binlog文件。可以看到执行全备后的所有binlog日志文件,它里面记录了从0点全备之后到第二天十点所有有更新的数据包括执行的误操作,所以我们在增量恢复的时候必须把执行误操作的那条语句删掉。例如本次演示应该把drop那条语句删掉。

[[email protected] ~]# grep -i "change" /server/backup/mysql_backup_2018-02-11.sql
 -- CHANGE MASTER TO MASTER_LOG_FILE=‘mysql-bin.000022‘, MASTER_LOG_POS=107;
7.1.3 立即刷新并备份出binlog

一般数据库故障我们要停止数据库,如果领导说不能停,这种情况下我们要刷新一下binlog。刷新一下binlog就会生成一个新的mysql-bin日志文件mysql-bin.000023,这时候再更新数据就会往这个新的里面写。现在增量恢复的目标就是mysql-bin.000022。

[[email protected] ~]# mysqladmin -uroot -p123456 -S /data/3306/mysql.sock flush-logs
[[email protected] ~]# ls -lrt /data/3306/ >/opt/mysql-bin.txt
[[email protected] ~]# vim /opt/mysql-bin.txt
[[email protected] ~]# sed -n "21,27p" /opt/mysql-bin.txt
 -rw-rw----. 1 mysql mysql   150 2月  11 00:24 mysql-bin.000019
 -rw-rw----. 1 mysql mysql   150 2月  11 00:24 mysql-bin.000020
 -rw-rw----. 1 mysql mysql   150 2月  11 00:25 mysql-bin.000021
 -rw-rw----. 1 mysql mysql   126 2月  11 07:51 mysql-bin.000018
drwxr-xr-x. 7 mysql mysql  4096 2月  11 23:52 data
 -rw-rw----. 1 mysql mysql  1038 2月  12 01:36 mysql-bin.000022
 -rw-rw----. 1 mysql mysql   107 2月  12 01:36 mysql-bin.000023
7.1.4 增量备份binlog

(1)要把mysql-bin.000022拷贝出来防止二次破坏数据

[[email protected] 3306]# cp mysql-bin.000022 /server/backup/

(2)将mysql-bin.000022解析成bin.sql数据文件

[[email protected] backup]# mysqlbinlog -d linzhongniao mysql-bin.000022 >bin.sql
[[email protected] backup]# ll
总用量 24
 -rw-r--r--. 1 root root 2868 2月  12 13:45 bin.sql
 -rw-r--r--. 1 root root  203 2月  10 23:26 mysq_backup_2018-02-10.sql.gz
 -rw-r--r--. 1 root root  306 2月  11 00:25 mysql_backup_2018-02-11.log
 -rw-r--r--. 1 root root 2331 2月  11 00:25 mysql_backup_2018-02-11.sql
 -rw-r--r--. 1 root root  805 2月  10 23:18 mysql_backup_.sql
 -rw-r-----. 1 root root 1038 2月  12 13:41 mysql-bin.000022

8.恢复数据

如果不停库禁止对外访问就会有一个问题,什么问题呢?
第一个问题就是,在恢复的时候还有用户往数据库写数据,mysql-bin.000023还会记录更新的内容;全备恢复和增量恢复后还要恢复mysql-bin.000023更新的数据,备份mysql-bin.000023还得刷新binlog,增量恢复完mysql-bin.000023还得增量恢复更新的binlog,这样就死锁了老得恢复。
第二个问题就是,我们在增量恢复的时候,mysql-bin.000023也会记录全量和增量恢复的更新。在全量和增量恢复之后再恢复mysql-bin.000023更新的记录的时候就会导致主键冲突,可以编辑mysql-bin.000023解析成的mysql数据文件将冲突的数据删掉,如果数据多呢?还可以关闭sql_log_bin。关闭sql_log_bin就不会更新binlog日志文件了,这样会导致数据缺失。所以这个时候,最好的方法就是挺库,禁止对外访问,再做全量和增量备份。最根本的就是数据库的权限管理,不给删除修改权限,只有运维的有删除修改权限,防止故障的发生。谁有权限都要有记录,谁导致的故障要负责任。

mysql> show variables like ‘%log_bin%‘;
+---------------------------------+-------+
| Variable_name   | Value |
+---------------------------------+-------+
| log_bin | ON|
| log_bin_trust_function_creators | OFF   |
| sql_log_bin | ON|

3 rows in set (0.00 sec)
8.1 全量恢复
[[email protected] backup]# ll
总用量 24
-rw-r--r--. 1 root root 2868 2月  12 13:45 bin.sql
-rw-r--r--. 1 root root  203 2月  10 23:26 mysq_backup_2018-02-10.sql.gz
-rw-r--r--. 1 root root  306 2月  11 00:25 mysql_backup_2018-02-11.log
-rw-r--r--. 1 root root 2331 2月  11 00:25 mysql_backup_2018-02-11.sql
-rw-r--r--. 1 root root  805 2月  10 23:18 mysql_backup_.sql
-rw-r-----. 1 root root 1038 2月  12 13:41 mysql-bin.000022
[[email protected] backup]# mysql -uroot -p123456 -S /data/3306/mysql.sock <mysql_backup_2018-02-11.sql
8.2 增量恢复

[[email protected] backup]# mysql -uroot -p123456 -S /data/3306/mysql.sock linzhongniao <bin.sql

8.3 检查恢复后的数据
mysql> select * from linzhongniao.student;
+----+----------------+
| id | name   |
+----+----------------+
|  1 | nishishei  |
|  3 | zhangsan   |
|  5 | lisi   |
|  6 | burenshi   |
|  8 | liushishi  |
| 10 | luhan  |
| 11 | linzhongniao10 |
| 13 | linzhongniao11 |
| 15 | linzhongniao12 |
+----+----------------+
9 rows in set (0.00 sec)

9.增量恢复小结

1.人为SQL造成的误操作

2.全量和增量

3.恢复时建议对外停止更新

4.恢复全量,然后把增量日志中有问题的SQL语句删除,恢复到数据库。

增量恢复的核心思想:

1.流程制度的控制,如果不做,面临服务和数据,鱼和熊掌不可兼得。

2.可以通过延迟备份来解决或者通过监控,黑名单(不加where的语句是不让执行),白名单机制。

3.业务需求容忍度,选择停库,根据业务需求选择停库或锁表或者容忍丢失部分数据。

原文地址:https://www.cnblogs.com/zywu-king/p/8563519.html

时间: 2024-07-29 09:33:40

Mysql运维管理-MySQL备份与恢复实战案例及生产方案17的相关文章

Mysql DBA 高级运维学习笔记-MySQL备份与恢复实战案例及生产方案

1.全量备份与增量备份 1.1 全量备份 全量数据就是数据库中所有的数据,全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B –A gzip >/server/backup/mysq_backup_$(date +%F).sql.gz 备份一个库: mysqldump -uroot -p123456 -S /data/3306/mysql.sock -F -B linzhong

Mysql运维管理-创建索引知识及创建索引的多种方法实战9

为表的字段创建索引 索引就像书的目录一样,如果在字段上建立索引,那么以索引为条件时可以加快查询数据的速度. 1 创建主键索引 查询数据库的内容,按主键查询是最快的,每个表只能有一个主键,但是可以有多个普通索引列,主键列要求所有内容必须唯一,而索引列不要求内容唯一.我们无论建立主键索引还是普通索引,都要在表的对应列上创建,可以对单列创建索引也可以对多列创建索引建立主键索方法: 1.在创建表时,可以增加建立主键索引语句 [email protected] 04:0932->create table

Mysql运维管理-初步增量恢复mysql数据库10

初步增量恢复MySQL数据实战 a.配置my.cnf配置文件 先把my.cnf配置文件中的log-bin参数打开重命名为mysqlbin_zbf,这样在mysql数据库中更新一个东西就会在这个日志里更新.这样会导致这个日志很大,没关系系统可以自动分割还可以手动分割. [[email protected] var]# vim /etc/my.cnf -省略-- # Uncomment the following if you want to log updates log-bin=mysqlbin

MySQL 8.0.11 innodb cluster 运维管理手册之四-msyqlbackup备份

MySQL 8.0.11 innodb cluster 运维管理手册之四-msyqlbackup备份 作者 方连超 Mysqlbackup 介绍 mysqlbackup是一个热备份工具.也就是说它不像mysqldump那样给表上一个全局锁,由于mysqldump上了这个锁,所以就造成客户端只能对数据库进行读操作不能写,这也就是称mysqldump为温备份的原因.但是mysqlbackup真的有这么吊吗?答案是并没有.对于innodb引擎的表mysqlbackup 热备的:但是对于非innodb表

MySQL 8.0.11 innodb cluster 运维管理手册之二--集群搭建

MySQL 8.0.11 innodb cluster 高可用集群部署运维管理手册之二 集群建设 作者 方连超 基础环境 系统:centos 7.5Mysql:8.0.11 二进制包Mysqlshell: 8.0.11 rpm 包Mysql router: 8.0.11 二进制包 架构: 192.168.181.101 myrouter1 Keepalived.MySQL-shell.MySQL-Router.MySQL-client 192.168.181.102 myrouter2 Keep

django实现Linux运维管理平台

老早之前就想做一个运维管理平台的项目了,但是一直没沉下来去做,上半年的时候毕设选择了这个课题,想着逼自己一把,不管做出来的怎么样,先把它搞起来..... django的工作原理: 文字说明: (1)Web服务器收到用户的http请求. (2) Django通过URL控制器来判断对应的视图(View)函数从而对http请求做处理. (3)视图函数调用相应的模型来存取数据.调用相应的模板把数据展示出来. (4)视图函数最终返回一个http的响应给Web服务器. (5)Web服务器把接收到的响应数据发

运维管理平台实现与学习心得

经过一段时间的学习,写了一个简单的运维管理平台小项目,先看看啥样吧! 下面说明下具体实现: 软件架构:HTML+CSS+Jquery+Bootstrap+Ajax+Python2.7+Django1.9+SaltStack+MySQL 功能描述: 数据可视化:采用百度开源的ECharts绘图,通过Python脚本每分钟统计Nginx日志分析PV/UV量写到数据库. 资产管理:采用SaltStack Restful API二次封装调用收集主机配置信息入库,并提供增删改查. 主机批量管理:也是调用S

系统集中运维管理平台【社区版】安装与配置方法

最近很多博友反应不知道怎么安装与配置"系统集中运维管理平台[社区版]"程序,下面我写一个详细的配置文档,希望能够帮助各位博友: 程序支持操作系统平台: 主程序支持: Win7.Win8.Win8.1.Win2008.Win2008R2.Win2012.Win2012R2 MYSQL数据库: 软件版本:mysql_installer_community_V5.6.21.1_setup.1418020972 数据库可以安装在Windows或Linux平台,根据个人需求,这里以Windows

运维管理心得

一.运维管理心得首先接到任务,ceo说招了一批培训生进来实习,叫我给他们培训短时间内可以接手线上工作还给我下馅饼,承诺教人有多少多少奖金,唉,这个先不说了,先介绍怎么一周内把新人培训上手 新人来到的第一天,不用安排太多东西,避免造成太大的压力,先让他们熟悉公司环境可以先叫他们安装日常用到的工具,然后安装虚拟机,自己练习日常命令 第二天可以给他们一张公司的架构图,以及介绍架构的走向以及需要安装那些服务器应用软件让他们在自己的虚拟机安装需要安装的软件,以及介绍他们日常主要负责什么内容 第三天规定安装