PostgreSQL 13 Beta测试阶段中有丰富的功能集。这是一个很好的学习努力参与测试的世界上最好的数据库之一。不管有多少开发、编码和管理经验你对PostgreSQL版本的测试;你可以参与审查文档,验证特性,以及一些小任务。完整的测试指南也可以wiki页面。
很快,PostgreSQL 13 GA将是可用的,人需要PostgreSQL的新特性将想要迁移到版本。这是一个主要版本,所以它需要一些努力升级。
转储/恢复(pg_dump)
最安全、最古老的方法之一升级是一个转储和恢复。当我们说安全,这意味着数据库分手后几乎没有恢复到新版本,但它有自己的局限性,因为它需要大量的时间和额外的空间备份。PostgreSQL的工具pg_dump和pg_restore,完整的文档可以在PostgreSQL官方文档站点。
pg_upgrade
PostgreSQL的就地升级工具。它有能力PostgreSQL主要版本升级,无需额外的空间和需要少得多的时间升级相比转储/恢复。
下面是观察到的不兼容性列表:
1 -类似于…逃避零和substring(文本模式脱离文本)返回NULL。
以防id逃脱NULL,应用程序将NULL代替任何价值。之前返回true,如果逃避指定NULL。但在PostgreSQL 13,它返回的空是正确的行为,但你需要修改应用程序在这种情况下如果期望如此。
PostgreSQL版本< 13
|
1
2
3
4
5
|
#选择“abc”类似于“ab_”逃脱NULL作为文本;
文本
- - -
- - -
- - -
- - -
- - -
t
(
1
行
)
|
PostgreSQL版本13
|
1
2
3
4
5
6
|
#选择“abc”类似于“ab_”逃脱NULL作为文本;
文本
- - -
- - -
- - -
(
1
行
)
|
2。jsonb_to_tsvector()正确检查“字符串”参数。
固定一个bug JSON函数”jsonb_to_tsvector”,以防错误的参数。以前是匹配的只有五个字,而不是六个,这是错误的,产生的结果,而不是抛出错误。如果应用程序有问题,而不是一个结果,你会得到一个错误,你需要修复,在您的应用程序。
PostgreSQL版本< 13
|
1
2
3
4
5
|
#选择json_to_tsvector (“abc”的::json,“strinX”);
json_to
_tsvector
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
“abc”
:
1
(
1
行
)
|
PostgreSQL版本13
|
1
2
3
|
#选择json_to_tsvector (“abc”的::json,“strinX”);
错误
:
错误的
国旗
在
国旗
数组
:
“strinX”
提示
:
可能的
值
是
:
“字符串”
,
“数字”
,
“布尔”
,
“关键”
,
和
“所有”
。
|
3 -在ltree使用相邻的星号和括号时,例如“。* {2}。*{3}”,它正确地解释为“* {5}”。
这个期待已久的bug修复lquery照顾的连续行为与括号‘*’项。下面的例子将产生真正的在这两种情况下,但它产生虚假的* {2}。*{3}',这是错误的。
PostgreSQL版本< 13
|
1
2
3
4
5
|
#选择“1.0.0.0.1”::ltree ~‘* {2}。* {3}:: lquery;
吗?
列
吗?
- - -
- - -
- - -
- - -
- - -
f
(
1
行
)
|
|
1
2
3
4
5
|
#选择“1.0.0.0.1”::ltree ~ * {5}:: lquery;
吗?
列
吗?
- - -
- - -
- - -
- - -
- - -
t
(
1
行
)
|
PostgreSQL版本13
|
1
2
3
4
5
|
#选择“1.0.0.0.1”::ltree ~‘* {2}。* {3}:: lquery;
吗?
列
吗?
- - -
- - -
- - -
- - -
- - -
t
(
1
行
)
|
|
1
2
3
4
5
|
#选择“1.0.0.0.1”::ltree ~ * {5}:: lquery;
吗?
列
吗?
- - -
- - -
- - -
- - -
- - -
t
(
1
行
)
|
4 -有一个非默认effective_io_concurrency的变化。的旧值需要计算新值。按照这个公式计算新值从旧的值:
选择圆(sum(老/ n::浮动))从generate_series(旧)(n);
设置返回的值effective_io_concurrency上面的select语句。
5 -防止pg_stat_ssl pg_stat_gssapi系统显示辅助流程的观点。
PostgreSQL版本< 13
|
1
2
3
4
5
6
7
8
9
10
11
|
#选择一个。pid,后端_type, ssl from pg_stat_activity a, pg_stat_ssl s where s.pid = a.pid;
pid
|
后端
_类型
|
ssl
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
+
- - -
- - -
- - - - - -
2286年
|
autovacuum
发射器
|
f
2289年
|
逻辑
复制
发射器
|
f
2288年
|
pg_stat_raybet雷竞技竞猜在线官网monitor
收集器
|
f
2291年
|
客户端
后端
|
f
2284年
|
背景
作家
|
f
2283年
|
检查点
|
f
2285年
|
walwriter
|
f
(
7
行
)
|
|
1
2
3
4
5
6
7
8
9
10
11
|
#选择一个。pid,后端_type, gss_authenticated from pg_stat_activity a, pg_stat_gssapi s where s.pid = a.pid;
pid
|
后端
_类型
|
gss
_通过身份验证
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
2286年
|
autovacuum
发射器
|
f
2289年
|
逻辑
复制
发射器
|
f
2288年
|
pg_stat_raybet雷竞技竞猜在线官网monitor
收集器
|
f
2291年
|
客户端
后端
|
f
2284年
|
背景
作家
|
f
2283年
|
检查点
|
f
2285年
|
walwriter
|
f
(
7
行
)
|
PostgreSQL版本13
|
1
2
3
4
5
|
#选择一个。pid,后端_type, ssl from pg_stat_activity a, pg_stat_ssl s where s.pid = a.pid;
pid
|
后端
_类型
|
ssl
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
+
- - -
- - -
- - - - - -
2329年
|
客户端
后端
|
f
(
1
行
)
|
|
1
2
3
4
5
|
#选择一个。pid,后端_type, gss_authenticated from pg_stat_activity a, pg_stat_gssapi s where s.pid = a.pid;
pid
|
后端
_类型
|
gss
_通过身份验证
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
+
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - -
- - - - - -
2329年
|
客户端
后端
|
f
(
1
行
)
|
6 -解决pageinspect bt_metap()返回更合适的数据类型,不太可能溢出。
函数“bt_metap”不会给一个错误的整数溢出。在我看来,它不会打破迁移,因为它是一个bug修复。
SELECT * FROM bt_metap \ gx(“指数”)
错误:“2180413846”值范围的整数类型
7 -重命名一些recovery-related等事件。
一些recovery-related等事件已经改变,你需要更换事件。
RecoveryWalAll - > RecoveryWalStream
RecoveryWalStream - > RecoveryRetrieveRetryInterval。
8 -修复改变外国表…重命名列标签返回一个更合适的命令。以前它返回ALTER TABLE但现在返回改变外国表。
PostgreSQL版本< 13
|
1
2
|
#改变外国表测试重命名列b到c;
改变
表
|
PostgreSQL版本13
|
1
2
|
#改变外国表测试重命名列b到c;
改变
外国
表
|
9 -修复改变物化视图…回到一个更合适的命令重命名列标签。
PostgreSQL版本< 13
|
1
2
|
#改变物化视图mv重命名列a到b;
改变
表
|
PostgreSQL版本13
|
1
2
|
#改变物化视图mv重命名列a到b;
改变
物化
视图
|
以下支持被移除:
1 -删除支持定义操作符类使用pre-PostgreSQL 8.0语法。
2 -删除支持定义外键约束使用pre-PostgreSQL 7.3语法
3 -删除支持“不透明”pseudo-types pre-PostgreSQL 7.3所使用的服务器
我们的白皮书”为什么选择PostgreSQL ?”看着PostgreSQL的特点和优点,提出了一些实际的用法示例。我们还研究如何对企业有用PostgreSQL从Oracle迁移。





