POSTGRCSQL - 技术教程文章

PostgreSQL 初步安装【代码】【图】

服务器:centos客户端:windows(pgAdmin)1、服务器yum安装 地址:https://www.postgresql.org/download/linux/redhat/  选择对应要安装的版本,服务器版本后自动会给出地址 dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm dnf -qy module disable postgresqldnf install postgresql12dnf install postgresql12-server/usr/pgsql-12/bin/postgresql-12-s...

操作指南:通过Rancher在K8S上运行PostgreSQL数据库【代码】【图】

通过Rancher Kubernetes Engine运行高可用 PostgreSQL 这篇是我们关于在Kubernetes上运行PostgreSQL系列文章的其中一篇。下面是相关文章和链接。在亚马逊AWS Elastic Container Service for Kubernetes (EKS) 上运行高可用PostgreSQL: (https://portworx.com/postgresql-amazon-eks/) 在微软Azure Kubernetes Service (AKS) 上运行高可用 PostgreSQL: (https://portworx.com/ha-postgresql-azure-aks/) 在Google Kubernetes ...

【Hadoop】关于Sqoop导出数据到postgresql时schema的设置问题【代码】【图】

说明 使用sqoop导出导入数据非常的方便,但是对于postgresql(简称PG库)时就碰到了一个问题,pg库是三层结构的database——schema——table。如果想导入到某一个模式下,那就需要指定模式才可以。但是sqoop如何指定pg库的模式? 解决办法 碰到问题首先要看文档才对的。文档这里已经指出如何指定pg库的schema了。官方文档地址 文档已经说了,如果向指定schema需要添加-- --schema <name> 但是要注意的是必须在命令行的 !!!!最后!...

PostgreSQL完全刷缓存补丁【图】

本文及其附件以PostgreSQL协议发布 曾经有朋友问过如何把缓存清空,没有这个功能,测试的时候非常不方便。 我做了一个补丁抛砖引 本文及其附件以PostgreSQL协议发布 曾经有朋友问过如何把缓存清空,没有这个功能,测试的时候非常不方便。 我做了一个补丁抛砖引玉,见附件。 提供两个SQL命令,尽量兼容Oracle: 1、ALTER SYSTEM CHECKPOINT;这个其实就是将 CHECKPOINT 封装到一个新语法,没什么改动。2、ALTER SYSTEM FLUSH SHARED_...

PostgreSQL缓存详述【图】

PostgreSQL的缓存/缓冲和其它数据库十分相像并且十分复杂。因为我有Oracle和mindset背景,所以我使用怎么样/什么时候/什么/为什么 目录: pg_buffercachepgfincorepg_prewarmdstatLinux ftools使用pg_prewarm预加载关系/索引:pgfincore 输出: 怎样刷新在操作系统缓存中的关系/索引 ?使用pg_prewarm的range功能预加载随机块. PostgreSQL 的详细介绍:请点这里PostgreSQL 的下载地址:请点这里 推荐阅读: Ubuntu下LAPP(Linux+Apach...

PostgreSQL缓存【代码】

pg_buffercache pgfincore pg_prewarm dstat Linux ftools 使用pg_prewarm预加载关系/索引: pgfincore 输出: 怎样刷新在操作系统缓存中的关系/索引 ? 使用pg_prewarm的range功能预加载随机块. 缓存.... !!, 它很难在一篇文章中解释清楚。但是我会努力分享我从Heikki, Robert Haas, Bruce Momjian那里学到的知识。在PostgreSQL里有两层:PG共享缓冲和操作系统页面缓存,任何读写都会通过操作系统缓存(迄今为止还没有其它途径)。Po...

PostgreSQL 缓存【图】

PostgreSQL physical storage 和 inter db 值得阅读 数据在物理介质上存储是以page的形式,大小为8K,如下:a tuple或an item是行的同义词 a relation是表的同义词 a filenode是表示对表或索引的引用的id。 a block和page是等于它们代表存储表的文件的8kb段信息。PostgreSQL会把table数据和index以page的形式存储在缓存中,同时在某些情况下(使用 prepared)也会把查询计划缓存下来,但是不会去缓存具体的查询结果。它是把查询...

redis集群——RPLR简笔(Redis+PostgreSQL+Linux(centos7)+RabbitMQ)

下载最新redis源码,解压(2016-05-12最新版本为3.2.0,3.0及以上才有官方集群) 2、进入源码根目录(此目录下的redis-stable目录),找到utils/create-cluster/下的create-cluster文件,此文件即redis集群管理例子文件,需要修改,因此复制到自己指定的目录进行修改(这里复制到本文件目录) 3、修改create-cluster文件: A.文件中 ../../src/redis-server 全部修改为 [根目录]/src/redis-server,可用相对,也可用绝对路径。此...

漫谈PostgreSQL的日志实现机制【图】

当所有已标记的ldquo;脏数据rdquo;写入磁盘之后,在日志中插入一条checkpoint日志,表示checkpoint已经完成,同时它还记录着ch 1、事务的概念 事务是从实际生活中引入数据库的一个概念,即事务内的操作,要么全做,要么全不做。就像银行转账一样,当从一个帐户转出一部分钱之后,就必须在另一个帐户中存入相同数目的钱,若是转出钱之后,事务中止了,没有在另一个帐户中存钱,那么钱就不翼而飞了,这就是事务的原子性。当事务完成后...

postgresql 日志管理-外部表【代码】

postgresql的日志管理比较灵活,可以设置多种格式log_destination=‘csvlog‘;调成csvlog后log_line_prefix无效;然后自己写个脚本就可以在数据库中方便的调用了,我这里用的是外部表方式,得装file_fdw扩展; 如果不装就可以考虑直接copy到数据库里去; #!/bin/bash #export PGDATA=/ssd/database/data5433 source ~/.bash_profile if [[ $1 = "" || $2 = "" ]]; then echo "usage create_log.sh databasename port" exit 1 el...

Postgresql——WAL(Write-AHead Logging,预写式日志)【代码】

WAL——Write-AHead Logging,预写式日志 1.目的: 保证数据库的可靠性 2.概述 Write-AHead Logging即WAL是一套保证数据完整性的标准。简要地说,WAL中心概念是数据文件(这里涉及到表和索引)修改必须在这些动作被记录之后,即 描述这些修改操作的日志记录被刷到永久存储中。如果我们遵循这个过程,我们不需要在每次事务提交时刷数据页到磁盘,因我我们知道一旦发生崩溃,我们可以使用日志回复数据库,任何还没有被应用到数据页面...

Postgresql数据库根据归档日志还原时间点

Postgresql数据库根据归档日志还原时间点 一、Postgresql数据库根据归档日志还原 www.2cto.com 1、备份运行的data目录 # mv data data_bak 2、解压前天备份的全备到data目录下面 # tar -zxvf fullbackup20121031.tar.gz # mv usr/local/postrgresql-8.4.14/d Postgresql数据库根据归档日志还原时间点一、Postgresql数据库根据归档日志还原www.2cto.com 1、备份运行的data目录 # mv data data_bak 2、解压前天备份的全备到data...

PostgreSQL 通过归档日志定期增量同步数据

通过归档日志定期增量同步数据实验: 一、再次实验从归档持续同步的方式:1.修改主库,开启归档,将日志归档到从库:archive_mode = onarchive_command = ‘ssh 192.168.5.133 test ! -f /home/kingbase/test_fy/archive/%f && scp %p 192.168.5.133:/home/kingbase/test_fy/archive/%f‘wal_keep_segments = 1024max_wal_senders = 8 2.备库需要从主库拉取全量备份:pg_basebackup -D ./data -R -h 192.168.5.132 -p 54328 -U SYS...

postgresql数据库配置csv格式日志输出

postgresql数据库配置csv式日志输出 下面介绍postgresql数据库中关于csv式日志(pg中一种比较详细的日志输出方式)的设置方法。 1. 进入$PGDATA目录(pg的安装目录,根据具体情况名称有所区别)下找到配置文件postgresql.conf 2. 开启csvlog输出功能: #开启cspostgresql数据库配置csv格式日志输出 下面介绍postgresql数据库中关于csv格式日志(pg中一种比较详细的日志输出方式)的设置方法。 1.进入$PGDATA目录(pg的安装目录,根据具...

PostgreSQL安装日志【代码】

databases] testdb= host=127.0.0.1 port=5432 pool_size=50 dbname=testdb [pgbouncer] pool_mode = transaction listen_port = 6543 listen_addr = 0.0.0.0 auth_type = md5 auth_file = /home/postgres/pgbouncer/etc/users.txt logfile = /home/postgres/pgbouncer/log/pgbouncer.log pidfile = /home/postgres/pgbouncer/pgbouncer.pid unix_socket_dir = /home/postgres/pgbouncer/etc admin_users = pgadmin stats_users =...

PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(1)

在前面的章节中,我们已经理解了各种复制概念。这不仅仅是一个为了接下来将要介绍的东西而增强您的意识的理论概述,还将为您介绍大体的主题。 在本章,我们将更加接近实际的解决方案,并了解PostgreSQL内部是如何工作的,复制意味着什么。我们将看到所谓的事务日志(XLOG)做什么,以及它是如何运作的。XLOG在PostgreSQL复制机制中起着主要作用。理解这部分是如何工作的是必要的。 2.1 PostgreSQL如何写入数据 PostgreSQL的复制完全是...

PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(4)

2.4 调整检查点和XLOG 目前为止,这一章已经提供深入洞察PostgreSQL如何写入数据,一般来说,XLOG是用来干什么的。考虑到这方面的知识,我们现在可以继续并学习我们能做些什么来使我们的数据库在复制和单台服务器运行的两种情况更加有效的工作。 2.4.1 理解检查点 在本章中,我们已经看到在数据可能到其它地方之前,它已经被写入到了XLOG。问题是,如果XLOG从未被删除,显然,在没有填满磁盘的同一时间,我们不会永远写到XLOG中。 ...

PostgreSQL Replication之第二章 理解PostgreSQL的事务日志(5)

2.5 XLOG的内部结构 我们将使用事务贯穿本书,并让您在技术层面上更深地洞察事情是如果工作的,我们已经增加了这部分专门处理XLOG的内部工作机制。我们会尽量避免前往下降到C级,因为这将超出本书的范围,但我们会为您提供希望足够深的见解。 2.5.1 理解XLOG记录 对XLOG所做的更改是基于记录的。这意味着什么?让我们假设您在给一个表添加一行数据: test=# INSERT INTO t_test VALUES (1, ‘hans‘); INSERT 0 1 在这个例子中,我...

PostgreSQL 基于日志的备份与还原【代码】

:~$ psql psql (9.5.0)Type "help" for help.postgres=# CREATE DATABASE test;CREATE DATABASE 修改配置文件,开启日志备份,将写满的文件复制到archive文件夹下 vim /etc/postgresql/9.5/main/postgresql.conf wal_level = archivearchive_mode = onarchive_command = ‘ test ! -f /var/lib/postgresql/archive/%f && cp %p /var/lib/postgresql/archive/%f‘ 创建archive文件夹,并重启数据库服务 postgres@debian:~$ mkdir ar...

Postgresql日志收集【代码】

1.logging_collector = on/off ---- 是否将日志重定向至文件中,默认是off(该配置修改后,需要重启DB服务) DB安装完成,启动的服务进程如下[root@localhost ~]# ps -elf | grep postgres 0 S postgres 2385 1 0 80 0 - 66829 poll_s 12:41 ? 00:00:00 /opt/pg9.6/bin/postgres -D /mnt/pgdata 1 S postgres 2387 2385 0 80 0 - 66829 ep_pol 12:41 ? 00:00:00 postgres: checkpointer process ...

PostgreSQL构建流复制拉取日志的起始位置在哪里

WaitForWALToBecomeAvailable:if (!InArchiveRecovery)currentSource = XLOG_FROM_PG_WAL;else if (currentSource == 0)currentSource = XLOG_FROM_ARCHIVE;for (;;){int oldSource = currentSource;if (lastSourceFailed){switch (currentSource){case XLOG_FROM_ARCHIVE:case XLOG_FROM_PG_WAL://如果是备机,并且执行了promote或者存在TriggerFile文件则shutdown receive进程if (StandbyMode && CheckForStandbyTrigger()){Shu...

PostgreSQL 日志配置【代码】【图】

= on # 日志输出路径,可以是自定义绝对路径或相对于数据目录 PGDATA 的相对路径log_directory = ‘log‘# 文件名,可以带上格式字符串log_filename = ‘postgresql-%a.log‘# 当生成新的文件时,文件名已存在,则覆盖同名旧文件名log_truncate_on_rotation = on#设置日志记录内容,log_statement:none, ddl, mod, and all 默认是 none # None表示不记录,ddl记录所有数据定义命令,比如CREATE,ALTER,和DROP语句,# mod记录所...

PostgreSQL中的一些日志【代码】

1.Write Ahead Log(WAL日志)预写日志(WAL)是保证数据完整性的标准方法。在有关交易处理的大多数(如果不是全部)书籍中都可以找到详细说明。 简而言之,WAL的核心概念是,只有在记录了对这些更改之后,即在描述更改的日志记录已刷新到永久存储之后,才写入对数据文件(表和索引所在的位置)的更改。如果我们遵循此过程,我们不需要在每次事务提交时将数据页刷新到磁盘,因为我们知道如果发生崩溃,我们将能够使用日志恢复数据库:...

postgresql如何维护WAL日志/归档日志【代码】

. 参数max_wal_size/min_wal_size9.5以前: (2 + checkpoint_completion_target) * checkpoint_segments + 19.5:PostgreSQL 9.5 将废弃checkpoint_segments 参数, 并引入max_wal_size 和 min_wal_size 参数, 通过max_wal_size和checkpoint_completion_target 参数来控制产生多少个XLOG后触发检查点, 通过min_wal_size和max_wal_size参数来控制哪些XLOG可以循环使用。 2. 参数wal_keep_segments在流复制的环境中。使用流复制建好备...

postgresql的日志实现机制

1、事务的概念 事务是从实际生活中引入数据库的一个概念,即事务内的操作,要么全做,要么全不做。就像银行转账一样,当从一个帐户转出一部分钱之后,就必须在另一个帐户中存入相同数目的钱,若是转出钱之后,事务中止了,没有在另一个帐户中存钱,那么钱就不翼而飞了,这就是事务的原子性。当事务完成后,必须将其结果记录下来,不然就无从知道事务是已经发生还是尚未发生,这是事务的持久性。此外,事务还有隔离性和一致性。2、...

Postgresql 日志收集【代码】

26167 1 1 09:55 ? 00:00:00 /usr/lib/postgresql/9.5/bin/postgres -D /var/lib/postgresql/9.5/main -c config_file=/etc/postgresql/9.5/main/postgresql.conf postgres 26169 26167 0 09:55 ? 00:00:00 postgres: checkpointer process postgres 26170 26167 0 09:55 ? 00:00:00 postgres: writer process postgres 26171 26167 0 09:55 ? 00:00:00 postgres: wal writer process postgres 26172 26167 0 09:55 ? 00:00:00 ...

postgresql9.5.9相关的日志文件介绍

1.启用pg_log并配置日志参数log_destination = ‘csvlog‘logging_collector = onlog_directory = ‘pg_log‘log_filename = ‘postgresql-%Y-%m-%d_%H%M%S.log‘log_rotation_age = 1dlog_rotation_size = 100MBlog_min_messages = warning参数解释:log_directory = ‘/data/pgsql086/log‘这个参数只能在postgresql.conf文件中被设置。它决定存放数据库运行日志文件的目录。默认值是pg_log。可以是绝对路径,也可是相对路径(相...

Postgresql 数据库设置备份以及简单清理磁盘空间和wal日志的方法【代码】

1. 最近想简单的进行数据库的备份工作, 因为现在数据库主要是用的pg数据库 , 所以想到用文本的方式进行, 有清理了一下日志表的数据 这里一起记录一下. 先记录一下查看比较大的表的信息. 从网上找了下资料, 使用子查询的方式来查询表信息. 来源网页:https://www.cnblogs.com/ilifeilong/p/9244370.htmlSELECTtable_name,pg_size_pretty(table_size) AS table_size,pg_size_pretty(indexes_size) AS indexes_size,pg_size_pretty(...

Postgresql的日志配置

背景  公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开。经过排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日志太多(大约保留了大半年的日志在磁盘上没有被清理)。  我看了下pg的日志配置,发现基本都是用的默认配置,日志滚动没有开启,于是乎做了下相关配置优化后对pg进行重启,最后看了pg的日志滚动,恢复正常了。以下是我梳理的关于pg的日志...

如何解决 Windows 10 上安装 PostgreSQL 日志乱码的问题【代码】

日志乱码 2020-05-26 02:02:05.729 HKT [8100] 鏃ュ織: 鐢变簬缁熻鏀堕泦鍣ㄦ棤鍝嶅簲鑰屼娇鐢ㄦ棫鐨勭粺璁′俊鎭潵浠f浛褰撳墠鐨勭粺璁′俊鎭? 2020-05-26 02:30:05.439 HKT [3152] 閿欒: 鍦ㄥ瓧娈?"ownerid" 涓┖鍊艰繚鍙嶄簡闈炵┖绾︽潫解决方案打开配置文件 ~\data\postgresql.conf 修改 lc_messages = C