12-2 MySQL数据库备份(分表)
#!/bin/bash
source /etc/profile DATE="$(date +%F_%H-%M-%S)"
DB_IP="172.16.1.122"
HOST="localhost"
PORT="3306"
USER="root"
PASS="Liuchang@2020"
BACKUP_DIR="/data/db_backup"
[ ! -d $BACKUP_DIR ] && mkdir -p $BACKUP_DIR MYSQL_DUMP="mysqldump -h${HOST} -P${PORT} -u${USER} -p${PASS}"
MYSQL_COMMAND="mysql -h${HOST} -P${PORT} -u${USER} -p${PASS}"
DB_LIST="`$MYSQL_COMMAND -s -e "show databases;" 2>/dev/null |egrep -v "information_schema|performance_schema|sys|mysql"`" for DB in $DB_LIST; do
BACKUP_DB_DIR="${BACKUP_DIR}/${DB}_${DATE}"
[ ! -d $BACKUP_DB_DIR ] && mkdir -p $BACKUP_DB_DIR
TABLE_LIST="$($MYSQL_COMMAND -s -e "use $DB;show tables;" 2>/dev/null)"
for TABLE in $TABLE_LIST; do
BACKUP_NAME="${BACKUP_DB_DIR}/${TABLE}.sql"
if ! $MYSQL_DUMP $DB $TABLE -R --single-transaction --events --hex-blob --triggers --flush-privileges > $BACKUP_NAME 2>/dev/null; then
echo "MySQL $DB_IP DATABASE $DB TABLE $BACKUP_NAME BACKUP FAILD" |mail -s "MySQL $DB_IP DATABASE $DB TABLE $TABLE BACKUP FAILD" 2504164765@qq.com
fi
done
done ##############补充说明##########################
# 主从复制时全备主库的命令
# mysqldump -uroot -p'Liuchang@2020' -A -F -R --single-transaction --master-data=1 --events --hex-blob --triggers --flush-privileges | gzip > /tmp/mysql_master_20200821.sql.bak.gz # 普通备份参数:
# -R: 转储存储的例程(功能和过程);
# -E: --events:转储事件;
# -A: 转储所有数据库, 这将与--databases以及所有已选择的数据库相同;
# -B: 转储多个数据库,增加建库语句和use连接库的语句;
# --hex-blob: 转储十六进制格式的二进制字符串(BINARY,VARBINARY,BLOB);
# --triggers: 为每个转储的表转储触发器;
# --flush-privileges: 转储mysql数据库后,发出FLUSH PRIVILEGES语句;
# --single-transaction: 设置事务的隔离级别为可重复读(REPEATABLE READ),用于热备,只适用于MySQL InnoDB引擎。 # 用于MySQL开启binlog时的参数:
# -F: 开始转储之前刷新服务器中的日志文件;
# --master-data=1: 备份中增加binlog日志文件名及对应的位置点,1不加注释,2加注释; # -d:没有行信息,只备份表结构,不备份表数据; Usage: -d <数据库> <表名称,多个表名称可用空格隔开>
# -t:不要写表创建信息,只备份表数据,不备份表结构;Usage: -t <数据库> <表名称,多个表名称可用空格隔开>
################################################
12-2 MySQL数据库备份(分表)的更多相关文章
- php面试专题---mysql数据库分库分表
php面试专题---mysql数据库分库分表 一.总结 一句话总结: 通过数据切分技术将一个大的MySQLServer切分成多个小的MySQLServer,既攻克了写入性能瓶颈问题,同一时候也再一次提 ...
- mysql数据库分库分表(Sharding)
mysql数据库切分 前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制.一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶 ...
- mysql数据库分库分表shardingjdbc
分库分表理解 分库分表应用于互联网的两个场景;大量数据和高并发,通常策略有两种:垂直分库,水平拆分 垂直拆分:是根据业务将一个库拆分为多个库,将一个表拆分为多个表,例如:将不常用的字段和经常访问的字段 ...
- 面试官:说说Mysql数据库分库分表,并且会有哪些问题?
之前一篇文章已经谈到了数据库集群之主从集群也就是读写分离,也提到了读写分离其实只是分担了访问的压力,但是存储的压力没有解决. 存储的压力说白了就是随着系统的演化,需求的增加,可能表的数量会逐渐增多,比 ...
- mysql数据库分库分表(Sharding)(转)
mysql数据库切分 前言 通过MySQLReplication功能所实现的扩展总是会受到数据库大小的限制.一旦数据库过于庞大,尤其是当写入过于频繁,非常难由一台主机支撑的时候,我们还是会面临到扩展瓶 ...
- MyBatis实现Mysql数据库分库分表操作和总结
前言 作为一个数据库,作为数据库中的一张表,随着用户的增多随着时间的推移,总有一天,数据量会大到一个难以处理的地步.这时仅仅一张表的数据就已经超过了千万,无论是查询还是修改,对于它的操作都会很耗时,这 ...
- mysql数据库:分表、多表关联、外键约束、级联操作
一.分表.外键.级联.多对一 二.多对多 三.一对一 一.分表.外键.级联.多对一 将部门数据与员工数据放到同一张表中会造成 数据重复 结构混乱 扩展维护性差 需要分表 create table de ...
- MySQL+MyCat分库分表 读写分离配置
一. MySQL+MyCat分库分表 1 MyCat简介 java编写的数据库中间件 Mycat运行环境需要JDK. Mycat是中间件.运行在代码应用和MySQL数据库之间的应用. 前身 : cor ...
- 【转】mysql分库分表,数据库分库分表思路
原文:https://www.cnblogs.com/butterfly100/p/9034281.html 同类参考:[转]数据库的分库分表基本思想 数据库分库分表思路 一. 数据切分 关系型数 ...
- 支持MySql的数据库自动分表工具DBShardTools发布
支持MySql的数据库自动分表工具DBShardTools发布 前段时间参与了公司的一个项目,这个项目的特点是数据量.访问量都比较大,考虑使用数据库水平分表策略,Google了大半天,竟然没有找到分表 ...
随机推荐
- [DB] Redis
为什么用Redis 是什么 一个小程序 缓存 & 数据库 单线程worker 新版本:IO threads epoll:多路复用 与Memcache区别 支持持久化:RDB快照.AOF日志 丰 ...
- lambda,filter,map,reduce
# lambda,filter,map,reduce from functools import reduce print('返回一个迭代器') print((x) for x in range(5) ...
- 源码安装Apache(httpd)
[RHEL8] !!!测试环境我们首关闭防火墙和selinux [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# sys ...
- C#异常处理18条最佳实践
首先,异常处理应该是系统设计规约的一部分出现在系统设计文档中,而不仅仅是一种技术实现. 作为设计文档的一部分,异常处理应该着眼于系统容错性和稳定性(正如楼主提到的那样).然后在根据这个规约,再来具体讨 ...
- Mysql索引的创建与删除
1. 创建索引 1.1 使用Alter创建索引 1 添加主键索引 特点:数据列不允许重复,不能为null,一张表只能有一个主键:Mysql主动将该字段进行排序 ALTER TABLE 表名 ADD P ...
- ThinkPHP无限级分类(递归)
代码演示 没什么可说的直接看代码 <?php namespace app\controller; class Category { //模拟假数据 protected static functi ...
- SpringBoot 实现整合log4j2日志
关于日志级别 共有8个级别,按照从低到高为:All < Trace < Debug < Info < Warn < Error < Fatal < OFF. ...
- 用golang刷LeetCode
用golang刷LeetCode 用Go语言刷LeetCode记录,只是为了练习Go语言,能力有限不保证都是最优解,只能在此抛转引玉了. 数据结构和算法 数据结构和算法是程序员的命根子,没了命根子也就 ...
- descriptor 'decode' requires a 'bytes' object but received a 'NoneType'
记录在使用python过程中踩的坑------ 使用xlwt库对excel文件进行保存时报错 descriptor 'decode' requires a 'bytes' object but rec ...
- NVIDIA GPU自动调度神经网络
NVIDIA GPU自动调度神经网络 对特定设备和工作负载进行自动调整对于获得最佳性能至关重要.这是有关如何使用自动调度器为NVIDIA GPU调整整个神经网络. 为了自动调整神经网络,将网络划分为小 ...