随笔分类 - PostgreSQL
摘要:命令行命令 psql --version 查看数据库版本 psql -l 列出所有数据库 (数据库用户可操作) createdb dbname 创建数据库 (数据库用户可操作) dropdb dbname 删除数据库 (数据库用户可操作) 元命令 \l 列出数据库 \c db_name 切换数据库
阅读全文
摘要:全局配置文件 postgresql.conf 配置文件主要负责配置文件位置、资源限制、集群复制等 pg_hba.conf 文件则负责客户端的连接和认证 pg_hba.conf详解 TYPE(允许的连接方式) local:使用Unix域套接字连接 host:匹配使用TCP/IP建立的连接,同时匹配SS
阅读全文
摘要:创建用户-createuser 创建一个名为 newuser 的非超级用户,newuser 继承自 pg_monitor 系统角色, 只能有 1 个连接,没有创建数据库的权限 ,没有创建用户的权限,并且立即给它设置密码, /opt/pgsql/bin/createuser -h pghost1 -p
阅读全文
摘要:安装 安装更新源 yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm 查看更新源 yum list | grep post
阅读全文
摘要:17.pgpool-II+异步流复制实现高可用 1.pgpool部署 主备操作 tar xvf pgpool-II-3.6.6.tar.gz ./configure --prefix=/opt/pgpool --with-pgsql=/opt/pgsql 2.互信配置 主备操作 vim /etc/h
阅读全文
摘要:3.客户端与服务端命令/进程结构 客户端命令 clusterdb reindexdb vacuumdb vacuumlo ceatedb dropdb createuser dropuser 服务端命令 initdb 用来创建新的数据库目录 pg_archivecleanup 是清理 Postgre
阅读全文
摘要:16.数据备份(SQL转储)与数据恢复 SQL转储就是将数据对象通过工具输出到由SQL语句组成的文件中 pg_dump可以单独备份表、schema或者database;pg_dumpall仅支持导出全库数据。 pg_dump可以将数据备份为SQL文本格式,也支持备份为自定义的压缩格式或TAR格式。压
阅读全文
摘要:15.增量备份 PIRT (point-in-timt recovery)时间点恢复 发生wal日志切换,就会触发归档 1.手动切换 2.写满16M 3.达到规定时间间隔(隐含条件:当前WAL日志中仍有未归档的WAL,才会归档) 创建WAL日志归档目录 mkdir -p /pgdata/10/{ba
阅读全文
摘要:14.逻辑复制(10版本开始) 逻辑复制,同步一张表 发布节点 vim postgresql.conf wal_level = logical max_replication_slots = 8 max_wal_senders = 10 允许订阅库连接 vim pg_hba.conf host po
阅读全文
摘要:12.主从异/同步流复制V9.6 物理复制也称流复制,是实例级的复制(复制出与主库一致的备库),分同步和异步 逻辑复制,可以做到表级别的复制,10版本前不支持内置逻辑复制,而是使用第三方工具(Slony-I, pglogical) 流复制与逻辑复制差异 逻辑复制核心原理是主库将WAL日志流发送给备库
阅读全文
摘要:13.流复制主备切换 延迟备库 同步优选提交 级联复制 主备切换-文件触发的方式 1.停止主库 pg_ctl stop -m smart 2.备库创建主备切换文件(与备库recovery.conf中的trigger_file设置的一致) touch /var/lib/pgsql/9.6/data/.
阅读全文
摘要:11.基准测试与pgbench 基准测试衡量指标 吞吐量(Throughput):单位时间内处理事务数量,TPS(每秒事务数) 响应时间(RT)或延迟(Latency) 并发量 使用pgbench测试 1.初始化测试数据 pgbench 的内嵌脚本需要4张表:pgbench_branches、pgb
阅读全文
摘要:10.性能优化 linux系统的I/O调度算法 查看支持的算法 dmesg | grep -i scheduler 查看磁盘的算法 (中括号包围的) cat /sys/block/sda/queue/scheduler 修改(服务器重启失效) echo noop > /sys/block/sda/q
阅读全文
摘要:9.分区表 什么是分区表 分区表就是根据分区策略,将数据数据分散到不同的子表中,并通过父表建立关联关系,从而实现数据物理上的分区。 PG10版本之前,使用继承+触发器实现分区表,步骤较为繁琐。 PG10版本开始,采用内置分区,只支持范围分区和列表分区,PG11支持HASH分区 创建分区表 1.创建父
阅读全文
摘要:8.并行查询&事务&并发控制 并行查询 并行查询相关配置参数 max_worker_processes 最大后台进程数,默认8。备库参数值>=主库,重启DB生效 max_parallel_workers 支持的最大并行查询进程数,默认8 max_parallel_workers_per_gather
阅读全文
摘要:7.体系结构(重点) psql体系结构 https://zhuanlan.zhihu.com/p/405687213 逻辑结构 数据库集簇( Database Cluster):它是指由单个 PostgreSQL 服务器实例管理的数据库集合。 组成数据库集簇的这些数据库使用相同的全局配置文件和监听端
阅读全文
摘要:数字类型 数字类型操作符和数学函数 select 1+2,5-2.2*2,10/2,8%3; 加、减、乘、除、取余 select mod(8,3); 按模取余 select round(5.3),round(8.9); 四舍五入 select ceil(3.6),ceil(-8.2); 向上取整 s
阅读全文