摘要:
#查看用户权限1 select grantor,grantee,table_catalog,table_schema,table_name,privilege_type,is_grantable,with_hierarchy from information_schema.table_privile 阅读全文
随笔分类 - postgres
【PostgreSQL】synchronous_commit参数和Synchronous Standby Replication
2022-06-26 13:27 by abce, 931 阅读, 收藏, 编辑
摘要:
下图显示了PostgreSQL的WAL在primary端生成以及发送到standby的过程。 PostgreSQL内部使用pg_pwrite()函数写WAL段,其实这个函数内部是调用系统的write()函数,write()并不能保证数据被刷到磁盘。为了完成刷盘,会调用另一个函数issue_xlo 阅读全文
【PostgreSQL】PostgreSQL的高可用方案
2022-06-25 15:42 by abce, 4108 阅读, 收藏, 编辑
摘要:
比较老的一片文章,不具备多大的参考意义。 原文地址:https://severalnines.com/database-blog/top-pg-clustering-high-availability-solutions-postgresql PostgreSQL自身并不提多主集群架构。 名词解释 阅读全文
【PostgreSQL】PostgreSQL重建与主库不一致的从库
2022-06-25 11:36 by abce, 997 阅读, 收藏, 编辑
摘要:
场景:从库坏块,与主库不同步了 版本:PostgreSQL 12 1.关闭从库 systemctl stop postgresql 或 killall -9 postgres 2.检查postgresql.auto.conf的内容 pg_basebackup会使用到该配置文件中的内容,尤其是用于复制 阅读全文
【PostgreSQL】PostgreSQL中的锁--轻量级的锁
2022-06-15 14:35 by abce, 834 阅读, 收藏, 编辑
摘要:
PostgreSQL中轻量级的锁,控制内存的访问。PostgreSQL使用多进程架构,对于内存结构支持一致性读和写。 有两个级别的轻量级的锁:共享的、排他的。有些数据库将轻量级的锁称作“latch”。因为轻量级的锁底层实现的一个细节,应用程序开发人员不应该过多关注这种锁。 从 PostgreSQL 阅读全文
【PostgreSQL】PostgreSQL中的锁--表锁
2022-06-15 08:58 by abce, 3582 阅读, 收藏, 编辑
摘要:
【PostgreSQL】PostgreSQL中的锁--表锁 示例环境 postgres=# create table locktest(c int); CREATE TABLE postgres=# insert into locktest values(1),(2); INSERT 0 2 pos 阅读全文
【PostgreSQL】PostgreSQL中的锁--行锁
2022-06-13 10:14 by abce, 2836 阅读, 收藏, 编辑
摘要:
示例环境 postgres=# create table locktest(c int); CREATE TABLE postgres=# insert into locktest values(1),(2); INSERT 0 2 postgres=# 行锁 场景:两个并发事务尝试查询一行记录用于 阅读全文
【PostgreSQL】使用查询语句分析锁队列
2022-06-11 20:57 by abce, 114 阅读, 收藏, 编辑
摘要:
\timing on set statement_timeout to '100ms'; with recursive activity as ( select pg_blocking_pids(pid) blocked_by, *, age(clock_timestamp(), xact_star 阅读全文
【PostgreSQL】PostgreSQL零宕机变更schema:lock_timeout和retries(设置超时和重试)
2022-06-11 08:59 by abce, 1070 阅读, 收藏, 编辑
摘要:
问题描述 当你部署数据库schema变更时,即使有非常高级别的自动化,但是没有使用非常地的lock_timeout(或 statement_timeout)值来获取对可能发生变化且不实现某种重试逻辑的数据库对象进行变更时,也无法保证系统不会宕机。 创建一张只有单行记录的表作为演示: create 阅读全文
【PostgreSQL】PostgreSQL的事务隔离级别
2022-06-10 09:28 by abce, 2091 阅读, 收藏, 编辑
摘要:
PostgreSQL支持的隔离级别: ·serializable ·repeatable read ·read committed ·read uncommitted PostgreSQL默认的隔离级别为read committed。 1.查看默认的事务隔离级别 postgres=# show de 阅读全文
【PostgreSQL】部分索引、覆盖索引和多列索引是如何降低update操作的
2022-06-06 22:25 by abce, 512 阅读, 收藏, 编辑
摘要:
部分索引(partial indexes) 部分索引(partial indexes)可以提升查询性能且节省磁盘空间。(索引越小,对应的索引扫描越快) 下面是PostgreSQL文档中的例子: create index orders_unbilled_index on orders (order_n 阅读全文
创建数据库和普通用户
2022-06-01 22:05 by abce, 41 阅读, 收藏, 编辑
摘要:
创建数据库和普通用户 create database test; create user abce with password 'xxxxxx'; grant all on database test to abce; alter user abce with valid until 'infini 阅读全文
postgresql中三种不适合使用if not exists、if exists的场景
2022-05-31 08:37 by abce, 8809 阅读, 收藏, 编辑
摘要:
postgresql中,许多ddl语句支持if exists、if not exists。例如: postgres=# create table if not exists abce(); CREATE TABLE postgres=# drop table if exists abce; DROP 阅读全文
常见的postgresql schema变更错误
2022-05-30 09:11 by abce, 966 阅读, 收藏, 编辑
摘要:
术语"数据库迁移"可能会令人困惑;它通常用于描述从一个数据库系统切换到另一个数据库系统、移动数据库以及最大程度地减少可能的负面影响(例如长时间停机)的任务. 在本文中,我将讨论该术语的第二个含义——具有以下属性的数据库schema更改: ·"增量":改变是分步进行的; ·"可逆":可以"撤消"任何更 阅读全文
docker中postgresql的备份和还原
2022-05-10 13:02 by abce, 3851 阅读, 收藏, 编辑
摘要:
1.备份 本地主机在docker容器内部执行命令的格式: docker exec <container_name> <your_command> docker容器都是假设所有的文件是在容器卷中的,如果文件不在docker容器中,你需要在本地主机和容器之间传输。 备份容器中的某个数据库 docker 阅读全文
postgres开启WAL归档
2022-05-09 21:59 by abce, 658 阅读, 收藏, 编辑
摘要:
1.创建归档目录 2.修改wal_level参数 alter system set wal_level='replica'; 也可以在配置文件中设置:wal_level=replicat 3.修改归档模式参数 alter system set archive_mode='on'; 也可以在配置文件中 阅读全文
使用pg_stat_monitor扩展更好地理解postgresql的负载
2022-05-09 21:48 by abce, 638 阅读, 收藏, 编辑
摘要:
pg_stat_monitor已经进入GA状态。 目前,收集和review查询统计信息,常用的标准是使用pg_stat_statements扩展,这个扩展收集统计信息,帮助用户回看哪些查询影响了系统性能。查询扩展会产生类似的结果: postgres=# \dx List of installed e 阅读全文
PostgreSQL14中预定义角色pg_write_all_data和pg_read_all_data
2022-05-09 21:32 by abce, 626 阅读, 收藏, 编辑
摘要:
场景用例: 两个数据库database1、database2; database1有两个schema,database2有一个schema; 每个schema都属于不同的user; 每个schema中含有一个或多个表。 database database1: schema schema1: owne 阅读全文
postgresql远程连接不上
2022-05-09 20:58 by abce, 1830 阅读, 收藏, 编辑
摘要:
postgresql远程连接不上 $ psql -h 33.33.33.33 -U postgres -d postgres -p 5432 psql: error: connection to server at "33.33.33.33", port 5432 failed: Connectio 阅读全文
维护大型PostgreSQL数据库
2022-04-29 09:08 by abce, 345 阅读, 收藏, 编辑
摘要:
提出数据库大小这个话题,是件滑稽的事情。划分小型、中型、大型甚至超大型数据库并不像你想象的那么简单。区分数据的大小,基于许多因素,这些因素的特征分为有形的、无形的;有形的可以以客观方式衡量,无形的就取决于很多了。例如,一个2TB的数据库,对很多人来说是大型数据库;另一方面,经验丰富的dba可能会将超 阅读全文