![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
postgres
文章平均质量分 68
lusklusklusk
Oracle OCM,Mysql OCP,10多年DBA经验,博客内容不代表完全准确,只是记录自己一个的成长过程。更多博客参见个人ITPUB链接http://blog.itpub.net/30126024/
展开
-
Docker环境安装Postgresql数据库Posrgresql 15.6
Docker环境安装Postgresql数据库Posrgresql 15.6原创 2024-04-01 19:39:51 · 2207 阅读 · 0 评论 -
Postgresql在ubuntu 22.04上遭遇OOM的处理方法
分析:物理32GB的情况下,OOM时捕获的postgresql最大所需内存居然达total-vm:37766764kB,检查发现postgresql数据库级别的内存参数设置都是合理的,并且postgresql的被OOM级别很低值为-900(-1000的话就不会被内核OOM)。SHR:SHR是share(共享)的缩写,表示进程占用的共享内存大小,共享内存就是被多个进程所共享的内存,比如动态库libc.so占用的内存就是共享内存,因为这个共享内存可能被很多不同会话使用,但是这些会话都会去调用libc.so。原创 2023-11-23 15:21:14 · 1757 阅读 · 0 评论 -
Postgresql的ddl在事务中可以回滚,truncate时relfilenode在当前会话会改变
Postgresql的事务里面ddl可以回滚,这点和oracle不太一样。其中postgresql alter table事务操作中,包括回滚的整个过程中表对象的relfilenode不变,但是postgresql truncate事务操作中,一旦执行truncate操作表对象的relfilenode在当前会话就变了,其他会话查询表对象的relfilenode没有变化,truncate事务操作回滚后表对象的relfilenode在当前会话中也回滚了原创 2023-10-29 22:50:39 · 943 阅读 · 1 评论 -
Postgresql的一个bug_涉及归档和pg_wal
Postgresql的一个bug_涉及归档和pg_wal原创 2023-08-28 19:04:05 · 399 阅读 · 0 评论 -
Postgresql_运行日志包含Error log、Alert log、Slow sql等,运行日志文件过大引发磁盘爆满一般是log_statemen和log_statement_stats这类参数
等语句,查看运行日志相关的参数,发现参数对应值如下,才发现是参数log_statement=all、log_statement_stats=on导致的运行日志巨大。#log_statement_stats=on和log_min_duration_statement=10s的区别,就算设置超过10秒的语句(log_min_duration_statement=10s)才会被记录,只要开启了log_statement_stats=on,如下只有0.2秒不到10秒的sql语句也会被记录到运行日志,如下示例。原创 2023-07-18 18:33:53 · 1157 阅读 · 0 评论 -
Postgresql表空间详解
Postgresql表空间详解原创 2023-03-27 22:14:13 · 5309 阅读 · 0 评论 -
SSRS页面配置Postgresql data source的方法
SSRS页面配置Postgresql data source的方法原创 2022-06-22 18:58:33 · 454 阅读 · 0 评论 -
PG监控或判断逻辑备份是否正常的方法在pg_dump和pg_dumpall没有参数记录日志信息的情况下
oracle逻辑备份expdp,参数dumpfile是数据库数据存放的文件名称,参数logfile是日志存放的文件名称sqlserver逻辑备份bcp out,参数-o是数据库数据存放的文件名称,参数-e是日志存放的文件名称mysql逻辑备份mysqldump,参数–log-error是错误日志存放的文件名称,>是数据库数据存放的文件名称而pg的逻辑备份工具pg_dump和pg_dumpall则没有任何参数来记录备份期间生成的日志或错误日志我们可以使用下面两种方法来判断pg逻辑备份是否正常方原创 2022-05-12 12:26:36 · 462 阅读 · 0 评论 -
Postgres使用pg_resetwal命令修改wal日志文件大小的方法
pg_wal日志文件默认大小是16MB,参见参数wal_segment_sizePostgreSQL 11 版本的一个重要调整是支持 initdb 和 pg_resetwal 修改 WAL 文件大小,而 11 版本之前只能在编译安装 PostgreSQL 时设置 WAL 文件大小。参见官方文档https://www.postgresql.org/docs/11/release-11.htmlhttps://www.postgresql.org/docs/11/app-pgresetwal.html注意原创 2022-03-21 00:02:26 · 2612 阅读 · 0 评论 -
Postgresql关于wal日志总结,一文搞清楚它的所有概念和相关操作
官方文档https://www.postgresql.org/docs/11/wal-intro.htmlhttps://www.postgresql.org/docs/11/wal-configuration.htmlhttps://www.postgresql.org/docs/11/runtime-config-wal.htmlhttps://www.postgresql.org/docs/11/runtime-config-preset.htmlhttps://www.postgresql原创 2022-03-19 21:57:31 · 12735 阅读 · 0 评论 -
如何使用Redshift客户端工具SQL Workbench来连接Redshift
官方文档https://docs.aws.amazon.com/redshift/latest/mgmt/connecting-using-workbench.htmlhttps://docs.amazonaws.cn/redshift/latest/mgmt/connecting-using-workbench.html客户端工具的使用1、在https://www.sql-workbench.eu/downloads.html页面下载适用于您操作系统的程序包,该程序包下载后不需要安装,直接解压就能原创 2021-12-24 13:20:24 · 1033 阅读 · 0 评论 -
Redshift关于列的压缩格式
官方文档https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.htmlhttps://docs.aws.amazon.com/zh_cn/redshift/latest/dg/c_Compression_encodings.htmlENCODE AUTO 是表的默认设置。Amazon Redshift 会自动管理表中所有列的压缩编码。如果为表中的任何列指定压缩编码,则表不再设置为 ENCODE AUTO。Amazo原创 2021-12-24 13:00:11 · 337 阅读 · 0 评论 -
Redshift创建外部架构external schema和外部表external table
https://docs.aws.amazon.com/zh_cn/zh_cn/redshift/latest/dg/c-using-spectrum.htmlhttps://docs.aws.amazon.com/zh_cn/zh_cn/athena/latest/ug/what-is.htmlhttps://docs.aws.amazon.com/zh_cn/zh_cn/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.htmlhttps://docs.aws原创 2021-12-09 18:06:06 · 1981 阅读 · 0 评论 -
Redshift关于SORTKEY排序键、DISTKEY分配键的总结
官方文档https://docs.aws.amazon.com/zh_cn/redshift/latest/dg/t_Sorting_data.htmlhttps://docs.aws.amazon.com/zh_cn/redshift/latest/dg/t_Distributing_data.html个人理解:所谓排序键,就是类似传统关系型数据库的索引,而复合排序键就对应传统关系型数据库的复合索引,用复合索引时要按前导列的规则使用SORTKEY排序键 and DISTKEY分配键创建表时,您也原创 2021-11-18 15:11:09 · 2575 阅读 · 0 评论 -
Postgresql关于Vacuum的作用和操作方法,Vacuum full类似alter table会锁表并生成新的relfilenode
官方文档http://postgres.cn/docs/11/sql-vacuum.htmlhttp://postgres.cn/docs/11/progress-reporting.htmlhttp://postgres.cn/docs/11/routine-vacuuming.html个人实验得出的一些总结1、官方文档说vacuum full会释放磁盘空间,标准VACUUM(即不带FULL)不会,标准VACUUM也能把该表文件空间交还给操作系统的情况:表尾部有空页就能释放这个空页的空间,页包含原创 2021-09-23 15:28:20 · 1460 阅读 · 0 评论 -
Postgresql实验验证__update、delete产生死亡元组及标准vacuum也会释放表文件磁盘空间的场景
已经验证1、一张表t1,插入20万行,表文件58425总计大概1GB,再delete这20万行,死亡记录20万行,表文件58425总计大概1GB,再插入20万行,表文件58425总计大概2GB,死亡记录还是20万行,再删除这这20万行,表文件58425总计大概2GB,死亡记录40万行2、一张表t2,插入20万行,表文件58431总计大概1GB,再update这20万行,死亡记录20万行,表文件58431总计大概2GB3、一张表t3,插入20万行,表文件58434总计大概1GB,再truncate这表,原创 2021-09-23 15:24:37 · 772 阅读 · 0 评论 -
Postgresql Linked server远程服务器取数据的执行计划原理
本文来自postgresql官方文档https://www.postgresql.org/docs/11/postgres-fdw.htmlhttp://postgres.cn/docs/11/postgres-fdw.html代价估计选项postgres_fdw通过在远程服务器上执行查询来检索远程数据,因此理想的扫描一个外部表的估计代价应该是在远程服务器上完成它的花销,外加一些通信开销。得到这样一个估计的最可靠的方法是询问远程服务器并加上一些通信开销 — 但是对于简单查询,不值得为获得一个代价估计原创 2021-08-31 17:38:59 · 336 阅读 · 0 评论 -
Redshift__跨服务器复制表,使用unload和copy命令在S3中实现
官方文档https://docs.aws.amazon.com/zh_cn/redshift/latest/dg/t_Unloading_tables.htmlhttps://docs.aws.amazon.com/zh_cn/redshift/latest/dg/loading-data-files-using-manifest.html表迁移:利用 RedShift Upload 功能将源服务器的表数据以文件形式导入 S3,再利用 COPY 功能把该文件从 S3 中导入目标服务器的表。如果源服务器原创 2020-09-17 13:23:28 · 595 阅读 · 0 评论 -
postgresql端使用tds_fdw创建访问sqlserver的linked server的操作说明
参考文档https://www.postgresql.org/docs/11/postgres-fdw.html --postgres-fdw只能用于pg与pg直接的linked serverhttps://www.postgresql.org/message-id/CAA7biFNNDzmmL3O4fOm4h=Tf08BaFWS_sQXS98qHPHqNYKJyBw@mail.gmail.comhttps://github.com/tds-fdw/tds_fdwhttps://github原创 2020-09-22 13:20:04 · 2136 阅读 · 0 评论 -
postgresql使用pgagent来实现job功能
postgresql本身没有job的功能,可以使用第三方pgagent来实现,postgresql本身的官方文档中找不到pgagent的相关信息,安装配置好pgagent后,使用pgAdmin图形界面工具来操作job比较方便pgagent的源码https://www.pgadmin.org/download/pgagent-source-code/pgagent的文档https://www.pgadmin.org/docs/pgadmin4/latest/pgagent.htmlpgagent安装方法原创 2020-11-13 17:52:21 · 1687 阅读 · 0 评论 -
postgresql只有owner或usersuper权限才能修改表结构或drop表
官方文档的一段说明For most kinds of objects, the initial state is that only the owner (or a superuser) can do anything with the object.The right to modify or destroy an object is always the privilege of the owner only.对于大多数类型的对象,初始状态是只有所有者(或超级用户)可以对对象执行任何操作。修改或原创 2020-09-23 16:18:18 · 5124 阅读 · 0 评论 -
postgresql关于访问视图需要的权限
某个用户访问一个视图,这个用户需要具备这个视图的schema的usage和这个视图本身的select权限,如果视图的基表来自其他schema,可能还需要其他schema的usage权限(根据postgresql改造的redshift发现了此问题),但是这个用户不需要视图对应基表的select权限如果基表被修改了或重建了,需要把基表重新赋权给视图的owner,否则视图无法生效,但是不需要把基表授权给需要访问视图的用户,比如视图view1的owner是viewowner,一个用户user1有访问view1的权原创 2020-09-23 16:17:44 · 5827 阅读 · 0 评论