本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
ProxySQL 实现Mysql读写分离 - 部署手册 ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎。ProxySQL是用C++语言开发的,也是percona推的一款中间件,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能。 ProxySQL具备了很多优质特性,具体总结如下:-> 连接池,而且是multiplexing-> 主机和用户的最大连接数限制-> 自动下线后端DB     -> 延迟超过阀值     ->  ping 延迟超过阀值     ->  网络不通或宕机-> 强大的规则路由引擎     -> 实现读写分离     -> 查询重写     -> sql流量镜像-> 支持prepared statement-> 支持Query Cache-> 支持负载均衡,与gelera结合自动failover-> 可定制基于用户、基于schema、基于语句的规则对SQL语句进行路由。换句话说,规则很灵活。基于schema和与语句级的规则,可以实现简单的sharding。-> 可缓存查询结果。虽然ProxySQL的缓存策略比较简陋,但实...
Mongodb主从复制/ 副本集/分片集群介绍 前面的文章介绍了Mongodb的安装使用,在 MongoDB 中,有两种数据冗余方式,一种 是 Master-Slave 模式(主从复制),一种是 Replica Sets 模式(副本集)。 Mongodb一共有三种集群搭建的方式: Replica Set(副本集)、 Sharding(切片) Master-Slaver(主从)【目前已不推荐使用了!!!】 其中,Sharding集群也是三种集群中最复杂的。 副本集比起主从可以实现故障转移!!非常使用! mongoDB目前已不推荐使用主从模式,取而代之的是副本集模式。副本集其实一种互为主从的关系,可理解为主主。 副本集指将数据复制,多份保存,不同服务器保存同一份数据,在出现故障时自动切换。对应的是数据冗余、备份、镜像、读写分离、高可用性等关键词; 而分片则指为处理大量数据,将数据分开存储,不同服务器保存不同的数据,它们的数据总和即为整个数据集。追求的是高性能。 在生产环境中,通常是这两种技术结合使用,分片+副本集。 一、先说说mongodb主从复制配置 主从复制是MongoDB最常用的复制方式,也是一个简单的数据库同步备份的集群技术,这种方式很灵活.可用于备份,故障恢复,读扩展等. 最基本的设置方式就是建立一个...
MySQL 读写分离的概述 MySQL 作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。 在实际的生产环境中,由单台 MySQL 作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy/Amoeba)来提升数据库的并发负载能力进行部署与实施。 读写分离工作原理 基本的原理是: 主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE) 从数据库处理 SELECT 查询操作 数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 为什么要读写分离 面对越来越大的访问压力,单台的服务器的性能成为瓶颈,需要分担负载 主从只负责各自的写和读,极大程度的缓解 X(写)锁和 S(读)锁争用 从库可配置 myisam 引擎,提升查询性能以及节约系统开销 增加冗余,提高可用性 实现读写分离的方式 一般有两种方式实现 应用程序层实现,网站的程序实现 应用程序层实现指的是在应用程序内部及连接器中实现读写分离 优点: 应用程序内部实现读写分离,安装既可以使用 减少一定部署...
 
0

redis哨兵模式vip

发表者:admin分类:数据库2021-04-15 09:50:39 阅读[938]
redis哨兵模式vip三个哨兵配置如下port 26379 daemonize yes pidfile "/var/run/redis-sentinel.pid" logfile "/var/log/redis/redis-sentinel.log" sentinel monitor mymaster 10.0.0.30 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 20000 sentinel parallel-syncs mymaster 1 sentinel client-reconfig-script mymaster /server/scripts/redis_sentinel.shIP漂移脚本每个sentinel节点都需要添加vim /server/scripts/redis_sentinel.sh#!/bin/bash MASTER_IP=${6} VIP='10.0.0.25' NETMASK='24' INTERFACE='eth0' MY_IP=`ip a s dev ${INTERFACE} | awk 'NR==3{split($2,ip,"/");print ip[1]}'` if [ ${MASTER_IP} = ${MY_IP} ]; then /sbin/ip addr add ${VIP}/${NETMASK} dev ${INTERFACE} /sbin/arping -q -c 3 -A ${VIP} -I ${INTERFACE} exit 0 else /sbin/ip addr del ${VIP}/${NETMASK} dev ${INTERFACE} exit 0 fi exit 1redis-sentinel会向脚本传参mymaster observer start 旧主ip 6379 新主ip 6379添加执行权限c...
 
0

redis哨兵模式配置

发表者:admin分类:数据库2021-04-15 09:49:58 阅读[741]
redis哨兵模式配置Redis 的 Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务器是否运作正常。提醒(Notification): 当被监控的某个 Redis 服务器出现问题时, Sentinel 可以通过 API 向管理员或者其他应用程序发送通知。自动故障迁移(Automatic failover): 当一个主服务器不能正常工作时, Sentinel 会开始一次自动故障迁移操作, 它会将失效主服务器的其中一个从服务器升级为新的主服务器, 并让失效主服务器的其他从服务器改为复制新的主服务器; 当客户端试图连接失效的主服务器时, 集群也会向客户端返回新主服务器的地址, 使得集群可以使用新主服务器代替失效服务器。环境准备:redis-server:10.0.0.30:6379 主10.0.0.30:6389 从10.0.0.31:6379 从10.0.0.31:6380 从redis-sentinel:10.0.0.30:2637910.0.0.30:2638010.0.0.31:26379配置redis主从参考链接配置sentinelsentinel配置文件:daemonize yes port 26379 logfile /var/log/redis/redis-sentinel.log pidfile /var/run/redis-sentinel.pid sentinel monitor mymaster 10.0.0.30 6379 2 sentinel d...
 
0

redis主从复制和配置

发表者:admin分类:数据库2021-04-15 09:35:18 阅读[689]
redis主从复制和配置1.安装redis参考链接2.配置redismaster:port 6379 daemonize yes bind 0.0.0.0 pidfile /var/run/redis_6379-master.pid logfile "/var/log/redis/redis_6379-master.log"slave:port 6379 daemonize yes bind 0.0.0.0 pidfile /var/run/redis_6379-slave.pid logfile "/var/log/redis/redis_6379-slave.log" # 指定redis-master的地址和端口 slaveof 10.0.0.30 63793.启动两台redisredis-server redis.conf4.测试登陆主redis[root@redis01 etc]# redis-cli 127.0.0.1:6379> set name soulchild OK登陆从redis[root@redis02 ~]# redis-cli 127.0.0.1:6379> keys * 1) "name" 127.0.0.1:6379> get name "soulchild"如果在主从复制架构中出现宕机的情况,需要分情况看:1)从Redis宕机这个相对而言比较简单,在Redis中从库重新启动后会自动加入到主从架构中,自动完成同步数据,这是因为在Redis2.8版本后就新增了增量复制功能,主从断线后恢复是通过增量复制实现的。所以这种情况无需担心。2)主Redis宕机这个情况相对而言就会复杂一些,需要以下2步才能完成:第一步,在从数据库中执行SL...
mongodb一主一从一Arbiter复制集部署安装mongodb可参考:https://soulchild.cn/1279.html 环境:10.0.0.40     mongodb-0110.0.0.41     mongodb-0210.0.0.42    mongodb-arb 修改配置文件:# 系统日志相关 systemLog: destination: file logAppend: true path: /application/mongodb/log/mongod.log # 数据存储相关 storage: dbPath: /application/mongodb/data journal: enabled: true # 网络相关 net: port: 27017 bindIp: 0.0.0.0 # 进程控制相关 processManagement: fork: true # pidFilePath: /var/run/mongod.pid # 安全配置 #security: # authorization: enable # keyFile: /application/mongodb/data/keyfile #复制集配置 replication: oplogSizeMB: 2048 replSetName: app_1 配置复制集#登陆主mongo mongo conf = { _id: 'app_1', members: [ {_id: 0, host: '10.0.0.40:27017',priority:10}, {_id: 1, host: '10.0.0.41:27017',priority:9}, ...
 
0
mysql主主复制+keepalived部署环境:mysql-master-01:10.0.0.30mysql-master-02:10.0.0.35vip:10.0.0.39 安装mysql5.7.20可参考:https://soulchild.cn/266.html 开始配置主主环境一、修改mysql配置master-01:[mysqld] basedir=/application/mysql datadir=/data/mysql socket=/tmp/mysql.sock server_id=1 port=3306 log-bin=mysql-bin relay-log = mysql-relay-bin replicate-wild-ignore-table=mysql.% replicate-wild-ignore-table=information_schema.% [mysql] socket=/tmp/mysql.sock prompt=master-01[\\d]> [mysqld_safe] log-error=/var/log/mysql.log master-02:[mysqld] basedir=/application/mysql datadir=/data/mysql socket=/tmp/mysql.sock server_id=11 port=3306 log-bin=mysql-bin relay-log = mysql-relay-bin replicate-wild-ignore-table=mysql.% replicate-wild-ignore-table=information_schema.% [mysql] socket=/tmp/mysql.sock prompt=master-02[\\d]> [mysqld_safe] log-error=/var/log/mysql.log 二、配置msater-01主,master-02从1.添加主从复制用户,master-01执行grant...
Oracle 关于 not in 的坑 ,not in 查询不出数据select  *  from A a   where  a.id not  in     (select b.id          from B b )如上查询 如果 当 B表 的 id中有 null 时 此时数据查询不到 应该为select  *  from A a   where  a.id not  in     (select b.id          from B b           where b.id is not  null     )因为 not in的子集中不能有 null  
 
0
Redis集群需要至少要三个master节点,因为选举模式,节点数必须是基数所以: 1个master-1个slave,redis集群需要6个节点 1个master-2个slave,redis集群需要9个节点,以此类推。 这里搭建三个master节点,并且给每个master再搭建一个 slave , 共6个redis节点,3主3从由于节点数较多,这里采用在一台机器上创建6个redis实例做演示所以这里搭建的是伪集群模式: 1.环境准备工作 准备Redis安装包环境,详见 Redis单机版安装** 2.1~2.6** 2.创建集群存储目录 父目录如果没有创建请先创建父目录:mkdir /usr/local/softwaremkdir /usr/local/software/redis-clustercd /usr/local/software/redis-cluster #因为是伪集群,创建6个文件夹分别是8001~6, 对应6个redis的端口mkdir 8001 8002 8003 8004 8005 8006 3.复制并配置redis.conf 3.1 复制redis.conf 文件cp /usr/local/software/redis/conf/redis.conf /usr/local/software/redis-cluster/80011 3.2 复制完毕后修改如下内容 ...
    总共51页,当前第5页 | 页数:
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15