首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【DB宝60】PG12高可用之1主2从流复制环境搭建及切换测试

一、架构介绍 1.1、流复制简介 PostgreSQL在9.x之后引入了主从流复制机制,所谓流复制,就是备服务器通过tcp流从主服务器中同步相应数据,主服务器在WAL记录产生时即将它们以流式传送给备服务器...√ walsender进程是用来发送WAL日志记录,用于主库发送WAL日志记录至从库 √ walreceiver进程是用来接收WAL日志记录,用于从库接收主库WAL日志记录 √ startup进程用于从库...Apr 22 10:52 postgresql.auto.conf -rw------- 1 postgres postgres 26756 Apr 22 10:52 postgresql.conf...11:50:51.998328+00 pg_stat_replication是一个视图,主要用于监控一个基于流设置,在这个系统视图中每个记录只代表一个slave。...• replay_lsn: 这是slave上重放最后事务日志位置。已重放了多少WAL,因此对查询可见? • sync_priority: 这个字段是唯一和同步复制相关

3K30

从 Oracle 到 PostgreSQL :从 Uptime 到数据库实例运行时间

19 05.25.47.109129 PM +08:00 注意,dual 表是Oracle中特殊存在,而 PostgreSQL 函数不需要这样依托直接返回了结果。...------------------------------- 2019-05-22 18:02:35.013766+08(1 row) 在 PostgreSQL 中还有一个有趣函数 age,可以用来计算年龄...在 PostgreSQL 中,可以通过 epoch(即特定时点 1970-01-01 00:00:00 UTC)为起点进行计算。...同样是非常重要,在 SYS 用户 SMON_SCN_TIME字典中记录中 Unix Time 和 Date 时间对应,TIME_MP 和 TIME_DP 两个字段记录就是这样信息,这些信息在恢复时非常重要...------------------------ 2019-05-22 18:13:08+08 注意到转换时间和 Oracle 记录 TIME_DP相差了 8 个小时,这是什么原因呢?

1.2K20
您找到你想要的搜索结果了吗?
是的
没有找到

从 Oracle 到 PostgreSQL :从 Uptime 到数据库实例运行时间

PostgreSQL 中,同样可以通过查询得到类似的效果: 1 select pg_postmaster_start_time()as START_SINCE, 2 date_part('day...17:25:47 8 22-MAY-19 05.25.47.109129 PM +08:00 注意,dual 表是Oracle中特殊存在,而 PostgreSQL 函数不需要这样依托直接返回了结果...在 PostgreSQL 中,可以通过 epoch(即特定时点 1970-01-01 00:00:00 UTC)为起点进行计算。...,UnixTime 同样是非常重要,在 SYS 用户 SMON_SCN_TIME字典中记录中 Unix Time 和 Date 时间对应,TIME_MP 和 TIME_DP 两个字段记录就是这样信息...3 ------------------------ 4 2019-05-22 18:13:08+08 注意到转换时间和 Oracle 记录 TIME_DP相差了 8 个小时,这是什么原因呢

95220

【DB宝72】pgpool-II和pgpoolAdmin使用

+负载均衡+内存查询缓存功能 4.4.1、先关闭内存查询缓存 4.4.2、测试读写分离+负载均衡 4.4.3、开启内存查询缓存 一、简介 之前发布过2篇有关PG中主从流复制文章...Apr 22 10:52 postgresql.auto.conf -rw------- 1 postgres postgres 26756 Apr 22 10:52 postgresql.conf...在这个系统视图中每个记录只代表一个slave。因此,可以看到谁处于连接状态,在做什么任务。pg_stat_replication也是检查slave是否处于连接状态一个好方法。...它不同于以上查询缓存,因为基于内存查询缓存会快很多,因为缓存存储于内存中。另外,如果缓存事小了,你不需要重启 pgpool-II 因为相关表已经得到更新了。...* from test,但其实记录只有1条(select_cnt),其实数据是从缓存中拿到

3K20

30s到0.8s,记录一次接口优化成功案例!

' AND '2024-01-09 00:00:00.0'; 表结构(Postgresql) 字段名 数据类型 描述 id serial 主键,自增 create_time timestamp(6)...为了解决这个问题,我们尝试了将200万行数据转换为单行返回,使用PostgreSQLarray_agg和unnest函数来优化查询。 第一次遇到Mybatis查询返回导致接口速度慢问题。...要将 PostgreSQL查询 programhandleidlist 字段(假设这是一个数组类型)所有元素拼接为一行,您可以使用数组聚合函数 array_agg 结合 unnest 函数。...-09 00:00:00.0' ) sub; 在这个查询中: unnest(programhandleidlist) 将 programhandleidlist 数组展开成多行。...其他代码 ... // 使用缓存获取昨天命中率 double hitRate = cacheManager.getCache(YESTERDAY_HIT_RATE_CACHE).get

4810

Linux 上安装 PostgreSQL

pg_hba.conf 记录 7 [root@slaver1 ~]# 由于这里需要设置可以远程链接,将127.0.0.1都改成自己ip地址,vim /var/lib/pgsql/10/data/pg_hba.conf...00:00:00 postgres: wal writer process 22 postgres 86977 86970 0 11:23 ?...00:00:00 grep --color=auto postgres 26 [root@slaver1 ~]# 然后使用命令行方式连接postgresql数据库,如下所示: 1 [root...用户映射文件为pg_ident.conf,这个文件记录着与操作系统用户匹配数据库用户,如果某操作系统用户在本文件中没有映射用户,则默认映射数据库用户与操作系统用户同名。...Ident 认证失败)原因是什么了,是因为自己linux用户没有和postgresql匹配用户,才导致出现错误,其实这里根据上面的描述有好几种解决方法,由于postgresql数据库会默认生成一个名为

6.3K10

PostgreSQL从小白到高手教程 - 第44讲:pg流复制部署

第三行参数:变成主库后需要清空归档日志。第四行参数:把备库变成read-only transaction模式,不允许进行写操作。允许查询。这一点非常好。...1.从最后一个检查点开始扫描老集群WAL日志,在该检查点之前,新集群时间线历史从老集群被创建出来。对于每一个WAL记录,做一个数据块被触及记录。...七、其它配置7.1、正常情况下备库会尽快恢复来自于主服务器 WAL 记录。但是有时候备库复制延迟一段时间,它能提供机会纠正数据丢失错误。...八、提高主库可用性和故障处理处于同步复制备用服务器发生故障并且不再能够返回ACK响应,主服务器仍将继续永远等待响应。因此,无法提交正在运行事务,也无法启动后续查询处理。...= 0log_error_verbosity = verboselog_statement = all经过测试,发现把日志目录存放在$PGDATA/pg_log下,能够记录内容很多,经过观察发现pg

27810

进阶数据库系列(十三):PostgreSQL 分区分表

主表与分区表属于一对多关系,也就是说,一个主表包含多个分区表,而一个分区表只从属于一个主表 数据库表分区优势 在特定场景下,查询性能可以极大提高,尤其是当大部分经常访问数据记录在一个或少数几个分区表上时...4.内置分区表内部实现使用了继承。 5.如果UPDATE语句记录违反当前分区键约束则会报错,UPDAET语句记录目前不支持跨分区情况。...这里数据仍会显示在父表中,但是实际上父表仅仅作为整个分区表结构展示,实际插入记录是保存在子表中。如下图所示。 设置分表约束前,查询效率。...在执行查询时,PostgreSQL默认将会把查询条件应用到该表结构所有分区上,因为PosgreSQL不知道这些分区表表名和表内容关联性。...:00:00' and happen_time <= '2020-09-30 23:59:59'); 建议对每个分区表增加一个特定约束,以防止全表查询扫描查询时间过长。

1.9K21

Postgresql总结几种HA部署方式

WAL 记录数。...如果从主服务器synchronous_standby_names优先列表中选中该后备服务器作为一个同步后备,将会根据来自该后备服务器和其他同步后备回应消息来决定何时释放正在等待确认提交记录被收到事务...remote_apply导致每一次提交都会等待,直到当前同步后备服务器报告说它们已经重放了该事务,这样就会使该事务对用户查询可见。在简单情况下,这为带有因果一致性负载均衡留出了余地。...不过,在使用异步复制时,在所有未解决WAL 记录被传输到当前连接后备服务器之前,服务器将不会完全关闭。...remote_write导致每次提交都等待后备服务器已经接收提交记录并将它写出到其自身所在操作系统的确认,但并非等待数据都被刷出到后备服务器上磁盘。

1.3K40

PostgreSQL体系架构介绍

PostgreSQL所有数据库对象都由各自对象标识符(OID)进行内部管理。例如,数据库OID存储在pg_database系统表中,可以通过下面的语句进行查询。...这个日志一般是记录服务器与DB状态,比如各种Error信息,定位慢查询SQL,数据库启动关闭信息,发生checkpoint过于频繁等告警信息,诸如此类。该日志有.csv格式和.log。...② 重做日志(pg_xlog)    pg_xlog 这个日志是记录PostgresqlWAL信息,默认存储在目录$PGDATA/pg_wal/,是一些事务日志信息(transaction log)...相关配置参数如下:③ BgWriter后台写进程    BgWriter是PostgreSQL中在后台将脏页写出到磁盘辅助进程,引入该进程主要为达到如下两个目的:    首先,数据库在进行查询处理时若发现要读取数据不在缓冲区中时要先从磁盘中读入要读取数据所在页面...⑤ PgArch归档进程    从PostgreSQL 8.x开始,有了PITR(Point-In-Time-Recovery)技术,该技术支持将数据库恢复到其运行历史中任意一个有记录时间点;PITR

2K60

PG复制和自动故障转移--2

18 00 09 75 6a 79 04 00 00 00 00 00 00 00 |.....ujy........| 00000140 | 22 00 00 00 c4 04 00 00 00...这第二台服务器(也称为备用服务器)然后成为主PostgreSQL服务器热备份。备用数据库也可以配置为只读副本,它还可以提供只读查询。这称为热备份。...基于日志传送复制 -- 块级 流式复制改进了日志传送过程。无需等待WAL切换,而是在生成记录时发送记录,从而减少复制延迟。另一个改进是备用服务器将使用复制协议通过网络连接到主服务器。...WAL sender是运行在主服务器上另一个进程,负责在生成 WAL 记录时将其发送到备用服务器。...WAL receiver将 WAL 记录保存在 WAL 中,就好像它们是由本地连接客户端客户端活动生成一样。

60610

解读年度数据库性能:PostgreSQL日志文件和数据加载

(超过多长时间sql) log_connections = on 记录checkpoint操作 log_disconnections = on 记录会话断开操作 log_duration = on 记录...oracle可以用外部表方式将alert日志载入到数据库中用SQL来查看。PG可以用copy命令将csv日志载入到数据库中用SQL来查看。这种方式都可以很方便得用sql来查询想要日志内容。...这种方式有点是显而易见,就是可以很容易得用SQL来查询和过滤日志,pg日志文件可以截断分割成若干小文件,可以载入自己需要日志。而Oraclealert通常会很大。...31 00:00 postgresql-2019-05-31_000000.log -rw------- 1 pg12 pg12 4545 May 31 00:37 postgresql-2019-...60,之前记录没有被覆盖,我们可以一直使用该表,可以用sql来查看sql,数据库,登录时间等等所有日志。

86130

解读年度数据库性能:PostgreSQL日志文件和数据加载

oracle可以用外部表方式将alert日志载入到数据库中用SQL来查看。PG可以用copy命令将csv日志载入到数据库中用SQL来查看。这种方式都可以很方便得用sql来查询想要日志内容。...这种方式有点是显而易见,就是可以很容易得用SQL来查询和过滤日志,pg日志文件可以截断分割成若干小文件,可以载入自己需要日志。而Oraclealert通常会很大。...pg12 pg12 0 May 31 00:00 postgresql-2019-05-31_000000.log -rw------- 1 pg12 pg12 0 May 31 00:00...31 00:00 postgresql-2019-05-31_000000.log -rw------- 1 pg12 pg12 4545 May 31 00:37 postgresql-2019-05...60,之前记录没有被覆盖,我们可以一直使用该表,可以用sql来查看sql,数据库,登录时间等等所有日志。

94120

Postgresql10离线安装

1、在很多时候,服务器不能联网,需要离线安装,下面是Postgresql10离线安装步骤: 首先进入官网:https://www.postgresql.org,然后找到Download下载 ?...| 5.7 MB 00:00:09 22 23 依赖关系解决 24 25 ========================================================...:00:01 ETA 37 postgresql10-libs-10.16-1PGDG.rhel7.x86_64.rpm 公钥尚未安装 38 postgresql10-libs-10.16-1PGDG.rhel7...) 19 20 postgres=# 修改postgresqlpostgres账号密码,自己一定要记住这个密码,如下所示: 1 postgres=# 2 postgres=# ALTER USER...10版本,需要注意,安装完成数据库,是不能远程访问,要做一些权限设置: 首先,需要查找文件postgresql.conf,如下所示: 1 [root@slaver1 psql10]# 2 [root

1.3K10

PostgreSQL VS ORACLE AWR or PGBADGER PGCLUU

故事从PG查询说起-- PostgreSQL 查询,Slow Query , 今天在群里面看到一个小哥提交POSTGRESQL 语句,说是从昨天下午运行语句,到今天上午还没有跑出来,我了一眼...首先提及一个问题,PG如何来抓慢查询,这是突然想到MYSQL查询抓取,其实在这里,PG查询记录有点类似MYSQL,但又不完全一样。...PostgreSQL 小本本如何来设置 ONE , 打开你log 记录过滤器,在postgresql.conf中找到 log_min_duration_statement = 慢查询容忍时间...在调整好你LOG 记录后,PG会如实给你开始记录, 但马上应该有人会反应出,你这个有问题,你看看人家 MYSQL记录,慢查询, 错误日志,是分开,你这个都在一起看上去怎么那么乱。...下面可能是大家关心查询问题,PostgreSQL AWR (PGBADGER) 详细展示了慢查询信息,下图,(里面有一些超过我设定3秒语句,例如一次性插入 10000000 一千万数据

1.2K30

进阶数据库系列(六):PostgreSQL 数据类型与运算符

应根据实际需要选择最适合类型,以在查询效率和存储空间上有所平衡。 浮点数类型 实际工作中很多地方需要用到带小数数值,PostgreSQL使用浮点数来表示小数。...每种日期时间类型都有合法取值范围,超出范围时系统会将"零"插入数据记录中。 时间类型 时间类型是TIME和TIMEwith time zone,默认情况下为不带时区(即:TIME)。...带时区输入格式为:2019-03-22 4:05:06 -8:00 INTERVAL类型 INTERVAL类型输入格式如下: quantity unit [quantity unit…] [direction...']], ARRAY[[111,122],[211, 222]]); --使用ARRAY构造器 数组类型数据查询 和其他语言一样,PostgreSQL中数组也是通过下标数字方式进行访问,只是PostgreSQL...SQL语句及查询结果如下: SELECT pay_by_quarter[2:3],schedule[1:2][1:1] FROM array_tmp; 复合类型 PostgreSQL复合类型描述一行或者一条记录结构

2.6K31

拉链表实现及使用

一、概念 历史拉链表,就是记录一个事务从开始一直到当前状态所有变化信息,拉链表可以避免按每一天存储所有记录造成海量存储问题,同时也是处理缓慢变化数据一种常见方式。...假设企业拥有1000万会员信息,每天有20万会员资料变更,我们需要记录所有会议历史变化记录,并至少保留两年,该怎么办?...:00 (3 rows) –执行函数,传入今天时间,处理昨天数据 select * from fn_userinfo_zipper(‘2019-11-13’); –查看拉链表数据 postgres...11-13 00:00:00 | 2999-12-31 00:00:00 –更新后数据 (5 rows) –拉链表使用 1,如果要查询最新数据,那么只要查询失效时间为 2999-12-31 数据即可...returns void as $$ /* 本功能是将原数据表中 新增数据、修改、删除记录到拉链表中 invalid_date 设定为 2999-12-31 本函数传入值为时间,具体为今天执行昨天数据

60320
领券