![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
postgresql数据库
文章平均质量分 83
晚风_END
擅长自动化运维,擅长编写各类shell脚本,Python脚本,高级运维工程师,Python全栈工程师。
展开
-
postgresql|数据库|闪回插件e-maj的部署和使用
E-Maj 是 PostgreSQL 数据库的一个扩展插件,它的全称为 "Elementary Majordomo"。这个扩展的主要功能是为数据库中的表集提供细粒度的写入日志记录和时间旅行能力。这意味着使用 E-Maj 的用户可以在数据库的特定子集上实现事务的回滚,从而达到时间点恢复的效果,这对于审计、数据恢复、数据分析等场景非常有用。E-Maj 通过跟踪对数据库表的更改来工作,允许用户创建和管理一组表的稳定视图,这些视图可以被快照并在需要时恢复到之前的状态。原创 2024-05-26 19:44:01 · 972 阅读 · 0 评论 -
postgresql|数据库|数据库查询技巧各种练习(建表,数据和查询技巧)
数据库的发展历史是比较长的,尤其是关系型数据库,具有里程碑性质的关系型数据库大概得是Oracle数据库了,如果没有记错得话,大概是从80年代就有Oracle数据库了而数据库做为电子信息工程内得基础设施,重要性不言而喻,本文并不希望探讨数据库的具体的发展历史,只是从一个大的时间线来简单说一下数据库的发展历史。原创 2024-05-19 21:51:51 · 836 阅读 · 0 评论 -
pgadmin4|postgresql数据库|pg数据库的可视化管理工具神器
如果您是一名专注于 Postgres 的 DBA,PgAdmin 是一个绝佳选择。也就是说,对分布式服务器的需求通常只出现在能够处理这种配置的熟练开发人员身上。pgAdmin 通常被新手和经验丰富的 DBA 和开发人员用于数据库管理。PgAdmin 有很好的社区支持,如果您遇到问题,有很多资源可以帮助您。通常,pgAdmin 在很大程度上满足了许多开发人员的需求,因此,大多数开发人员不会寻找其他 GUI 工具。原创 2024-05-05 00:05:18 · 2848 阅读 · 1 评论 -
Linux|centos7|postgresql数据库主从复制之异步还是同步的问题
在同步复制的环境中,如果一个从库(备库)挂了,其对主库(源库)的影响取决于具体采用的同步策略:对于全同步复制(MySQL中并没有原生的全同步复制,这里假设是一种所有从库都需确认的极端情况),如果任何从库不可用,则主库无法执行新的事务直至从库恢复在线。这意味着主库将暂停对外服务,因为它在等待所有从库确认事务,这种情况下系统的可用性大大降低。对于半同步复制(MySQL的Semi-Synchronous Replication),主库在执行完事务后至少等待一个从库确认才会返回成功给客户端。在这种情况下,如原创 2024-04-03 06:00:00 · 1141 阅读 · 0 评论 -
Linux|centos7|postgresql数据库|备份利器pgbackreset的部署和使用
之前的备份是每日凌晨做全备,没有增量备份的策略。 这样导致每天备份时间越来越长以及磁盘占有率越来越高的问题越来越明显。之前全备采用的工具是 PG 原生自带的命令 pgdump, 这个命令是不支持增量的, 而业界PG的备份工具又是鱼龙混杂的,种类繁多。我们对比了pgbackrest,barman, pg_rman,bart… 等等, 测试了我们必要的功能点像是: 加密, 压缩,parallel, standby 节点支持备份,远程备份,以及PITR那么,pgbackreset是一个比较理想的灾备工具原创 2024-04-03 03:45:00 · 1063 阅读 · 0 评论 -
Linux|centos7-postgresql数据库|yum安装数据库和配置repmgr高可用集群以及repmgr的日常管理工作
postgresql 的yum部署其实还是有点东西的,本文就做一个小小的记录,高可用方面repmgr插件还是非常不错的,但如何部署以及部署后如何使用也是一个难点,因此,也在本文里做一个记录环境介绍:第一台服务器:操作系统是centos7,内核版本是3.10,IP地址是192.168.123.17 VMware虚拟机,内存4G,cpu4核,计划在此服务器上安装postgresql12.4版本以及repmgr高可用插件。该服务器是主节点第二台服务器:操作系统是centos7,内核版本是3.10,I原创 2024-03-31 14:01:23 · 1071 阅读 · 0 评论 -
Linux|centos7|postgresql数据库|yum和编译方式安装总结(全系版本)
yum方式安装postgresql这个是官方的yum源,包括postgresql的开发包,lib库什么的,很齐全,关键是包括pgbackrest原创 2024-03-17 05:00:00 · 1316 阅读 · 0 评论 -
postgresql|数据库|通过pg_dumpall命令备份的单库信息SQL文件检索表名称,指定表的注解,指定表的创建语句
通常pg_dumpall命令可以只备份数据库的所有表结构等等信息,不包括任何数据,备份出来的文件是SQL标准文件,但,我们一般只是将此文件仅仅做为一个备份文件,这是非常非常浪费的pg_dumpall -h 数据库IP -U postgres -p 数据库开放端口 -sv -f 数据库信息SQL文件-sv 表示仅备份数据库的下面提到的这些对象,不备份具体数据,v是显示过程该命令备份速度比较快,因为只是下面提到的这些对象创建语句以及属组关系和相关注解等等信息。原创 2024-03-12 03:45:00 · 1359 阅读 · 0 评论 -
postgresql|数据库|pg_repack插件的部署和使用
【代码】postgresql|数据库|pg_repack插件的部署和使用。原创 2024-01-28 22:19:37 · 1630 阅读 · 0 评论 -
prometheus|云原生|prometheus项目安装postgres-exporter监视组件的部署简介
最近刚好得空再琢磨prometheus,那肯定要玩玩postgrs-expoter这个数据库监控了,要不没办法体现prometheus的强大。OK,postgres-exporter和其它的监视组件例如node-exporter基本是一样的,都是由go语言编写的,但是有一点雪微不同,它是监控数据库的,因此要和数据库打一点交道。所以呢,数据库需要有安装pg_stat插件,否则postgres-exporter可能会工作的不太好,很多数据收集不到吧。其次呢,现在的网络文化就是一大抄,这个抄一下,那个抄一原创 2023-11-27 23:48:18 · 2093 阅读 · 0 评论 -
postgresql|数据库|提升查询性能的物化视图解析
物化视图是什么?###注:基表,也就是基础表,查询结果不是凭空出现的,自然是从一个或者N个表内查询得出的结果,一个或者N个表也就省略称之为基表了物化视图是介于表和视图之间的一个关系型数据库的对象,可以将它想象成一个查询基表产生的结果集,但这个结果集可以很复杂,可以是多表联查的结果集,可以是一个简单的单表查询结果集。和普通视图相比,更为关键的是,物化视图是有对应的存放于$PGDATA目录下的物理文件,也就是它不是一个虚幻的虚拟的东西了,而是一个真真切切存在的可操作的对象了,这也是为什么叫物化视图的原创 2023-11-08 00:23:01 · 1621 阅读 · 0 评论 -
postgresql|数据库|SQL语句冲突的解决
postgresql数据库是比较复杂的一个关系型数据库,而有些时候,即使是简单的插入更新操作也是有很多复杂的机制。那么,什么是冲突?什么时候会遇到冲突(也就是冲突的常见场景)?如果有冲突我们应该怎么去解决?这些问题我想应该是在此文章中详细说明的。原创 2023-10-30 17:14:06 · 1365 阅读 · 0 评论 -
postgresql|数据库|序列Sequence的创建和管理
Sequence也是postgresql数据库里的一种对象,其属性如同索引一样,但通常Sequence是配合主键来工作的,这一点不同于MySQL,MySQL的主键自增仅仅是主键的属性做一个更改,而postgresql的主键自增是需要序列这个对象来配合的,也就是说,如果仅仅创建了一个序列,但此序列没有和任何主键对象绑定,那么,这个序列并没有什么实际的意义,这一点一定要注意。当然了,postgresql里面的序列因为是一个对象,因此,在数据库开发中是非常的方便的,比起MySQL要先进很多的哦。那么,下面原创 2023-10-24 23:47:33 · 2074 阅读 · 1 评论 -
postgresql|数据库迁移|ora2pg工具的web界面介绍
ora2pg是一个比较强大的数据库迁移工具,那根据名字来说,也可以看出来,这个工具主要是用来配置去O化,将在运行的oracle数据库迁移到postgresql数据库内的当然了,我们使用此工具主要还是用命令行,但在某些情况下,可能还是需要可视化,毕竟该工具的使用需要配置一个配置文件,而配置文件内的选项参数是非常多的哦,而有了web界面,精确的,完整的迁移对于非DBA来说也会是一个轻松+愉快啦。OK,下面开始介绍ora2pg的web界面原创 2023-10-24 00:09:46 · 445 阅读 · 0 评论 -
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
某次在使用pg_dump命令逻辑备份出来的备份文件对指定的几个表恢复的时候,报错pg_restore: implied data-only restore当然,遇到问题首先就是百度了,但好像没有什么明确的解决方案,具体的报错命令和报错信息如下:[postgres@node1 ~]$ pg_restore -Upostgres -v -x -d pgbench -t ds.dr_route_ds -t ds.dr_task_active_ds 2023-08-02T04_00-ds.du原创 2023-10-11 23:01:09 · 1563 阅读 · 0 评论 -
postgresql数据库|wal日志的开启以及如何管理
WAL即Write Ahead Log预写式日志,简称wal日志,相当于oracle中的redo日志。只是oracle中redo是固定几个redo日志文件,然后轮着切换去写入。pg中wal日志是动态切换,单个wal日志写满继续写下一个wal日志,连续不断生成wal日志。(可以简单理解为MySQL里面的binlog日志,虽然运行机制是完全不同的,但两者效果基本是一致的)WAL的主要用途是用于故障恢复,针对数据库的数据insert/delete/update操作都会形成一些列的WAL日志记录,多个WAL日志原创 2023-09-30 22:51:33 · 2719 阅读 · 0 评论 -
postgresql|数据库|centos7下基于postgresql-12的主从复制的pgpool-4.4的部署和使用
postgresql数据库只用自身的一些配置是无法做到最优的优化的,需要通过一些外置插件(中间件)来提高服务器的整体性能,通俗的说就是数据库仅仅依靠自身是无法达到性能最优的,很多时候需要更改数据库的整体架构,使用一些目前来说成熟的技术,比如,读写分离技术,负载均衡技术,高速缓存技术等等集群方面的技术。原创 2023-09-17 23:17:05 · 1225 阅读 · 0 评论 -
postgresql|数据库|数据迁移神器ora2pg的安装部署和初步使用
有的时候有需求需要迁移Oracle数据库的数据到postgresql,那么,其实可供选择的工具是比较多的,但从迁移效率,准确度这些角度来选择的话,无疑还是GitHub上的开源免费工具ora2pg比较合适的。ora2pg的优点是免费,迁移速度快,迁移数据准确,部署简单,快速下面将介绍如何在A服务器 centos7下面部署安装ora2pg,在另一台服务器B上通过docker安装部署一个Oracle,并简单的写一些数据原创 2023-09-08 11:55:53 · 3378 阅读 · 4 评论 -
postgresql|数据库|角色(用户)管理工作---授权和去权以及usage和select两种权限的区别
postgresql做为一个比较复杂的关系型的重型数据库,不管是安装部署,还是后期的运行维护,都还是有比较多的细节问题需要引起关注。例如,用户权限的合理分配,那么,什么是权限的合理分配呢? 自然是权限的最小化原则,也就是说每个用户能够完成其权限范围内的工作,而不会由于黑客攻击,漏洞等原因造成安全方面的危险。在写这篇文章之前,仅仅是对于一些普通用户简单的随便赋权就完事了,而这样的管理工作显然是不够的,因此,本文将对postgresql数据库内的用户赋权和去权做一个相对完整的总结,并通过示例说明 usa原创 2023-08-09 17:04:02 · 3178 阅读 · 0 评论 -
postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用
MySQL数据库和postgresql数据库之间的差异并不多,这里的差异指的是对SQL语言的支持两者并不大,但底层的东西差异是非常多的,例如,MySQL的innodb引擎概念,数据库用户管理,这些和postgresql相比是完全不同的(MySQL用户就是用户,没有角色,postgresql有用户,有角色,但差异不大),但,索引例如btree这些两者又是相同的或者说相通的。那么,这些差异化的地方导致MySQL在向postgresql数据库迁移数据的时候会造成一些困扰,虽然两者数据库使用的SQL语言百分之九原创 2023-08-04 00:07:46 · 5637 阅读 · 1 评论 -
postgresql|数据库|启动数据库时报错:FATAL: could not map anonymous shared memory的解决
一个很偶然的出现的问题,因为我需要验证备份文件是否正确,因此,我在一台已启动了一个数据库实例的服务器上,依据全备的数据库文件在启动一个实例,当然,在此之前,已经修改了备份文件内的配置文件的端口为5444,以防止端口占用,造成第二个数据库实例无法启动。很不幸的,不出意外的出意外了,启动报错如下:原创 2023-07-27 23:38:25 · 1932 阅读 · 0 评论 -
postgresql | 数据库| 生成2000W条的简单测试表
数据库学习的过程中,很可能需要数据量比较大的表来进行模拟测试,那么,测试表的创建需要遵循的是贴近实际的生产环境,尽量的模仿实际的生产环境。因此,学习数据库的时候,快速的创建一个具有足够数据量的大表是非常有必要的。原创 2023-06-19 18:25:20 · 1632 阅读 · 0 评论 -
postgresql|数据库|基于本地备份的远程备份策略
数据库的安全性需要做一个保证,那么,本地备份策略显然是不太安全的,如果,本地磁盘有突发损坏问题,将无法恢复数据库。因此,远程备份也就是把备份文件拷贝到远端服务器是一个必要的措施。远程备份策略的几种方案对比远程备份的具体实现我们可以使用的工具是比较多的,其中比较高效的是再生龙,scp,rsync以及pg_dump命令远程连接数据库备份。那么,这几种工具到底使用哪个比较好呢?原创 2023-06-09 23:50:42 · 2223 阅读 · 1 评论 -
postgresql|数据库|插件学习(二)---postgresql-12的外置插件pg_profile的启用和使用
postgresql数据库有非常多的插件,那么,pg_profile算是监控类的插件,该插件会通过内置的pg_stat_statements插件和dblink插件这两个插件监控查询postgresql的状态,并可以通过打快照的方式得到awr报告。###注:AWR全称Automatic Workload Repository,自动负载信息库,该概念是oracle数据库的,但postgresql也有类似的插件,比如,今天要讲的这个pg_profile本文将就如何安装这个pg_profile插件,以及如何原创 2023-05-21 20:27:03 · 1474 阅读 · 0 评论 -
postgresql|数据库|插件学习(一)---postgresql-12的内置插件pg_stat_statements的启用和使用
插件就是原软件的扩展功能。postgresql有非常多的各种各样的插件,当然了,插件不安装对于我们使用数据库并没有什么太多的影响,可能只是不舒服一些而已,但有一些插件我们如果有安装,那么,对于数据库的维护,管理工作可能会更加的方便,快捷,pg_stat_statements这个插件就是这样的一个插件,概括起来,这个插件的功能就是提供postgresql监控的,提供了一种跟踪执行的所有SQL语句的统计信息的方法。这里多说一句,不像MySQL,开启binlog日志就可以统计慢原创 2023-05-20 23:26:30 · 2572 阅读 · 0 评论 -
postgresql |数据库 |postgresql数据库的短命令详细介绍
postgresql数据库相比较MySQL或者oracle,一个是开源优势,另一个就是postgresql数据库的命令行更为丰富,因此,数据库的管理工作更为方便,快捷,尤其是postgresql的短命令就可以基本满足日常的数据库维护,管理工作了。####注:短命令通常是用在pg的命令行客户端的,也就是psql -U用户 -p 端口 -h 数据库IP 登陆数据库后 \c 这样的命令,我们称之为短命令,无需通过客户端登陆数据库服务端的,例如pg_controldata ,pg_dump 这些命令我们称之为原创 2023-05-05 16:34:07 · 988 阅读 · 0 评论 -
PostgreSql | 数据库 | pg数据库的全安装教程(yum,二进制,源码编译)
PostgreSql的全安装教程PostgreSql一般简称为pg,在本文中后续以pg代指,请注意。PostgreSql这个数据库是伯克利大学基于c语言所编写的对象关系型数据库管理系统(ORDBMS),与MySQL所不同的是,pg是纯c所编写的,而MySQL是c/c#混合编写,由于底层的影响,两者性能是有很多差异的。具体的差异细节不在本文讨论范围。同大部分开源软件一样,pg也分单机和集群版本,单机...原创 2020-11-24 22:57:59 · 5389 阅读 · 1 评论 -
postgresql | 数据库 | centos7 完全离线安装postgresql12.5和postgis3.0插件教程
centos7 完全离线安装postgresql12.5和postgis3.0插件教程1,postgresql12.5安装包以及postgis3.0插件和相关依赖下载地址:链接:https://pan.baidu.com/s/1A9nDaJHRTUC3SLiLtva0rA提取码:post复制这段内容后打开百度网盘手机App,操作更方便哦--来自百度网盘超级会员V3的分享关于离线...原创 2021-03-16 12:33:46 · 3662 阅读 · 5 评论 -
postgis的扩展包fuzzystrmatch和postgis_tiger_geocoder的安装
postgis的扩展包和postgis_tiger_geocoder的安装通常,安装好postgis后,我们进入pg数据库,查询插件,显示插件情况是这样的,postgres=# select * from pg_available_extensions where name like 'postgis%'; name | default_version | installed_vers...原创 2021-03-18 19:01:47 · 1953 阅读 · 0 评论 -
postgresql单机版+postgis插件的快速安装
postgresql单机版+postgis插件的快速离线源码编译安装废话不多说了,直接上干货。环境介绍:postgresql单机版,使用的版本为9.5.24,postgis使用的版本为postgis-3.0.0.tar.gz,实验机器使用的为centos7版本,vm虚拟机,最小化全新安装。编译前的环境准备工作:1.yum install libxml2-devel libxml2 gcc-c++ json-...原创 2020-11-27 01:36:09 · 1304 阅读 · 0 评论 -
postgresql | 数据库 |PostGIS的主要Extension(扩展插件)
PostGIS的主要Extension(扩展插件)一,postgispostgis的基本核心功能,仅支持地理图形(矢量要素),在其他Extension前启用。这个是基础插件,必须要安装的。二,postgis_raster对栅格数据的支持。安装过postgis后可直接启用该扩展,默认不启用。三,postgis_topology拓扑功能的支持。安装过postgis后可直接启用该扩展,默认不启用。四,postg...原创 2021-03-18 22:38:03 · 3538 阅读 · 1 评论 -
postgres数据库日常操作(用户的建立,数据库的建立,角色的权限,查询当前登陆用户,当前使用数据库)
postgres数据库日常操作(用户的建立,数据库的建立,角色的权限,查询当前登陆用户,当前使用数据库)postgres和MySQL比较类似也有许多的不同,对于权限的处理和基本信息查询与MySQL是大不相同的,首先就从引导符开始认识postgres吧。一,引导符的问题[postgres@centos7 ~]$ logout # 这个$是Linux的引导符,表示这个后面的命令都是普通用户所发起并执行的 [root@centos7 ~]# ...原创 2020-12-01 18:27:48 · 1633 阅读 · 1 评论 -
PostgreSQL 12.5+ PostGIS3.0 + SFCGAL1.3的离线编译安装
PostgreSQL 12.5+ PostGIS3.0 + SFCGAL1.3的离线编译安装 安装前的相关背景简介:PostgreSQ L 是一种对象-关系型数据库管理系统(ORDBMS ),也是目前功能最强大、特性最丰富和最复杂的自由软件数据库系统。它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产品开发项目之一,有着非常广泛的用户。PostGIS是在对象关系型数据库PostgreS...原创 2021-03-18 18:25:08 · 2149 阅读 · 12 评论 -
postgresql|数据库|【postgresql-12的基于pg_basebackup的主从复制部署】
postgresql数据库说实话是真心好用,但,想用好是比较困难的。那么,造成该数据库使用困难的是它的内置工具非常的多,并且整体优化是比较难的。比如,自带的备份工具pg_basebackup,pg_dump,pg_restore,而这些工具还需要配合WAL日志,当然,不使用归档日志WAL也可以满足一些备份需求,但对于数据的保护力度就可能不是太精确了。原创 2023-03-18 22:09:51 · 1914 阅读 · 0 评论 -
postgresql|【基于pg_basebackup命令的归档备份和恢复---热备冷恢复方式】
备份:使用pg_basebackup命令来进行备份,这个命令可以将postgresql的数据文件备份为两个压缩文件:base.tar和 pg_wal.tar。本别是数据文件和归档文件,恢复的时候,需要设置按照归档文件来恢复。那么,此种方式的备份可以备份自定义表空间。恢复:需要先把备份的压缩文件替换当前的数据文件,然后修改postgresql.conf,因为这个配置文件在data文件夹中,所以只能是在把base.tar解压到数据库当前数据位置,也就是我们默认初始化指定的数据保存位置data文件原创 2023-03-19 14:33:59 · 2495 阅读 · 0 评论 -
postgresql|数据库|pg数据库的文件系统详解---最全面的解析
postgresql是一个非常成熟的开源的功能强大的关系型数据库,总体来说,该数据库安装简单,使用复杂,复杂度在多个维度都会有所体现,比如,SQL语法的复杂(语法和MySQL,oracle等基本是一致的,这就比较友好了,虽然什么左联查,右联查,函数,触发器,约束等等内容非常多),文件系统的复杂(配置文件,标识文件,数据库文件等等),维护的复杂(备份和恢复工具比较多,需要根据自己的需求来仔细甄别,挑选,使用),优化的复杂(通常,数据库能跑起来是一件事,能高效率的,稳定的运行是另一回事)OK,那么,post原创 2023-03-26 09:36:41 · 2889 阅读 · 0 评论 -
postgresql |数据库 |数据库的常用备份和恢复方法总结
附注:建议每天对角色和表空间定义等全局对象进行备份,但不建议每天使用pg_dumpall来备份全库数据,因为pg_dumpall仅支持导出为SQL文本格式,而使用这种庞大的SQL文本备份来进行全库级别的数据库恢复时极其耗时的,所以一般只建议使用pg_dumpall来备份全局对象而非全库数据。原创 2023-03-13 16:18:39 · 7974 阅读 · 0 评论 -
postgresql|数据库|批量执行SQL脚本文件的shell脚本
对于数据库的维护而言,肯定是有SQL脚本的执行,例如,某个项目需要更新,那么,可能会有很多的SQL脚本需要执行,SQL脚本可能会包含有建表,插入数据,索引建立,约束建立,主外键建立等等内容。那么,几个SQL脚本可能无所谓,navicat或者psql命令行 简简单单的就导入了,但是有的时候脚本会比较多并且有的时候脚本会有执行顺序要求,很显然,navicat会力不从心的,一个个点SQL文件导入也会有遗漏的情况,因此,编写一个可自动执行SQL脚本文件的shell脚本就显得很有必要了。原创 2023-04-28 12:58:17 · 4170 阅读 · 0 评论 -
PostgreSql | 数据库 |自定义函数的设计和实现
数据库中的函数概念和开发语言,Java,PHP,Python等等类似,关系型数据库也是有函数的,函数指的是动态的封装一部分特定功能的集合。例如,查询任意表的记录数,复制指定表,这些函数可以简化一些数据库的操作那么,最为简单直观的方法还是用一些演示示例来说明函数是什么以及函数的特性。原创 2023-04-13 16:55:05 · 1423 阅读 · 0 评论 -
postgresql数据库|数据库实操----表复制详解
通常情况下,我们对数据库的增删改查的时候,为了确保数据的安全,需要备份表,那么,一种方法是通过pg_dump 这个工具做SQL转储操作,此方法比较复杂,麻烦,但十分的安全,可靠性也基本是百分百,但对于大表备份,十分耗时并且可能有锁表的情况发生,另一种常用方法是复制原表,当表数据不是很大的时候,此方式非常方便,快捷。原创 2023-03-29 18:41:52 · 3216 阅读 · 0 评论