自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魂醉的一亩二分地

千里之行,始于足下

翻译 Postgresql管理系列-第九章 WAL(Write Ahead Logging)介绍

事务日志是数据库的重要组成部分,因为即使数据库发生系统故障,也要求所有数据库管理系统不能丢失任何数据。它是数据库系统中所有更改和操作的历史记录日志,以确保没有数据因故障而丢失,例如电源故障或导致服务器崩溃的其他服务器故障。由于日志包含有关已执行的每个事务充足的信息,因此数据库服务器应能够通过在服务...

2019-07-11 13:53:02 458 0

翻译 Postgresql管理系列-第五章 并发控制

当数据库中多个事务并发运行时,并发控制机制用于保持一致性和隔离性,这两个特性是ACID的两个属性。 有三种广泛的并发控制技术,即多版本并发控制(MVCC),严格两阶段锁(S2PL),和乐观并发控制(OCC),每个技术又有许多变体。在MVCC,每个写操作会创建一个新版本的数据项,同时保留旧版本。当一...

2019-07-09 14:36:31 630 0

翻译 Postgresql管理系列-第四章Foreign Data Wrappers

本章将介绍两个技术上有趣和实用的功能: 外部数据包装 (FDW) 和并行查询。 目前只有FDW的介绍,并行查询还在筹划中。 4.1. Foreign Data Wrappers (FDW) 2003年, 在 SQL 标准中添加了一个访问远程数据的规范, 称为 “SQL Management ...

2019-06-12 17:15:37 346 0

翻译 Postgresql管理系列-第三章Query Processing(下半部分-join operation介绍)

接第三章的上半部分 3.5. 连接操作 PostgreSQL 支持三个联接操作: 嵌套循环联接、合并联接和哈希联接。PostgreSQL 中的嵌套循环联接和合并联接有几种变体。 下面, 我们假设读者熟悉这三个连接的基本行为。如果您不熟悉这些术语, 请参阅 [1, 2]。但是, 那里没有太多关于混合...

2019-06-10 17:28:57 337 0

翻译 Postgresql管理系列-第三章Query Processing(上半部分-代价评估计算)

正如官方文档中所述,PostgreSQL支持SQL2011标准大量功能。查询处理是PostgreSQL中最复杂的子系统,它可以高效地处理支持的SQL。本章概括描述了查询处理的过程;特别是,查询优化方面。 本章包括以下三个部分: 第1部分:第3.1节。 本节概述了PostgreSQL中的查询处理过程...

2019-06-10 10:17:22 208 0

翻译 Postgresql管理系列-第八章Buffer Manager

缓冲区管理器管理共享内存和持久存储之间的数据传输, 并可能对DBMS的性能产生重大影响。PostgreSQL缓冲区管理器的工作效率非常高。 在本章中, 介绍了PostgreSQL缓冲区管理器。第一部分是概述,接下来的部分介绍了以下主题: 缓冲区管理器结构 缓冲管理器锁 缓冲管理器如何工作 环形缓...

2019-06-05 10:42:46 578 0

翻译 Postgresql管理系列-第七章Heap Only Tuple and Index-Only Scans

本章介绍与索引扫描相关的两个功能, 即Heap Only Tuple和Index-Only Scans。 7.1. Heap Only Tuple (HOT) HOT是在8.3版中引入的, 当更新的行存储在旧行所在的page时,可以有效地使用索引和表的页。HOT有效的减少了vacuum操作。 源码...

2019-06-03 11:58:39 357 0

翻译 Postgresql管理系列-第六章Vacuum Processing

vacuum操作是一个维护进程, 便于PostgreSQL的持久运行。它的两个主要任务是删除dead tuples和冻结事务id, 第5.10节中简要的提到了这两个问题。 为了删除dead tuples, vacuum提供了两种模式, 即并发vacuum和full vacuum。并发vacuum(...

2019-05-31 15:53:46 221 0

翻译 Postgresql管理系列-第十章 基础备份和PITR(Point-in-Time Recovery)

数据库备份大概可以分为两类:逻辑备份和物理备份。它们两者有长处也有短处,比如,逻辑备份需要花费大量的时间,特别是需要花费大量的时间备份大的数据库,而且需要更多的时间来恢复数据库。相反的,物理备份相对在较短的时间内备份和恢复数据库,所以在实际系统中,物理备份是非常重要和有用的功能。 在postg...

2019-04-11 14:00:40 262 0

翻译 Postgresql管理系列-第十一章 流复制管理

同步流复制是是从9.1版本实现的,可以是一主多从的模式,在postgresql里主叫master,备节点叫standby 主备是基于日志传送的技术实现同步,主节点持续发送wal数据,备节点重放接受到的wal数据 主要介绍以下几个话题 流复制如何启动的 主备之间如何传送数据 主节点如何管理...

2019-01-14 11:41:59 359 0

翻译 Postgresql管理系列-第二章 进程和内存结构

在本章中,总结了PostgreSQL中的流程体系结构和内存体系结构,以帮助阅读后续章节。如果您已经熟悉它们,可以跳过本章 1.进程结构 Postgresql 是一个C/S架构的关系型数据库,由多个后台进程管理数据库,下面分别介绍一些这些进程 postgres server process...

2018-05-21 12:54:37 1788 0

翻译 Postgresql管理系列-第一章 逻辑结构和物理结构

1.数据库的逻辑结构 Database cluster: 由postgresql server管理的数据库的集合,下面由多个database组成 databsase: 由各种数据库对象构成,比如下图中的table,indexes, view,function,sequence... ...

2018-05-18 16:34:36 1562 3

转载 PostgreSQL DBA最常用SQL

根据数据字典创建相关视图,方便查询 create schema dba; create view dba.ro_conflicts as select datname,pg_stat_get_db_conflict_all(oid) conflict_all,pg_stat_get_db...

2020-05-20 14:27:31 37 0

原创 Postgresql9.1.2意外删除postmaster.pid文件的恢复

起因是我修改了参数,然后pg_ctl reload,然后报错 pg_ctl: PID file “/pgdata/xjwq/1953/data02/pg_root/postmaster.pid” does not exist 这时才发现postmaster.pid不在,那我们就重构一个吧。 首先看...

2020-04-03 17:28:33 152 0

原创 Postgresql11.3安装Postgis

安装插件要求需要预先安装 GEOS, Proj, GDAL, LibXML2 和 JSON-C。这里我们只有GEOS和Proj没有安装。其他如果没有安装的,也记得安装即可。 以下可见我已经安装,这两个一般系统自带就可以安装。 # rpm -qa | grep libxml libxml2-deve...

2020-04-01 11:47:23 222 0

原创 Postgresql 查询报错ERROR: canceling statement due to conflict with recovery

Caused by: ERROR: canceling statement due to conflict with recovery Detail: User query might have needed to see row versions that must be removed. 场景...

2020-03-19 15:08:15 148 0

原创 Postgresql11.3 下安装PL/java

Postgesql原生内部不支持java编写函数,触发器,存储过程,这里需要第三方插件PL/java,这里介绍一下,如何安装PL/java。 安装gcc-c++, gcc, java 1.8.x, openssl # yum install gcc* openssl* java-1.8.0-o...

2020-03-18 15:31:49 134 0

原创 Postgresql RUM索引

RUM 为了全文搜索更加快,RUM索引可以看做是在GIN基础上的扩展。可以从https://github.com/postgrespro/rum下载使用。 使用GIN索引的一些限制 GIN索引允许使用tsvector和tsquery类型执行快速的全文本搜索。但是,使用GIN索引进行全文搜索存在几个...

2020-03-04 16:27:28 104 0

原创 Postgresql SP-Gist索引

SP-Gist SP-Gist和Gist类似, «SP»是space partitioning(空间划分)。这里的空间通常就是我们通常所说的空间,例如,二维平面。 SP-GiST适用于空间被递归划分为非相交区域的结构。此类包括四叉树,k维树(k-D树)和基数树。 结构介绍 SP-GiST的思想是将...

2020-03-03 09:50:05 321 0

原创 Postgresql安装gevel插件

概念介绍 gevel插件可以查看Gist,GIN,SP-Gist索引的内部结构信息。PG自身不提供此功能,所以需要安装插件。在之前的索引介绍都使用过该插件查看索引的信息。 安装 历史版本可以此链接下载http://www.sai.msu.su/~megera/postgres/gist/gevel...

2020-02-28 18:12:17 50 0

原创 Postgresql Gist索引

Gist是generalized search tree的缩写,是一棵平衡的搜索树,和之前介绍的btree类似。 那么它们有什么区别? «btree»索引:能够支持大于,小于和等于运算符。但是,当数据库存储的数据是地理数据,文本文档,图像等数据的时候,btree是无效的。 Gist索引结构: Gi...

2020-02-28 15:29:20 123 0

原创 Postgresql Bloom索引

Bloom索引概念介绍: 一个典型的bloom过滤可以快速的检查一个集合的元素。比如过滤器是有M个bit位的数组,初始化的时候都是用0填充的,如下图 现在,让我们更好地了解bloom过滤器的算法。如前所述,它是一个m位的数组。而且我们需要k个哈希函数。为了确定一个元素是否存在,该元素(列中的数据...

2020-02-26 11:27:58 66 0

原创 Postgresql GIN索引

GIN概念介绍: GIN是Generalized Inverted Index的缩写。就是所谓的倒排索引。它处理的数据类型的值不是原子的,而是由元素构成。我们称之为复合类型。如(‘hank’, ‘15:3 21:4’)中,表示hank在15:3和21:4这两个位置出现过,下面会从具体的例子更加清晰...

2020-01-16 15:12:59 158 0

原创 Postgresql BRIN索引

与我们熟悉的索引不同,BRIN的想法是避免浏览不合适的行,而不是快速找到匹配的行。它不是一个精确的索引:不包含表行的TID。 简而言之,对于值与表中物理位置相关的列,BRIN效果会比较好。换句话说,如果没有ORDER BY子句的查询实际上以升序或降序返回列值(并且该列上没有索引)。 BRIN原理如...

2020-01-07 16:46:21 122 0

原创 Postgresql12 recovery.conf 并入postgresql.conf以及主备切换函数介绍

从 12版本开始,不再有recovery.conf文件,recovery.conf配置的内容全部并入到postgesql.conf中。 新增了两个文件recovery.signal和standby.signal,分别代表处于recovery模式还是standby模式,如果两个文件都配置了,优先为s...

2019-12-30 17:54:16 338 0

转载 我花了10个小时,写出了这篇K8S架构解析

互联网技术飞速发展的今天,为了承载请求的高并发和业务的多样性,微服务的架构成了各个公司的标配. 每个微服务通过 Docker 进行发布,随着业务的发展,系统中遍布着各种各样的容器。于是,容器的资源调度,部署运行,扩容缩容就是我们要面临的问题。 基于 Kubernetes 作为容器集群的管理...

2019-12-20 14:19:17 59 0

原创 Greenplum6.0.1 c函数报错ERROR:Old style C function (API version 0) are no longer supported by Greenplum

事件背景: 之前的GP是4.30.0版本的,pg的版本是8.2.15,现在新的版本是6.0.1,pg的版本是9.4.24 编译之前的加密解密函数,报错ERROR: Old style C function (API version 0) are no longer supported by Gr...

2019-12-18 16:29:13 44 0

原创 oracle数据库用户管理

使用oracle数据库的业务一般都是按用户进行分割,这里需要提前创建好要使用的表空间和profile,如果不指定表空间,默认使用system表空间,这样很容易吧system表空间占满。所以,每次建新用户,必须指定用户使用的默认表空间。 以下介绍一下oracle用户管理方面的相关知识 创建一个新用...

2019-12-16 10:35:07 22 0

原创 Oracle临时表空间和临时表介绍

临时表空间包含的内容以及作用 中间排序的结果 临时表和临时索引 临时LOBs 临时B-trees 临时表空间包含一些临时数据,只是短暂使用,一般排序操作用到临时表空间的时候比较多,还有就是创建临时表的时候。数据库启动后默认会创建一个叫TEMP的临时表空间,数据库关闭后,临时表空间的内容自动释放...

2019-12-13 16:41:53 123 0

原创 oracle分区表介绍(含本地分区索引和全局分区索引介绍)

通过分区,您可以将非常大的表和索引分解为更小的,更易于管理的部分,称为分区。每个分区都是一个独立的对象,具有自己的名称和可选的自身存储特性。 分区表的几个好处: 1.增加可用性 分区的不可用并不意味着整个表不可用。查询优化器会自动从查询计划中删除不可用的分区,因此当分区不可用时,查询不会受到影响 ...

2019-12-10 11:33:48 95 0

原创 zabbix 监控 oracle

ozabbix 架构图如下 可以监控以下指标 DB Version (i.e. Validity of package) Archiving (Archive log production with trend analysis) Event Waits (Files I/O, single b...

2019-11-13 16:47:43 109 0

原创 FATAL: the database system is in recovery mode解决一例

一个灾备恢复的测试库出现了一下报错FATAL: the database system is in recovery mode,由于是测试库,所以数据这块无关紧要。数据需要恢复,但是也没见从xlog恢复的动作。为了业务恢复功能性测试,先把数据库拉起来要紧。当然这个库没有备份,所以不用考虑从备份恢复...

2019-11-07 15:29:47 1393 0

原创 Postgresql B-tree索引

索引结构 B-tree索引的索引行存在page中,在叶子page中,存储这索引键和指向表行的TID信息。 B-tree索引的重要特性: B树是平衡的,也就是说,每个叶子页面从根节点由相同数量的内部页面分隔。因此,搜索任何值都花费相同的时间。 B树有多个分支,即每个页面(通常为8 KB)包含许多(...

2019-10-29 16:24:23 140 0

原创 Postgresql hash索引介绍

hash索引的结构 当数据插入索引时,我们会为这个索引键通过哈希函数计算一个值。 PostgreSQL中的哈希函数始终返回“整数”类型,范围为2^32≈40亿。bucket桶的数量最初为2个,然后动态增加以适应数据大小。可以使用位算法从哈希码计算出桶编号。这个bucket将存放TID。 由于可以将...

2019-10-25 17:29:56 258 0

原创 Postgresql 索引访问方法介绍

首先看一下postgresql支持的索引访问方法,如下 postgres=# select amname from pg_am; amname -------- btree hash gist gin spgist brin bloom (7 rows) 每种类型有四个属性 p...

2019-10-25 15:55:19 52 0

原创 Postgresql定时自动删除分区表

一般生产环境中,分区表的数据不会保留太长时间,一般有用的数据仓库抽走后就可以清理掉了,这里的例子按月分表的都是以"_YYYYMM"结尾,按日分表的都是以"_YYYYMMDD"结尾。下面通过两个例子举例理解一下。 查看分区表,这里有4~10月的子分区 hank...

2019-10-22 16:48:50 113 0

原创 oracle索引管理

这一篇文章我们介绍一下oracle管理索引的手段 索引使用的正确姿势: 如果您经常要查询的数据少于表数据15%,则可以考虑创建索引。 为了提高多个表的连接查询性能,连接的列考虑建索引。 数据量很小的表不需要索引。如果查询花费的时间太长,则表可能已从小变大。 适合建索引的列: 列的值唯一性很高...

2019-10-12 16:14:22 39 0

原创 oracle索引组织表(IOT)

索引组织表定义和描述 索引组织表类似数据存储在B树索引结构中的变体的表。在堆表中,行是无序插入。在索引组织表中,行数据存储在表的主键定义的索引中。 B树中的每个索引条目还存储非关键列的值,因此,索引是数据,数据就是是索引。应用程序可以使用SQL语句熟练的操作索引组织表。 下图说明了索引组织表和普通...

2019-10-11 15:41:43 30 0

原创 oracle索引介绍

B-tree索引 bitmap索引 函数索引 Application domain索引 下面分别说明一下 B-Tree索引 B-Tree是平衡树的缩写,是最常见的数据库索引类型。 B树索引是将不同的值放在一个个范围内的有序列表。通过带有关键字的行或行范围相关联,B树可为广泛的查询(包括精确匹配和...

2019-10-10 16:02:54 63 0

原创 oracle统计信息概要

每个级别收集的信息: 表级别:行数,块数,每行的长度 列级别:列中去除重复值的数量,空值的数量,数据分布(直方图),扩展统计 索引统计信息:叶子块的数量,levels,聚簇因子 系统统计信息:I/O性能,CPU性能 如果收集的统计信息不准确,那么会影响执行计划,影响了执行计划,可能就影响到了业务的...

2019-09-29 17:42:04 67 0

提示
确定要删除当前文章?
取消 删除