- 博客(235)
- 资源 (5)
- 收藏
- 关注
原创 PostgreSQL-XC 使用详解及维护
参考:http://postgres-xc.sourceforge.net/docs/1_2_1/https://www.postgres-xl.org/documentation/index.html建表详解根据数据的分布方式,pxc可以创建以下两种类型的表Replicated Tables: 各个底层节点数据库上表中的数据完成相同。插入数据时,会分别在各个底层节点数据库上插入相同的数据。值需要读取任意一个节点的数据。Distributed Tables:...
2020-10-20 18:01:01
2436
原创 PostgreSQL-XC 源码编译安装
PGXC熟悉pg的人对pgxc都不陌生,pgxc最初由stromdb公司开发,应用于商业,后来被TransLattice收购并将其开源,也就是现在的pgxl。Pgxc是基于pg的非常成熟的分布式架构,是一款混合负载的htap数据库。国内也有很多基于pgxc来做的分布式数据库,例如华为GaussDB-A,腾讯Tbase,苏宁易购,亚信antdb等或多或少都借鉴了pgxc的架构理念。pgxc的总体架构大家都很清晰了,不再赘述。pgxc的架构特点如下:①gtm保证全局读一致性,两阶段提交保证全局写一致
2020-10-20 17:52:51
1286
原创 PG集群实现自动切换(非repmgrd模式)
#!/bin/bashwhichday=`date "+%w"`v_param=$##判断参数个数if [ $v_param -ge 3 ];then echo "Invalid argument!! E.g sh pg-cluster-switchover.sh 'paas|bi' vlnx191001.xxx.cn (pg-slave-node)" ...
2020-01-15 11:40:36
1061
原创 解决PG索引膨胀(reindex)
#!/bin/bash#当表的数据小于20万则对表做 reindex table xxx操作#否则先删除索引(唯一约束索引,及主键除则 reindx index xxx),然后再创建该索引#zhaowenzhong 2019-04-02date=`date +"%Y%m%d%H%M"`v_constant=200000v_hour=0v_param=$#if [ $v_para...
2020-01-15 11:33:50
1326
原创 vacuum(analyze)
#!/bin/bash#设置自动定期对表更新统计信息和删除’死‘行#zhaowz 2019-04-02date=`date +"%Y%m%d%H%M"`v_hour=0v_param=$#if [ $v_param -ge 3 ];then echo "Invalid argument!! E.g sh pg-vacuum-analyze.sh vlnx1910...
2020-01-15 11:29:38
765
原创 vacuum(free)
vim pg-vacuum-freeze.sh#!/bin/bash#设置自动定期对 事务ID执行 回环#zhaowz 2019-04-02date=`date +"%Y%m%d%H%M"`v_hour=0v_param=$#if [ $v_param -ge 3 ];then echo "Invalid argument!! E.g sh pg-vac...
2020-01-15 11:26:27
250
原创 pgpool-II(二)pgpool-II+repmgr(master/slave)+balance+pgpool
用 repmgr实现 pg的master/slave 搭建高可用和自动切换过程略(详见htthttps://blog.csdn.net/zhaowenzhong/article/details/80774004ps://blog.csdn.net/zhaowenzhong/article/details/80774568https://blog.csdn.net/zhaowenzhon...
2019-04-18 11:41:16
1754
原创 pgpool-II安装
wgethttps://yum.postgresql.org/10/redhat/rhel-7-x86_64/pgpool-II-10-4.0.3-1.rhel7.x86_64.rpmwgethttps://yum.postgresql.org/10/redhat/rhel-7-x86_64/pgpool-II-10-devel-4.0.3-1.rhel7.x86_64.rpmwget...
2019-04-18 11:30:35
2662
原创 barman使用复制槽备份
http://docs.pgbarman.org/release/2.5/使用复制槽就不用创建公钥及传递公钥了在barman和pg服务器间复制槽和rsync最好不要一起使用,一起使用的话会导致incoming里的文件爆满不会自动删除(实践是这样的)搭建测试环境vlnx151005101 --PG-Primaryvlnx153005101 --PG-Stand...
2019-04-15 12:29:59
657
原创 pgcluu 集群性能监控和审计工具
最近线上pg 频繁出现性能问题,而zabbix和grafana 上的监控又不够详细。最后结合前期自己写了很多监控脚本,把问题解决了。虽然自己用起来没问题,但是只能在出问题的时候现场抓。抓到后研发又一种不信任的表情。但是还是感觉缺点什么。于是在网上搜索了一下有没有更好的解决方法(研发喜欢曲线。哈哈)。于是发现 pgcluu。http://pgcluu.darold.net/source安装...
2019-04-15 12:16:49
1379
原创 pglogical
前段时间由于架构的不合理性,高并发下 整套集群性能下降厉害(50个库),最后定位是由于一个500+G的库 在并且的情况下,做了类似mongodb的 upsert操作,导致其他库受到牵连,而研发端又暂时没有好的解决方法。后决定将这个库从该实例上迁出。于是采用了 pglogical 工具。先将 pglogical是使用共享https://www.2ndquadrant.comhttp...
2019-04-15 11:56:58
1429
转载 pgbouncer 常用 配置项详解
https://pgbouncer.github.io/config.html参考 《PostgreSQL修炼之道》之pgbouncer配置文件分为[databases] 和 [pgbouncer]两部分,这个前面说过。现在我们来详细讲解一下里面的配置。在上面的部分我们已经看到了一部分的[databases]部分的参数配置,都是以键值对的形式出现的,例如dbname、host、port...
2019-04-15 11:23:02
1289
原创 pgBouncer初探
pgBouncer是一个轻型的pg连接池,可以很好的管理pg的连接(对客户端连接进行限制,预防过多恶意连接;pgbouncer的每个连接仅消耗2KB的内存资源)。PgBouncer的优点内存消耗低(默认为2k/连接),因为Bouncer不需要每次都接受完整的数据包可以把不同的数据库连接到一个机器上,而对客户端保持透明支持在线的重新配置而无须重启pgbouncer 可以限制每一对...
2019-04-15 11:20:17
4937
原创 Supervisor安装实践
http://supervisord.org/installing.html脱机安装setuptools(最新)来自https://pypi.python.org/pypi/setuptools。meld3(最新)来自https://pypi.python.org/pypi/meld3。Supervisor(http://supervisord.org/)是用Python开发的一个...
2018-11-05 18:17:34
608
原创 zabbix监控postgresql
参考https://blog.csdn.net/ygqygq2/article/details/60766393#4-%E5%AF%BC%E5%85%A5%E7%9B%91%E6%8E%A7%E6%A8%A1%E6%9D%BFhttps://www.zabbix.com/download?zabbix=3.4&os_distribution=centos&os_version=...
2018-11-05 18:08:39
4968
原创 pgaudit 安装实践
下载https://github.com/pgaudit/pgaudit/blob/REL9_6_STABLE/README.md背景前提:postgresql 安装包 目录为 :/home/zhaowzh/pg966 1、解压pgaudit包unzip pgaudit-REL9_6_STABLE.zip2、mkdir -p /home/zhaowzh/pg966/...
2018-11-05 17:59:16
2018
原创 AutoVacuum系统自动清理进程
AutoVacuum系统自动清理进程在PostgreSQL数据库中,对表元组的UPDATE或DELETE操作并未立即删除旧版本的数据,表中的旧元组只是被标识为删除状态,并未立即释放空间。这种处理对于获取多版本并发控制是必要的,如果一个元组的版本仍有可能被其他事务看到,那么就不能删除元组的该版本。当事务提交后,过期元组版本将对事务不再有效,因而其占据的空间必须回收以供其他新元组使用,以避免对磁盘空...
2018-11-05 17:49:55
911
原创 Vacuum使用心得
最近在优化PG,在vacuum过程中发现了 (to prevent wrap)。于是花了一周实践深入了解并实践了一把。下面把这一周的心得分享一下,以备遇到同样情况的 朋友以及将来的自己 使用。 数据库总是不断地在执行删除,更新等操作。良好的空间管理非常重要,能够对性能带来大幅提高。在postgresql中用于维护数据库磁盘空间的工具是VACUUM,其重要的作用是删除那些已经标示为删除的数...
2018-11-05 17:40:37
15195
原创 repmgr promote
primary:vlnx107001slave:vlnx107002slave:vlnx107003一、1、查看当前集群状态repmgr -f /etc/repmgr/9.6/repmgr.conf cluster show;2、模拟停止primary[postgres@vlnx107001 ~]$ pg_ctl -D $PGDATA -m fast stop3、提升备用节点[postgres...
2018-06-22 15:41:08
1466
原创 repmgr switchover
请注意,repmgr.conf中的以下参数与切换操作相关:reconnect_attempts:执行shutdown命令之后,在中止之前检查原始主节点是否进行干净关闭的次数reconnect_interval:执行shutdown命令后检查原始主节点是否执行干净关闭的间隔(以秒为单位)(最多可尝试reconnect_attempts)replication_lag_critical:如果备用数据库...
2018-06-22 15:39:11
1232
原创 repmgr学习
https://repmgr.org/docs/4.0/using-repmgrd.htmlrepmgrd是在复制群集中的每个节点上运行的管理和监视守护进程。它可以自动执行诸如故障转移和更新备用数据库等操作以跟踪新的主数据库,并提供关于每个备用数据库状态的监视信息。一、基本配置1、如要使用 repmgrd,必须在 postgresql.conf中 配置关联库(需要重启pg服务方可生效)shared...
2018-06-22 15:34:24
2743
原创 repmgr安装部署
https://repmgr.org/官方操作手册Documentationhttps://repmgr.org/docs/4.0/index.html下载URLhttps://rpm.2ndquadrant.com/site/content/ rpmhttps://repmgr.org/download/repmgr-4.0.5.tar.gz source code编译安装/home/z...
2018-06-22 15:28:47
2202
原创 Barman 常用命令
http://docs.pgbarman.org/release/2.3/ 官方操作手册数据库备份命令barman备份命令1、执行全备份barman backup vlnx053001.foneshare.cn数据库备份检查命令1、查看可监听的数据库服务器barman list-server2、状态检查barman check vlnx053003.foneshare.cnbarman sta...
2018-06-22 15:24:39
662
原创 Barman 安装
yum -y install gcchttps://sourceforge.net/projects/pgbarman/?source=typ_redirecthttps://sourceforge.net/projects/pgbarman/files/2.3/https://www.pgbarman.org/index.htmlwget https://jaist.dl.sourceforge...
2018-06-22 15:22:27
2596
原创 实践部署 repmgr+pg9.6构建高可用性集群
环境:vlnx107001.firstshare.cn primaryvlnx107002.firstshare.cn slavecentos7postresql9.6repmgr4.0.5开启防火墙firewall-cmd --zone=public --add-port=5432/tcp --permanent 重新载入firewall-cmd --reload查看f...
2018-06-22 15:12:06
2879
原创 缓存小结
Mysql 查询缓存查询缓存的作用就是当查询接收到一个与之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。1.配置查询缓存修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果没有则添加)。其中query_cache_size表示缓存的大小,而query_cache_t
2017-08-21 11:28:49
1262
原创 MySQL体系结构
了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的;以下是收集的一些体型结构图 可以帮助更好的理解和学习mysql1、 Connectors指的是不同语言中与SQL的交互2 、Management Serveices & Utilities: 系统管理
2017-08-08 16:41:26
434
原创 Mongodb 数据文件结构
MongoDB目前支持的存储引擎为内存映射引擎在MongoDB内部,每个数据库都包含一个.ns 文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。nssize选项可以设置dbname.ns文件的大小。MongoDB 内部有预分配空间的机制,每个预分配的文件都用0 进行填充,由于有了这个机制, MongoDB 始终保持额外的空间和空余的数据文件,从而有效避免了由于
2017-07-25 09:28:44
4090
原创 oplog
MongoDB 的Replication是通过一个日志来存储写操作的,这个日志就叫做oplog。oplog记录了主节点上的每一次写操作。oplog是主节点上local数据库中的一个固定集合,备份节点通过查询该集合就可以知道需要进行复制的操作。每个备份节点都维护着自己的oplog,记录着每次从主节点复制数据的操作(每备份节点从同步源获取需要执行的操作并应用到自身,最后将这些操作记录到自己的opl
2017-07-25 09:25:47
1356
原创 Kibana5.2.2使用安装
Kibana 是一个基于浏览器页面的 Elasticsearch 前端展示工具。是一个为 Logstash和 Elasticsearch提供的日志分析的web接口,可以使用它对日志进行高效的搜索、可视化、分析等各种操作。下载安装:wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-linux-x
2017-07-25 09:16:09
2725
原创 ElasticSearch5.2.2 安装
https://www.elastic.co/downloads/elasticsearchElasticSearch是一个高可扩展的开源的全文搜索分析引擎。它允许你快速的存储、搜索和分析大量数据。ElasticSearch通常作为后端程序,为需要复杂查询的应用提供服务。检查 JDK版本java -version #确保是 1.7版本以上下载解压并创建数据和l
2017-07-25 09:14:08
1573
原创 HAProxy
参考:http://blog.itpub.net/25704976/viewspace-1319781/http://blog.csdn.net/nimasike/article/details/48048341http://www.jb51.net/article/80172.htmhttp://bestvivi.com/2015/09/06/MySQL%E8%AF%BB%E5%
2017-07-25 09:09:39
736
原创 数据安全与性能保障
Redis 提供俩种不同的持久化方法来将数据存储到硬盘上。一种是 快照snapshotting(它可以将存在于某一时刻的所有数据都写入到硬盘里面);另一种 叫 只追加文件append-only file,AOF),它会在执行写命令时,将被执行的 写命令复制到硬盘里面;以上两种持久化方法可以同时使用也可以单独使用。创建快照的方法有:1、客户端通过向Redis发送 BGSA
2017-07-25 09:05:59
992
原创 Redis.conf
# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /path/to/redis.conf
2017-07-25 09:01:44
371
原创 Redis的哨兵机制 Sentinel(简要)
集群最小单位为:1个Sentinel、2个redis;启动后Sentinel会:以10秒一次的频率,向被监视的master发送info命令,根据回复获取master当前信息。以1秒一次的频率,向所有redis服务器、包含sentinel在内发送PING命令,通过回复判断服务器是否在线。以2秒一次的频率,通过向所有被监视的master,slave服务器发送包含当前sentin
2017-07-25 09:00:27
2408
原创 Redis 安装
1、先下载 redis3.2.4 和安装依赖 及 配置内存分配策略yum install -y wget gcc make tcl设置内存分配策略(可选,根据服务器的实际情况进行设置)/proc/sys/vm/overcommit_memory可选值:0、1、2。0, 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把
2017-07-25 08:58:29
249
原创 Mysql 查询缓存
Mysql 查询缓存查询缓存的作用就是当查询接收到一个和之前同样的查询,服务器将会从查询缓存种检索结果,而不是再次分析和执行上次的查询。这样就大大提高了性能,节省时间。1.配置查询缓存修改配置文件,修改[mysqld]下的query_cache_size和query_cache_type(如果没有则添加)。其中query_cache_size表示缓存的大小,而query_cache_t
2017-07-24 15:24:47
366
原创 Xtrabackup备份 还原
完整备份:innobackupex --defaults-file=/etc/my.cnf --user=root --password=fxiaokemysql --socket=/tmp/mysql.sock /tmp/bak #必须将 defaults-file放在第一位该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/tmp/bak),注意:如
2017-07-24 15:23:33
375
原创 XtraBackup工作原理
MySQL数据库完整备份与增量备份的原理简介完整备份的原理:对于InnoDB,XtraBackup基于InnoDB的crash-recovery功能进行备份。crash-recovery是这样的:InnoDB维护了一个redo log,又称为 transaction log,也叫事务日志,它包含了InnoDB数据的所有改动情况。InnoDB启动的时候先去检查datafi
2017-07-24 15:22:04
315
原创 Xtrabackup2.3.6 安装
https://www.percona.com编译好的二进制源码安装:官方网下载编译好的二进制源码包wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.6/binary/tarball/percona-xtrabackup-2.3.6-Linux-x86_64.tar.gz
2017-07-24 15:21:21
1674
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人