本站用于记录日常工作内容,虚拟化云计算,系统运维,数据库DBA,网络与安全。
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 阅读[417]
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 阅读[192]
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 阅读[192]
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 复制完毕后修改如下内容 ...
 
0

MongoDB用户认证机制

发表者:admin分类:数据库2021-02-06 00:22:01 阅读[337]
  一、MongoDB用户认证机制简介 为了认证客户端,你必须要添加一个对应的用户到MongoDB。基本的步骤分为以下几步: 用户管理接口:db.createUser()方法可以创建一个用户,添加完成后可以分配角色给用户,第一个用户必须是管理员,用来管理其他用户。你也可以更新存在的用户,必须修改密码和权限。 认证数据库:当添加一个用户后,你在某个指定的数据库中添加该用户,那么这个数据库对于该用户就是个认证数据库。一个用户可以有权限访问多个数据库,通过分配角色权限来做到。 认证用户:为了认证用户,可以通过db.author()方法。 二、MongoDB用户认证示例 在admin数据库中,创建一个超级用户,用于管理其他的的用户。 use admin db.createUser({"user":"myadmin","pwd":"password","roles":["root"]})   重新登录数据库,执行:show dbs,发现依然可以访问。我们需要开启数据库的认证机制,在配置文件中设置以...
最近有个新项目刚过完需求,正式进入数据库表结构设计阶段,公司规定统一用数据建模工具 PowerDesigner。但我并不是太爱用这个工具,因为它的功能实在是太多了,显得很臃肿,而平时设计表用的也就那么几个功能。 这里找到一个好用的工具,马不停蹄的分享给大家,PDMan 一款国产开源的数据库模型建模工具,它的功能PowerDesigner 均已经实现,但相比于笨重的PowerDesigner来说。PDMan 专门用于数据表的设计,界面更加清爽漂亮,功能也十分简洁,没多余的设置很容易上手,还提供了 Windows,Mac,Linux 三个平台版本。 PDMan保存的是一个JSON文件,使用前得先做点准备工作,配置一下 JDK 和 MySQL 连接,后边的功能会用到。 下边我们来逐一过下PDMan 的功能点。 生成数据库文档 PDMan 支持一键导出数据表结构的DDL执行脚本,JSON格式数据,还有数据库表结构文档,其中数据库文档又可以生成 html 、word、markdown 三种格式,文档内容包括各个表的字段属性,数据表间的关系图。 html 格式 word 格式 markdown 格式 数据库逆向解析 ...
    总共46页,当前第1页 | 页数:
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11