PostgreSQL数据库学习资料
文章平均质量分 50
PostgreSQL数据库相关资料
auspicious航
无畏年少青春,迎风潇洒前行。
展开
-
PostgreSQL不停机迁移数据
通常涉及到数据迁移,常规操作都是停服务更新。不停机迁移数据是相对比较高级的操作。但在实际执行中,这三个步骤可能会有不一样的表现形式。原创 2024-02-06 16:41:46 · 911 阅读 · 0 评论 -
PG清理wal日志导致的数据丢失
在数据目录爆满的情况下,删除数据一定要小心,如果需要通过清理wal日志来临时解决问题,则需要通过pg_controldata查看最后的检查点位置来进行清理,不然像本例中直接删除,可能会删除检查点之后的wal日志,那样数据库无法正常开启,会有丢失数据的风险。原创 2024-01-03 21:42:48 · 632 阅读 · 0 评论 -
PostgreSQL的配置文件解析
日常中我们进行安装PostgreSQL后都需要对其进行配置基础配置,以便其能有效发挥出服务器的性能,下面是进行整理后的postgresql.conf配置文件的相关注释,方便大家对于各个属性进行熟悉。转载 2023-12-15 08:41:43 · 150 阅读 · 0 评论 -
PostgreSQL数据库切换到另一个模式下
它们被用于将数据库中的对象分组到逻辑上相关的集合中。我们可以将表、视图、函数等对象组织在不同的模式中。切换到不同的模式使我们能够在特定的上下文中执行操作。3. 连接到数据库:一旦启动了 psql,我们将进入到 PostgreSQL 的默认数据库中。其中 `schema_name` 是我们要切换到的模式名称。在 PostgreSQL 数据库中,我们可以切换到不同的模式,以便在不同的模式下执行操作。这将切换到指定的模式,并使所有后续的操作都在该模式下执行。如果我们不指定数据库名称,它将连接到默认数据库。原创 2023-12-12 14:44:27 · 2207 阅读 · 0 评论 -
简谈PostgreSQL的wal_level=logic
wal_level=logic` 是 PostgreSQL 中的一个配置选项,用于启用逻辑复制(logical replication)功能。逻辑复制是一种高级的数据复制技术,它允许您将变更(例如插入、更新和删除)从一个 PostgreSQL 数据库复制到另一个数据库,而不仅仅是将整个数据文件复制到另一个服务器。启用逻辑复制后,PostgreSQL 将在事务日志(WAL)中记录更改,并将更改发送给订阅者,让其按照相同的顺序应用更改。原创 2023-12-04 09:47:13 · 1884 阅读 · 0 评论 -
PostgreSQL数据库修改所有表的某种数据类型
将数据库中所有表的varchar数据类型修改成text的数据类型。先将所有的varchar数据类型查出来,行成拼接语句,将拼接语句复制到数据库中直接执行。PostgreSQL数据库修改所有表的某种数据类型。原创 2023-11-30 15:27:57 · 162 阅读 · 0 评论 -
PostgreSQL数据库复制槽管理
PostgreSQL数据库复制槽管理原创 2023-11-01 14:44:27 · 207 阅读 · 0 评论 -
PostgreSQL数据库中实现字段递增
接下来,您可以在表的字段中使用该序列。上述命令将使用序列 "my_sequence" 将 "id" 字段的默认值设置为下一个序列值。每次将新记录插入到表中时,该字段将自动获得递增的值。在 PostgreSQL 中,可以使用序列(sequence)来实现字段的递增。序列是一种特殊的对象,用于生成唯一的递增数字。需要注意的是,序列是数据库范围内的全局对象,可以在多个表中重复使用。首先,您需要创建一个序列对象。这将返回序列 "my_sequence" 的下一个值。如果您需要手动获取序列的下一个值,可以使用。原创 2023-10-07 11:04:41 · 785 阅读 · 0 评论 -
PostgreSQL数据库如何提高查询效率
使用合适的扩展插件:PostgreSQL提供了许多扩展插件,可以提供额外的功能和性能优化。例如,pg_stat_statements可以跟踪SQL语句的执行情况,pg_hint_plan可以指导查询计划的生成。避免使用全表扫描,可以通过添加适当的条件和使用合适的索引来改进查询计划。通过在经常被查询的列上创建合适的索引,可以加快查询速度。例如,调整shared_buffers和work_mem的大小,设置合适的并行度参数等。使用合适的数据类型:选择合适的数据类型可以减少存储空间的占用,并提高查询效率。原创 2023-10-07 09:48:47 · 577 阅读 · 0 评论 -
如何在PostgreSQL数据库中插入当前时间
要在PostgreSQL数据库中插入当前时间,可以使用NOW()函数。函数用作值,它将插入当前的日期和时间。在此示例中,假设您有一个名为。的表,其中包含一个名为。原创 2023-10-07 09:44:45 · 2516 阅读 · 0 评论 -
oracle的redo与postgreSQL的WAL以及MySQL的binlog区别
MySQL的binlog是一种用于记录数据库变更操作的事务日志。它可以用于数据恢复、增量备份和数据同步等场景。binlog有不同的记录格式可供选择,且需要配置和管理相关参数来控制其行为和保留策略。原创 2023-09-05 10:46:26 · 1354 阅读 · 0 评论 -
PostgreSQL数据库目录文件及其功能的详解
3. 日志文件(Log files):日志文件(通常以 .log 扩展名结尾)用于记录数据库的事务和故障恢复信息。7. 其他系统文件:除了以上文件和目录外,还有一些与 PostgreSQL 相关的其他系统文件,如 PID 文件(记录 PostgreSQL 服务器进程的进程 ID)、锁文件(用于控制并发访问)等。2. 数据文件(Data files):数据目录中的数据文件(通常以 .dat 扩展名结尾)包含了数据库中的实际数据。在 PostgreSQL 中,数据库的数据和元数据存储在各种文件和目录中。原创 2023-09-05 10:24:39 · 2911 阅读 · 0 评论 -
MySQL与postgreSQL数据库的区别
2. ACID 支持:MySQL和PostgreSQL都支持 ACID(原子性、一致性、隔离性和持久性)事务,但PostgreSQL对事务的支持更加全面和灵活。8. 大型社区和生态系统:PostgreSQL 拥有庞大的用户社区和活跃的开发者社区,用户可以从中获取帮助、分享经验和参与开源社区项目。它采用了各种性能调优技术,例如查询缓存、索引和存储引擎等,以提供高效的查询和响应时间。大型社区和生态系统:MySQL 拥有庞大的用户社区和活跃的开发者社区,用户可以从中获取帮助、分享经验和参与开源社区项目。原创 2023-09-05 10:22:29 · 398 阅读 · 0 评论 -
PostgreSQL数据库巡检脚本
变量为你的数据库连接信息和输出文件路径。运行脚本后,将会生成一个巡检报告文件,其中包含了数据库连接信息、表空间使用情况、数据库大小、表数量和大小、索引数量和大小以及最近的数据库备份等。同样,这只是一个基本的示例脚本,你可以根据具体需求进行扩展和定制,添加更多的巡检项和检查规则。原创 2023-08-02 13:54:26 · 559 阅读 · 0 评论 -
PostgreSQL数据库目录文件详解
usr/local/postgresql/log路径自定义,可在此配置数据库的各种日志,配置了数据库启动关闭记录日志。相当于oracle的 /app/oracle 软件安装目录,psql、pg_ctl等软件可执行的一些命令都在这下面。相当于oracle建库时指定的数据目录,数据库所需的参数文件,数据文件等均在这下面。在Linux系统安装完PostgreSQL数据库之后,从环境变量里看它涉及的目录。原创 2023-07-21 09:23:49 · 2063 阅读 · 0 评论 -
PostgreSQL数据库查看数据库的schema大小
------------------------------------查询PostgreSQL的Schema的大小语句-----------------------------------------------2.PostgreSQL数据库查看数据库的schema大小(不包括索引)------1.PostgreSQL数据库查看数据库的schema大小(包括索引)PostgreSQL数据库查看数据库的Schema大小。原创 2023-07-17 14:55:52 · 1391 阅读 · 1 评论 -
psql: error: connection to server on socket “/opt/postgresgl/pgdata/.s.PGSQL.5432“ failed
psql: error: connection to server on socket "/opt/postgresql/pgdata/.s.PGSQL.5432" failed: 没有那个文件或目录。PostgreSQL数据库psql连接报错connections on Unix domain socket “/opt/postgresgl/pgdata/.s.PGSQL.5432“?1.查看查看参数unix_socket_directories。重新postgreSQL服务,问题解决。原创 2023-06-13 18:52:12 · 3943 阅读 · 0 评论 -
PostgreSQL标准复制方案
手工Failover包括两个步骤:Fencing M(由重到轻:关机,关数据库,改HBA,关连接池,暂停连接池)与Promote S,这两个操作都可以通过脚本在很短的时间内完成。另一方面,当使用同步提交时,假设M出现故障,Failover至S,那么S也需要一个同步从库,以免在切换后立刻因为同步提交而Hang住,因此远程备库适合挂载到S上。变为新的从库,将O挂载到新的M上,将R挂载到新的S上;假设我们使用4单元的标准配置:主库,同步从库,延迟备库,远程备库,分别用字母M,S,O,R标识。恢复原有的拓扑结构。原创 2023-04-24 13:42:36 · 677 阅读 · 0 评论 -
Postgres逻辑复制详解
逻辑订阅者的行为与一个普通的PostgreSQL实例(主库)无异,逻辑订阅者也可以创建自己的发布,拥有自己的订阅者。逻辑订阅者的行为就是一个普通的PostgreSQL实例(主库),逻辑订阅者也可以创建自己的发布,拥有自己的订阅者。模式的复制标识还有一个限制,订阅端的表上的复制身份所包含的列,要么与发布者一致,要么比发布者更少。逻辑复制订阅可以作为同步复制的备库,备库的名字默认就是订阅的名字,也可以通过在连接信息中设置。相对应,物理复制使用精确的块地址与逐字节复制,而逻辑复制则允许对复制过程进行精细的控制。原创 2023-04-24 13:39:56 · 1699 阅读 · 0 评论 -
postgresql表空间学习
表空间pg_default是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。对应存储目录PADATA/base/ 表空间pg\_global用来存放系统字典表;一个表空间可以让多个数据库使用;而一个数据库可以使用多个表空间。一个表空间只属于一个数据库使用;而一个数据库可以拥有多个表空间。通过使用表空间,管理员可以控制一个PostgreSQL安装的磁盘布局。用一句话来讲:能合理利用磁盘性能和空间,制定最优的物理存储方式来管理数据库表和索引。转载 2022-11-16 16:34:57 · 221 阅读 · 0 评论 -
PostgreSQL数据库查询某张表是否有主键
在PostgreSQL数据库中如何判断一张表是否有主键,可以执行如下命令进行查询。需要替换SQL语句中的表名。原创 2022-09-28 10:58:15 · 3379 阅读 · 0 评论 -
Centos7设置postgresql数据库开机自启动
PostgreSQL的开机自启动脚本位于PostgreSQL源码目录的contrib/start-scripts路径下如果不知道具体的路径,可以用find命令进行查找。linux文件即为linux系统上的启动脚本。原创 2022-08-26 10:08:05 · 2031 阅读 · 0 评论 -
MySQL 与 PostgreSQL的区别
PostgreSQL,也称为 Postgres,是一种开源关系数据库,因其可靠性、灵活性和对开放技术标准的支持而享有盛誉。PostgreSQL 支持非关系和关系数据类型。它被称为当今可用的最兼容、最稳定和最成熟的关系数据库之一,并且可以轻松处理复杂的查询。时间点恢复 (PITR) 将数据库还原到特定时间点。使用 pgBackRest 等工具记录对数据库的所有更改的预写日志 (WAL)。用于创建和保留自定义子例程的存储过程。原创 2022-08-23 14:38:11 · 674 阅读 · 1 评论 -
Centos 7.9安装PostgreSQL14.4步骤
ADDRESSip地址,可以定义某台主机或某个网段,32代表检查整个ip地址,相当于固定的ip,24代表只检查前三位,最后一位是0~255之间的任何一个。trust是只要知道数据库用户名就能登录,建议不要在生产环境中使用。METHOD认证方式,常用的有ident,md5,password,trust,reject。TYPEpg的连接方式,local本地unix套接字,hosttcp/ip连接。(8)修改postgres用户的系统环境变量。......原创 2022-07-29 16:48:39 · 569 阅读 · 0 评论 -
如何查看PostgreSQL数据库的版本
1、SQL方式postgres=# show server_version; server_version ---------------- 12.3(1 row)postgres=# select version(); version -----------------------------原创 2022-05-12 09:49:41 · 3925 阅读 · 0 评论 -
PostgreSQL 预写日志的机制和配置的 PostgreSQL 文档
WAL配置有几个与WAL相关的配置参数会影响数据库性能。本节解释了它们的使用。检查点是事务序列中的点,在这些点处,可以保证堆和索引数据文件已使用在该检查点之前写入的所有信息进行了更新。在检查点时间,所有脏数据页都被刷新到磁盘,并且一个特殊的检查点记录被写入日志文件。(更改记录之前已刷新到WAL文件中。)在发生崩溃时,崩溃恢复过程会查看最新的检查点记录以确定日志中的点(称为重做记录),它应该从该点开始重做操作。在此之前对数据文件所做的任何更改都保证已经在磁盘上。因此,在检查点之后,不再需...原创 2022-05-11 15:07:31 · 290 阅读 · 0 评论 -
PostgreSQL数据库常用SQL语句
1 、查询pg中单张表的大小(不包含索引)select pg_size_pretty(pg_relation_size('schema.table_name'));2 、查询数据库中所有表的大小select relname, pg_size_pretty(pg_relation_size(relid))from pg_stat_user_tableswhere schemaname = 'public'order by pg_relati...原创 2022-04-21 09:35:51 · 3868 阅读 · 0 评论 -
PostgreSQL数据库查询没有主键的表
PostgreSQL数据库查询没有主键的表SELECT *FROM ( SELECT pc.relname , pc2.conname , pc2.contype FROM pg_catalog.pg_class pc INNER JOIN information_schema.tables t ON t.table_name = pc.relname LEFT JOIN pg_catalog.pg_constraint pc2 ON pc.oid = pc2.c原创 2022-04-21 09:32:46 · 2373 阅读 · 0 评论 -
PostgreSQL数据库查询表的大小
PostgreSQL数据库查询数据库中每张表的大小SELECT table_schema || '.' || table_name AS table_full_name, pg_size_pretty(pg_total_relation_size('"' || table_schema || '"."' || table_name || '"')) AS sizeFROM information_schema.tablesORDER BYpg_total_relation_size('"' ||原创 2021-11-03 14:45:28 · 6328 阅读 · 1 评论 -
阅读PostgreSQL系统目录
PostgreSQL系统目录是一个包含表和视图的模式,其中包含有关数据库内所有其他对象的元数据等。从系统目录中,我们可以发现各种操作是何时发生的,如何访问表或索引,甚至数据库系统是从内存中读取信息还是需要从磁盘获取数据。这对于数据库管理员对数据库进行管理有很大的帮助。本文将概述系统目录,并重点介绍如何阅读它,以及如何从中提取有用的信息。1 概述系统目录是关系型数据库存放模式元数据的地方,比如表和列的信息,以及内部统计信息等。PostgreSQL的系统目录就是普通表。通常情况下,不应该手工修改系统原创 2021-10-27 10:26:54 · 703 阅读 · 0 评论 -
PostgreSQL中的安全威胁
现代数据库存储着各种各样的信息。数据是非常有价值的,因为像地图位置、身份证、银行账号等信息都会存放在数据库中。因此数据库中数据的安全性至关重要。但是不幸的是,目前恶意软件,病毒和漏洞的规模巨大,数据库会面临巨大的安全威胁。PostgreSQL与其他软件一样容易受到误用,盗窃,未经授权的访问/控制等攻击。本文主要讨论几种PostgreSQL中的安全威胁以及可以采取哪些措施来防范这些安全威胁。1.CVE详细信息,报告和漏洞有这样一个网站,该站点在每个供应商的基础上发布了最新的安全威胁。P原创 2021-10-27 10:21:34 · 954 阅读 · 0 评论 -
PostgreSQL备份工具对比
数据库维护中备份和恢复重要性毋庸置疑,实现的方式也多种多样,各有千秋;参照ORACLE备份恢复工具, Postgresql也具备了类似的备份恢复能力。原创 2021-10-27 10:09:03 · 727 阅读 · 0 评论 -
PG备份恢复之pg_rman
数据库维护中备份和恢复重要性毋庸置疑,实现的方式也多种多样,各有千秋;参照ORACLE备份恢复工具, Postgresql也具备了类似的备份恢复能力。现对以下几种备份工具的简单对比:鉴于长期使用rman的原因,本文主要介绍pg_rman的部署及使用;1. 安装部署1)下载对应数据库版本及操作系统的安装包https://github.com/ossc-db/pg_rman/releases当前1.3版本是比较稳定的版本,从1.3.9开始支持PG12以上版本,目前最新支持PG1..原创 2021-08-27 10:08:06 · 655 阅读 · 0 评论 -
postgresql也很强大,为何在中国大陆,mysql成为主流,postgresql屈居二线呢?
PostgreSQL数据库能否可以替代MySQL数据库呢?PostgreSQL在很多地方超过了MySQL。比如:1、丰富的数据类,支持数组、字典、json、序列号2、强大的索引,易于sql调优3、强大的审计函数、PostgreSQL在许多地方,有MySQL无法比拟的优势。但是在中国大陆中,很多公司的核心业务库,都是MySQL数据库,PostgreSQL数据库则屈居二线,作为审计类的数据库来使用。那为什么不让PostgreSQL来扛大梁呢,而要用MySQL,PostgreSQL不合适么?原创 2021-02-26 13:54:19 · 1798 阅读 · 0 评论 -
linux 7.4安装PostgreSQL12.5步骤
PostgreSQL安装步骤(1)环境说明系统:Red Hat Enterprise 7.4软件:PostgreSQL 12.5(2)软件下载mkdir /data/postgres/data -pcd /datawget https://ftp.postgresql.org/pub/source/v12.5/postgresql-12.5.tar.gz(3)安装依赖包yum install -y perl-ExtUtils-Embed readline-dev.原创 2021-01-22 13:53:01 · 545 阅读 · 0 评论 -
postgres基本操作
postgres 基本操作登录$ psql (连接数据库,默认用户和数据库都是postgres)$ psql -U <user> -d <dbname> 数据库操作// 列举数据库,相当于show databases$ \l// 切换数据库,相当与use dbname$ \c <dbname>// 列举表,相当与show tables$ \dt// 查看表结构,...转载 2020-05-26 16:23:20 · 332 阅读 · 0 评论 -
Linux下PostgreSQL 11的安装
1、创建用户groupadd postgresuseradd -g postgres postgres2、创建目录mkdir /datacd /datamkdir postgresmkdir tools2,下载并安装cd /data/toolswget http://ftp.postgresql.org/pub/source/v11.6/postgresql-11.6...原创 2020-04-10 11:31:07 · 2363 阅读 · 0 评论