背景 最近在负责公司数据Oracle转PG;老平台数据库:Oracle11g;新平台数据库:PostgreSQL12。由于平台统计规则有变动;所以正在推广的游戏数据无法全部迁移过来;只能在老平台上运行。而支付数据接口升级;统一进入新平台数据PG。需要将部分支付数据由PostgreSQL同步到Oracle。 简而言之:PostgreSQL增量同步表到Oracle。首先声明我不是反“去IOE”潮流。我想到两种方案采用OGG 可以参考 OGG For Or...
/
778 次浏览/
DBA运维
来源:http://www.postgres.cn/docs/11/
5.1. 表基础
SQL并不保证表中行的顺序。当一个表被读取时,表中的行将以非特定顺序出现,除非明确地指定需要排序。
尝试移除一个不存在的表会引起错误。然而,在SQL脚本中在创建每个表之前无条件地尝试移除它的做法是很常见的,即使发生错误也会忽略之,因此这样的脚本可以在表存在和不存在时都工作得很好(如果你喜欢,可以使用DROP TABLE IF EX...
/
729 次浏览/
DBA运维
来源:http://www.postgres.cn/docs/11/
6.4. 从修改的行中返回数据
有时在修改行的操作过程中获取数据很有用。INSERT、 UPDATE和DELETE命令都有一个支持这个的可选的 RETURNING子句。使用RETURNING 可以避免执行额外的数据库查询来收集数据,并且在否则难以可靠地识别修改的行时尤其有用。
如果目标表上有触发器(第 39 章),可用于RETURNING...
/
688 次浏览/
DBA运维
今天在听陈华军老师的课时;感触颇多。其中讲到“不同执行计划的选择(子查询)”这一栏。我们在平时工作也经常要用到子查询。有哪些思路来优化这种子查询呢?
例如我们今天实验的表结构
表T1 有10000条记录;并在id字段创建btree索引
表T2 有1000条记录
postgres=# create table t1(id int primary key, info text, reg_time timestamp);
CREATE TABLE
postgr...
/
684 次浏览/
DBA运维
问题 经常在PG群里看到有人在问“为什么我对表赋予了权限;但是还是不能访问表”解析 若你看懂德哥这篇文章PostgreSQL逻辑结构和权限体系介绍;上面对你就不是困扰你的问题 解决这个问题很简单;在解决之前;我们要先了解PostgreSQL的逻辑结构、以及与用户之间的关系。盗用德哥的图;来诠释下逻辑结构;PostgreSQL逻辑结构有4层:实例->数据库->schema->数据库对象 可以看出用户不在PostgreSQL里面;是独立之外的...
/
805 次浏览/
DBA运维
SELECT pg_terminate_backend(pg_stat_activity.pid) FROM pg_stat_activity WHERE datname='db_name' AND pid<>pg_backend_pid();
drop database db_name;
...
/
792 次浏览/
DBA运维
2020-06-09 19:31:01
一、疑问
前段时间;QQ群里有人对“这个表(0,4)这行数据我做了update操作,查看索引的page数据,看到索引一直指向(0,4),用ctid='(0,4)'查询业务表是查不到数据的;然后我做了表的vacuum,reindex甚至drop/create index,还是这样的”感到疑惑。
在PostgreSQL8.3实现了(heap only tuple)HOT特性。它存在的目的就是消除表非索引列更新对索引影...
/
648 次浏览/
DBA运维
拉取postgresql镜像:docker pull postgres运行postgresql:docker run -d -p 5432:5432 --name postgresql -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=pg123456 postgres拉取postgresql可视化工具pgadmin4:docker pull dpage/pgadmin4运行pgadmin4:docker run...
/
829 次浏览/
DBA运维
注意:PostgreSQL 12对主从复制实现和配置做了重大改进,如废弃了recovery.conf,并将参数转换为普通的PostgreSQL配置参数,使得配置群集和复制更加简单。PostgreSQL数据库支持多种复制解决方案,以构建高可用性,可伸缩,容错的应用程序,其中之一是预写日志(WAL)传送。该解决方案允许使用基于文件的日志传送或流复制,或者在可能的情况下,将两种方法结合使用来实现备用服务器。使用流复制时,备用(复制从属)数据库服务器被配置为连接到主服务器/主服务器,...
/
825 次浏览/
DBA运维
如何监控PostgreSQL存储过程/函数代码运行?本文介绍用python+微信/邮件的方式进行报警、监控。
首先要有一张表、用于存放PostgreSQL存储过程/函数代码运行异常的信息。
处理原则:若出现异常;把“发生时间+所在的程序+原因”通过微信/邮件发给对应人员。当然发送一次即可;起到通知的效果。
一、媒介
通过什么方式进行发送内容;下面介绍微信/邮件两种方式
1、python发送微信
py_wechar.py的内容
企业微信号;大家可以到企业微信上...
/
691 次浏览/
DBA运维