mysql集群

关于数据库的各种备份与还原姿势详解

别等时光非礼了梦想. 提交于 2020-02-01 22:17:50
数据库的冷备份与热备份 数据导出不完全等于数据备份: 数据导出是指将数据库中的数据逆向成SQL语句进行导出,所以导出的是SQL文件。通常用作把数据从一个系统迁移到另一个系统,目的是屏蔽系统之间的差异性 数据备份是指将数据库中数据存储的相关文件进行拷贝,用于保存一个数据库的全部物理数据,所以备份后的数据与原本数据在细节及状态上都是完全一致的。不会像SQL那样在使用了一些函数的情况下,可能会在不同的时间点或不同的系统上产生不一样的结果 冷备份与热备份: 冷备份:在数据库已经关闭的情况下,对数据的备份称作冷备份 热备份:与冷备份相反,在数据库节点不停机的状态下进行的备份被称作热备份 冷备份的限制: 数据库必须停机备份,这对一些线上数据库是无法接受的 备份的数据文件非常占用存储空间,并且不支持增量备份 冷备份是备份所有的数据文件和日志文件,所以无法单独备份某个逻辑库和数据表 联机冷备份: 单节点的数据库在冷备份时需要停机,这就会对业务系统产生影响。为了解决这个问题,我们可以组建集群然后挑选集群中的一个节点进行停机冷备份。由于集群中还有其他节点在运行,所以不必担心影响正在运行的系统。等备份结束之后再启动该节点,这样就能解决停机备份带来的影响 热备份的限制: 数据库在热备份的时候会全局加读锁,备份期间节点只能读取数据不能写入数据 联机热备份: 同样的方式,为了避免全局加锁

当删库时如何避免跑路

牧云@^-^@ 提交于 2020-02-01 22:00:22
延时节点解决方案 删库跑路也是个老梗了,可见在运维数据库的过程中误删除数据,或者开发的代码有bug,造成数据的误删除屡见不鲜。不过现在也有许多用于恢复或预防误删除的方案,例如SQL管理系统,将要执行的SQL先交由管理员审核,然后由管理员备份一个镜像数据库,在镜像上执行该SQL,并在执行后还原镜像。这样经过层层把关就可以大大减小出现误操作的几率。 另外,利用binlog日志也可以恢复误操作的数据,所以线上运行的数据库都会开启binlog日志功能。还有就是本小节要介绍的延时节点:在Replication集群中,可以设置一个延时节点,该节点的数据同步时间要慢于集群中的其他节点,当其他节点出现误操作后,若延时节点的数据还没有被影响就可以从延时节点进行恢复。 但如果现有的数据库组建的都是PXC集群,没有Replication集群可以采用该方案吗?也是可以的,PXC集群与Replication集群并非是互斥的,我们可以将PXC集群中的某个节点设置为Master,然后增加一个延时节点设置为Slave,让这两个节点构成Replication集群进行数据同步即可。如下所示: 本小节就简单演示一下如何搭建这种异构集群下的延时节点,我这里已经事先准备好了一个PXC集群和一个用作延时节点的数据库: 这里使用PXC集群中的 PXC-Node3 作为Master,让其与 DelayNode 组成主从,而

开启MySQL的binlog日志

青春壹個敷衍的年華 提交于 2020-02-01 02:24:59
在my.inf主配置文件中直接添加三行 log_bin=ON log_bin_basename=/var/lib/mysql/mysql-bin log_bin_index=/var/lib/mysql/mysql-bin.index 三个参数来指定, 第一个参数是打开binlog日志 第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件 第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录 当然也有一种简单的配置,一个参数就可以搞定 log-bin=/var/lib/mysql/mysql-bin 这一个参数的作用和上面三个的作用是相同的,mysql会根据这个配置自动设置log_bin为on状态,自动设置log_bin_index文件为你指定的文件名后跟.index 5.7及以上版本加上 server-id=123454 随机指定一个不能和其他集群中机器重名的字符串,如果只有一台机器,那就可以随便指定了 有了上述的配置之后,我们就可以重新启动我们的mysql了 service mysqld restart 启动成功之后,我们可以登陆查看 我们的配置是否起作用 show variables like '%log_bin%' binlog有两大作用,一个是使用binlog恢复数据,另一个就是用来做主从复制。 来源: CSDN

听说你在学习 MySQL,送你一份 MySQL 必备资源汇总

狂风中的少年 提交于 2020-01-31 09:04:35
文章目录 MySQL 网站 在线教程 经典书籍 分支版本 管理与开发工具 备份与恢复工具 基准测试工具 高可用与高性能 应用程序驱动 部署工具 为了方便大家学习 MySQL,整理了一些常用的 MySQL 资源。如果你发现了其他好用的资源,欢迎推荐! MySQL 网站 MySQL 官方网站 - MySQL 官方网站。 MySQL Wiki - MySQL 社区知识共享,包含 MySQL 用户组、MySQL FAQs、MySQL 事件和会议信息。 MySQL 社区版 - 提供 MySQL 社区版下载,支持各种平台,包括 Linux、Windows 以及 macOS。 MySQL Server Blog - MySQL Server 开发团队发布的最新消息。 MySQL 参考手册 - MySQL 官方文档,英文版。 awesome-mysql - GitHub 上一份关于 MySQL 的各种优秀软件、代码库以及资源列表。 在线教程 MySQL 教程 - W3Cschool 上的 MySQL 入门教程。 MySQL 教程 - 菜鸟教程上的 MySQL 教程。 www.mysqltutorial.org - MySQL 英文教程,适合初学者。 SQL Tutorial - W3Schools 上的 SQL 教程,英文版。 SQL Tutorial - SQLZoo 上的 SQL 教程

Hive的安装与配置(二)

走远了吗. 提交于 2020-01-30 00:15:59
1. Hive的基本安装 1.1 下载 Hive的下载地址: 点这里下载 1.2 上传解压 在Hadoop用户状态下,将Hive的安装文件拷贝到安装目录下并解压。 1.3 配置Hive的环境变量 配置Hive的环境变量时,需要root用户配置,所以首先切换到root用户下: vi / etc / profile 让变量生效 source / etc / profile 在[root@hadoop129 hive-0.13.1-cdh5.3.6]# 目录下启动hive: 注:《在此之气前要先启动hadoop集群》 [ root @hadoop129 hive - 0.13 .1 - cdh5 . 3.6 ] # bin/hive 启动成功,幸运儿一枚!!! 2. MySQL的安装 上一篇文章有讲到有3种Metastore的配置方式,分别是内嵌模式、本地模式和远程模式。一般采用本地模式,而本地模式需要MySQL作为Hive Metastore的存储数据库,因此需要安装MySQL。 2.1 下载安装 首先,看一下linux系统中是否已经有mysql了: rpm - qa | grep mysql 还真有!删除了,重新安装! 使用yum进行安装: $ su - root $ yum -y install mysql mysql-server mysql-devel $ wget http:

MySql5.7-多源复制(多主单从)

天涯浪子 提交于 2020-01-29 16:24:49
1.1.主库配置 my.cnf #确保唯一 server-id=1 #作为Master要开启binlog log-bin=mysql-bin #binlog format有三种形式:Statement、Mixed、Row,默认设置为mixed binlog-format=mixed #需要同步的库,不指定默认同步全部库 binlog-do-db=radius #不需要同步的库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=sys #这个比较重要,直接影响同步的性能 延时等问题.mysql5.7多源复制参数,5.7之前版本可不加 sync_binlog=1 auto_increment_increment=2 auto_increment_offset=1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #GTID模式 gtid-mode=on enforce-gtid-consistency 1.2创建主库授权从库同步的用户 mysql> grant replication slave on *.* to 'slave'@'192.168.100.%'

MySql5.7-多源复制(多主单从)

非 Y 不嫁゛ 提交于 2020-01-29 16:24:29
原文: MySql5.7-多源复制(多主单从) 1.1.主库配置 my.cnf #确保唯一 server-id=1 #作为Master要开启binlog log-bin=mysql-bin #binlog format有三种形式:Statement、Mixed、Row,默认设置为mixed binlog-format=mixed #需要同步的库,不指定默认同步全部库 binlog-do-db=radius #不需要同步的库 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=sys #这个比较重要,直接影响同步的性能 延时等问题.mysql5.7多源复制参数,5.7之前版本可不加 sync_binlog=1 auto_increment_increment=2 auto_increment_offset=1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #GTID模式 gtid-mode=on enforce-gtid-consistency 1.2创建主库授权从库同步的用户 mysql> grant replication slave on *.* to

基于Docker搭建Mysql的PXC集群

孤街浪徒 提交于 2020-01-29 02:21:14
基于Docker搭建Mysql的PXC集群 镜像信息 镜像名称:percona/percona-xtradb-cluster 点击跳转镜像地址 下载镜像 docker pull percona/percona-xtradb-cluster 修改本地的镜像名称为mysql-pxc docker tag percona/percona-xtradb-cluster mysql-pxc 给PXC集群实例创建Docker内部网络 docker network create --subnet 172.18.1.1/24 mysql-net 通过inspect命令查看网络详情 docker network inspect mysql-net [ { "Name": "mysql-net", "Id": "271ed67c250c65e72dcae9d5559209d1921f4ad9d0b5aec097272fcaeaa9f86f", "Created": "2019-12-29T15:18:01.807655262+08:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet":

淄博部署pxc集群

前提是你 提交于 2020-01-29 01:12:32
docker swarm join --token SWMTKN-1-10o7lx9kz7w3knoboo3538z4enqhposlyko2c5w2uyb0f52f7r-2f8wllr0ap9i6dc22ouk074zw 192.168.1.64:2377 docker swarm leave --force docker swarm init --advertise-addr 123.123.123.11 docker swarm join --token SWMTKN-1-0ot4t2x6avevkfw7346mviwf7kjrsqrkwuc8zqldqax2o92cku-29469t5mtein2fv7gyzsn6jrm 10.128.18.92:2377 docker network create -d overlay --attachable --subnet=192.10.0.0/24 pxc-network docker network create -d overlay --attachable pxc-network docker volume prune docker network create -d --ingress overlay --attachable pxc-network1 docker run -d -p 9001:3306 -e MYSQL

MySQL主从集群搭建

限于喜欢 提交于 2020-01-29 00:09:05
在本文中,使用单机上多个实例来搭建一个主从集群。 基于的MySQL版本是5.7.27。 单机多实例的具体安装过程可参考文档 单机安装MySQL多实例 。 将要搭建的集群实例信息如下: 角色 端口 主库 3306 从库1 3307 从库2 3308 1.创建复制账号 在主库上,创建复制用的账号,并赋予相应权限: mysql> CREATE USER 'rep'@'%' IDENTIFIED BY 'replication*001'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'rep'@'%'; 查看用户: mysql> select host, user from mysql.user; +-----------+---------------+ | host | user | +-----------+---------------+ | % | rep | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+---------------+ 4 rows in set (0.00 sec) mysql> show grants for 'rep'@'%'; +---------------------------