postgresql
开源数据库
hello_alldatabase
这个作者很懒,什么都没留下…
展开
-
oracle,postgresql实现行转列显示
项目背景今天开发人员要生成业务报表,应有的数据格式如下测试数据希望等到如下结果生成结果说明:总合格率这一列不用考虑实现,使用oracle花了两个多小时才实现。大家需要花多少时间呢,对postgresql感兴趣的朋友,可从花时间试试?...原创 2020-12-03 21:57:44 · 209 阅读 · 0 评论 -
postgresql安装system_stats插件
system_stats功能用途system_stats插件有一些功能函数组成,可以用于监控系统的cpu、磁盘、IO、内存、网络、进程、操作系统信息。system_stats下载地址https://github.com/EnterpriseDB/system_stats/releases/tag/v1.0system_stats安装[postgres@lineqi ~]$ cat .bash_profile# .bash_profile# Get the aliases and functi原创 2020-11-24 23:27:55 · 437 阅读 · 0 评论 -
postgresql autovacuum作用与原理
什么是autovacuumautoautovacuum的作用autovacuum触发条件lineqi=# select name,setting from pg_settings where name like 'autovacuum%'; name | setting-------------------------------------+------------ autovacuum原创 2020-11-05 12:01:58 · 6365 阅读 · 0 评论 -
日志文件分析工具pgbadger安装篇
系统环境centos7.4+pg11.6下载地址https://github.com/darold/pgbadger/releases安装[root@lineqi opt]# tar -xvf v11.3.tar.gz[root@lineqi pgbadger-11.3]# pwd/opt/pgbadger-11.3[root@lineqi pgbadger-11.3]# perl Makefile.PLChecking if your kit is complete…Looks goo原创 2020-08-16 22:20:47 · 535 阅读 · 0 评论 -
postgresql 一主一备,2-3TB的数据量,如何制定备份策略?
背景今天网友在pg交流群里有这样一个需求,需要对pg的一主一备数据库进行备份,如何制定备份策略?所以就有了今天这篇文章系统环境postgresql 一主一备,采用流复制,总共数据3TB左右备份要求1、对主库影响减少到最小2、大表误删除处,能及时恢复备份方案方案一:通过pgbackuprest,pg_rman对备库进行备份优点:支持增量备份缺点:备库时间与恢复时间都比较长方案二:增加一备,对其中一个备库进行实时同步,对另一备库进行延迟同步。延迟时间:大表删除后,什么时间操作人发现误原创 2020-08-03 23:19:21 · 478 阅读 · 2 评论 -
substr函数在oracle、mysql、postgresql数据库中使用区别
项目背景去O路上,遇到的函数使用问题substr使用区别oracle substrselect substr(‘aaaa’,0,4)mysql substrselect substr(‘aaaa’,0,4)请问在两个数据库中,上述两个函数的执行结果是一样的吗?总结1、oracle中substr函数的语法兼容性更好2、mysql中substr函数截取是从1开始的...原创 2020-07-07 22:42:40 · 1418 阅读 · 2 评论 -
初识pgloader
pgloader是什么pgloader将各种来源的数据加载到PostgreSQL中。它可以即时转换读取的数据,并在加载之前和之后提交原始SQL。它使用COPY PostgreSQL协议将数据流式传输到服务器,并通过填充一对reject.dat和 reject.log文件来管理错误。pgloader功能原理pgloader具有两种操作模式:从文件加载数据,迁移数据库。在这两种情况下,pgloader都使用PostgreSQL COPY协议,该协议实现了流传输,以非常有效的方式发送数据。pgloader原创 2020-06-16 23:26:22 · 608 阅读 · 0 评论 -
初识postgrest
postgrest是什么PostgREST 是一个独立的 Web 服务器,为 PostgreSQL 数据库生成 RESTful API。 它提供基于底层数据库结构定制的 API。postgrest安装下载地址:https://github.com/PostgREST/postgrest/releases/download/v7.0.1/postgrest-v7.0.1-linux-x64-static.tar.xzpostgrest安装特别简单,这里以centos7.4为例[root@lineq原创 2020-06-14 18:37:10 · 531 阅读 · 0 评论 -
数据库备份方案
1.引言1.1.备份的意义单独说备份有没有意义,意义在哪里,作为dba的你是不是有时觉得这还是需要说吗,肯定是有意义的,那意义在哪里呢?一时之间又回答不上来,我们在描述一件事情的时候,是有相应的业务场景的,如果说数据库因一些意外情况(如误删除)发生,导致数据不能正常使用,这时没有备份,怎么办呢?这就是备份的意义所在。1.2.备份的目的备份的目的是为了防止当意外情况发生时,可以使用备份数据去做还原操作。那么是不是所有的意外情况发生后,都能通过备份数据去还原,这就与采用什么样的数据库备份方式有关系了。原创 2020-06-13 23:11:46 · 2071 阅读 · 0 评论 -
postgresql处理索引块损坏的思路与方法
场景:客户反应有时查询业务表报读取数据块错误“ERROR: could not read block xxx in file”第一时间想到查询数据库的日志后台日志能看到报错文件的filenode且发现是在取读取具体的数据块报错,当然还有相应的SQL语句,这里列报错文件ERROR: could not read block 27417 in file “base/13642/32145.2”上面的信息还不能确认是表块损坏还是索引块损坏根据filenode查看报错对象的名称select * fr原创 2020-05-31 16:09:54 · 1896 阅读 · 0 评论 -
postgresql用事件触发器来提示命令的执行信息
create or replace function fun_event_trigger()returns event_triggerasdeclareveventtuplerecord;beginraiseinfo′eventtriggerfunctioncalld′;forveventtupleinselect∗frompgeventtriggerddlcommands()loopraiseinfo′tag[endloop;end declare v_event_tuple record; b原创 2020-05-30 19:21:37 · 488 阅读 · 0 评论 -
postgresql lsn与wal file的对应关系
系统环境:PostgreSQL 11.6查看当前的LSN和wal 名称postgres=# select pg_current_wal_lsn(),pg_walfile_name(pg_current_wal_lsn());pg_current_wal_lsn | pg_walfile_name--------------------±-------------------------4/D20001B0 | 0000000100000004000000D2对应关系L原创 2020-05-30 18:24:30 · 803 阅读 · 0 评论 -
如何快速获取多列表中的大部分字段
场景:项目上经常需要查询一个表中的大部分列,如何快速生成相应的SQL语句呢?测试环境:mysql5.7.29pg11.6oracle11.2.0.4功能验证:mysql5.7.29查询业务表中除’ID’,‘title’以外所有的列SELECT CONCAT(’ select ‘,GROUP_CONCAT(COLUMN_NAME),’ from ‘, TABLE_NAME,’ ;’) FROM information_schema.COLUMNS WHERE table_name = ‘se原创 2020-05-24 13:32:47 · 343 阅读 · 0 评论 -
oracle、postgresql、mysql相关的merge操作实现
项目背景:现在项目上所有数据库较多,最近研发需要对postgresql,mysql数据库进行类似oracle merge操作的运算,这里对oracle,mysql,postgresql merge 操作的用法进行测试。oracle mergemerge into的形式:MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and […]…)WHEN MATCHED THEN[UPDAT原创 2020-05-12 12:35:01 · 522 阅读 · 0 评论 -
创建一个多列大表的几种方式
背景:测试时,经常需要创建一些多列大表和加载大量数据,之前也临时写过很多脚本,但往往要马上用时,又一时半会儿写不出来(心里知道,但动手就是不行了),这里专门记录一下。系统环境mysql5.7.29oracle11.2.0.4postgresql11.2创建多列大表的几种方式1、通过shell脚本生成建表语句及数据2、通过存储过程生成建表语句及数据生成多列建表语句第一种方式,通过shell脚本生成建表语句#!/bin/bashv_num=1echo"droptableifexistsa原创 2020-05-10 22:15:32 · 690 阅读 · 0 评论 -
基于postgresql ctid实现数据的差异同步
项目背景:最近在做异构数据同步方面(非实时)的工作,对于没有自增字段(自增ID或时间字段)的业务表,做差异同步是一件非常麻烦的事情,主要体现在记录的更新与删除上ctid在pg中的作用ctid是用来指向自身或新元组的元组标识符,怎么理解呢?下面能过几个实验来测试一下satdb=# create table test_ctid(id int,name varchar(100));satdb=# insert into test_ctid values(1,‘a’),(1,‘a’);satdb=# i原创 2020-05-10 09:59:15 · 476 阅读 · 0 评论 -
oracle、mysql、postgresql获取表与索引信息
数据库版本oracle 11.2.0.4postgresql11.6mysql5.7.29获取表名、表备注、表大小oracleselect b.table_name,a.comments,b.BLOCKS from user_tab_comments a,user_tables bwhere a.table_name=b.table_namemysqlpostgresql根据表...原创 2020-03-16 21:47:10 · 216 阅读 · 1 评论 -
pg、mysql、oracle同一列是否能创建两个索引
背景:今天晚上完全带偏了,本意是想研究一些mysql方式数据的几种方式,测试时总会点小问题,一再被打断。数据库版本:pg11.6、mysql5.7.29、oracle11.2.0.4测试内容同一列是否支持创建两个不同步索引测试语句:create table tt(id int primary key,val int ,desci varchar(100));create index...原创 2020-03-02 23:39:38 · 736 阅读 · 0 评论 -
pg、mysql、oracle子查询兼容性对比
背景:今天在查看mysql数据库一条语句的执行计划时,提示子查询需要加别名,于是对pg、oracle都做了一个测试,对比一下三种数据库的区别。数据库版本:pg11.6、mysql5.7.29、oracle11.2.0.4测试内容select * from (子查询) 写方问题测试表:create table tt(id int ,name varchar(100))场景一selec...原创 2020-03-02 23:05:37 · 739 阅读 · 0 评论 -
pgbackrest配置监控、冗余策略
接着上一篇pg恢复文档:https://blog.csdn.net/weixin_41561946/article/details/104439619八、 pgbackRest配置监控[root@cddb-node0 example]# pwd/opt/pgbackrest-release-2.23/doc/example[root@cddb-node0 example]# lspgsq...原创 2020-02-23 13:39:21 · 487 阅读 · 0 评论 -
postgresql11.2修改分区表中复合索引字段长度遇到的BUG
业务场景:对于range分区表,在父表中创建复合主键,修改复合主键中的非分区键字段时,会导致查询该表失败。如果想删除该表,在进行重建该表时,会导致数据库异常关闭,无法正常启动。(一)操作系统[root@xxx ~]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 7.4 (Maipo说明:操作系统系统为中标麒麟...原创 2020-02-22 11:09:03 · 795 阅读 · 0 评论 -
PostgreSQL备份恢复之pgbackRest恢复
接着上一篇pg备份文档:https://blog.csdn.net/weixin_41561946/article/details/104183555六、 pgbackRest恢复1. 查看现有备份[cddb@cddb-node1 ~]$ pgbackrest infostanza: demostatus: okcipher: aes-256-cbcdb (current)wal ...原创 2020-02-22 10:29:02 · 1146 阅读 · 0 评论 -
PostgreSQL备份恢复之pgbackRest备份
dd原创 2020-02-22 10:05:49 · 1393 阅读 · 0 评论 -
centos7.4配置pgbackrest
1.配置集群Stanza/etc/pgbackrest/pgbackrest.conf[demo]pg1-path=/cddb5.0/data2/[global]repo1-path=/var/lib/pgbackrestrepo1-retention-full=2说明:/cddb5.0/data2/为postgresql的数据目录2.创建资料库mkdir -p /var/lib...原创 2020-02-05 15:57:45 · 411 阅读 · 0 评论 -
centos7.4安装pgbackrest备份软件
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入pgback...原创 2020-02-05 15:38:31 · 925 阅读 · 0 评论