云服务器内容精选
-
准备测试数据 # 创建数据库 create database dump_database; # 登录dump_database数据库 \c dump_database # 创建表1并插入数据 create table dump_table(id int primary key, content char(50)); insert into dump_table values(1,'aa'); insert into dump_table values(2,'bb'); # 创建表2并插入数据 create table dump_table2(id int primary key, content char(50)); insert into dump_table2 values(1,'aaaa'); insert into dump_table2 values(2,'bbbb');
-
常见问题 如果在使用pg_dump导出时,报错用户权限不足。 解决方法: 检查是否使用的root用户导出,如果不是root用户则会报权限不足;如果使用root用户导出,仍然提示没有权限,请检查数据库版本,root用户执行pg_dump命令需要内核版本为支持root提权的版本,支持root提权版本情况见root用户权限说明。 将备份的文件导入到RDS for PostgreSQL目标数据库时发现control_extension等几个函数报错。 解决方法: 由于目标库中自带这些函数,因此该报错可以忽略。
-
订阅使用限制 为了确保使用Failover Slot,必须在发布端手工创建逻辑复制槽(Failover Slot),并通过create_slot = false关联已有复制槽,如下: CREATE SUBSCRIPTION sub1 CONNECTION 'host=192.168.0.1 port=5432 user=user1 dbname=db1' PUBLICATION pub_name with (create_slot = false,slot_name = FailoverSlot_name); 逻辑复制不会复制DDL变更,因此发布集中的表必须已经存在于订阅端上。 同一个数据库中,可以创建多个subscription,这些subscription可以来自一个或多个发布者。 订阅者的同一张表,不能接受来自同一个源的多个发布。 在创建subscription或者alter subscription时,可以使用enable来启用该订阅,或者使用disable暂停该订阅。 如果要完全删除订阅,使用DROP SUBSCRIPTION,注意,删除订阅后,本地的表不会被删除,数据也不会清除,仅仅是不在接收该订阅的上游信息。 如果订阅与复制槽相关联,就不能在事务块内部执行DROP SUBSCRIPTION。可以使用ALTER SUBSCRIPTION取消关联复制槽。 删除订阅可参考以下步骤: 在订阅端查询订阅关联的的复制槽。 select subname,subconninfo,subslotname from pg_subscription where subname = 'sub2'; subname为订阅者名称。 subconninfo为连接远程主机信息。 subslotname 为远程主机复制槽名称。 在订阅端执行ALTER SUBSCRIPTION取消关联复制槽并删除。 ALTER SUBSCRIPTION subname SET (slot_name = NONE); DROP SUBSCRIPTION subname; 在发布端删除关联的复制槽。 select pg_drop_replication_slot(' slot_name);
-
语法参考 发布 CREATE PUBLICATION用于创建发布,DROP PUBLICATION用于移除发布,ALTER PUBLICATION用于修改发布。 发布创建之后,可以通过ALTER PUBLICATION动态地向发布中添加或移除表,这些操作都是事务性的。 订阅 CREATE SUBSCRIPTION用于创建订阅,DROP SUBSCRIPTION用于移除订阅,ALTER SUBSCRIPTION用于修改订阅。 订阅创建之后,可以通过ALTER SUBSCRIPTION随时暂停与恢复订阅。移除并重建订阅会导致同步信息丢失,这意味着相关数据需要重新进行同步。 具体使用说明请参考以下官方文档,以PostgreSQL 13版本为例: 创建发布:https://www.postgresql.org/docs/13/sql-createpublication.html 删除发布:https://www.postgresql.org/docs/13/sql-droppublication.html 修改发布:https://www.postgresql.org/docs/13/sql-alterpublication.html
-
逻辑定义 发布可以被定义在任何物理复制的主服务器上。定义有发布的节点被称为发布者。发布是从一个表或者一组表生成的改变的集合,也可以被描述为更改集合或者复制集合。每个发布都只存在于一个数据库中。 订阅是逻辑复制的下游端。订阅被定义在其中的节点被称为订阅者。一个订阅会定义到另一个数据库的连接以及它想要订阅的发布集合(一个或者多个)。逻辑订阅者的行为与一个普通的PostgreSQL实例(主库)无异,逻辑订阅者也可以创建自己的发布,拥有自己的订阅者。
-
发布使用限制 发布目前只能包含表(即:索引,序列号,物化视图这些不会被发布),每个表可以添加到多个发布中。 一个publication允许有多个订阅者。 允许使用all tables发布所有表。 在同一个数据库中,可以创建多个publication,但是不能重名。已创建的publication可以通过查询pg_publication获取。 发布可以筛选所需的变更类型:包括insert、update、delete 和truncate的任意组合,类似触发器事件,默认所有变更都会被发布。 例如:发布表t1的update和delete操作。 CREATE PUBLICATION update_delete_only FOR TABLE t1 WITH (publish = 'update, delete') ; 复制标识:当发布了表的update, delete时,表必须设置复制标识(Replica Identity),如果设置了nothing,则执行update, delete时会报错。 表上的复制标识可以通过查阅pg_class.relreplident获取。 这是一个字符类型的“枚举”,标识用于组装 “复制标识” 的列:d = default ,f = 所有的列,i 使用特定的索引,n 没有复制标识。 表上是否具有可用作复制标识的索引约束,可以通过以下查询获取: SELECT quote_ident(nspname) || '.' || quote_ident(relname) AS name, con.ri AS keys, CASE relreplident WHEN 'd' THEN 'default' WHEN 'n' THEN 'nothing' WHEN 'f' THEN 'full' WHEN 'i' THEN 'index' END AS replica_identity FROM pg_class c JOIN pg_namespace n ON c.relnamespace = n.oid, LATERAL (SELECT array_agg(contype) AS ri FROM pg_constraint WHERE conrelid = c.oid) con WHERE relkind = 'r' AND nspname NOT IN ('pg_catalog', 'information_schema', 'monitor', 'repack', 'pg_toast') ORDER BY 2,3; 复制标识配置 表到复制标识可以通过ALTER TABLE进行修改。 ALTER TABLE table_name REPLICA IDENTITY { DEFAULT | USING INDEX index_name | FULL | NOTHING }; -- 具体有四种形式 ALTER TABLE t_normal REPLICA IDENTITY DEFAULT; -- 使用主键,如果没有主键则为FULL ALTER TABLE t_normal REPLICA IDENTITY FULL; -- 使用整行作为标识 ALTER TABLE t_normal REPLICA IDENTITY USING INDEX t_normal_v_key; -- 使用唯一索引 ALTER TABLE t_normal REPLICA IDENTITY NOTHING; -- 不设置复制标识 复制标识在实际使用中的注意事项 表上有主键,使用默认的default复制标识。 表上没有主键,但是有非空唯一索引,显式配置index复制标识。 表上既没有主键,也没有非空唯一索引,显式配置full复制标识(运行效率非常低,仅能作为兜底方案)。 其他所有情况,都无法正常完成逻辑复制功能。输出的信息不足,可能会报错。 特别需要注意:如果nothing复制标识的表纳入到逻辑复制中,对其进行删改会导致发布端报错。
-
实现原理 RDS for PostgreSQL跨区域容灾实现原理说明: 在两个数据中心独立部署RDS for PostgreSQL实例,通过RDS接口将生产中心RDS for PostgreSQL库中的数据同步到灾备中心RDS for PostgreSQL库中,实现RDS for PostgreSQL主实例和跨区域灾备实例之间的实时同步。使用该功能前,必须需要确认可以使用云连接服务完成跨区域网络连通。 图1 原理图
-
约束条件 主实例和灾备实例状态正常,主实例和灾备实例在不同云或不同区域上,且主实例为主备实例,灾备实例为单机实例。 主实例配置容灾能力成功后才能配置灾备实例容灾能力,否则容灾关系会建立失败。 灾备实例的规格要大于等于主实例的规格。 RDS for PostgreSQL 12及以上支持建立跨云或跨区域容灾关系。 不支持跨大版本建立跨云或跨区域容灾关系。 主实例和灾备实例的容灾关系已建立完成,才能进行灾备实例升主和查询容灾复制状态。 实施前确认需要搭建的主实例和灾备实例所在区域,处于云连接/虚拟专有网络服务已上线区域内。 灾备实例不支持PITR恢复和CBR快照备份功能,如需使用此功能,请在主实例上完成。
-
独享型实例测试列表 表1 CPU:内存=1:2 CPU(Core) 内存(GB) TPS QPS IOPS 2 4 373.53 7470.64 请参见关于IOPS 4 8 748.80 14976.09 8 16 1563.35 31266.94 16 32 1873.68 37473.69 表2 CPU:内存=1:4 CPU(Core) 内存(GB) TPS QPS IOPS 2 8 472.01 9440.15 请参见关于IOPS 4 16 994.46 19889.28 8 32 1806.45 36129.18 16 64 2551.62 51032.43 表3 CPU:内存=1:8 CPU(Core) 内存(GB) TPS QPS IOPS 2 16 463.48 9269.67 请参见关于IOPS 4 32 1103.30 22065.92 8 64 1996.53 39930.74 16 128 3778.67 75573.89
-
独享型实例测试列表 表1 CPU:内存=1:4 CPU(Core) 内存(GB) TPS QPS IOPS 2 8 437.45 8748.99 请参见关于IOPS 4 16 896.84 17936.72 8 32 1819.93 36398.77 16 64 2600.93 52018.73 32 128 5428.06 108572.08 64 256 12102.77 242079.30 表2 CPU:内存=1:8 CPU(Core) 内存(GB) TPS QPS IOPS 2 16 528.85 10577.07 请参见关于IOPS 4 32 1002.06 20041.23 8 64 1904.04 38080.91 16 128 3928.59 78572.08 64 512 7485.78 149732.20
-
独享型实例测试列表 表1 CPU:内存=1:4 CPU(Core) 内存(GB) TPS QPS IOPS 2 8 446.71 8934.16 请参见关于IOPS 4 16 986.52 19730.43 8 32 1766.29 35325.94 16 64 2352.55 47051.10 32 128 3731.23 74624.84 64 256 10929.30 218608.04 表2 CPU:内存=1:8 CPU(Core) 内存(GB) TPS QPS IOPS 2 16 534.28 10685.51 请参见关于IOPS 4 32 1102.75 22054.95 8 64 1998.56 39971.41 16 128 3821.89 76438.29 64 512 7633.83 152694.09
-
通用型实例测试列表 表1 CPU:内存=1:2 CPU(Core) 内存(GB) TPS QPS IOPS 1 2 185.21 3704.27 请参见关于IOPS 2 4 371.97 7439.43 4 8 821.00 16420.05 8 16 1517.95 30358.98 表2 CPU:内存=1:4 CPU(Core) 内存(GB) TPS QPS IOPS 2 8 431.72 8634.30 请参见关于IOPS 4 16 926.94 18538.85 8 32 1827.36 36547.27
-
资源规划 表1 资源规划 类别 子类 规划 备注 生产中心VPC VPC名称 vpc-pg-01 自定义,易理解可识别。 所属Region 华东-上海一 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区一 - 子网网段 192.168.10.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-2aa1 自定义,易理解可识别。 灾备中心VPC VPC名称 vpc-pg-02 自定义,易理解可识别。 所属Region 华北-北京四 选择和自己业务区最近的Region,减少网络时延。 可用区 可用区一 - 子网网段 192.168.20.0/24 子网选择时建议预留足够的网络资源。 子网名称 subnet-a388 自定义,易理解可识别。 生产中心RDS for PostgreSQL实例 RDS实例名称/ID rds-pg-01 04**in03 自定义,易理解可识别。 所属Region 华东-上海一 选择和自己业务区最近的Region,减少网络时延。 数据库版本 PostgreSQL 12 - 内网IP 192.168.10.117 - 实例类型 主备 生产中心实例为主备。 存储类型 SSD云盘 - 可用区 可用区一、可用区三 - 性能规格 独享型 2 vCPUs | 4GB - 磁盘容量 40 GB - 灾备中心RDS for PostgreSQL实例 RDS实例名称/ID rds-pg-02 5f**in03 自定义,易理解可识别。 所属Region 华北-北京四 选择和自己业务区最近的Region,减少网络时延。 数据库版本 PostgreSQL 12 - 内网IP 192.168.20.69 - 实例类型 单机 灾备中心实例为单机。 存储类型 SSD云盘 - 可用区 可用区一 - 性能规格 独享型 8 vCPUs | 16GB 灾备中心实例的CPU和内存规格要大于或等于主实例的规格。 磁盘容量 100 GB 灾备中心实例的磁盘容量要大于或等于主实例的磁盘容量。 父主题: RDS for PostgreSQL搭建跨区域容灾关系
-
RDS for PostgreSQL内核版本说明 RDS for PostgreSQL支持的社区版本的发布日期和版本更新说明如下表所示。 表1 内核版本发布记录 发布日期 支持的社区版本 版本更新说明 2024-03 16.2 15.6 14.11 13.14 12.18 主要更新以下内容: 引入16版本。 同步社区最新的代码,修复CVE-2024-0985等安全漏洞和功能性问题。 更多版本发布说明: 社区16版本发布说明 社区16.2、15.6、14.11、13.14、12.18版本发布说明 2023-12 15.5 14.10 13.13 12.17 11.22 主要更新以下内容: 同步社区最新的代码,修复CVE-2023-5868、CVE-2023-5869、CVE-2023-5870等安全漏洞和功能性问题。 更多版本发布说明: 社区15.5、14.10、13.13、12.17、11.22版本发布说明 2023-09 15.4 14.9 13.12 12.16 11.21 主要更新以下内容: 引入15版本。 同步社区最新的代码,修复CVE-2023-34917、CVE-2023-39418等安全漏洞和功能性问题。 更多版本发布说明: 社区15.4版本发布说明 社区14.9、13.12、12.16、11.21版本发布说明 2023-08 14.8 13.11 12.15 11.20 主要更新以下内容: 同步社区最新的代码,修复CVE-2023-2454、CVE-2023-2455等安全漏洞和功能性问题。 更多版本发布说明: 社区14.8、13.11、12.15、11.20版本发布说明 2023-04 14.6 13.9 12.13 11.18 10.23 主要更新以下内容: 支持pgl_ddl_deploy插件。 升级zhparser插件版本。 更多插件信息: 不同内核版本支持的插件不同,详见RDS for PostgreSQL引擎支持的插件。 2022-12 14.6 13.9 12.13 11.18 10.23 主要更新以下内容: 同步社区最新的代码,修复安全漏洞和功能性问题。 更多版本发布说明: 社区14.6、13.9、12.13、11.18、10.23版本发布说明 2022-07 14.4 13.7 12.11 11.16 10.21 主要更新以下内容: 引入14版本。 同步社区最新的代码,修复CVE-2022-1552等安全漏洞和功能性问题。 更多版本发布说明: 社区14.4版本发布说明 社区13.7、12.11、11.16、10.21版本发布说明 2022-04 13.6 12.10 11.15 10.20 9.6.24 主要更新以下内容: 同步社区最新的代码,修复安全漏洞和功能性问题。 更多版本发布说明: 社区13.6、12.10、11.15、10.20、9.6.24版本发布说明 2021-04 13.2 12.6 11.11 10.16 9.6.21 9.5.25 主要更新以下内容: 引入13版本。 同步社区最新的代码,修复安全漏洞和功能性问题。 支持Failover Slot,详见逻辑订阅故障转移(Failover Slot)。 更多版本发布说明: 社区13.2、12.6、11.11、10.16、9.6.21、9.5.25版本发布说明 2020-03 12.2 / 2019-12 9.5.19 / 2019-11 11.5 10.10 9.6.15 / 2019-08 11.4 9.6.13 9.5.17 / 2019-07 11.2 10.8 / 2019-06 9.5.15 / 2019-03 10.6 9.6.11 / 2019-01 11.0 / 2018-11 10.3 / 2018-03 9.6.5 / 2018-02 9.6.3 / 2017-10 9.5.5 / 父主题: RDS for PostgreSQL内核
-
避免绑定EIP直接通过公网访问RDS for PostgreSQL 避免RDS for PostgreSQL部署在公网或者DMZ里,应该将RDS for PostgreSQL部署在华为云内部网络,使用路由器或者防火墙技术把RDS for PostgreSQL保护起来,避免直接绑定EIP方式从公网访问RDS for PostgreSQL。通过这种方式防止未授权的访问及DDos攻击等。建议解绑弹性公网IP外部链接,如果您的业务必须绑定EIP,请务必通过设置安全组规则限制访问数据库的源IP。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格