postgresql
奈何流年
给自己定个小目标。
展开
-
pacemaker+corosync+pg13
pacemaker+corosync+pg13的搭建大体内容可以参考上一篇的pacemaker+corosync+pg11的搭建,对于pg13的或者说是pg12以及以上版本,需要更新resource-agents。查看/usr/lib/ocf/resource.d/heartbeat/psql中的地1918行,看版本是否支持pg12以上。如果使用pg12以上的版本的话,需要把resource-agents升级一下,安装一个支持pg12以上的版本。安装resource-agents-4-11。原创 2022-12-23 14:16:03 · 990 阅读 · 0 评论 -
pacemaker+corosync 搭建一主两从PG集群
pacemaker+corosync 搭建一主两从PG集群原创 2022-09-29 17:53:29 · 2016 阅读 · 0 评论 -
postgresql版本升级方式:利用逻辑复制
数据库版本pg10升级到pg11.51.修改旧版本数据库的参数(需要重启数据库)wal_level = logical max_replication_slots = 8 max_wal_senders = 10 2.导出旧版本的表结构pg_dump -d test -s >/data/test.sql3.查询迁移的数据库中没有主键的表--检查同步的数据库是否有主键(pg10及以下版本)SELECT nspname || '.' ||reln..原创 2021-10-29 17:33:19 · 580 阅读 · 0 评论 -
postgresql插件之mysql_fdw
1.安装mysql和pg数据略过2.安装mysql_fdw[root@slt032qws38 dbadmin]# unzip mysql_fdw-master.zip[root@slt032qws38 dbadmin]# cd mysql_fdw-master/[root@slt032qws38 mysql_fdw-master]# export PATH=/data/postgres/bin/:$PATH[root@slt032qws38 mysql_fdw-master]# ex原创 2021-10-19 15:14:26 · 868 阅读 · 0 评论 -
postgresql兼容oracle插件orafce
orafce插件是postgresql兼容oracle的插件,安装了以后,pg能够兼容oracle的一些数据类型和表。下载地址:https://pgxn.org/dist/orafce环境:centos7.4数据库:pg12.3orafce:3.13安装[postgres@node1 ~]$ unzip orafce-3.13.4.zip [postgres@node1 ~]$ cd orafce-3.13.4/[postgres@node1 orafce-3.13.4]$ ma原创 2021-08-02 14:47:23 · 1557 阅读 · 0 评论 -
基于patroni+etcd的postgresql高可用搭建
1.环境centos 7.4postgresql 10.5物理ip192.168.199.240 (node1)192.168.199.241 (node2)192.168.199.242 (node3)vip192.168.199.248192.168.199.2492.安装patroni和ectdyum install -y gcc python-devel epel-releaseyum install -y etcdyum instal原创 2021-04-26 10:21:53 · 624 阅读 · 0 评论 -
postgresql利用事件触发器记录表的创建和删除时间
postgresql数据库在创建表的时候不会像oracle一样,会有地方表的创建时间,pg并不会记录表的创建时间,只会在log日志中记录,如果是好久之前的日志,刚好已经被清理掉,那么要审计或者通过表的创建时间来排查问题会变的很困难然而在postgresql中有一种触发器,叫做事件触发器,可以通过这个来记录表的创建和删除时间等。1.创建一个事件触发器,记录所有的drop table操作用于事后审计记录删除的事件触发器,利用到了一个系统函数pg_event_trigger_dropped_objec原创 2021-03-29 11:26:15 · 779 阅读 · 1 评论 -
postgresql中DROP OWNED BY user_name对普通用户和只读用户的区别
1.首先建立一个普通用户,普通用户建立schema,并在schema下建表DROP OWNED BY user_name;postgres=# create user test with password 'test@123';CREATE ROLEpostgres=# create schema test authorization test;CREATE SCHEMApostgres=# grant select,insert,update,delete on all tables in原创 2020-12-29 11:33:36 · 675 阅读 · 0 评论 -
postgresql的加密扩展插件pgcrypto
近期测试了一下postgresql的加密扩展插件pgcrypto的aes加密安装加密扩展插件:pgcrypto在主节点上安装create extension pgcrypto;aes加解密函数简单介绍encrypt(data bytea, key bytea, type text) --加密decrypt(data bytea, key bytea, type text) --解密data 是需要加密的数据;type 用于指定加密方法ASE方式加密:select encr原创 2020-12-02 14:45:30 · 2620 阅读 · 0 评论 -
pg_bigm与pg_trgm的安装、测试、对比
1.介绍PostgreSQL的模糊查询功能十分强大,可以通过pg_trgm或者pg_bigm插件来支持前模糊、后模糊和前后模糊场景的模糊查询的场景。主要的区别:pg_trgm是将对象进行切词,每3个字节为一组进行切割,所以单、双字节的就无法覆盖到。pg_bigm是将对象进行切词,每2个字节为一组进行切割,可以支持任意字数模糊查询2.安装pg_bigm的安装版本:pg_bigm 1.2$ tar zxf pg_bigm-1.2-20200228.tar.gz$ cd pg_bigm原创 2020-07-29 09:23:54 · 4493 阅读 · 0 评论 -
pg_squeeze安装及简单使用
环境:redhat 7.4 postgresql 12.3 pg_squeeze 1.2pg_squeeze下载地址:https://github.com/cybertec-postgresql/pg_squeeze/介绍:pg_squeeze是一个扩展,它从表中删除未使用的空间,并且可以选择根据特定索引对元组进行排序,一般当一个表膨胀时一般使用vacuum full或者cluster进行表重建,在这一过程中会加排他锁,导致该表无法进行读写,只有等整个过程完成后才可以进行正常使用。pg_sque..原创 2020-06-22 12:07:26 · 1288 阅读 · 0 评论 -
pg_repack安装及使用
[postgres@node2 ~]$ lltotal 248drwxrwxr-x 8 postgres postgres 184 Oct 4 2019 pg_repack-1.4.5-rwxr--r-- 1 postgres postgres 125523 May 28 15:23 pg_repack-1.4.5.zip[postgres@node2 ~]$ cd pg_repack-1.4.5/[postgres@node2 pg_repack-1.4.5]$ lltotal 1...原创 2021-01-18 21:31:50 · 2301 阅读 · 1 评论 -
TBase集群安装配置
1.较准机器的时间停止chronyd服务 :systemctl stop chronyd设置chronyd服务开机不自启: systemctl disable chronyd2.防火墙与selinux配置关闭seLinux:setenforce 0设置selinu开机不启动:vi /etc/sysconfig/selinux将其中的SELINUX= XXXXXX修改为SELINUX...原创 2020-11-12 19:55:27 · 1406 阅读 · 0 评论 -
编译安装pgbouncer时libevent报错问题
编译安装pgbouncer时libevent报错checking for LIBEVENT... noconfigure: error: Package requirements (libevent ) were not met:No package 'libevent' foundConsider adjusting the PKG_CONFIG_PATH environment v...原创 2019-12-25 09:24:36 · 1898 阅读 · 0 评论 -
postgresql监控工具pgstatspack的安装及使用
下载地址:http://pgfoundry.org/frs/download.php/3151/pgstatspack_version_2.3.1.tar.gz安装:[postgres@node2 tmp]$ tar -xvf pgstatspack_version_2.3.1.tar.gz [postgres@node2 tmp]$ cd pgstatspack[postgres@nod原创 2017-03-13 16:56:03 · 2221 阅读 · 0 评论 -
postgresql initdb过程中大体做了什么
1.创建pg的data主目录,以及其所有子目录2.生成配置文件postgresql.conf3.创建template1数据库4.对template1数据库加载初始化数据5.复制template1到template0数据库6.复制template1到postgres数据库原创 2017-04-28 10:29:58 · 809 阅读 · 0 评论 -
postgresql上安装sysbench-0.5
环境centos 6.8pg9.6sysbench-0.5[postgres@node2]$ tar -xvf sysbench-0.5.tar.gz[postgres@node2 sysbench-0.5]$ lltotal 100-rw-r--r--. 1 postgres postgres 3074 Oct 19 2012 autogen.sh-rw-r--r--. 1原创 2017-04-12 11:06:16 · 1163 阅读 · 0 评论 -
postgresql修改完端口后直接psql连接数据库报错
今天修改pg的端口号port改成5435后重启完数据库的时候直接psql进库是的时候进不去[postgres@node2 data]$ psqlpsql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix原创 2017-03-29 16:31:21 · 9444 阅读 · 0 评论 -
postgresql查看表的和索引的情况,判断是否膨胀
索引膨胀的几个来源:1 大量删除发生后,导致索引页面稀疏,降低了索引使用效率。2 PostgresQL 9.0之前的版本,vacuum full 会同样导致索引页面稀疏。3 长时间运行的事务,禁止vacuum对表的清理工作,因而导致页面稀疏状态一直保持。查看重复索引SELECT pg_size_pretty(SUM(pg_relation_size(idx))::BIGINT)ASSI原创 2017-03-14 17:07:21 · 5506 阅读 · 0 评论 -
postgresql遇到“Connection refused”和“No route to host”大概的解决方法
一般我们遇到这个问题的时候都是连接远程主机的时候,会出现这个报错psql: could not connect to server: connection refusedIs the server running on host "192.168.11.70" and accepting TCP/IP connections on port 5432? psql: could原创 2017-04-10 09:23:05 · 9976 阅读 · 0 评论 -
安装pg_rman是出现libpq.so.5()(64bit) is needed by ...
[root@node2 tmp]#rpm -ivh pg_rman-1.3.3-1.pg96.rhel6.x86_64.rpm error: Failed dependencies: libpq.so.5()(64bit) is needed by pg_rman-1.3.3-1.pg96.rhel6.x86_64 postgresql96-libs is needed by pg_rman原创 2017-03-06 10:38:39 · 12294 阅读 · 2 评论 -
PL/Proxy安装配置
1、环境三台虚拟机系统:red hat6.5ip 192.168.11.65 代理数据库 192.168.11.66 数据节点 db1 192.168.11.67 数据节点db2三台机器上均安装好postgresql数据库版本:postgresql9.4..42、在P1上安装plroxy[postgres@b原创 2017-02-14 13:45:32 · 856 阅读 · 0 评论 -
benchmarksql在postgresql上的安装、使用
1.创建用户和数据库[postgres#localhost ~] $ psql postgrespsql (9.5.2)Type "help" for help.postgres=# CREATE USER benchmarksql WITH ENCRYPTED PASSWORD 'changeme';postgres=# CREATE DATABASE benchmarksql OW原创 2017-04-18 15:25:32 · 6338 阅读 · 1 评论 -
pl/proxy-2.5安装在postgresql9.6上无法编译
在postgresql安装编译pl/ploxy-2.5报错postgres@node2 plproxy-2.5]$ makeflex -osrc/scanner.c src/scanner.lbison -b src/parser -d src/parser.ygcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-原创 2017-04-06 11:17:20 · 943 阅读 · 0 评论 -
pgpool3.2.9中编译 pgpool-walrecrunning函数出错
在做pgpool的时候选择了一个相对较老的版本3.2.9在pg9.4上做实验出现以下错误[postgres@barman pgpool-walrecrunning]$ make gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-forma原创 2017-04-17 16:13:26 · 676 阅读 · 0 评论 -
使用yum安装postgresql 10 dev
环境centos 7 64位数据库:pg10dev参考网址:https://yum.postgresql.org/news10snapshot-ready-for-testing.phpyum installationhttps://wiki.postgresql.org/wiki/YUM_Installation创建用户[root@localhost ~]#useradd po原创 2017-04-24 11:27:32 · 7045 阅读 · 0 评论 -
postgresql减少wal日志生成量的方法
1、在繁忙的系统中,如果需要降低checkpoint发生的频率,减少WAL日志的生成量,减轻对系统IO的压力,可以通过以下两种方法。1) 调整WAL segment大小,最高可以调整到64MB,不过只能通过编译来调整。对于已有系统不太方便;2) 增大checkpoint_segments设置,使得checkpoint不会过于频繁地被触发;2、在9.5中,checkpoint_segments转载 2017-04-25 10:40:52 · 4356 阅读 · 0 评论 -
postgresql使用RHCS套件搭建HA高可用集群
环境:数据库服务器 2台 服务器一 操作系统:CentOS 6.8 x86_64 IP(eth0):192.168.11.61 主机名:node1 服务器二 操作系统:CentOS 6.8 x86_64 IP_1(eth0):192.168.11.62 主机名:node2存储服务器 操作系统:CentOS 6.8 x86_64原创 2017-04-27 16:00:45 · 3004 阅读 · 0 评论 -
流复制中的问题max_connection
在实现流复制的时候,在修改了主端的max_connection的时候就会重启主端数据库的就会hang住。再去修改备端的max_connection的时候重启数据库就会显示备库的最大连接数也就是max_connection需要么比主端的大。导致主备端都不能用。解决方法hot standby情况下参数备端是必要>=主端,所以:1、如果主端有修改,备端stop然后hot standby = off...原创 2018-05-30 20:17:17 · 407 阅读 · 0 评论 -
Postgresql 事务的提交与回滚
原博客 http://blog.csdn.net/kiwi_kid/article/details/50881919用过oracle或mysql的人都知道在sqlplus或mysql中,做一个dml语句,如果发现做错了,还可以rollback;掉,但在PostgreSQL的psql中,如果执行一个dml,没有先运行begin;的话,一执行完就马上提交了,不能回滚,这样容易导致误操作的发生转载 2016-09-29 09:18:29 · 3781 阅读 · 0 评论 -
postgresql 中的postgres_fdw
两台主机,192.168.11.67 192.168.11.7067机器上的[postgres@pg contrib]$ psqlpsql (9.4.4)Type "help" for help.postgres=# select * from pg_foreign_data_wrapper; fdwname | fdwowner | fdw原创 2017-02-28 15:35:48 · 1622 阅读 · 0 评论 -
关于postgresql同一表中的同一列可以填加多个相同索引的问题
关于postgresql同一表中的同一列可以填加多个相同索引的问题首先我们建一张表postgres=# create table test (id int ,name text,num numeric);CREATE TABLE插入数据postgres=# insert into test values (( generate_series(1,1000)),'张三','123');I原创 2017-03-10 16:34:42 · 3758 阅读 · 0 评论 -
postgresql的升级方法
一、在小版本(如,9.4.2,9.4.4)的升级过程中,只需要简单地在服务器关闭时替换可执行文件并重启服务器。数据目录则保持不变。二、在跨版本升级的时候,入9.2升级到9.4,有两种方式1.用pg_dumpall(1)现在把旧的数据库的数据备份出来用 pg_dumpallpg_dumpall > outfile(2)关闭服务器pg_ctl stop -m fast(3)原创 2017-03-01 13:19:12 · 4912 阅读 · 0 评论 -
postgresql中wal_level的三个参数
wal_level中有三个主要的参数:minimal、archive和hot_standbyminimal是默认的值,它仅写入崩溃或者突发关机时所需要的信息。archive是增加wal归档所需的日志(最常用)。hot_standby是在备用服务器上增加了运行只读查询所需的信息,一般实在流复制的时候使用到。原创 2017-01-12 13:45:41 · 9879 阅读 · 0 评论 -
postgresql在linux下的的开机自启动服务与环境变量的配置
设置PostgreSQL开机自启动PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下 linux文件即为linux系统上的启动脚本1)修改linux文件属性,添加X属性#chmod a+x linux2) 复制linux文件到/etc/init.d目录下,更名为postgresql#cp linux /原创 2016-09-26 14:43:18 · 15662 阅读 · 0 评论 -
pgpool安装使用体会
pgpool是一个postgresql中很好用的一种工具,当然在安装和使用中会经常出一些小问题,写一下我遇到过的问题。首先在做流复制的时候,要安装好pg后,做完基础备份后,在安装pgpool,pgpool中的一些方法函数,在主端安装建立就好,因为流复制会同步到备库再就是安装完成后,配置文件和脚本的问题。主备两边的文件内容除了在指定用户的时候不同以外,其他的都要求相同,脚本文件也是这要求原创 2017-01-09 15:53:49 · 708 阅读 · 0 评论 -
pgpool 主从流复制模式下的安装使用
pgpool 主从流复制模式下的安装使用pgpool-II 是一个位于 PostgreSQL 服务器和 PostgreSQL 数据库客户端之间的中间件,它提供以下功能: 连接池pgpool-II 保持已经连接到 PostgreSQL 服务器的连接,并在使用相同参数(例如:用户名,数据库,协议版本)连接进来时重用它们。它减少了连接开销,并增加了系统的总体吞吐量。 复制pgpo转载 2016-12-22 16:30:21 · 7734 阅读 · 1 评论 -
postgresql无法启动,日志报错:make sure postgresql is not already running
出现的错误日志:make sure postgresql is not already running常见原因:(1)postgres服务实例已经启动好了,而你正试图再重启一次(2)pg服务监听的端口已经被其他程序占用(3)postgres服务之前发生过异常关闭或者崩溃,在data文件夹下遗留了一个 postgresql.pid文件 。直接删除该文件并再次尝试启动。(4)有一个孤立原创 2016-11-25 10:44:54 · 1196 阅读 · 0 评论 -
postgresql关闭自动提交
postgresql中默认是自动提交的查看是否是自动提交:postgres=# \echo :AUTOCOMMIT on关闭自动提交:postgres=# \set AUTOCOMMIT offpostgres=# \echo :AUTOCOMMIT off另一种方式就在会话开始的时候以begin开始相当于关闭了自动提交,以end或者commit原创 2016-12-07 16:22:53 · 10674 阅读 · 0 评论 -
SQL的主键和外键约束
原文:http://www.cnblogs.com/ywb-lv/archive/2012/03/12/2391860.htmlSQL的主键和外键的作用: 外键取值规则:空值或参照的主键值。(1)插入非空值时,如果主键表中没有这个值,则不能插入。(2)更新时,不能改为主键表中没有的值。(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒转载 2016-09-29 10:44:27 · 316 阅读 · 0 评论