关于postgresql流的信息-成都快上网建站

关于postgresql流的信息

PostgreSQL开源免费企业级数据库用着比较爽的地方有哪些?

1),PostgreSQL是通用型数据库。

创新互联建站专业为企业提供囊谦网站建设、囊谦做网站、囊谦网站设计、囊谦网站制作等企业网站建设、网页设计与制作、囊谦企业网站模板建站服务,十余年囊谦做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

PG有着丰富的数据类型(数值、字符、时间、布尔、货币、枚举、网络地址、JSONB等等)和索引类型( B-tree、Hash、GiST、SP-GiST 、GIN 和 BRIN等 )。可以存储和计算大多数场景的业务数据,如 ERP、交易系统、财务系统涉及资金、客户等信息,数据不能丢失且业务逻辑复杂,选择 PostgreSQL 作为数据底层存储,一是可以帮助您在数据一致性前提下提供高可用性,二是可以用简单的编程实现复杂的业务逻辑 。适合各种OLTP和部分OLAP场景。

2),PostgreSQL数据库包含许多第三方插件。

如PostGIS等可以直接在数据库里进行地理位置相关的gis类存储和运算(LBS地理位置相关业务等O2O场景),其他的插件如Pg_stat_statements、uuid-ossp、pg_trgm、btree-gist插件、 pgcrypto加密等插件 。

3),中小型企业快速搭建 数据仓库和数据分析平台(TB级别)

PostgreSQL 提供丰富的数据类型和强大的计算能力,能够帮助您更简单搭建数据库仓库或大数据分析平台,为企业运营加分。

4),冷热分离

针对流水类的大表,PG可以使用分区表,线上保留热数据, 历史 数据存放在分区表里或者OSS等冷数据平台,冷热分离。

5),公有云支持度高如阿里云、腾讯云、华为云等公有云都有对应的RDS-PG产品,开箱即用,并提供技术支持。

OLTP:事务处理是PostgreSQL的本行

OLAP:ANSI SQL兼容,窗口函数,CTE,CUBE等高级分析功能,任意语言写UDF,citus分布式插件

流处理:PipelineDB扩展,Notify-Listen,物化视图,规则系统,灵活的存储过程与函数编写

时序数据:timescaledb时序数据库插件,分区表,BRIN索引

空间数据:PostGIS扩展(杀手锏),内建的几何类型支持,GiST索引。

搜索索引:全文搜索索引足以应对简单场景;丰富的索引类型,支持函数索引,条件索引

NoSQL:JSON,JSONB,XML,HStore原生支持,至NoSQL数据库的外部数据包装器

数据仓库:能平滑迁移至同属Pg生态的GreenPlum,DeepGreen,HAWK等,使用FDW进行ETL

PostgreSQL部署 - 单机流复制

创建主备的环境变量文件, 因为是在同一台机上起两个PG实例, 环境变量要各自设置。

vi master.env

vi slave.env

新开一个shell终端(后续称为 terminal_master )

新开一个shell终端(后续称为 terminal_slave )

经过上面几步, 一个一主一备的集群就搭建好了, 下面开始验证流复制是否工作正常。

切换到 terminal_master 终端

切换到 terminal_slave 终端

一个false一个tree, 证明目前主备状态正常。

切换到 terminal_slave 终端

切换到 terminal_master 终端

切换到 terminal_slave 终端

DDL能顺利同步。

切换到 terminal_slave 终端

切换到 terminal_master 终端

切换到 terminal_slave 终端

切换到 terminal_master 终端

切换到 terminal_slave 终端

切换到 terminal_master 终端

主备切换完成, 且数据同步工作正常。

目前虽然工作正常, 但是角色是互换了的, 后续可以停掉 slave ,再做一次主备切换, 恢复成原始状态。

这个就作为练习了, 不再贴出操作步骤。

目前是靠手工切换主备的, 线上系统一般都要配置成自动切换, 这个时候就需要引入一些其他手段了, 譬如 patroni 之类的HA工具。

postgresql流复制能到不同的操作系统上吗

一般来说数据库的通讯是与操作系统无关的,但是主从复制一般是要求双方的环境及版本一致,否则会出一些奇怪的问题,建议你可以自己测试一下(如果没有真机也可以用虚拟机来测试)

postgresql流复制 怎么验证备份

PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰常有限。所以一直寻找完美的备份恢复方案。

梦里寻他千百度,伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_dump,psql。这两个指令 在数据库的安装目录下,比如我自己本地安装的,路径形如:C:\Program Files\PostgreSQL\9.5\;然后进入到bin文件夹,会看到不少的exe文件,这就是PostgreSQL内置的工具了。里面会找到 pg_dump.exe,psql.exe两个文件。我们怎么用他们?

用法:

备份数据库,指令如下:

pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak

开始-运行-cmd 弹出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:

cd C:\Program Files\PostgreSQL\9.0\bin

最后执行备份指令:

pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak

指令解释:如上命令,pg_dump 是备份数据库指令,164.82.233.54是数据库的ip地址(必须保证数据库允许外部访问的权限哦~),当然本地的数据库ip写 localhost;postgres 是数据库的用户名;databasename 是数据库名。 意思是导出到C:\databasename.bak文件里,如果没有写路径,单单写databasename.bak文件名,那么备份文件会保存在C: \Program Files\PostgreSQL\9.0\bin 文件夹里。

恢复数据库,指令如下:

psql -h localhost -U postgres -d databasename C:\databasename.bak(测试没有成功)

pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(测试成功)

指令解释:如上命令,psql是恢复数据库命令,localhost是要恢复到哪个数据库的地址,当然你可以写上ip地址,也就是说能远程恢复(必须保证 数据库允许外部访问的权限哦~);postgres 就是要恢复到哪个数据库的用户;databasename 是要恢复到哪个数据库。 的意思是把C:\databasename.bak文件导入到指定的数据库里。

以上所有的是针对windows而言的,如果在linux下,会不会有效?

在linux里依然有效。有一个值得注意的是:如果直接进入PostgreSQL的安装目录bin下,执行命令,可能会出现 找不到pg_dump,psql的现象,我们在可以这样:

备份:

/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename databasename.bak

恢复:

/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename databasename.bak


当前名称:关于postgresql流的信息
浏览路径:http://kswjz.com/article/dscisid.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流