这是杂货铺的第463篇文章 曾经测试过Oracle 11g下count(*)、count(1)、count(主键列)和count(包含空值的列)这几种操作,究竟有何区别,结论如下, 11g下,通过实验结论...前几天,碰巧看见PostgreSQL中文社区发的一篇文章,关于在PG中count(1)和count(*)的效率问题,从结论看,和Oracle很像,但是他是从开源code,探究的整个过程,能够更准确地了解背后的原理...源码解读 查看count函数定义 test=# select proname, pronargs, prosrc from pg_proc where proname='count...可见,Oracle和PG对于一些操作,其实存在相同之处的,谈不上谁借鉴,可能更多地还是针对场景,为了满足业务以及性能方面的需求,提供的合理逻辑。...其实我想说的是,无论是从10046,还是从PG的源码,我们应该看得深入一些,从原理设计层面,站在架构师、开发人员的视角,了解这个功能,设计的初衷,这才有助于我们借鉴好的设计,学以致用,丰富我们的经验,实现自我提高
简介 PG中的file_fdw、postgres_fdw和dblink github:https://github.com/laurenz/oracle_fdw 基于FDW(Foreign Data...Wrappers)插件可以如本地表一般在PG里访问其他异构数据库的表,下面再次记录并分享下oracle_fdw的配置使用过程,其他fdw如tds_fdw(访问sqlserver),mysql_fdw(访问...Oracle_fdw是PG的一个外部数据接口,可以使PostgreSQL轻松跨库操作Oracle。...Oracle_fdw的作用有以下两点: PG可以跨库增删改查Oracle中的表,可以查询Oracle的视图,可以使PG中的表和Oracle中表/视图作Join查询,类似dblink的功能。...安装 oracle_fdw 的编译依赖系统中需要有pg_config和Oracle客户端的环境。
本篇主要分析PG的统计信息。 ORACLE统计信息迁移到PG(不接触用户数据),应用场景比较特殊,不再赘述。...mapping values(9, 24, NULL, 'hhh'); insert into mapping values(0, 19, NULL, 'zzz'); -- 便于直观看到统计信息,先查一下pg_stats...这个视图 postgres=# select * from pg_stats where tablename='mapping'; -[ RECORD 1 ]----------+----------
简介 在PG中访问PG可以通过dblink,在PG中访问Oracle可以通过oracle_fdw,访问MySQL可以通过mysql_fdw,具体过程可以参考:https://www.xmmup.com/...那么,在Oracle中访问PG该如何配置呢?...环境准备 Oracle 11.2.0.4 CentOS 6.6 PG 13.8 ,Debian GNU/Linux 11 -- 创建Oracle主机,11.2.0.4环境 docker run -...EOF 后续通过dblink连接PG的时候连接日志文件路径:$ORACLE_HOME/hs/log/,可以进行排错。...3、通过dblink连接PG的时候连接日志文件路径:$ORACLE_HOME/hs/log/,可以进行排错。
8、充分支持Oracle BLOB对象作为PG的BYTEA。 9、导出Oracle视图作为PG表。 10、导出定义的Oracle用户格式。...13、Ora2Pg尽力将Oracle数据库转换到PostgreSQL中,但是仍需一部分的手动工作。...--no_header : 在导出文件中不添加 Ora2Pg 头部信息。 --oracle_speed : 用于测试 Oracle 发送数据的速度。不会真的处理或者写入数据。...5 Ora2pg 使用案例 5.1 ora2pg 数据导入到pg案例 5.1.1 编写配置案例 # vim ora2pg.conf # oracle client 安装地址 ORACLE_HOME...: 链接oracle的用户名 password : 链接oracle的密码 schemaname : 链接oracle的schema信息 5.1.2 使用ora2pg 把数据下载到本地 # time
8、充分支持Oracle BLOB对象作为PG的BYTEA。 9、导出Oracle视图作为PG表。 10、导出定义的Oracle用户格式。...13、Ora2Pg尽力将Oracle数据库转换到PostgreSQL中,但是仍需一部分的手动工作。...--no_header : 在导出文件中不添加 Ora2Pg 头部信息。 --oracle_speed : 用于测试 Oracle 发送数据的速度。不会真的处理或者写入数据。...5 Ora2pg 使用案例 5.1 ora2pg 数据导入到pg案例 5.1.1 编写配置案例 # vim ora2pg.conf # oracle client 安装地址 ORACLE_HOME /...: 链接oracle的用户名 password : 链接oracle的密码 schemaname : 链接oracle的schema信息 5.1.2 使用ora2pg 把数据下载到本地 # time
又例如Oracle中的float对应TDSQL PG版中的double precision,Oracle中的binary_float对应TDSQL-PG中的real,Oracle中的binary_double...(Oracle兼容开关打开就是Oracle模式,不打开就是PG模式)。 2.2 存储过程语法差异 Oracle创建存储过程的语法与PostgreSQL有很大差异。...2.3 其他兼容性介绍 其他兼容方面,TDSQL PG版支持Oracle特有的package及200多个Oracle常用的系统函数。...4.6 双轨运行方案 下图是我们的双轨运行方案,图中有两个架构,分别是Oracle To TDSQL PG版和TDSQL PG To Oracle。...业务上线前期,我们采用双轨运行,支持从Oracle到TDSQL PG版以及从TDSQL PG版到Oracle的数据同步。
为了解决这些问题,ceph引入了归置组的概念,即PG。 # PG概念 PG是一个逻辑概念,linux系统中可以直接看到对象,但是无法直接看到PG。...它在数据寻址时类似于数据库的索引:每个对象都会固定映射进一个PG中,所以当我们要寻找一个对象时,只需要先找到对象所属的PG,然后遍历这个PG就可以了,无需遍历所有对象。...PG是一种间址,PG的数量有限,记录PG跟OSD间的映射关系可行,而记录object到OSD之间的映射因为数量巨大而实际不可行或效率太低。...因为对象数无法事先知道,但是有了pg,先把对象映射到pg,然后只需计算pg到osd的映射就可以了,pg数是一定的,这样算法设计可能会简单一点。 # 原理 对象时如何映射进PG的?...Backfilling 当一个新的OSD加入到集群后,CRUSH会重新规划PG将其他OSD上的部分PG迁移到这个新增的PG上。
coroot-pg-agent 和 postgres_exporter 的不同之处在于, coroot-pg-agent 主要是根据 pg_stat_statements 这个extension来采集sql...coroot-pg-agent 的部署也很简单,参考官方github即可。...说明: 我这里演示的pg14,运行在1921端口上 create role coroot_pg_agent with login password '123456'; grant pg_monitor...to coroot_pg_agent; 编辑pg配置文件,添加如下 shared_preload_libraries = 'pg_stat_statements' 然后重启生效 登录pg,任一个...docker run -d --name coroot-pg-agent -p 9096:80 --env DSN="postgresql://coroot_pg_agent:123456@192.168.31.181
postgresql weekly推荐了几款备份恢复工具,其中一个是pg_dumpbinary。 pg_dumpbinary 是一个用于转储PG数据库的工具,其中数据以二进制格式转储。...这种场景下,pg_dump会以输出格式导出数据,造成数据丢失。 3)任何其他使用二进制的场景会很有用。 如何您在这种情况下,pg_dumpbinary将通过二进制格式转储PG数据库来帮助您。...在其他所有情况下,必须使用PG分发的pg_dump/pg_restore工具。...安装 pg_dumpbinary和pg_restorebinary都是perl程序,除了perl本身、perl模块DBD::pg和DateTime外不需要任何其他东西。...PG命令pg_dump、pg_restore和psql必须通过PATH环境变量设置才可用。数据通过gzip压缩。
/var/lib/pgsql/14/data/postgresql.conf //允许远程图片[root@liangcb ~]# vim /var/lib/pgsql/14/data/pg_hba.conf
简介 https://github.com/jobinau/pg_gather This is a single SQL-only script for gathering performance and...安装 wget https://codeload.github.com/jobinau/pg_gather/tar.gz/refs/tags/v16 -O pg_gather-16.tar.gz tar...-zxvf pg_gather-16.tar.gz cd pg_gather-16 报告生成 -- 采集数据 psql -U postgres -h 172.17.0.2 -X -f gather.sql...> out.txt -- 导入数据 sed -e '/^Pager/d; /^Tuples/d; /^Output/d; /^SELECT pg_sleep/d; /^PREPARE/d; /^\s...结果 小麦苗PG巡检脚本 请参考:https://www.xmmup.com/pgshujukuxunjianjiaoben.html
PG备份恢复工具pg_probackup pg_probackup是管理PG数据库集群备份和恢复的工具。用于执行周期性备份PG实例。兼容PG9.5,,96,10,11,12,13。...备份位于远程系统上的PG实例或远程恢复备份 11、从备机上进行备份。通过从备机上进行备份来避免主机上的额外负载。 12、外部目录。...仅还原制定的数据库或从转储中排出指定数据库 未管理备份数据,pg_probackup创建一个备份目录。这个目录存储所有备份文件包括额外的元信息,以及WAL归档。...限制:备份和转储的PG必须block_size和wal_block_size兼容且有相同主版本号;Windows下不支持ssh远程备份;ssh远程备份时,pg_probackup的版本必须相同。...原文 https://github.com/postgrespro/pg_probackup
PG使用SQL查询管理用户账户,包括密码。如果启用log_statement,log_min_error_statement为log,那么用户密码就有可能出现在server log中。
PG架构概览
开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis ,Oracle ,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖...PostgreSQL 在PG15 版本之前如果想了解wal 日志中的信息,只能使用上期提到的工具去查看,但从PG15这个版本,查看 wal 日志的内容的方式变化了可以在数据库内部进行查看。...CREATE EXTENSION pg_walinspect; 这里pg_walinspect函数在PG16 有增强,添加了如下的函数 function pg_get_wal_block_info()...) functions pg_get_wal_records_info(), pg_get_wal_stats() and pg_get_wal_block_info() accept an LSN value...=# select now(),pg_current_wal_lsn(); elect now(),pg_current_wal_lsn(); now
一、背景 查看现有Postgre数据库的版本号 二、方式 1.SQL --两种都可 select version() ; show server_version; 2.pg_config pg_config...|grep VERSION 3.pg_controldata pg_controldata --version 4.postgres postgres --version 5.查看告警日志 more postgresql-Mon.log
再看看oracle,oracle对于断页比较“看得开”,他不会从数据库层面去避免发生断页问题,数据库内部没有机制保证断页的处理,它通过其他方面比如rman恢复、adg等方式保证出了问题进行恢复。...最后看看pg的处理,pg通过开启full_page_writes参数(默认开启)来避免断页问题。...这种方式对性能也有一定影响,但是相比mysql的方式我觉得要好一些,mysql相当于任何一个脏页刷盘前都需要写两份,pg只是在数据块第一次发生变更的时候写入xlog中。
对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_v7.0.0_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v7.0.0_11g.sql适用于...脚本DB_PG_HC_lhr_v7.0.0.sql是PG数据库脚本,执行后会产生PostgreSQL数据库的健康检查html报告。...)、mysql(MySQL、TiDB、OceanBase)、MSSQL客户端(SSMS、Navicat皆可)、psql(PG、Greenplum、openGauss)、gisql(国产达梦)、gsql(...4、PG数据库 其它不再列举。 5、达梦数据库 其它不再列举。 6、TiDB数据库 其它不再列举。 7、openGauss数据库 其它不再列举。...4、PG数据库 需要有psql客户端,运行方式如下: psql -U postgres -h 192.168.66.35 -p 54324 -d postgres -W -H -f D:\DB_PG_HC_lhr_v7.0.0
对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_v7.0.0_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v7.0.0_11g.sql适用于...Oracle 11g的数据库,脚本DB_Oracle_HC_lhr_v7.0.0_12c.sql适用于Oracle 12c及其以上版本,这3个脚本都是只读版本,这3个脚本只会对数据库做查询操作,不会做DML...脚本DB_PG_HC_lhr_v7.0.0.sql是PG数据库脚本,执行后会产生PostgreSQL数据库的健康检查html报告。...脚本DB_PolarDB_for_PG_HC_lhr_v7.0.0.sql是PolarDB_for_PG数据库脚本,执行后会产生PolarDB_for_PG数据库的健康检查html报告。...17、PolarDB_for_PG数据库 其它不再列举。 18、神通数据库 其它不再列举。 四、脚本运行方式 1、Oracle数据库 只要有sqlplus的客户端即可。
领取专属 10元无门槛券
手把手带您无忧上云