avatar

shenlan

积分:20
收藏话题: 0
入驻时间: 1年前
shenlan创建的话题
暂无话题
shenlan评论的话题
shenlan 1年前 评论了 denude 创建的话题 › antdb数据库连接时,出现“Fatal:connection limit exceeded for non-supersers”。

解决方式

数据库连接数达到上限,需要调整最大连接数配置。

max_connections是数据库允许的最大连接数,默认值100,
superuser_reserved_connections是预留给超级用户的连接数,默认值3
修改这两个参数都需要重启DB。
与之相关联的参数还有work_mem,连接数*work_mem可以得到DB的内存大小,这个调整视服务器的内存大小


原因说明

按上述说明增大max_connections的配置,并重启数据库服务生效。

shenlan 1年前 评论了 dehydration 创建的话题 › antdb数据库连接时,出现“adb: could not connect to server: Connection refused”。

解决方式

为安全起见,默认禁用了远程连接访问功能,只允许localhost连接。那么,如何启用该功能呢?
为了启用网络或者远程访问功能,我们需要在postgresql.conf文件中添加或者编辑下列内容:
  listen_addresses = '*'
在adb_hba.conf添加如下内容,以便允许用户通过某种method来访问数据库:


TYPE DATABASE USER CIDR-ADDRESS METHOD

host all all 10.20.21.0/24 trust

postgresql.conf
配置项 说明
listen_addresses = ‘’ listen_addresses指定了要侦听的IP地址。默认只监听localhost的地址,也就是禁止远程服务器来访问。在大多数情况下,我们会接受所有主机的连接,所以可以使用“”,它表示所有IP地址。如果只接受指定ip的连接,则在adb_hba.conf进行配置。

adb_hba.conf
配置项 说明
TYPE Type = host表示远程连接。Type = local表示本地Unix domain socket连接。
DATABASE Database = all 表示所有数据库。其他名字要求严格匹配,还可以规定一个由逗号分隔的数据库列表。
USER User = all 表示所有用户。其他名字要求严格匹配,还可以规定一个由逗号分隔的用户列表。
CIDR-ADDRESS CIDR-ADDRESS 由两部分组成,即IP地址/子网掩码。子网掩码规定了IP地址中前面哪些位表示网络编号。这里/0表示IP地址中没有表示网络编号的位,这样的话全部的IP地址都匹配,例如192.168.0.0/24表示匹配前24位,所以它匹配任何192.168.0.x形式的IP地址。
METHOD Method = trust表示可信认证,允许免密登录。其他的认证方法包括MD5,则要求客户端输入密码验证才能访问数据库





其他的一些可能的原因,如下:

服务端没起来,ps -ef|grep postgres查看是否存在postgres进程
监听问题,cat postgresql.conf|grep listen 查看监听地址是否正确
以上都没问题,服务器端能连进去,但客户端不行,这时需要查看adb_hba.conf
以上都没问题,检查服务器端的iptables,开启防火墙的访问端口
以上都没问题,检查SELINUX,确保SELINUX已关闭

原因说明

按上述说明依次排查

shenlan 1年前 评论了 sjdh 创建的话题 › antdb数据库提示“switchover datanode slave 失败”。

解决方式

需要确认当前 datanode 节点的切换状况:

datanode 未进行实际的切换:根据 mgr 中的错误信息,解决问题后再次尝试进行切换

datanode 已经进行了实际的切换:需要进行如下的操作

mgr 节点

set command_mode = sql;
select oid,* from adb_catalog.mgr_node;
update adb_catalog.mgr_node set nodetype='xxxx', nodesync='xxxx',nodemasternameoid='xxxx' where oid=xxxx; --此处需要将datanode的主备库都需要进行update

gtm主库&cn主库

select oid,* from pgxc_node;
update pgxc_node set node_name='xxxx', node_host='' where oid=xxxx;

原因说明

datanode主备切换成功后,在进行一些校验的时候可能会出错,这时,就不能再次进行切换,只能通过修改元数据的方式进行。

shenlan 1年前 评论了 shudaonan 创建的话题 › antdb数据库显示“LOG: checkpoints are occurring too frequently”。

解决方式

在数据库繁忙时,导致XLOG还没被应用,就被数据库重复使用写入数据。
AntDB7.2前(checkpoint_segments设置过小)
AntDB7.2后(max_wal_size设置过小)

AntDB7.2前(增加checkpoint_segments设置,>=128)
AntDB7.2后(增加max_wal_size设置,>=4GB)

shenlan 1年前 评论了 SDKhe 创建的话题 › antdb安装时出现“FATAL: could not create semaphores: No space left on device”的提醒,这是怎么了?

解决方式

max_connections设置不合理,超出了kernel.sem的系统配置。
max_connections是最大连接数,即允许客户端连接的最大连接数,增大连接可以允许接入更多的客户端,但设置过大同样会造成DB启动失败
semget是获取信号的一个函数,即get semaphore。
上述的空间不够不是指的是磁盘空间不够,而是创建semaphores时空间参数不够,系统调用参数semget报错,但是错误信息感觉有些迷惑…
解决办法通常是减小max_connections,或者增大内核参数,如semmni、semmns等



原因说明

按上述方式调整配置。

shenlan 1年前 评论了 ajhdf 创建的话题 › antdb数据库提示“cannot create foreign key whose evaluation cannot be enforced to Remote nodes”。

解决方式

目前不允许在非分片键上创建外键,处理方式:

修改子表外键字段为分片键后再创建外键。
如果父表数据量很小的话,可以修改父表的为复制表。

复现SQL:

antdb=# create table t_parent (id int primary key,name varchar(30));
create table t_child (id int,name varchar(30)) distribute by hash(name);

CREATE TABLE
antdb=# create table t_child (id int,name varchar(30)) distribute by hash(name);
CREATE TABLE
antdb=#
antdb=# alter table t_child
postgres-# add constraint fkey_t_child
postgres-# foreign key (id)
postgres-# references t_parent (id);
ERROR: Cannot create foreign key whose evaluation cannot be enforced to remote nodes
antdb=#
antdb=# alter table t_child distribute by hash (id);
ALTER TABLE
antdb=# alter table t_child
add constraint fkey_t_child
foreign key (id)
references t_parent (id);
ALTER TABLE















antdb=# drop table t_child;
DROP TABLE
antdb=# create table t_child (id int,name varchar(30)) distribute by hash(name);
CREATE TABLE
antdb=# alter table t_parent distribute by replication;
ALTER TABLE
antdb=# alter table t_child
postgres-# add constraint fkey_t_child
postgres-# foreign key (id)
postgres-# references t_parent (id);
ALTER TABLE
antdb=#










fe_sendauth: no password supplied

可能的报错信息:

WARNING: on coordinator execute "set FORCE_PARALLEL_MODE = off; SELECT adb_PAUSE_CLUSTER();" fail ERROR: error message from poolmgr:reconnect three thimes , fe_sendauth: no password supplied

处理方式:
检查下集群中coord的hba信息,是否存在:对于集群内部主机IP有md5的认证方式。

在adbmgr中执行 :show hba nodename 来查看节点的hba信息。
FATAL: invalid value for parameter “TimeZone”: “Asia/Shanghai”

可能的报错信息:

FATAL: invalid value for parameter "TimeZone": "Asia/Shanghai"
FATAL: invalid value for parameter "TimeZone": "asia/shanghai"
FATAL: invalid value for parameter "TimeZone": "utc"

处理方式:

检查JDBC的JAVA_OPTS,是否配置了user.timezone参数,若配置了该参数,需严格匹配数据库内默认支持的时区名的大小写。

数据库内支持的时区,使用下列sql查询,注意时区名的大小写。

select * from adb_catalog.adb_timezone_names;

若JDBC中没有配置该参数,则按步骤2的说明检查。

检查AntDB二进制文件目录下的share,并确认timezone下的时区是否完整。若缺失或不完整,需要重新从一个完整的节点deploy所需的文件。

ll $ADBHOME/share/postgresql/timezone
total 232
drwxr-xr-x 2 antdb antdb 4096 Apr 16 15:59 Africa
drwxr-xr-x 6 antdb antdb 4096 Apr 16 15:59 America
drwxr-xr-x 2 antdb antdb 4096 Apr 16 15:59 Antarctica
drwxr-xr-x 2 antdb antdb 25 Apr 16 15:59 Arctic
drwxr-xr-x 2 antdb antdb 4096 Apr 16 15:59 Asia
......
drwxr-xr-x 2 antdb antdb 4096 Apr 16 15:59 US
-rwxr-xr-x 1 antdb antdb 114 Apr 16 15:48 UTC
-rwxr-xr-x 1 antdb antdb 1905 Apr 16 15:48 WET
-rwxr-xr-x 1 antdb antdb 1535 Apr 16 15:48 W-SU
-rwxr-xr-x 1 antdb antdb 114 Apr 16 15:48 Zulu











shenlan 1年前 评论了 shudaonan 创建的话题 › antdb数据库显示“ERROR: cannot execute INSERT in a read-only transaction”。

解决方式

antdb的datanode节点,默认只有读权限,只有coordinator具有读写权限。
这里adb连接的是datanode,而不是coordinator,可以让adb指定端口选项-p。
也可能配置了pgport的环境变量,如果配了pgport的环境变量,adb默认连到环境变量指向的那个端口。

adb -p xxx -d xxx -f xxx.sql -v ON_ERROR_STOP=1

原因说明

按上述说明依次排查

shenlan 1年前 评论了 SDKhe 创建的话题 › antdb安装,显示“FATAL: could not create shared memory segment: Cannot allocate memory”要怎么解决?

解决方式

shared_buffer设置不合理,超出了kernel.shmmax 的系统配置。
建议减小shared_buffer值,
或增大内核参数,如shmall、shmmax值。
如果设置超大,大过内存值,则直接报错Invalid argument。
FATAL: invalid value for parameter “shared_buffers”: “222222GB”
HINT: Value exceeds integer range.




原因说明

按上述方式调整配置。

shenlan 1年前 评论了 sjdh 创建的话题 › 数据库种类有哪些?各有什么特点?

早期比较流行的数据库模型有三种,分别为层次式数据库、网络式数据库和关系型数据库。而在当今的互联网中,最常用的数据库模型主+E28:E30要是两种,即关系型数据库和非关系型数据库。
(1)关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。
(2)分布式数据库与面向对象数据库,分布式数据库是数据库技术与网络技术相互结合的产物,他的重要特性就是数据分布的透明性,分布式数据库系统是一个统一的整体,用户不需要关心数据的逻辑分布,更不必关心数据的物理分布。
(3)面向对象数据库是数据库技术与面向对象设计方法相结合的产物。在这一新型的数据库系统中,任何被开发的应用都成为对象目标库的一部分,由开发者和用户共享。


AntDB 是一款源自于 PG 内核的通用分布式事务性关系数据库,是一款面向金融、电信、政务、安全、能源等行业的国产、自主、安全可靠、高性能的企业级分布式事务型关系数据库产品。

shenlan 1年前 评论了 ajhdf 创建的话题 › 什么是数据库?

数据库,即database(DB)。通俗来说它就是一种存储数据的仓库。是根据数据结构组织,存储和管理数据,并且能够长期,高效的管理和存储数据。其最主要的作用就是实现存储(写)和提供(读)数据。