华为云用户手册

  • 背景信息 初始时, GaussDB 包含两个模板数据库template0、template1,以及一个默认的用户数据库postgres。 CREATE DATABASE实际上通过拷贝模板数据库来创建新数据库。只支持拷贝template0。请避免使用客户端或其他方式连接及操作两个模板数据库。 模板数据库中没有用户表,可通过系统表PG_DATABASE查看模板数据库属性。 模板template0不允许用户连接,模板template1只允许数据库初始用户和系统管理员连接,普通用户无法连接。 数据库系统中会有多个数据库,但是同一时刻客户端程序只能连接一个数据库。当前,不支持在不同的数据库之间进行相互查询(跨库查询或跨库事务)。 当数据库集群中存在多个数据库时,可以通过客户端工具的-d参数指定目标数据库进行登录,也可以在客户端程序登录数据库以后通过\c命令进行数据库切换。
  • 注意事项 如果数据库的编码为SQL_ASCII(可以通过“show server_encoding”命令查看当前数据库存储编码),则在创建数据库对象时,如果对象名中含有多字节字符(例如中文),超过数据库对象名长度限制(63字节)的时候,数据库会将最后一个字节(而不是字符)截断,可能造成出现半个字符的情况。 针对这种情况,请遵循以下条件: 保证数据对象的名称不超过限定长度。 使用例如utf-8编码集作为数据库的默认存储编码集(server_encoding)。 不要使用多字节字符作为对象名。 因为误操作导致在多字节字符的中间截断,从而导致无法删除数据库对象,如果出现这种现象,请使用截断前的数据库对象名进行删除操作,或将该对象从各个数据库节点的相应系统表中依次删除。
  • 创建数据库用户 默认只有集群安装时创建的管理员用户可以访问初始数据库,您还可以创建其他数据库用户账号。 1 gaussdb=# CREATE USER joe WITH PASSWORD "********"; 当结果显示为如下信息,则表示创建成功。 1 CREATE ROLE 如上创建了一个用户名为joe,密码为********的用户。如下命令为设置joe用户为系统管理员。 gaussdb=# GRANT ALL PRIVILEGES TO joe; 使用GRANT命令进行相关权限设置,具体操作请参见GRANT。 关于数据库用户的更多信息请参见用户及权限。 父主题: 操作数据库
  • 背景信息 数据库审计功能对数据库系统的安全性至关重要。数据库审计管理员可以利用审计日志信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。 关于审计功能,用户需要了解以下几点内容: 审计总开关GUC参数audit_enabled支持动态加载。在数据库运行期间修改该配置项的值会立即生效,无需重启数据库。默认值为on,表示开启审计功能。 除了审计总开关,各个审计项也有对应的开关。只有开关开启,对应的审计功能才能生效。 各审计项的开关支持动态加载。在数据库运行期间修改审计开关的值,不需要重启数据库便可生效。 目前,GaussDB支持以下审计项如表1所示。如需要修改具体的审计配置项,请联系管理员进行处理。 表1 配置审计 项 配置项 描述 用户登录、注销审计 参数:audit_login_logout 默认值为7,表示开启用户登录、退出的审计功能。设置为0表示关闭用户登录、退出的审计功能。不推荐设置除0和7之外的值。 数据库启动、停止、恢复和切换审计 参数:audit_database_process 默认值为1,表示开启数据库启动、停止、恢复和切换的审计功能。 用户锁定和解锁审计 参数:audit_user_locked 默认值为1,表示开启审计用户锁定和解锁功能。 用户访问越权审计 参数:audit_user_violation 默认值为0,表示关闭用户越权操作审计功能。 授权和回收权限审计 参数:audit_grant_revoke 默认值为1,表示开启审计用户权限授予和回收功能。 对用户操作进行全量审计 参数:full_audit_users 默认值为空字符串,表示采用默认配置,未配置全量审计用户。 不需要审计的客户端名称及IP地址 参数:no_audit_client 默认值为空字符串,表示采用默认配置,未将客户端及IP加入审计黑名单。 数据库对象的CREATE,ALTER,DROP操作审计 参数:audit_system_object 默认值为67121159,表示对DATABASE、SCHEMA、USER、NODE GROUP这四类数据库对象的CREATE、ALTER、DROP操作进行审计。 具体表的INSERT、UPDATE和DELETE操作审计 参数:audit_dml_state 默认值为0,表示关闭具体表的DML操作(SELECT除外)审计功能。 SELECT操作审计 参数:audit_dml_state_select 默认值为0,表示关闭SELECT操作审计功能。 COPY审计 参数:audit_copy_exec 默认值为1,表示开启copy操作审计功能。 执行存储过程和自定义函数的审计 参数:audit_function_exec 默认值为0,表示不记录执行存储过程和自定义函数的审计日志。 执行白名单内的系统函数审计 参数:audit_system_function_exec 默认值为0,表示不记录执行系统函数的审计日志。 SET审计 参数:audit_set_parameter 默认值为0,表示不记录set操作审计日志 事务ID记录 参数:audit_xid_info 默认值为0,表示关闭审计日志记录事务ID功能。
  • 用户权限设置 给用户直接授予某对象的权限,请参见GRANT。 将Schema中的表或者视图对象授权给其他用户或角色时,需要将表或视图所属Schema的USAGE权限同时授予该用户或角色。否则用户或角色将只能看到这些对象的名称,并不能实际进行对象访问。 例如,下面示例将Schema tpcds的权限授予用户joe后,将表tpcds.web_returns的select权限授予用户joe。 1 2 gaussdb=# GRANT USAGE ON SCHEMA tpcds TO joe; gaussdb=# GRANT SELECT ON TABLE tpcds.web_returns to joe; 给用户指定角色,使用户继承角色所拥有的对象权限。 创建角色。 新建一个角色lily,同时给角色指定系统权限CREATEDB: 1 gaussdb=# CREATE ROLE lily WITH CREATEDB PASSWORD "********"; 给角色赋予对象权限,请参见GRANT。 例如,将模式tpcds的权限授予角色lily后,将表tpcds.web_returns的select权限授予角色lily。 1 2 gaussdb=# GRANT USAGE ON SCHEMA tpcds TO lily; gaussdb=# GRANT SELECT ON TABLE tpcds.web_returns to lily; 将角色的权限授予用户。 1 gaussdb=# GRANT lily to joe; 当将角色的权限授予用户时,角色的属性并不会传递到用户。 回收用户权限,请参见REVOKE。 父主题: 用户及权限
  • 创建、修改和删除Schema 创建Schema,请参见CREATE SCHEMA。默认初始用户和系统管理员可以创建Schema,其他用户需要具备数据库的CREATE权限才可以在该数据库中创建Schema,值为权方式请参见GRANT中将数据库的访问权限赋予指定的用户或角色中的语法。 更改Schema名称或者所有者,请参见ALTER SCHEMA。Schema所有者可以更改Schema。 删除Schema及其对象,请参见DROP SCHEMA。Schema所有者可以删除Schema。 在Schema内创建表,请以schema_name.table_name格式创建表。不指定schema_name时,对象默认创建到搜索路径中的第一个Schema内。 查看Schema所有者,请对系统表PG_NAMESPACE和PG_USER执行如下关联查询。语句中的schema_name请替换为实际要查找的Schema名称。 1 gaussdb=# SELECT s.nspname,u.usename AS nspowner FROM pg_namespace s, pg_user u WHERE nspname='schema_name' AND s.nspowner = u.usesysid; 查看所有Schema的列表,请查询PG_NAMESPACE系统表。 1 gaussdb=# SELECT * FROM pg_namespace; 查看属于某Schema下的表列表,请查询系统视图PG_TABLES。例如,以下查询会返回Schema PG_CATA LOG 中的表列表。 1 gaussdb=# SELECT distinct(tablename),schemaname from pg_tables where schemaname = 'pg_catalog';
  • 搜索路径 搜索路径定义在GUC参数search_path中,参数取值形式为采用逗号分隔的Schema名称列表。如果创建对象时未指定目标Schema,则该对象将会被添加到搜索路径中列出的第一个Schema中。当不同Schema中存在同名的对象时,查询对象未指定Schema的情况下,将从搜索路径中包含该对象的第一个Schema中返回对象。 查看当前搜索路径,请参见SHOW。 1 2 3 4 5 gaussdb=# SHOW SEARCH_PATH; search_path ---------------- "$user",public (1 row) search_path参数的默认值为:"$user", public。$user表示与当前会话用户名同名的Schema名,如果这样的模式不存在,$user将被忽略。所以默认情况下,用户连接数据库后,如果数据库下存在同名Schema,则对象会添加到同名Schema下,否则对象被添加到Public Schema下。 更改当前会话的默认Schema,请使用SET命令。 执行如下命令将搜索路径设置为myschema, public,首先搜索myschema,然后搜索public。 1 2 gaussdb=# SET SEARCH_PATH TO myschema, public; SET
  • 永久用户 GaussDB提供永久用户方案:创建具有PERSISTENCE属性的永久用户,具有PERSISTENCE属性的用户能够使用service_reserved_connections通道连接数据库。 service_reserved_connections为带有persistence属性预留的最小连接数,不建议设置过大。 1 gaussdb=# CREATE USER user_persistence WITH PERSISTENCE IDENTIFIED BY "********"; 只允许初始用户创建、修改和删除具有PERSISTENCE属性的永久用户。
  • 创建、修改和删除用户 创建用户,请使用SQL语句CREATE USER。 例如:创建用户joe,并设置用户拥有CREATEDB属性。 1 2 gaussdb=# CREATE USER joe WITH CREATEDB PASSWORD "*******"; CREATE ROLE 创建系统管理员,请使用带有SYSADMIN选项的CREATE USER语句。 删除现有用户,请参见DROP USER。 更改用户账户(例如,重命名用户或更改密码),请参见ALTER USER。 查看用户列表,请查询视图PG_USER。 1 gaussdb=# SELECT * FROM pg_user; 查看用户属性,请查询系统表PG_AUTHID。 1 gaussdb=# SELECT * FROM pg_authid;
  • 三权分立 默认权限机制和管理员两节的描述基于的是集群创建之初的默认情况。默认情况下拥有SYSADMIN属性的系统管理员,具备系统最高权限。 在实际业务管理中,为了避免系统管理员拥有过度集中的权利带来高风险,可以设置三权分立,将系统管理员的用户管理和审计管理的权限分别授予安全管理员和审计管理员。 三权分立后,系统管理员将不再具有CREATEROLE属性(安全管理员)和AUDITADMIN属性(审计管理员),即不再拥有创建角色和用户的权限,也不再拥有查看和维护数据库审计日志的权限。关于CREATEROLE属性和AUDITADMIN属性的更多信息请参考CREATE ROLE。 初始用户的权限不受三权分立设置影响。因此建议仅将此初始用户作为DBA管理用途,而非业务应用。 使用时请联系华为工程师提供技术支持。 如需使用三权分立权限管理模型,应在数据库初始化阶段指定,不建议来回切换权限管理模型。需要注意的是,当需从非三权分立权限管理模型切换至三权分立权限管理模型时,应重新审视已有用户的权限集合。如用户具备系统管理员权限和审计管理员权限,则需要进行权限裁剪。 三权分立后,系统管理员对其他用户的非系统模式不再具有权限,因此在未被授予其他用户模式的权限前,也不能访问放在其他用户模式下的对象。三权分立前的权限详情及三权分立后的权限变化,请分别参见表1和表2。 表1 默认的用户权限 对象名称 初始用户(id为10) 系统管理员 安全管理员 审计管理员 普通用户 表空间 具有所有的权限。 对表空间有创建、修改、删除、访问、分配操作的权限。 不具有对表空间进行创建、修改、删除、分配的权限,访问需要被授权。 模式 对除dbe_perf以外的所有模式有所有的权限。 对自己的模式有所有的权限,对其他用户的非系统模式无权限。 自定义函数 对所有用户自定义函数有所有的权限。 对自己的函数有所有的权限,对其他用户的函数仅有调用权限。 自定义表或视图 对所有用户自定义表或视图有所有的权限。 对自己的表或视图有所有的权限,对其他用户的表或视图无权限。 表2 三权分立较非三权分立权限变化说明 对象名称 初始用户(id为10) 系统管理员 安全管理员 审计管理员 普通用户 表空间 无变化。 依然具有所有的权限。 无变化 无变化 模式 权限缩小。 对自己的模式有所有的权限,对其他用户的非系统模式无权限。 无变化 自定义函数 在未被授予其他用户的非系统模式的权限前,不能访问放在其他用户模式下的函数。 无变化 自定义表或视图 在未被授予其他用户的非系统模式的权限前,不能访问放在其他用户模式下的表或视图。 无变化 PG_STATISTIC系统表和PG_STATISTIC_EXT系统表存储了统计对象的一些敏感信息,如高频值MCV。进行三权分立后系统管理员仍可以通过访问这两张系统表,获取统计信息里的敏感信息。 父主题: 用户及权限
  • 安全策略管理员 安全策略管理员是指具有POLADMIN属性的账户,具有创建资源标签,脱敏策略和统一审计策略的权限。 要创建新的安全策略管理员,请以系统管理员用户身份连接数据库,并使用带POLADMIN选项的CREATE USER语句或ALTER USER语句进行设置。 1 gaussdb=# CREATE USER poladmin WITH POLADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe POLADMIN; ALTER USER时,要求用户已存在。
  • 运维管理员 运维管理员是指具有OPRADMIN属性的账户,具有使用Roach工具执行备份恢复的权限。 要创建新的运维管理员,请以初始用户身份连接数据库,并使用带OPRADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 gaussdb=# CREATE USER opradmin WITH OPRADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe OPRADMIN; ALTER USER时,要求用户已存在。
  • 审计管理员 审计管理员是指具有AUDITADMIN属性的账户,具有查看和删除审计日志的权限。 要创建新的审计管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库。三权分立打开时,只能以初始用户身份连接数据库,并使用带AUDITADMIN选项的CREATE USER语句或 ALTER USER语句进行设置。 1 gaussdb=# CREATE USER auditadmin WITH AUDITADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe AUDITADMIN; ALTER USER时,要求用户已存在。
  • 初始用户 集群安装过程中自动生成的账户称为初始用户。初始用户也是系统管理员、安全管理员、审计管理员、监控管理员、运维管理员和安全策略管理员,拥有系统的最高权限,能够执行所有的操作。如果安装时不设置初始用户名称,则该账户与进行集群安装的操作系统用户同名。如果在安装集群时不设置初始用户的密码,安装完成后密码为空,在执行其他操作前需要通过gsql客户端设置初始用户的密码。如果初始用户密码为空,则除修改密码外无法执行其他SQL操作以及升级、扩容、节点替换等操作。 初始用户会绕过所有权限检查。建议仅将此初始用户作为DBA管理用途,而非业务应用。
  • 系统管理员 系统管理员是指具有SYSADMIN属性的账户,默认安装情况下具有与对象所有者相同的权限,但不包括dbe_perf模式的对象权限和使用Roach工具执行备份恢复的权限。 要创建新的系统管理员,请以初始用户或者系统管理员用户身份连接数据库,并使用带SYSADMIN选项的CREATE USER语句或ALTER USER语句进行设置。 1 gaussdb=# CREATE USER sysadmin WITH SYSADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe SYSADMIN; ALTER USER时,要求用户已存在。
  • 安全管理员 安全管理员是指具有CREATEROLE属性的账户,具有创建、修改、删除用户或角色的权限。 要创建新的安全管理员,三权分立关闭时,请以系统管理员或者安全管理员身份连接数据库。三权分立打开时,请以安全管理员身份连接数据库,并使用带CREATEROLE选项的CREATE USER语句或 ALTER USER语句进行设置。 1 gaussdb=# CREATE USER createrole WITH CREATEROLE password "********"; 或者 1 gaussdb=# ALTER USER joe CREATEROLE; ALTER USER时,要求用户已存在。
  • 监控管理员 监控管理员是指具有MONADMIN属性的账户,具有查看dbe_perf模式下视图和函数的权限,亦可以对dbe_perf模式的对象权限进行授予或收回。 要创建新的监控管理员,请以系统管理员身份连接数据库,并使用带MONADMIN选项的CREATE USER语句或ALTER USER语句进行设置。 1 gaussdb=# CREATE USER monadmin WITH MONADMIN password "********"; 或者 1 gaussdb=# ALTER USER joe MONADMIN; ALTER USER时,要求用户已存在。
  • 默认权限机制 数据库对象创建后,进行对象创建的用户就是该对象的所有者。集群安装后默认情况下,未开启三权分立,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过GRANT将对象的权限授予其他用户。 为使其他用户能够使用对象,必须向用户或包含该用户的角色授予必要的权限。 GaussDB支持以下的权限:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFEREN CES 、CREATE、CONNECT、EXECUTE、USAGE、ALTER、DROP、COMMENT、INDEX和VACUUM。不同的权限与不同的对象类型关联。有关各权限的详细信息,请参见GRANT。 要撤销已经授予的权限,可以使用REVOKE。对象所有者的权限(例如ALTER、DROP、COMMENT、INDEX、VACUUM、GRANT和REVOKE)是隐式拥有的,即只要拥有对象就可以执行对象所有者的这些隐式权限。对象所有者可以撤销自己的普通权限(SELECT、INSERT、UPDATE、DELETE),例如,使表对自己以及其他人只读,系统管理员用户除外。 系统表和系统视图要么只对系统管理员可见,要么对所有用户可见。标识了需要系统管理员权限的系统表和视图只有系统管理员可以查询。有关信息,请参考系统表和系统视图。 数据库提供对象隔离的特性,对象隔离特性开启时,用户只能查看有权限访问的对象(表、视图、字段、函数),系统管理员不受影响。有关信息,请参考ALTER DATABASE。 不建议用户修改系统表和系统视图的权限。 父主题: 用户及权限
  • 事务管理 在事务管理上,GaussDB采取了MVCC(多版本并发控制)结合两阶段锁的方式,其特点是读写之间不阻塞。GaussDB的astore存储引擎没有将历史版本数据统一存放,而是和当前元组的版本放在了一起。GaussDB的astore存储引擎没有回滚段的概念,但是为了定期清除历史版本数据,GaussDB的astore存储引擎引入了VACUUM线程。一般情况下,除非用户要做性能调优,否则不用特别关注VACUUM线程。GaussDB的ustore存储引擎是将历史版本数据统一存放到undo回滚段里,由undo回收线程统一清理历史版本数据。此外,GaussDB对于单语句查询(没有使用BEGIN等语句显示启动事务块)是自动提交事务的。
  • 数据库逻辑结构图 集群的每个DN负责存储数据,其存储介质也是磁盘,本节主要从逻辑视角介绍每个DN上都有哪些对象,以及这些对象之间的关系。另外介绍一下数据在不同节点的分布方式。数据库逻辑结构如图1所示。 图1 数据库逻辑结构图 Tablespace,即表空间,表空间是一个目录,集群中可以存在多个表空间,其中存储的是它所包含的数据库的各种物理文件。每个表空间可以对应多个Database。 Database,即数据库,用于管理各类数据对象,各数据库间相互隔离。数据库管理的对象可分布在多个Tablespace上。 Datafile Segment,即数据文件,通常每张表只对应一个数据文件。如果某张表的数据大于1GB,则会分为多个数据文件存储。 Table,即表,每张表只能属于一个数据库,也只能对应到一个Tablespace。每张表对应的数据文件必须在同一个Tablespace中。 Block,即数据块,是数据库管理的基本单位,默认大小为8KB。 数据在不同的DN上有四种分布方式,可以在建表的时候指定:REPLICATION、HASH、RANGE、LIST。 父主题: 数据库系统概述
  • application_name 参数说明:当前连接请求当中,所使用的客户端名称。 该参数属于USERSET类型参数,请参考表1中对应设置方法进行设置。 在备机请求主机进行日志复制时,如果该参数非空串,那么会被用来作为备机在主机上的流复制槽名字。此时,如果该参数长度超过61个字节,那么流复制槽名字只会截取使用前61个字节的字符。 取值范围:字符串,实际查询结果取决于查询所用的客户端或用户设置。 默认值:空字符串
  • unix_socket_directory 参数说明:设置GaussDB服务器侦听客户端连接的Unix域套接字目录,仅sysadmin用户可以访问。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 该参数的长度限制于操作系统的长度,Linux系统下,套接字路径名(套接字目录与套接字文件名拼接而成)长度不得超过107bytes,目录最长不得超过92bytes。超过该限制将会导致Unix-domain socket path "xxx" is too long的问题,影响进程正常拉起,若误设置出错,可以通过检索cm_agent路径下system_call日志定界。 取值范围:字符串 默认值:空字符串(实际值由安装时配置文件中tmpMppdbPath指定)
  • unix_socket_permissions 参数说明:设置Unix域套接字的访问权限。 Unix域套接字使用普通的Unix文件系统权限集。这个参数的值应该是数值的格式(chmod和umask命令可接受的格式)。如果使用自定义的八进制格式,数字必须以0开头。 建议设置为0770(只有当前连接数据库的用户和同组的人可以访问)或者0700(只有当前连接数据库的用户自己可以访问,同组或者其他人都没有权限)。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:0000-0777 默认值:0700 在Linux中,文档具有十个属性,其中第一个属性为文档类型,后面九个为权限属性,分别为Owner,Group及Others这三个组别的read、write、execute属性。 文档的权限属性分别简写为r,w,x,这九个属性三个为一组,也可以使用数字来表示文档的权限,对照表如下: r:4 w: 2 x:1 -:0 同一组(owner/group/others)的三个属性是累加的。 例如,-rwxrwx---表示这个文档的权限为: owner = rwx = 4+2+1 = 7 group = rwx = 4+2+1 = 7 others = --- = 0+0+0 = 0 所以其权限为0770。
  • service_reserved_connections 参数说明:为后台运维用户(带有persistence属性)预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,运维用户的最大连接数等于max_connections + service_reserved_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为262143。 默认值:10 注意:如果设置过小,会导致在max_connections满的情况下,该运维用户(带有persistence属性)无法连接数据库,作业无法正常执行。
  • port 参数说明:GaussDB服务侦听的TCP端口号。 该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。 取值范围:整型,1~65535 设置端口号时,请设置一个未被占用的端口号。设置多个实例的端口号,不可冲突。 1~1023为操作系统保留端口号,请不要使用。 通过配置文件安装集群时,配置文件中的端口号需要注意通信矩阵预留端口。如:DN还需保留dataPortBase+1作为内部工具使用端口,保留dataPortBase+6作为流引擎(由于规格变更,当前版本已经不再支持本特性,请不要使用)消息队列通信端口等。故集群安装阶段,port最大值为:CN可设置65532,DN可设置65529,GTM可设置65534,同时需要保证端口号不冲突。 默认值:5432(实际值由安装时的配置文件指定)
  • max_inner_tool_connections 参数说明:允许和数据库连接的工具的最大并发连接数。此参数会影响GaussDB的工具连接并发能力。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为1,最大值为MIN(262143, max_connections),max_connections的计算方法见上文。 默认值:50。如果该默认值超过内核支持的最大值(在执行gs_initdb的时候判断),系统会提示错误。 设置建议: 数据库主节点中此参数建议保持默认值。
  • sysadmin_reserved_connections 参数说明:为管理员用户预留的最少连接数,不建议设置过大。该参数和max_connections参数配合使用,管理员用户的最大连接数等于max_connections + sysadmin_reserved_connections。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为MIN(262143, max_connections),max_connections的计算方法见max_connections。 默认值:3 注意:当启用线程池功能时,若线程池占满将形成处理瓶颈,导致管理员预留连接无法正常建立;作为逃生手段,此时可使用gsql通过主端口+1端口号连入,清理无用会话,即可正常连入。
  • extip_reserved_connections 参数说明:为来自listen_address_ext所配置扩展IP上的普通gsql业务连接提供用户预留连接通道。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:整型,最小值为0,最大值为MIN(262143, max_connections),max_connections的计算方法见max_connections。 默认值: 5 该参数仅为分布式DN在listen_address_ext配置为具体IP地址场景下,gsql普通连接业务连接。该参数应用于max_connections最大连接限制后的允许最大连接数。
  • listen_addresses 参数说明:声明服务器侦听客户端的TCP/IP地址。 该参数指定GaussDB服务器使用哪些IP地址进行侦听,如IPV4。服务器主机上可能存在多个网卡,每个网卡可以绑定多个IP地址,该参数就是控制GaussDB到底绑定在哪个或者哪几个IP地址上。而客户端则可以通过该参数中指定的IP地址来连接GaussDB或者给GaussDB发送请求。 该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围: 主机名或IP地址,多个值之间用英文逗号分隔。 “*”或“0.0.0.0”表示侦听所有IP地址。配置侦听所有IP地址存在安全风险,不推荐用户使用。 置空则服务器不会侦听任何IP地址,这种情况下,只有Unix域套接字可以用于连接数据库。 默认值: 集群安装好后,根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。CN的默认参数值为:listen_addresses = 'localhost,mgr.net网卡对应的IP地址,data.net网卡对应的IP地址,virtual.net网卡对应的IP地址';DN的默认参数值为:listen_addresses = 'data.net网卡对应的IP'。 localhost表示只允许进行本地“回环”连接。 public_cloud.conf文件保存的网卡信息,包括:mgr.net(管理网卡)、data.net(数据网卡)、virtual.net(虚拟网卡)。
  • local_bind_address 参数说明:声明当前节点连接集群其他节点绑定的本地IP地址。 该参数属于POSTMASTER类型参数。 该参数由安装时的配置文件指定,请勿轻易修改,否则修改后会影响数据库正常通信。 默认值: 集群安装好后,根据public_cloud.conf配置文件中不同实例的IP地址配置不同默认值。CN/DN的默认参数值为:local_bind_address = 'data.net网卡对应的IP地址'。 public_cloud.conf文件保存的网卡信息,包括:mgr.net(管理网卡)、data.net(数据网卡)、virtual.net(虚拟网卡)。
共100000条