问题一:polardb 执行 supplemental log 报错
oracle切换为polardb,给表执行补全日志语句报错,
sql语句:alter table XXX add supplemental log data (all) columns;
数据库版本:PostgreSQL 14.9 (PolarDB 14.9.13.0 build 3bfdb65b) on x86_64-linux-gnu
参考回答:
您在将 Oracle 切换到 PolarDB 后,尝试在表上执行 PostgreSQL 的补全日志语句 alter table XXX add supplemental log data (all) columns;
,但遇到了错误。
在 PostgreSQL 中,类似于 Oracle 的补全日志(Supplemental Logging)功能,可以使用逻辑复制(Logical Replication)来实现。然而,PolarDB for PostgreSQL 目前不支持逻辑复制功能,因此无法直接执行与补全日志相关的语句。
如果您需要在 PolarDB 中实现类似 Oracle 补全日志的功能,可能需要考虑其他方法或工具来处理数据增量变化的监控和捕获。以下是一些备选方案:
- 使用外部工具:您可以考虑使用第三方工具或库,例如 Debezium、Liquibase、pgAudit 等,来实现数据变更的监控和捕获,并将其应用到您的工作流程中。
- 自定义解决方案:根据您的具体需求,您可能需要编写自定义代码来捕获和处理数据变更事件,例如编写触发器、函数或存储过程等来记录变更日志或发送通知。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/577689
问题二:polardb中离线安装postgis后报这个错,请问这个怎么处理啊?
polardb中离线安装postgis后报这个错,请问这个怎么处理啊?
参考回答:
这个错误提示表明 PostgreSQL 在试图加载扩展模块 postgis-3.so 时失败了,原因是 libpq 和 libboost_date_time-mt-sol.53.0 两个共享对象文件不存在。
针对这种情况,你需要首先确定这两个缺失的动态链接库文件在哪里。然后,你可以手动指定这些路径给 PostgreSQL,使其能够在启动时找到它们。
以下是具体的解决方案:
- 找出缺少的动态链接库文件的位置
假设你已经在系统上找到了丢失的两个动态链接库文件:libpq.so 和 libboost_date_time-mt-sol.53.0.so。现在我们需要告诉 PostgreSQL 它们的确切位置。
- 修改 postgresql.conf 配置文件
打开位于 /etc/postgresql/your_postgres_version/main/pg_hba.conf
中的配置文件(这里 your_postgres_version 是你的 PostgreSQL 版本)。在这个文件里,你应该能看到类似下面的内容:
listen_addresses = localhost; port = 5432; # Unix domain socket unix_socket_directories = '/run/user/1000'; shared_preload_libraries = '';
在这里,我们将 shared_preload_libraries 添加一个新的值,指向我们的动态链接库文件:
shared_preload_libraries = 'postgis,pg_stat_statements';
注意这里的 "postgis" 可能会因不同的 PostgreSQL 版本而有所不同;另外,别忘了用分号结束这一条指令。
保存修改后的配置文件。
- 刷新 PostgreSQL 数据库
重启 PostgreSQL 服务,以便应用新的配置更改:
sudo systemctl restart postgresql.service
这样应该就可以解决 PostgreSQL 不能加载 postgis-3.so 的问题了。不过请注意,这种方法仅适用于当前登录用户的主目录下存在这些动态链接库文件的情况下有效。否则,你可能还需要调整权限或复制这些文件至适当的目录。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/577395
问题三:PolarDB这个问题怎么解决?
PolarDB这个问题怎么解决?Exception in thread "main" java.lang.NoClassDefFoundError: jpcap/JpcapCaptor
后面我连lib目录下面的 jpcap-0.7-19.fc26.x86_64.rpm 都安装了
参考回答:
java.ext.dirs java扩展目录,该目录一般在$JAVA_HOME/jre/lib/ext
ln -snf /usr/lib64/jpcap/jpcap.jar $java.ext.dirs/jpcap.jar
ln -snf /usr/lib64/jpcap/libjpcap.so $java.ext.dirs/libjpcap.so 这个得夸机器访问mysql,本机访问抓不到。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/576275
问题四:PolarDB-X中在使用过程中,先是删除表中数据,后又删除这个表,导致现在删表报错,如何解决?
PolarDB-X中在使用过程中,先是删除表中数据,后又删除这个表,导致现在删表报错,用SHOW DDL语句查看后使用CANCEL DDL 和 continue ddl 语句现在都报错,使用SHOW DDL result语句查看后发现报的是MySqlHintStatement 无法强转成SQLAlterTableStatement这个错误,麻烦问一下这个问题如何解决?
下一版docker镜像是什么时候发布?现在这种情况只能删除数据库吗?
参考回答:
可以先删除库饶过一下,会尽快更新镜像的,更新好了会和您讲。可以把镜像更新到latest,再试一下。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/575765
问题五:PolarDB-X中 我的K8S集群中有一台机器因为断电重启了这种应该怎么去排障恢复呢?
PolarDB-X中 我的K8S集群中有一台机器因为断电重启了 重启后看到该节点上所有组件都异常无法正常工作,这种应该怎么去排障恢复呢?
大多都是这种可用性的告警,集群也是无法工作的。
参考回答:
如果K8S集群中的一台机器因为断电重启后,发现该节点上所有组件都异常无法正常工作,可以尝试以下步骤进行排障恢复:
- 检查节点状态:确认节点的状态是否正常,如果不正常,需要先解决节点状态问题。
- 检查etcd集群:通过查看etcd容器日志,确认etcd集群数据存储目录是否正确。如果发现异常,可以尝试关闭etcd集群容器服务,然后重新开启。
- 检查API服务器连接:确保能够正常连接到API服务器。如果出现连接被拒绝的问题,需要检查是否指定了正确的主机或端口。
- 检查网络连接:确认节点之间的网络连接是否正常。
- 检查PXD部署工具:PXD是PolarDB-X的部署工具,确保其正常运行。
- 如果以上步骤都无法解决问题,可以考虑重启节点。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/575763
问题五:polardbx mysql5.7通过pxb恢复数据库其中dn节点恢复job报错无法恢复dn节点?
polardbx mysql5.7通过pxb恢复数据库其中dn节点恢复job报错无法恢复dn节点?
参考回答:
我们要重新发布一个xtrbackup版本
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/574626