PostgreSQL
岳麓丹枫001
这个作者很懒,什么都没留下…
展开
-
PG 二级子分区实例
【代码】PG 二级子分区实例。原创 2023-06-28 22:40:12 · 333 阅读 · 0 评论 -
bytea 与 base64 字符串互相转换
【代码】bytea 与 base64 字符串互相转换。原创 2023-03-01 09:51:54 · 624 阅读 · 0 评论 -
PG 外键约束之 deferrable
【代码】PG 外键约束之 deferrable。原创 2023-01-12 20:46:37 · 260 阅读 · 0 评论 -
psql 中使用条件判断, 以及 shell 脚本, 实现批量更新数据库中的内容
【代码】psql 中使用条件判断, 以及 shell 脚本, 实现批量更新数据库中的内容。原创 2022-12-30 13:52:09 · 463 阅读 · 0 评论 -
regexp_split_to_table,regexp_split_to_array,array,unnest 使用
【代码】regexp_split_to_table,regexp_split_to_array,array,unnest 使用。原创 2022-11-15 09:59:56 · 573 阅读 · 0 评论 -
PG 插件
auth_delay: 报告认证失败之前等待的毫秒数,缺省是0。上述修改表示:则在一次认证失败后,将延迟5秒中才能继续下一次认证。该选项可以增加暴力破解数据库服务器的密码难度,但它并不能防止拒绝服务攻击,甚至可能恶化它们,因为报告验证失败之前等待的过程将损耗连接槽位。简介:PG 自带了插件 passordcheck ,用于 简单密码复杂度校验,防止使用郭丹或者包含用户名的密码。需要修改 share_preload_libraries 添加。(如果环境变量有设置,可以使用 $libdir)原创 2022-09-27 09:41:03 · 1411 阅读 · 0 评论 -
PG 触发器创建分表
PG 触发器方式创建分表原创 2022-08-28 18:10:37 · 311 阅读 · 0 评论 -
PG维护笔记
PG 维护原创 2022-08-21 20:39:35 · 961 阅读 · 0 评论 -
PG jsonb 实例
PG jsonb实例。原创 2022-07-26 19:58:50 · 295 阅读 · 0 评论 -
pgbouncer 使用
pgbouncer 是一个 PostgreSQL 连接池。原创 2022-06-24 10:56:48 · 617 阅读 · 0 评论 -
PG 序列相关
PG 序列原创 2022-06-12 15:31:47 · 356 阅读 · 1 评论 -
PG 浮点数精度显示问题
PG浮点数显示问题原创 2022-06-08 11:42:39 · 673 阅读 · 0 评论 -
pacemaker+corosync 实现 PG14.1 HA
pacemaker + corosync +PG14原创 2022-06-05 22:29:31 · 598 阅读 · 0 评论 -
PG窗口函数示例
PG 窗口函数示例原创 2022-04-29 13:46:51 · 539 阅读 · 0 评论 -
PG 触发器示例以及与之相关的常用变量
文章目录数据实例演示数据drop table if exists test cascade;CREATE TABLE test ( id serial, info text, create_time timestamptz);CREATE OR REPLACE FUNCTION func_show_trigger_info ()RETURNS trigger AS$$ DECLARE BEGIN RAISE NOTICE 'NEW: %原创 2022-04-19 20:34:28 · 1087 阅读 · 0 评论 -
Go 连接 PG
直接上代码package mainimport ( "database/sql" "fmt" "log" _ "github.com/lib/pq" //方式 1 "gorm.io/driver/postgres" //方式 2 "gorm.io/gorm")//连接 PG 方式 1func test() {--此处需要根据实际情况修改 connStr := "host=127.0.0.1 port=55432 dbname=postgres user=postg.原创 2022-04-09 21:07:49 · 1592 阅读 · 1 评论 -
PG权限相关
默认 超级管理员 postgres创建审计管理员(只读用户) sys_auditorcreate role sys_auditor login password 'sys_auditor' ; alter role sys_auditor set default_transaction_read_only=on; GRANT USAGE ON SCHEMA public to sys_auditor; -- 对于未来新建的表, 自动分配读权限给 sys_auditor grant selec原创 2022-03-23 15:30:16 · 546 阅读 · 0 评论 -
Linux 环境查看进程或者用户使用内存情况
安装(源码为绿色版,解压即可使用, 也可通过yum安装)[root@vm98 test]# lssmem-1.4.tar.gz[root@vm98 test]# tar xvf smem-1.4.tar.gzsmem-1.4/.hg_archival.txtsmem-1.4/.hgtagssmem-1.4/COPYINGsmem-1.4/smemsmem-1.4/smem.8smem-1.4/smemcap.c[root@vm98 test]# lssmem-1.4 smem-1.4原创 2022-02-22 19:32:10 · 363 阅读 · 0 评论 -
PG DML returning
构造数据drop table if exists test cascade;create table test(id int, name varchar);insert into test values(1,'a'),(2,'b');select * from test;实例1CREATE OR REPLACE FUNCTION func_test() RETURNS INTEGER AS$BODY$DECLARE v_name varchar;BEGIN select n.原创 2022-01-20 20:50:27 · 151 阅读 · 0 评论 -
PG函数接收任意个整数实例
实例1CREATE OR REPLACE FUNCTION func_test(VARIADIC arr integer[]) RETURNS INTEGER AS$BODY$declare retval integer;BEGIN select sum($1[i]) into retval from generate_subscripts($1,1) g(i); raise notice 'retval=%',retval; return 0;END;$BODY$.原创 2022-01-20 20:48:19 · 156 阅读 · 0 评论 -
PG 禁用外键约束
构造数据create table test(id int primary key , name varchar);insert into test values (1, 'a');create table testb(id int , name varchar, constraint fk_id foreign key (id) references test(id) match simple on delete cascade );insert INTO testb values(1,'a1.原创 2022-01-19 10:28:16 · 1737 阅读 · 0 评论 -
PSQL使用技巧
当查询数据值为 NULL 为, psql 中显示为 NULL\pset null 'NULL' drop table if exists test cascade;create table test(id int, name varchar);insert into test values(1,'a');insert into test (id) values(2);insert into test values(3,'');select * from test;执行结果pos.原创 2022-01-13 20:52:38 · 452 阅读 · 0 评论 -
pghero 监控 PG
基于 centos7 安装sudo wget -O /etc/yum.repos.d/pghero.repo \ https://dl.packager.io/srv/pghero/pghero/master/installer/el/7.reposudo yum install pghero -y安装 PG 环境并配置安装PGcreate database test;配置shared_preload_libraries = 'pg_stat_statements'pg_st原创 2021-12-19 13:34:49 · 1116 阅读 · 2 评论 -
PG中pg_class.relkind 取值及其代表含义
直接上代码[root@localhost dbbr]# /home/postgres/pgsql/bin/psql -Upostgres -EPassword for user postgres: psql (11.8)Type "help" for help.postgres=# \dt********* QUERY **********SELECT n.nspname as "Schema", c.relname as "Name", CASE c.relkind原创 2021-11-25 10:13:59 · 2948 阅读 · 5 评论 -
PG 查看当前正在运行SQL的执行计划插件pg_show_plans
PG_SHOW_PLANS下载https://github.com/cybertec-postgresql/pg_show_plans编译安装cd postgresql-pg_version/contribtar zxvf pg_show_plans.tar.gzcd pg_show_plansmake && make install 配置插件修改配置文件 vim postgresql.conf shared_preload_libraries='pg_原创 2021-10-13 14:35:11 · 893 阅读 · 1 评论 -
基于 docker linux 搭建 postgresql 环境
环境介绍Docker Linux CentOS7.6PG 12.6安装一些基础软件yum -y install coreutils glib2 lrzsz mpstat dstat sysstat e4fsprogs xfsprogs ntp readline-devel zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex b原创 2021-09-12 20:15:05 · 443 阅读 · 0 评论 -
PG 归档日志清理方案
清理 1 天 之前的数据cat >> $PGDATA/arch.sh <<"EOF"test ! -f /postgresql/archive_log/$1 && cp --preserve=timestamps $2 /postgresql/archive_log/$1 ; find /postgresql/archive_log -type f -mtime +1 -exec rm -f {} \;EOF清理20分钟之前的文件 归档并清理日志文件的 脚原创 2021-09-10 17:33:13 · 2265 阅读 · 0 评论 -
postgres_fdw实例
环境node1: 207.207.35.134node2: 207.207.35.99node2:添加数据create table test(id int);create table person(id int, name varchar);insert into test select n from generate_series(1,10) n;insert into person select n , n||'name' from generate_series(1,10) n;原创 2021-09-09 19:48:35 · 173 阅读 · 0 评论 -
PG唯一索引与唯一约束.sql
PG 唯一约束与唯一索引实例create table test(id serial, name text);ALTER TABLE test add CONSTtraint uk_test_name unique(name);create table test2(id serial, name text);create unique index idx_test2_name on test2 using btree(name);insert into test (name) valu原创 2021-08-24 09:55:25 · 5504 阅读 · 0 评论 -
PG正则表达式实例
likedrop table if exists test;create table test (id serial, name text);insert into test (name) values('zhangsan'),('Zhansan2'),('li_xiao_ming');select * from test where name like 'zhang%'; --zhangsan select * from test where name ilike 'zhang%'; --zh原创 2021-08-23 11:05:53 · 2075 阅读 · 0 评论 -
PG gin 索引使用
gin 索引性能测试使用 字符串保存标签列表,以 逗号 分隔构造数据drop table tbl_user;CREATE TABLE public.tbl_user( ID SERIAL PRIMARY KEY NOT NULL, UserID varchar(100) NOT NULL, UserName varchar(100) NOT NULL, PhoneNumber varchar(20) NOT NULL);INSERT INTO public."tbl_user" (u原创 2021-08-20 14:29:17 · 520 阅读 · 0 评论 -
PG物化视图
实例postgres=# create table test(id int, info text);CREATE TABLEpostgres=# insert into test select n, n||'info' from generate_series(1,4) n;INSERT 0 4postgres=# postgres=# create materialized view view_test postgres-# aspostgres-# select id, infopos原创 2021-08-19 10:17:32 · 647 阅读 · 0 评论 -
编译 pg_repack
编译 pg_repack以 基于 postgres 12 编译 pg_repack 为例参考https://reorg.github.io/pg_repack/最好使用比较新的GCC来编译需要先安装好PG12配置好环境变量,假设pg bin路径为 /home/postgres/pgsql/binexport PATH=/home/postgres/pgsql/bin:$PATH解压 pg_repack 并进入 pg_repack 解压路径make &&a原创 2021-07-09 10:46:04 · 300 阅读 · 0 评论 -
PG 索引监控
冗余索引查找--List of redundant indexes-- Use it to see redundant indexes list-- This query doesn't need any additional extensions to be installed-- (except plpgsql), and doesn't create anything (like views or smth)-- -- so feel free to use it in your clo原创 2021-07-08 19:42:25 · 206 阅读 · 0 评论 -
涉及表空间的pg_basebackup物理备份
文章目录操作步骤实际操作过程操作步骤创建目录mkdir -p /postgresql/test01创建表空间psql -c "create tablespace tblspace_test01 location '/postgresql/test01';"在新建的表空间中新建表psql -c "create table test(id int) tablespace tblspace_test01";查看表空间psql -c "\db+"pg_basebacku原创 2021-07-03 19:12:01 · 249 阅读 · 0 评论 -
调整 PG 配置参数, 设置为保留一周的日志
调整 PG 配置参数, 设置为保留一周的日志,方法: 修改log_filename参数值 log_filename = 'postgresql-%u.log' 效果如下:%u表示星期几(取值1-7) postgresql-1.log postgresql-2.log postgresql-3.log postgresql-4.log postgresql-5.log postgresql-6.log postgresql-7.log ...原创 2021-05-18 19:10:38 · 1507 阅读 · 0 评论 -
PG在函数中捕获异常
实例CREATE or replace FUNCTION func_test() RETURNS int AS $$declare x int=0; y int=0; text_var1 varchar; text_var2 varchar; text_var3 varchar;BEGIN x := x + 1; y := x / 0;EXCEPTION when others then GET STACKED DIAGNOSTICS text_var1 = 结原创 2021-05-11 18:43:37 · 1074 阅读 · 0 评论 -
PG 只导出指定函数
PG 中只导出指定函数方法出表结构取函数名获取指定函数的实现去除注释出表结构/home/postgres/pgsql/bin/pg_dump -Upostgres test -Fc -v -s -f test.dmp 取函数名/home/postgres/pgsql/bin/pg_restore -l test.dmp | grep FUNCTION > funcion_list获取指定函数的实现/home/postgres/pgsql/bin/pg_restore -L ./f原创 2021-05-10 19:22:29 · 903 阅读 · 0 评论 -
PG配置调优工具 pgtune
下载git clone https://github.com/gregs1104/pgtune使用pgtune -i $PGDATA/postgresql.conf -o $PGDATA/postgresql.conf.pgtune在线工具https://pgtune.leopard.in.ua/#/我长得像这样ps: 终于又支持图片粘贴了,不然我又得吐槽你了...原创 2021-04-24 23:05:01 · 1231 阅读 · 1 评论 -
PG控制执行计划之pg_hint_plan
下载https://hub.fastgit.org/ossc-db/pg_hint_plan/releases安装tar zxvf pg_hint_plan-REL12_1_3_7.tar.gzcd pg_hint_plan-REL12_1_3_7export PATH=/home/postgres/pgsql/bin:$PATHmakemake install 安装过程如下:[root@node_205 pg_hint_plan-REL12_1_3_7]# export PATH=/原创 2021-04-24 22:48:18 · 510 阅读 · 0 评论