必看 | 阿里云RDS PostgreSQL 11:因你而来,值得拥有

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 7月4日-7日,PostgresConf.CN2019大会即将在北京香格里拉饭店举行。届时,来自阿里云数据库团队数位大咖将到会分享,欢迎大家共赴这场技术盛宴!

640.gif

作者:德歌,阿里云高级产品专家

7月4日-7日,PostgresConf.CN2019大会即将在北京香格里拉饭店举行。届时,来自阿里云数据库团队数位大咖将到会分享,欢迎大家共赴这场技术盛宴!

详细议程请见: PostgresConf.CN 2019大会议程重磅出炉。


正文

历经数月基于ECS和云盘重新构建,阿里云RDS PostgreSQL功能大改版,推出改版后的10, 11 ECS+云盘多可用区高可用版。

image.png

存储巨变:2.5万iops提升到100万iops
2TB提升到32TB

1、支持ESSD,最大可达100万IOPS,32TB容量,同时单位价格不变。

2、同时存储空间与计算规格完全解绑,你想怎么搭配就怎么搭配,4核规格也可以买32TB容量。

更加安全

1、支持存储云盘加密功能,提高了数据存储安全性

2、支持SSL链路,提高了数据传输安全性

3、支持更多风控点,有风险的操作都需要短信确认。提高了操作安全性

可靠性、可用性,用户说了算
支持了三种数据保护模式(最大保护,最高可用,最高性能)。用户可以更加业务在数据的可靠性、可用性之间进行权衡,选择对应的模式。可以不停业务在各个模式自建切换。

版本管理更贴心
支持了任意小版本管理

升级详细说明

1、主可用区可定义

支持主可用区选择,业务与数据库放在同一可用区,确保网络延迟最低。

实例发生切换后,如果与购买时选择的主可用区不一致,会发出告警,同时用户可以切回主可用区。

image.png

2、支持PG 10 11两个版本

目前只支持10,11。未来会快速的支持新版本,例如12。

image.png

3、支持SSD和ESSD双存储,存储与规格解绑

支持ESSD存储,最高可达100万IOPS

普通云盘最大6TB,ESSD最大32TB

同时存储空间和实例规格完全解绑,4核也能卖32T的空间了

image.png

4、数据存储更安全,支持云盘加密,支持BYOK

数据盘支持了全盘存储,加密KEY可以由用户提供,也可以由KMS服务生成。

image.png

使用方法:

① 选中可用区(香港),创建加密KEY。截至发稿时间,暂时只有香港REGION支持KMS加密。

https://kms.console.aliyun.com/cn-hongkong/key/list

image.png

可以创建KEY的别名例如rds_pg_key1,千万不要把加密RDS PG的KEY删掉,否则会导致RDS PG的数据无法解密,无法使用。

image.png

② 授权PostgreSQL请求获取访问您云资源的权限

链接:https://c.tb.cn/I3.ExwW

image.png

PostgreSQL请求获取访问您云资源的权限

下方是系统创建的可供PostgreSQL使用的角色,授权后,PostgreSQL拥有对您云资源相应的访问权限。

AliyunPostgreSQLInstanceEncryptionRole

描述:PostgreSQL默认使用此角色来访问KMS

权限描述:用于 PostgreSQL 服务实例加密角色的授权策略

③ 确认已授权 AliyunPostgreSQLInstanceEncryptionRole

https://ram.console.aliyun.com/roles

image.png

image.png

完成以上3步之后,就可以在购买实例时使用云盘加密。

5、支持只读锁定功能

例如,用户要做割接,迁移,或者要做一些维护任务时。想把数据库置为只读,避免有数据写入。

将实例设置为只读,可以确保不会有数据写入实例。同时还能继续为只读的业务提供服务。

image.png

6、支持任意小版本管理

只要是打包了的小版本,都可以升级、可以回退小版本。

例如有一些业务可能会限定小版本,有了版本管理的功能,再也不用担心回不到以前的版本了。

7、支持数据可靠性、可用性级别配置(保护模式配置)

RDS PG内核支持了自动降级和自动升级功能。

用户可选三种数据保护模式:

1、最大保护,主从复制采用全同步模式,确保主从切换时,数据0丢失(RPO=0)

2、最高可用,从库正常的情况下,采用同步复制模式。从库异常时,自动降级为异步模式,保证可用性。

这种模式确保尽可能的数据0丢失,降级后则与异步模式一样,主从切换如果发生在异步模式时,最多丢失60S。主从切换如果发生在同步模式时,数据0丢失。

3、最高性能,主从采用异步模式同步数据,主从切换如果发生在异步模式时,最多丢失60S

image.png

用户可以根据业务对数据库的实际需求选择几种模式。

8、健壮的架构

1、保证SLB的主节点与用户选择的主可用区一致,确保用户到SLB再到数据库主节点的网络链路最优。

2、云盘与实例主可用区一致,确保IO链路的延迟最低。

3、云盘快照备份,保证了备份的高效率。支持增量备份,最大可以支持32TB数据。

4、备份数据最终会上传到OSS集群,OSS集群与存储集群完全独立,确保了备份数据的冗余性,提供备份的可靠性。

image.png

9、SSL数据链路与存储加密 , 安全双管齐下

image.png

10、丰富的监控指标

image.png

tps、操作行数、连接、膨胀点

image.png

慢查询、长事务、2PC、空间使用

image.png

主从延迟,SLOT延迟、数据盘IOPS、数据盘吞吐、数据盘空间,inode 使用率

image.png

CPU、网络、内存

11、告警默认指标更加丰富有效

image.png

CPU使用率、inode使用率、iops使用率、平均活跃连接、磁盘使用率、连接使用率

12、备份更高效、省成本

由于使用了存储快照备份,所以

1、更快

2、更省空间(块级增量备份)

3、恢复更快

4、克隆更方便

image.png

13、克隆时可以更换可用区、更新磁盘类型(ssd、essd)

如果一开始使用的是SSD,想更换到ESSD,克隆时可以更换。

克隆时,还可以更换可用区、规格等信息。

image.png

14、用户可自定义参数,更加安全

虽然RDS PG 11的默认参数更加合理,但是为了满足用户定制化的需求,依旧会开放一些参数的设定。

筛选了用户最常见的自定义参数,同时对参数的可设置范围进行了安全限定,大幅度降低用户因为参数设置有误导致的问题。

image.png

image.png

image.png

可以连到数据库获取当前参数信息:

postgres=> select name,setting,unit from pg_settings where source <>'default';
                 name                 |                                  setting                                   | unit
--------------------------------------+----------------------------------------------------------------------------+------
 application_name                     | psql                                                                       | 
 archive_command                      |                                                                            | 
 archive_mode                         | on                                                                         | 
 archive_timeout                      | 300                                                                        | s
 auth_delay.milliseconds              | 3000                                                                       | ms
 auto_explain.log_analyze             | off                                                                        | 
 auto_explain.log_buffers             | off                                                                        | 
 auto_explain.log_format              | text                                                                       | 
 auto_explain.log_min_duration        | -1                                                                         | ms
 auto_explain.log_nested_statements   | off                                                                        | 
 auto_explain.log_timing              | on                                                                         | 
 auto_explain.log_triggers            | off                                                                        | 
 auto_explain.log_verbose             | off                                                                        | 
 auto_explain.sample_rate             | 1                                                                          | 
 autovacuum                           | on                                                                         | 
 autovacuum_analyze_scale_factor      | 0.05                                                                       | 
 autovacuum_freeze_max_age            | 1200000000                                                                 | 
 autovacuum_max_workers               | 5                                                                          | 
 autovacuum_multixact_freeze_max_age  | 1400000000                                                                 | 
 autovacuum_vacuum_cost_delay         | 0                                                                          | ms
 autovacuum_vacuum_cost_limit         | 10000                                                                      | 
 autovacuum_vacuum_scale_factor       | 0.02                                                                       | 
 autovacuum_work_mem                  | 418816                                                                     | kB
 bgwriter_delay                       | 10                                                                         | ms
 bgwriter_lru_maxpages                | 1000                                                                       | 
 bgwriter_lru_multiplier              | 10                                                                         | 
 checkpoint_completion_target         | 0.4                                                                        | 
 checkpoint_timeout                   | 1500                                                                       | s
 client_encoding                      | UTF8                                                                       | 
 config_file                          | /u01/pg5432/data/postgresql.conf                                           | 
 data_checksums                       | on                                                                         | 
 data_directory                       | /u01/pg5432/data                                                           | 
 deadlock_timeout                     | 1000                                                                       | ms
 default_transaction_deferrable       | off                                                                        | 
 effective_cache_size                 | 1572864                                                                    | 8kB
 effective_io_concurrency             | 0                                                                          | 
 enable_partitionwise_aggregate       | on                                                                         | 
 enable_partitionwise_join            | on                                                                         | 
 extra_float_digits                   | 0                                                                          | 
 hba_file                             | /u01/pg5432/data/pg_hba.conf                                               | 
 hot_standby                          | on                                                                         | 
 hot_standby_feedback                 | off                                                                        | 
 huge_pages                           | off                                                                        | 
 ident_file                           | /u01/pg5432/data/pg_ident.conf                                             | 
 idle_in_transaction_session_timeout  | 3600000                                                                    | ms
 jit                                  | off                                                                        | 
 jit_provider                         | llvmjit                                                                    | 
 lc_collate                           | C                                                                          | 
 lc_ctype                             | en_US.utf8                                                                 | 
 listen_addresses                     | *                                                                          | 
 lock_timeout                         | 0                                                                          | ms
 log_autovacuum_min_duration          | 0                                                                          | ms
 log_checkpoints                      | on                                                                         | 
 log_connections                      | off                                                                        | 
 log_destination                      | csvlog                                                                     | 
 log_disconnections                   | off                                                                        | 
 log_duration                         | off                                                                        | 
 log_error_verbosity                  | verbose                                                                    | 
 log_filename                         | postgresql-%Y-%m-%d_%H%M%S.log                                             | 
 log_lock_waits                       | on                                                                         | 
 log_min_duration_statement           | 5000                                                                       | ms
 log_rotation_age                     | 0                                                                          | min
 log_rotation_size                    | 102400                                                                     | kB
 log_statement                        | ddl                                                                        | 
 log_temp_files                       | 131072                                                                     | kB
 log_timezone                         | UTC                                                                        | 
 log_truncate_on_rotation             | on                                                                         | 
 logging_collector                    | on                                                                         | 
 maintenance_work_mem                 | 1048576                                                                    | kB
 max_connections                      | 500                                                                        | 
 max_logical_replication_workers      | 56                                                                         | 
 max_parallel_maintenance_workers     | 2                                                                          | 
 max_parallel_workers                 | 2                                                                          | 
 max_parallel_workers_per_gather      | 2                                                                          | 
 max_prepared_transactions            | 500                                                                        | 
 max_replication_slots                | 56                                                                         | 
 max_stack_depth                      | 2048                                                                       | kB
 max_standby_archive_delay            | 300000                                                                     | ms
 max_standby_streaming_delay          | 300000                                                                     | ms
 max_sync_workers_per_subscription    | 2                                                                          | 
 max_wal_senders                      | 64                                                                         | 
 max_wal_size                         | 16384                                                                      | MB
 max_worker_processes                 | 256                                                                        | 
 min_wal_size                         | 2048                                                                       | MB
 old_snapshot_threshold               | -1                                                                         | min
 pg_pathman.enable                    | on                                                                         | 
 pg_pathman.enable_auto_partition     | on                                                                         | 
 pg_pathman.enable_bounds_cache       | on                                                                         | 
 pg_pathman.enable_partitionfilter    | on                                                                         | 
 pg_pathman.enable_partitionrouter    | off                                                                        | 
 pg_pathman.enable_runtimeappend      | on                                                                         | 
 pg_pathman.enable_runtimemergeappend | on                                                                         | 
 pg_pathman.insert_into_fdw           | postgres                                                                   | 
 pg_pathman.override_copy             | on                                                                         | 
 pg_stat_statements.max               | 5000                                                                       | 
 pg_stat_statements.save              | off                                                                        | 
 pg_stat_statements.track             | top                                                                        | 
 pg_stat_statements.track_utility     | off                                                                        | 
 port                                 | 5432                                                                       | 
 random_page_cost                     | 1.1                                                                        | 
 rds_sync_replication_timeout         | 0                                                                          | ms
 server_encoding                      | UTF8                                                                       | 
 shared_buffers                       | 524288                                                                     | 8kB
 shared_preload_libraries             | pg_stat_statements,auth_delay,auto_explain,zhparser,timescaledb,pg_pathman | 
 ssl                                  | off                                                                        | 
 ssl_cert_file                        | server.crt                                                                 | 
 ssl_key_file                         | server.key                                                                 | 
 statement_timeout                    | 0                                                                          | ms
 superuser_reserved_connections       | 100                                                                        | 
 synchronous_commit                   | off                                                                        | 
 synchronous_standby_names            | standby1                                                                   | 
 tcp_keepalives_count                 | 10                                                                         | 
 tcp_keepalives_idle                  | 45                                                                         | s
 tcp_keepalives_interval              | 10                                                                         | s
 temp_file_limit                      | 16777216                                                                   | kB
 track_activity_query_size            | 1024                                                                       | B
 track_commit_timestamp               | off                                                                        | 
 track_functions                      | pl                                                                         | 
 track_io_timing                      | on                                                                         | 
 transaction_deferrable               | off                                                                        | 
 transaction_isolation                | read committed                                                             | 
 transaction_read_only                | off                                                                        | 
 unix_socket_directories              | .                                                                          | 
 unix_socket_permissions              | 0700                                                                       | 
 vacuum_cost_delay                    | 0                                                                          | ms
 vacuum_cost_limit                    | 10000                                                                      | 
 vacuum_defer_cleanup_age             | 0                                                                          | 
 vacuum_freeze_table_age              | 200000000                                                                  | 
 vacuum_multixact_freeze_table_age    | 200000000                                                                  | 
 wal_buffers                          | 2048                                                                       | 8kB
 wal_compression                      | on                                                                         | 
 wal_keep_segments                    | 0                                                                          | 
 wal_level                            | replica                                                                    | 
 wal_receiver_status_interval         | 1                                                                          | s
 wal_receiver_timeout                 | 30000                                                                      | ms
 wal_segment_size                     | 16777216                                                                   | B
 wal_writer_delay                     | 10                                                                         | ms
 work_mem                             | 4096                                                                       | kB
 zhparser.dict_in_memory              | off                                                                        | 
 zhparser.dicts_type                  | EXTRA                                                                      | 
 zhparser.extra_dicts                 | dict_extra.xdb                                                             | 
 zhparser.multi_duality               | off                                                                        | 
 zhparser.multi_short                 | off                                                                        | 
 zhparser.multi_zall                  | off                                                                        | 
 zhparser.multi_zmain                 | off                                                                        | 
 zhparser.punctuation_ignore          | off                                                                        | 
 zhparser.seg_with_duality            | off                                                                        | 
(147 rows)

15、增加了更多的风控点

控制台操作和API操作,和用户操作数据库一样,都有可能出现误操作,为了尽可能降低用户误操作带来的损失,我们增加了一些风控点。

在风控点的操作,都必须短信验证才能继续。

image.png

16、账号和数据库管理更加的人性化

1、允许在控制台创建任意个超级或普通账号。

2、允许在控制台锁定账号,例如因为员工离职,或者某些情况下要锁定账号而不是删除账号的功能。锁定的账号,账号OWN的对象还在,经过SQL授权可以继续被其他账号访问。

3、允许在控制台删除账号。

image.png

4、允许在控制台创建数据库,可以指定数据库的encodding, lc等信息。

image.png

17、支持丰富的插件

支持了非常丰富的插件,例如:

1.cube,用于多维向量分析,相似图像、相似向量特征值快速搜索。

2.rum,用于高级的全文检索、数组、文本搜索等。

3.dblink,跨库,跨实例(网络环境互通后支持)的访问。

4.tablefunc,行列变换。

5.timescaledb,时序数据高性能处理。

6.zhparser中文分词。

7.pg_pathman,高性能分区表插件。(PG 12版本开始,内置分区性能也很高。)

8.orafce,兼容ORACLE的包。

9.varbitx,用户画像插件。

10.postgis,最流行的GIS开源插件。

11.ganos,阿里自研,兼容POSTGIS,同时相比POSTGIS做了大量的功能和性能优化,目前免费使用,特别是在MOD领域,相比开源性能提升50倍以上。

postgres=> show rds_supported_extensions;
      rds_supported_extensions
------------------------------------
 plpgsql                           +
 pg_stat_statements                +
 btree_gin                         +
 btree_gist                        +
 citext                            +
 cube                              +
 rum                               +
 dblink                            +
 dict_int                          +
 earthdistance                     +
 hstore                            +
 intagg                            +
 intarray                          +
 isn                               +
 ltree                             +
 pgcrypto                          +
 pgrowlocks                        +
 pg_prewarm                        +
 pg_trgm                           +
 postgres_fdw                      +
 sslinfo                           +
 tablefunc                         +
 timescaledb                       +
 unaccent                          +
 fuzzystrmatch                     +
 pgstattuple                       +
 pg_buffercache                    +
 zhparser                          +
 pg_pathman                        +
 plperl                            +
 pltcl                             +
 "uuid-ossp"                       +
 orafce                            +
 pg_concurrency_control            +
 varbitx                           +
 postgis                           +
 postgis_sfcgal                    +
 postgis_topology                  +
  postgis_tiger_geocoder           +
 address_standardizer              +
 address_standardizer_data_us      +
 ogr_fdw                           +
  ganos_geometry_sfcgal            +
 ganos_geometry_topology           +
 ganos_geometry                    +
 ganos_networking                  +
 ganos_pointcloud_geometry         +
 ganos_pointcloud                  +
 ganos_raster                      +
 ganos_spatialref                  +
 ganos_trajectory                  +
 ganos_tiger_geocoder              +
 ganos_address_standardizer        +
 ganos_address_standardizer_data_us
(1 row)

postgres=> show shared_preload_libraries ;
                          shared_preload_libraries
----------------------------------------------------------------------------
 pg_stat_statements,auth_delay,auto_explain,zhparser,timescaledb,pg_pathman
(1 row)

有一些用户抱怨RDS PG的日志不友好,我们会在RDS PG上支持性能洞察,另外近期会推出log_fdw的插件,用户可以使用LOG_FDW将原始的CSV LOG取走。

Just do it

我们将来会基于这个架构继续演进,支持更多用户需要的功能,快速迭代新的版本。此外,支持更多的插件,网络特性(例如可通过FDW,EXTENSION等对接云端其他产品)等等。

总之,一切为了更好的为用户服务。

相关文章
|
19天前
|
缓存 运维 关系型数据库
数据库容灾 | MySQL MGR与阿里云PolarDB-X Paxos的深度对比
经过深入的技术剖析与性能对比,PolarDB-X DN凭借其自研的X-Paxos协议和一系列优化设计,在性能、正确性、可用性及资源开销等方面展现出对MySQL MGR的多项优势,但MGR在MySQL生态体系内也占据重要地位,但需要考虑备库宕机抖动、跨机房容灾性能波动、稳定性等各种情况,因此如果想用好MGR,必须配备专业的技术和运维团队的支持。 在面对大规模、高并发、高可用性需求时,PolarDB-X存储引擎以其独特的技术优势和优异的性能表现,相比于MGR在开箱即用的场景下,PolarDB-X基于DN的集中式(标准版)在功能和性能都做到了很好的平衡,成为了极具竞争力的数据库解决方案。
|
12天前
|
关系型数据库 MySQL Serverless
体验阿里云PolarDB MySQL Serverless集群
体验阿里云PolarDB MySQL Serverless集群
|
28天前
|
Cloud Native 关系型数据库 MySQL
《阿里云产品四月刊》—云原生数据仓库 AnalyticDB MySQL 版 新功能
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
1月前
|
SQL 关系型数据库 数据库
nacos 2.2.3版本 查看配置文件的历史版本的接口 是针对MySQL数据库的sql 改成postgresql后 sql语句报错 该怎么解决
在Nacos 2.2.3中切换到PostgreSQL后,执行配置文件历史版本分页查询出错,因`LIMIT 0, 10`语法不被PostgreSQL支持,需改为`LIMIT 10 OFFSET 0`。仅当存在历史版本时报错。解决方案是调整查询SQL以兼容PostgreSQL语法。
|
28天前
|
关系型数据库 MySQL 测试技术
《阿里云产品四月刊》—瑶池数据库微课堂|RDS MySQL 经济版 vs 自建 MySQL 性能压测与性价比分析
阿里云瑶池数据库云原生化和一体化产品能力升级,多款产品更新迭代
|
1月前
|
安全 关系型数据库 MySQL
本地项目无法连接阿里云服务器MYSQL---轻量应用服务器篇
本地项目无法连接阿里云服务器MYSQL---轻量应用服务器篇
31 0
|
2月前
|
关系型数据库 MySQL Java
项目从 MySQL 切换 PostgreSQL,踩了太多的坑!!!
底层自己操作数据库可能就无法修改源码了,只能修改数据库表字段类型了
47 1
|
2月前
|
关系型数据库 分布式数据库 数据库
【阿里云云原生专栏】云原生时代的数据库选型:阿里云RDS与PolarDB对比分析
【5月更文挑战第24天】阿里云提供RDS和PolarDB两种数据库服务。RDS是高性能的在线关系型数据库,支持MySQL等引擎,适合中小规模需求;而PolarDB是分布式数据库,具备高扩展性和性能,适用于大规模数据和高并发场景。RDS与PolarDB在架构、性能、弹性伸缩、成本等方面存在差异,开发者应根据具体需求选择。示例代码展示了如何通过CLI创建RDS和PolarDB实例。
696 0
|
5天前
|
弹性计算 应用服务中间件 Linux
阿里云服务器开放端口完整图文教程
笔者近期开发完成的服务端程序部署在阿里云的ECS云服务器上面,一些应用程序配置文件需要设置监听的端口(如Tomcat的8080、443端口等),虽然通过CentOs 7系统的的「防火墙」开放了对应的端口号,任然无法访问端口号对应的应用程序,后面了解到原来还需要设置云服务器的「安全组规则」,开放相应的端口权限,服务端的接口才能真正开放。
80 1
阿里云服务器开放端口完整图文教程
|
1天前
|
存储 域名解析 运维
阿里云轻量应用服务器82元与298元年解析与选择参考
目前,阿里云推出的两款特惠轻量应用服务器——82元1年的2核2G3M套餐和298元1年的2核4G4M套餐,吸引了众多用户的关注。本文将深入解析这两款套餐的具体配置、优势、应用场景及选购建议,以供参考。
阿里云轻量应用服务器82元与298元年解析与选择参考

热门文章

最新文章