华为云用户手册

  • GLOBAL_REDO_STATUS GLOBAL_REDO_STATUS视图显示数据库实例的日志回放情况。 表1 GLOBAL_REDO_STATUS字段 名称 类型 描述 node_name text 节点名称。 redo_start_ptr bigint 当前实例日志回放的起始点。 redo_start_time bigint 当前实例日志回放的起始UTC时间。 redo_done_time bigint 当前实例日志回放的结束UTC时间。 curr_time bigint 当前实例的当前UTC时间。 min_recovery_point bigint 当前实例日志的最小一致性点位置。 read_ptr bigint 当前实例日志的读取位置。 last_replayed_read_ptr bigint 当前实例的日志回放位置。 recovery_done_ptr bigint 当前实例启动完成时的回放位置。 read_xlog_io_counter bigint 当前实例读取回放日志的I/O次数计数。 read_xlog_io_total_dur bigint 当前实例读取回放日志的I/O总时延。 read_data_io_counter bigint 当前实例回放过程中读取数据页面的I/O次数计数。 read_data_io_total_dur bigint 当前实例回放过程中读取数据页面的I/O总时延。 write_data_io_counter bigint 当前实例回放过程中写数据页面的I/O次数计数。 write_data_io_total_dur bigint 当前实例回放过程中写数据页面的I/O总时延。 process_pending_counter bigint 当前实例回放过程中日志分发线程的同步次数计数。 process_pending_total_dur bigint 当前实例回放过程中日志分发线程的同步总时延。 apply_counter bigint 当前实例回放过程中回放线程的同步次数计数。 apply_total_dur bigint 当前实例回放过程中回放线程的同步总时延。 speed bigint 当前实例日志回放速率,每回放256MB日志该值更新一次,单位byte/s。 local_max_ptr bigint 当前实例启动成功后本地收到的回放日志的最大值。 primary_flush_ptr bigint 主机落盘日志的位置。 worker_info text 当前实例回放线程信息,若没有开并行回放则该值为空。 父主题: Utility
  • resilience_threadpool_reject_cond 参数说明:用于控制线程池过载逃生的线程池使用率比例。该参数仅在GUC参数use_workload_manager和enable_thread_pool打开时生效。该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 该参数分为recover_threadpool_percent、overload_threadpool_percent 2部分,这2个部分的具体含义如下: recover_threadpool_percent:线程池恢复正常状态时的线程池使用率,当线程池使用率小于该值时,停止过载逃生并放开新连接接入,取值为0~INT_MAX,设置为多少表示百分之多少。 overload_threadpool_percent:线程池过载时的线程池使用率,当线程池使用率大于该值时,表示当前线程池已经过载,触发过载逃生kill会话并禁止新连接接入,取值为0~INT_MAX,设置为多少表示百分之多少。 默认值:'0,0',表示关闭线程池逃生功能。 示例: resilience_threadpool_reject_cond = '50,90' 表示线程池使用率超过90%后禁止新连接接入并kill堆积的会话,kill会话过程中线程池使用率下降到50%时停止kill会话并允许新连接接入。 线程池使用率可以通过DBE_PERF.local_threadpool_status视图查询获得;线程池设置的初试线程池线程数目可以通过查询thread_pool_attr参数获得。 该参数如果设置的百分比过小,则会频繁触发线程池过载逃生流程,会使正在执行的会话被强制退出,新连接短时间接入失败,需要根据实际线程池使用情况慎重设置。 recover_threadpool_percent和overload_threadpool_percent的值可以同时为0,除此之外,recover_threadpool_percent的值必须要小于overload_threadpool_percent,否则会设置不生效。
  • thread_pool_attr 参数说明:用于控制线程池功能的详细属性,该参数仅在enable_thread_pool打开后生效,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 该参数分为3个部分,'thread_num, group_num, cpubind_info',这3个部分的具体含义如下: thread_num:线程池中的线程总数,取值范围是0~4096。其中0的含义是数据库根据系统CPU core的数量来自动配置线程池的线程数,如果参数值大于0,线程池中的线程数等于thread_num。线程池大小推荐根据硬件配置设置,计算公式如下:thread_num = CPU核数*3~5,thread_num最大值为4096。 group_num:线程池中的线程分组个数,取值范围是0~64。其中0的含义是数据库根据系统NUMA组的个数来自动配置线程池的线程分组个数,如果参数值大于0,线程池中的线程组个数等于group_num。 cpubind_info:线程池是否绑核的配置参数。可选择的配置方式有集中:1. '(nobind)' ,线程不做绑核;2. '(allbind)',利用当前系统所有能查询到的CPU core做线程绑核;3. '(nodebind: 1, 2)',利用NUMA组1,2中的CPU core进行绑核;4. '(cpubind: 0-30)',利用0-30号CPU core进行绑核;5. '(numabind: 0-30)',在NUMA组内利用0-30号CPU core进行绑核。该参数不区分大小写。当开启资源多租模式时,该参数不生效。 默认值: '4096,2,(nobind)'(196核CPU/1536G内存,128核CPU/1024G内存,104核CPU/1024G内存,96核CPU/1024G内存);'2048,2,(nobind)'(96核CPU/768G内存,80核CPU/640G内存);'1024,2,(nobind)'(64核CPU/512G内存,60核CPU/480G内存,32核CPU/256G内存);'512,2,(nobind)'(16核CPU/128G内存);'256,2,(nobind)'(8核CPU/64G内存);'128,2,(nobind)'(4核CPU/32G内存);'32,1,(nobind)'(4核CPU/16G内存)
  • thread_pool_stream_attr 参数说明:用于控制stream线程池功能的详细属性,stream线程只在DN生效,该参数仅在enable_thread_pool打开后生效,仅sysadmin用户可以访问。该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。 取值范围:字符串,长度大于0 该参数分为4个部分,'stream_thread_num, stream_proc_ratio ,group_num ,cpubind_info',这4个部分的具体含义如下: stream_thread_num:stream线程池中的线程总数,取值范围是0~4096。其中0的含义是数据库根据系统CPU core的数量来自动配置线程池的线程数,如果参数值大于0,线程池中的线程数等于stream_thread_num。线程池大小推荐根据硬件配置设置,计算公式如下:stream_thread_num = CPU核数*3~5,stream_thread_num最大值为4096。 stream_proc_ratio:预留给stream线程的proc数量比例,浮点类型,默认为0.2,预留proc计算方式为:stream_proc_ratio * stream_thread_num。 group_num:线程池中的线程分组个数,取值范围是0~64。其中0的含义是数据库根据系统NUMA组的个数来自动配置线程池的线程分组个数,如果参数值大于0,线程池中的线程组个数等于group_num。thread_pool_stream_attr的group_num需与thread_pool_attr的group_num配置和使用保持一致,若设置为不同值,以thread_pool_attr的group_num为准。 cpubind_info:线程池是否绑核的配置参数。可选择的配置方式有集中:1. '(nobind)' ,线程不做绑核;2. '(allbind)',利用当前系统所有能查询到的CPU core做线程绑核;3. '(nodebind: 1, 2)',利用NUMA组1,2中的CPU core进行绑核;4. '(cpubind: 0-30)',利用0-30号CPU core进行绑核;5. '(numabind: 0-30)',在NUMA组内利用0-30号CPU core进行绑核。该参数不区分大小写。thread_pool_stream_attr的cpubind_info需与thread_pool_attr的cpubind_info配置和使用保持一致,若设置为不同值,以thread_pool_attr的cpubind_info为准。 默认值: stream_thread_num:16 stream_proc_ratio:0.2 group_num、cpubind_info:参见thread_pool_attr。
  • targetServerType 原理:值为master时会依次尝试连接串中配置的IP,直到能够连接到集群中的主机。 值为slave时会依次尝试连接串中配置的IP,直到能够连接到集群中的备机(查询语句为:select local_role, db_state from pg_stat_get_stream_replications();)。 建议:有写操作的业务建议配置master,以保证主备切换后能正常连接主机,但是要注意在主备倒换过程中备机没有完全升主的时候无法正常建连,导致业务语句无法正常执行。
  • loginTimeout 作用:控制与数据库建连时间,其中时间包括connectTimeout和socketTimeout,超过阈值则退出。计算方式为:loginTimeout=connectTimeout*节点数量+连接认证时间+初始化语句执行时间。 建议:配置后每次建连都会开启一个异步线程,在连接数较多的情况可能会导致客户端压力增大,如果业务确认需要设置此参数,在集中式环境下建议调整为3*connectTimeout防止在网络异常情况且第三个IP为主的情况下,无法连接,缺省值为0。 此参数设置后对于多IP而言,时间是尝试连接IP的时间,可能会出现因为设置的值较小导致后面的IP无法连接的问题,例如设置了三个IP,如果loginTimeout为5s,但前两个ip建连总共用了5s,第三个IP会无法进行连接。在集中式环境下,此最后一个IP恰好为主机,可能会导致自动寻主失败。
  • fetchsize 原理:fetchsize在设置为n时,数据库服务器端在执行查询后,调用者在执行resultset.next()的时候,JDBC会先与服务器端进行通信,取n条数据到JDBC的客户端中,然后返回第一条给调用者。当调用者取到第n+1条数据的时候,会再次到数据库服务端取数据。 作用:避免了数据库同时把所有结果全部传输到客户端,导致客户端的内存资源不足。 建议:建议根据自身的业务查询数据数量和客户端机器内存情况来配置此参数,设置fetchsize时要关闭自动提交autocommit=false模式,否则会导致fetchsize无法生效。
  • setAutocommit方法 作用:值为true时,执行每个语句都会自动开启事务,在执行结束后自动提交事务,即每个语句都是一个事务。值为false时,会自动开启一个事务,事务需要通过执行SQL手动提交。 建议:根据业务特征进行调整,如果基于性能或者其它方面考虑,需要关闭autocommit时,需要应用程序自己来保证事务的提交。例如,在指定的业务SQL执行完之后做显式提交,特别是客户端退出之前务必保证所有的事务已经提交。
  • 数据库实例类型 GaussDB的实例类型如表1所示。 表1 实例类型 实例类型 支持的部署形态 是否支持实例扩容 适用场景 包含的组件 业务处理流程 分布式版 独立部署:将数据库组件部署在不同节点上。适用于可靠性、稳定性要求较高,实例规模较大的场景。 混合部署:采用一主两备三节点的部署模式,包含三个分片。 是 数据量较大,对数据容量和并发能力有一定诉求。 OM CM GTM ETCD CN DN 业务应用下发SQL给CN ,CN利用数据库的优化器生成执行计划,下发给DN,每个DN会按照执行计划的要求去处理数据,处理完成后DN将结果集返回给CN进行汇总,最后CN将汇总后的结果返回给业务应用。 主备版 高可用(1主2备):采用一主两备三节点的部署模式,包含一个分片。 单副本:采用单节点的部署模式,仅包含一个CMS和一个DN组件,不适用于生产环境。单副本实例仅支持2.2及以上版本实例。由于部署在单台机器上,因此无法保障可用性(SLA)。 1主1备1日志:采用一主一备一日志三节点的部署模式,包含一个分片。 否 数据量较小,且长期来看数据不会大幅度增长,但是对数据的可靠性,以及业务的可用性有一定诉求。 OM CM ETCD DN 业务应用直接下发任务给DN, DN处理完成后再将结果返回给业务应用。 OM:运维管理模块(Operation Manager)。提供集群日常运维、配置管理的管理接口、工具。 CM:集群管理模块(Cluster Manager)。管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。 GTM:全局事务管理器(Global Transaction Manager),负责生成和维护全局事务ID、事务快照、时间戳、sequence信息等全局唯一的信息。 ETCD:分布式键值存储系统(Editable Text Configuration Daemon)。用于共享配置和服务发现(服务注册和查找)。 CN:协调节点(Coordinator Node)。负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。 DN:数据节点(Data Node)。负责存储业务数据、执行数据查询任务以及返回执行结果。 GaussDB分布式版逻辑架构图如下: 图1 分布式版逻辑架构图 GaussDB主备版逻辑架构图如下: 图2 主备版逻辑架构图 父主题: 实例说明
  • 身份认证 用户访问云数据库 GaussDB时支持对数据库用户进行身份验证,包含密码验证和IAM验证两种方式。 密码验证 您需要对数据库实例进行管理,使用数据管理服务(Data Admin Service)登录数据库时,需要对账号密码进行验证,验证成功后方可进行操作。 IAM验证 您可以使用统一身份认证服务(Identity and Access Management, IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全地控制华为云资源的访问。您创建的IAM用户,需要通过验证用户和密码才可以使用GaussDB资源。具体请参见创建IAM用户并登录。
  • 访问控制 权限控制 购买实例之后,您可以使用IAM为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,通过IAM进行精细的权限管理。具体内容请参见权限管理。 VPC和子网 虚拟私有云(Virtual Private Cloud, VPC)为云数据库构建隔离的、用户自主配置和管理的虚拟网络环境,提升用户云上资源的安全性,简化用户的网络部署。您可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性,方便管理、配置内部网络,进行安全、快捷的网络变更。 子网提供与其他网络隔离的、可以独享的网络资源,以提高网络安全性。 具体内容请参见创建虚拟私有云和子网。 安全组 安全组是一个逻辑上的分组,为同一个虚拟私有云内具有相同安全保护需求并相互信任的和GaussDB数据库实例提供访问策略。为了保障数据库的安全性和稳定性,在使用GaussDB数据库实例之前,您需要设置安全组,开通需访问数据库的IP地址和端口。 具体请参见设置安全组规则。
  • GaussDB数据库和内核引擎版本对应关系 GaussDB版本的对应关系如表1所示。 GaussDB数据库引擎版本和内核引擎版本查询方法请参考查看云数据库GaussDB数据库和内核引擎版本。 表1 GaussDB数据库和内核引擎版本对应关系 GaussDB数据库引擎版本 GaussDB内核引擎版本 8.102.0 505.1.0 3.226.0 503.1.0.SPC2300 3.223.0 503.1.0.SPC2000 3.222.0 503.1.0.SPC1700 3.220.0 503.1.0.SPC1500 3.208.0 503.1.0.SPC1200 3.207.0 503.1.0.SPC1100 3.201.0 503.1.0.SPC0200
  • package package是一组相关存储过程、函数、变量、常量、游标等PL/SQL程序的组合,具有面向对象的特点,可以对PL/SQL程序设计元素进行封装。package中的函数具有统一性,创建、删除、修改都统一进行。 package包含包头(Package Specification)和Package Body两个部分,其中包头所包含的声明可以被外部函数、匿名块等访问,而在包体中包含的声明不能被外部函数、匿名块等访问,只能被包体内函数和存储过程等访问。 PACKAGE的创建请参见CREATE PACKAGE。 跨PACKAGE变量不支持作为FOR循环中控制变量使用。 PACKAGE中定义类型不支持删除、修改等操作,也不支持定义表。 不支持以SCHEMA.PACKAGE.CUROSR的形式引用cursor变量。 带参数的CURSOR仅支持在当前PACKAGE内打开。 不支持package变量作为函数或存储过程参数的默认值。 父主题: 存储过程
  • 2.x支持修改的参数: 支持修改的参数如下: 表3 分布式参数 参数名称 描述 audit_system_object 该参数决定是否对GaussDB Kernel数据库对象的CREATE、DROP、ALTER操作进行审计。GaussDB Kernel数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作,在主备强制选主场景建议audit_system_object取最大值,所有DDL对象全部审计,不当修改该参数会导致丢失DDL审计日志,请在技术支持人员指导下进行修改。 autoanalyze 标识是否允许在生成计划的时候,对于没有统计信息的表进行统计信息自动收集。 autoanalyze_timeout 设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze。0表示不超时,单位为秒。 cn:effective_cache_size 设置CN节点优化器在一次单一的查询中可用的磁盘缓冲区的有效大小,单位为8KB。 cn:enable_hotkeys_collection 是否开启对数据库内的被访问的键值进行统计。 cn:track_stmt_session_slot 设置CN一个session缓存的最大的全量/慢SQL的数量。 datestyle 设置日期和时间值的显示格式。 dn:effective_cache_size 设置DN节点优化器在一次单一的查询中可用的磁盘缓冲区的有效大小,单位为8KB。 dn:enable_hotkeys_collection 是否开启对数据库内的被访问的键值进行统计。 dn:track_stmt_session_slot 设置DN一个session缓存的最大的全量/慢SQL的数量。 enable_seqscan 控制优化器对顺序扫描规划类型的使用。完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。 enable_slot_log 是否开启逻辑复制槽主备同步特性。 enable_stream_operator 控制优化器对stream的使用。当该参数关闭时,可能会有大量关于计划不能下推的日志记录到日志文件中。 failed_login_attempts 在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁,仅sysadmin用户可以访问。 log_min_duration_statement 当某条语句的持续时间大于或者等于特定的毫秒数时,记录每条完成语句的持续时间。设置过低的阈值可能影响负载吞吐,-1表示关闭此功能,单位是毫秒。 max_replication_slots 设置主机端的日志复制slot个数。 max_wal_senders 备DN连接主DN获取物理日志,逻辑复制工具连接主DN获取逻辑日志都会占用walsender线程,此参数标识最大允许创建walsender线程的个数。 password_effect_time 该字段决定账户密码的有效时间,单位为天。 password_lock_time 设置账户被锁定后的自动解锁时间,单位为天。 recovery_time_target 设置recovery_time_target秒能够让备机完成日志写入和回放。单位为秒。 session_timeout 表明与服务器建立链接后,不进行任何操作的最长时间。0表示关闭超时设置,单位为秒。 timezone 设置显示和解释时间类型数值时使用的时区。 track_stmt_stat_level 控制语句执行跟踪的级别。 update_lockwait_timeout 允许并发更新参数开启情况下,该参数控制并发更新同一行时单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错,单位是毫秒。 wal_level 设置写入WAL信息量的级别,不能为空或被注释掉。此参数设置为logical后才允许进行逻辑日志抽取,此参数设置为logical后xlog日志中会额外记录主键信息。 cn:audit_thread_num 审计线程的个数,取值范围 1~48。 dn:audit_thread_num 审计线程的个数,取值范围 1~48。 cn:qrw_inlist2join_optmode 控制是否使用inlist-to-join查询重写。 dn:qrw_inlist2join_optmode 控制是否使用inlist-to-join查询重写。 cn:audit_xid_info 是否在审计日志字段detail_info中记录SQL语句的事务ID,0表示关闭,1表示开启。 dn:audit_xid_info 是否在审计日志字段detail_info中记录SQL语句的事务ID,0表示关闭,1表示开启。 cn:default_limit_rows 设置生成genericplan的缺省limit估算行数。此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。 dn:default_limit_rows 设置生成genericplan的缺省limit估算行数。此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。 cn:audit_dml_state_select 是否对SELECT操作进行审计。 dn:audit_dml_state_select 是否对SELECT操作进行审计。 cn:audit_dml_state 是否对具体表的INSERT、UPDATE、DELETE操作进行审计,0表示关闭,1表示开启。 dn:audit_dml_state 是否对具体表的INSERT、UPDATE、DELETE操作进行审计,0表示关闭,1表示开启。 cn:random_page_cost 设置优化器计算一次非顺序抓取磁盘页面的开销。 dn:random_page_cost 设置优化器计算一次非顺序抓取磁盘页面的开销。 cn:enable_security_policy 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。 dn:enable_security_policy 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。 cn:audit_set_parameter 是否对SET操作进行审计,0表示关闭,1表示开启。 dn:audit_set_parameter 是否对SET操作进行审计,0表示关闭,1表示开启。 cn:enable_pbe_optimization 设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。 dn:enable_pbe_optimization 设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。 wdr_snapshot_interval 后台Snapshot自动对数据库监控数据执行快照操作的时间间隔,单位分钟。 enable_wdr_snapshot 是否开启WDR 性能快照,开启时内核将定期进行性能视图快照。 cn:max_standby_archive_delay 当开启双机热备模式时,如果备机正处理归档WAL日志数据,此时进行查询会产生冲突,此参数就是设置备机取消查询之前所等待的时间,单位为ms。 dn:max_standby_archive_delay 当开启双机热备模式时,如果备机正处理归档WAL日志数据,此时进行查询会产生冲突,此参数就是设置备机取消查询之前所等待的时间,单位为ms。 cn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 dn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 cn:recovery_max_workers 并行回放线程个数。 dn:recovery_max_workers 并行回放线程个数。 cn:local_syscache_threshold 系统表cache在单个session缓存的大小。单位为KB。 dn:local_syscache_threshold 系统表cache在单个session缓存的大小。单位为KB。 cms:datastorage_threshold_value_check 设置磁盘占用率只读检测阈值,当数据目录所在磁盘占用超过这个阈值,自动将数据库节点设置为只读模式,单位为百分比。 wdr_snapshot_retention_days 系统中数据库监控快照数据的保留天数,单位天。 表4 主备版参数 参数名称 描述 audit_system_object 该参数决定是否对GaussDB Kernel数据库对象的CREATE、DROP、ALTER操作进行审计。GaussDB Kernel数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作,在主备强制选主场景建议audit_system_object取最大值,所有DDL对象全部审计,不当修改该参数会导致丢失DDL审计日志,请在技术支持人员指导下进行修改。 autoanalyze 标识是否允许在生成计划的时候,对于没有统计信息的表进行统计信息自动收集。 autoanalyze_timeout 设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze。0表示不超时,单位为秒。 datestyle 设置日期和时间值的显示格式。 dn:wal_keep_segments “pg_xlog”目录下保留事务日志文件的最小数目。备机通过获取主机此处的日志进行流复制。 enable_seqscan 控制优化器对顺序扫描规划类型的使用。完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。 enable_slot_log 是否开启逻辑复制槽主备同步特性。 failed_login_attempts 在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁,仅sysadmin用户可以访问。 log_min_duration_statement 当某条语句的持续时间大于或者等于特定的毫秒数时,记录每条完成语句的持续时间。设置过低的阈值可能影响负载吞吐,-1表示关闭此功能,单位是毫秒。 max_replication_slots 设置主机端的日志复制slot个数。 max_wal_senders 备DN连接主DN获取物理日志,逻辑复制工具连接主DN获取逻辑日志都会占用walsender线程,此参数标识最大允许创建walsender线程的个数。 password_effect_time 该字段决定账户密码的有效时间,单位为天。 password_lock_time 设置账户被锁定后的自动解锁时间,单位为天。 session_timeout 表明与服务器建立链接后,不进行任何操作的最长时间。0表示关闭超时设置,单位为秒。 timezone 设置显示和解释时间类型数值时使用的时区。 update_lockwait_timeout 允许并发更新参数开启情况下,该参数控制并发更新同一行时单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错,单位是毫秒。 wal_level 设置写入WAL信息量的级别,不能为空或被注释掉。此参数设置为logical后才允许进行逻辑日志抽取,此参数设置为logical后xlog日志中会额外记录主键信息。 dn:audit_thread_num 审计线程的个数,取值范围 1~48。 dn:qrw_inlist2join_optmode 控制是否使用inlist-to-join查询重写。 dn:audit_xid_info 是否在审计日志字段detail_info中记录SQL语句的事务ID,0表示关闭,1表示开启。 dn:default_limit_rows 设置生成genericplan的缺省limit估算行数。此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。 dn:audit_dml_state_select 是否对SELECT操作进行审计。 dn:audit_dml_state 是否对具体表的INSERT、UPDATE、DELETE操作进行审计,0表示关闭,1表示开启。 dn:random_page_cost 设置优化器计算一次非顺序抓取磁盘页面的开销。 dn:enable_security_policy 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。 dn:audit_set_parameter 是否对SET操作进行审计,0表示关闭,1表示开启。 dn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 dn:vacuum_defer_cleanup_age 指定VACUUM使用的事务数。 dn:enable_pbe_optimization 设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。 wdr_snapshot_interval 后台Snapshot自动对数据库监控数据执行快照操作的时间间隔,单位分钟。 undo_retention_time 该参数用于闪回查询功能,设置undo日志保留时间,单位为秒。提示:1.本地磁盘undo空间会变大;2.后续增量备份中备份集大小会变大,保留了额外的undo内容。 track_stmt_stat_level 控制语句执行跟踪的级别。 enable_wdr_snapshot 是否开启WDR 性能快照,开启时内核将定期进行性能视图快照。 dn:max_standby_archive_delay 当开启双机热备模式时,如果备机正处理归档WAL日志数据,此时进行查询会产生冲突,此参数就是设置备机取消查询之前所等待的时间,单位为ms。 dn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 dn:recovery_max_workers 并行回放线程个数。 dn:recovery_time_target 设置recovery_time_target秒能够让备机完成日志写入和回放。单位为秒。 dn:local_syscache_threshold 系统表cache在单个session缓存的大小。单位为KB。 cms:datastorage_threshold_value_check 设置磁盘占用率只读检测阈值,当数据目录所在磁盘占用超过这个阈值,自动将数据库节点设置为只读模式,单位为百分比。 wdr_snapshot_retention_days 系统中数据库监控快照数据的保留天数,单位天。 log_autovacuum_min_duration 设置自动清理时间阈值,当自动清理的执行时间大于或者等于某个特定的阈值,向服务器日志中记录自动清理执行的每一步操作。当参数设置为0时,表示所有的自动清理操作都记录到日志中。当参数设置为-1时,表示所有的自动清理操作都不记录到日志中。
  • 3.x支持修改的参数: 支持修改的参数如下: 表1 分布式参数 参数名称 描述 audit_system_object 该参数决定是否对GaussDB Kernel数据库对象的CREATE、DROP、ALTER操作进行审计。GaussDB Kernel数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作,在主备强制选主场景建议audit_system_object取最大值,所有DDL对象全部审计,不当修改该参数会导致丢失DDL审计日志,请在技术支持人员指导下进行修改。 autoanalyze 标识是否允许在生成计划的时候,对于没有统计信息的表进行统计信息自动收集。 autoanalyze_timeout 设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze。0表示不超时,单位为秒。 cn:effective_cache_size 设置CN节点优化器在一次单一的查询中可用的磁盘缓冲区的有效大小,单位为8KB。 cn:enable_hotkeys_collection 是否开启对数据库内的被访问的键值进行统计。 cn:track_stmt_session_slot 设置CN一个session缓存的最大的全量/慢SQL的数量。 datestyle 设置日期和时间值的显示格式。 dn:effective_cache_size 设置DN节点优化器在一次单一的查询中可用的磁盘缓冲区的有效大小,单位为8KB。 dn:enable_hotkeys_collection 是否开启对数据库内的被访问的键值进行统计。 dn:track_stmt_session_slot 设置DN一个session缓存的最大的全量/慢SQL的数量。 enable_seqscan 控制优化器对顺序扫描规划类型的使用。完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。 enable_slot_log 是否开启逻辑复制槽主备同步特性。 enable_stream_operator 控制优化器对stream的使用。当该参数关闭时,可能会有大量关于计划不能下推的日志记录到日志文件中。 failed_login_attempts 在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁,仅sysadmin用户可以访问。 log_min_duration_statement 当某条语句的持续时间大于或者等于特定的毫秒数时,记录每条完成语句的持续时间。设置过低的阈值可能影响负载吞吐,-1表示关闭此功能,单位是毫秒。 max_replication_slots 设置主机端的日志复制slot个数。 max_wal_senders 备DN连接主DN获取物理日志,逻辑复制工具连接主DN获取逻辑日志都会占用walsender线程,此参数标识最大允许创建walsender线程的个数。 password_effect_time 该字段决定账户密码的有效时间,单位为天。 password_lock_time 设置账户被锁定后的自动解锁时间,单位为天。 recovery_time_target 设置recovery_time_target秒能够让备机完成日志写入和回放。单位为秒。 session_timeout 表明与服务器建立链接后,不进行任何操作的最长时间。0表示关闭超时设置,单位为秒。 timezone 设置显示和解释时间类型数值时使用的时区。 track_stmt_stat_level 控制语句执行跟踪的级别。 update_lockwait_timeout 允许并发更新参数开启情况下,该参数控制并发更新同一行时单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错,单位是毫秒。 wal_level 设置写入WAL信息量的级别,不能为空或被注释掉。此参数设置为logical后才允许进行逻辑日志抽取,此参数设置为logical后xlog日志中会额外记录主键信息。 cn:audit_thread_num 审计线程的个数,取值范围 1~48。 dn:audit_thread_num 审计线程的个数,取值范围 1~48。 cn:qrw_inlist2join_optmode 控制是否使用inlist-to-join查询重写。 dn:qrw_inlist2join_optmode 控制是否使用inlist-to-join查询重写。 cn:audit_xid_info 是否在审计日志字段detail_info中记录SQL语句的事务ID,0表示关闭,1表示开启。 dn:audit_xid_info 是否在审计日志字段detail_info中记录SQL语句的事务ID,0表示关闭,1表示开启。 cn:default_limit_rows 设置生成genericplan的缺省limit估算行数。此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。 dn:default_limit_rows 设置生成genericplan的缺省limit估算行数。此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。 cn:audit_dml_state_select 是否对SELECT操作进行审计。 dn:audit_dml_state_select 是否对SELECT操作进行审计。 cn:audit_dml_state 是否对具体表的INSERT、UPDATE、DELETE操作进行审计,0表示关闭,1表示开启。 dn:audit_dml_state 是否对具体表的INSERT、UPDATE、DELETE操作进行审计,0表示关闭,1表示开启。 cn:random_page_cost 设置优化器计算一次非顺序抓取磁盘页面的开销。 dn:random_page_cost 设置优化器计算一次非顺序抓取磁盘页面的开销。 cn:enable_security_policy 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。 dn:enable_security_policy 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。 cn:audit_set_parameter 是否对SET操作进行审计,0表示关闭,1表示开启。 dn:audit_set_parameter 是否对SET操作进行审计,0表示关闭,1表示开启。 cn:enable_pbe_optimization 设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。 dn:enable_pbe_optimization 设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。 wdr_snapshot_interval 后台Snapshot自动对数据库监控数据执行快照操作的时间间隔,单位分钟。 cn:enable_auto_explain 控制是否开启自动打印执行计划。该参数是用来定位慢存储过程或慢查询。 dn:enable_auto_explain 控制是否开启自动打印执行计划。该参数是用来定位慢存储过程或慢查询。 enable_wdr_snapshot 是否开启WDR 性能快照,开启时内核将定期进行性能视图快照。 cn:max_concurrent_autonomous_transactions 自治事务最大连接数,同一时间自治事务执行的最大并发数。当设置为0时,将无法执行自治事务。 dn:max_concurrent_autonomous_transactions 自治事务最大连接数,同一时间自治事务执行的最大并发数。当设置为0时,将无法执行自治事务。 cn:max_standby_archive_delay 当开启双机热备模式时,如果备机正处理归档WAL日志数据,此时进行查询会产生冲突,此参数就是设置备机取消查询之前所等待的时间,单位为ms。 dn:max_standby_archive_delay 当开启双机热备模式时,如果备机正处理归档WAL日志数据,此时进行查询会产生冲突,此参数就是设置备机取消查询之前所等待的时间,单位为ms。 cn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 dn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 cn:recovery_max_workers 并行回放线程个数。 dn:recovery_max_workers 并行回放线程个数。 cn:auto_explain_log_min_duration 控制自动打印执行计划的耗时阈值,整体耗时大于auto_explain_log_min_duration的执行计划才会被打印。单位为ms。 dn:auto_explain_log_min_duration 控制自动打印执行计划的耗时阈值,整体耗时大于auto_explain_log_min_duration的执行计划才会被打印。单位为ms。 cn:audit_function_exec 这个参数决定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。 dn:audit_function_exec 这个参数决定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。 cn:local_syscache_threshold 系统表cache在单个session缓存的大小。单位为KB。 dn:local_syscache_threshold 系统表cache在单个session缓存的大小。单位为KB。 cms:datastorage_threshold_value_check 设置磁盘占用率只读检测阈值,当数据目录所在磁盘占用超过这个阈值,自动将数据库节点设置为只读模式,单位为百分比。 wdr_snapshot_retention_days 系统中数据库监控快照数据的保留天数,单位天。 cn:enable_default_ustore_table 指定是否开启默认支持Ustore存储引擎,该参数为on时,创建的表类型都为Ustore表。 dn:enable_default_ustore_table 指定是否开启默认支持Ustore存储引擎,该参数为on时,创建的表类型都为Ustore表。 cn:undo_space_limit_size 用于控制undo强制回收阈值,达到阈值的80%启动强制回收,单位为8kb。建议不小于undo_limit_size_per_transaction的值。 dn:undo_space_limit_size 用于控制undo强制回收阈值,达到阈值的80%启动强制回收,单位为8kb。建议不小于undo_limit_size_per_transaction的值。 cn:undo_limit_size_per_transaction 用于控制单事务undo分配空间阈值,达到阈值时事务报错回滚,单位为8kb。建议undo_limit_size_per_transaction的值小于undo_space_limit_size的值,若大于undo_space_limit_size的值,可以设置成功,但是在使用时取两个参数的最小值作为实际的单事务undo分配空间阈值。 dn:undo_limit_size_per_transaction 用于控制单事务undo分配空间阈值,达到阈值时事务报错回滚,单位为8kb。建议undo_limit_size_per_transaction的值小于undo_space_limit_size的值,若大于undo_space_limit_size的值,可以设置成功,但是在使用时取两个参数的最小值作为实际的单事务undo分配空间阈值。 cn:enable_recyclebin 用来控制回收站的实时打开和关闭。 dn:enable_recyclebin 用来控制回收站的实时打开和关闭。 cn:recyclebin_retention_time 设置回收站对象保留时间,超过该时间的回收站对象将被自动清理,单位为秒。 dn:recyclebin_retention_time 设置回收站对象保留时间,超过该时间的回收站对象将被自动清理,单位为秒。 cn:undo_retention_time 该参数用于闪回查询功能,设置undo日志保留时间,单位为秒。提示:1.本地磁盘undo空间会变大;2.后续增量备份中备份集大小会变大,保留了额外的undo内容。 dn:undo_retention_time 该参数用于闪回查询功能,设置undo日志保留时间,单位为秒。提示:1.本地磁盘undo空间会变大;2.后续增量备份中备份集大小会变大,保留了额外的undo内容。 cn:cost_model_version 此参数用来指定优化器代价模型的版本。可以视作一个保护参数,用来禁用最新的优化器代价模型,保持和旧版本计划一致。改变此参数,可能会导致很多SQL计划的改变。因此修改前请谨慎评估。 dn:cost_model_version 此参数用来指定优化器代价模型的版本。可以视作一个保护参数,用来禁用最新的优化器代价模型,保持和旧版本计划一致。改变此参数,可能会导致很多SQL计划的改变。因此修改前请谨慎评估。 cn:enable_dynamic_samplesize 是否动态调整采样行数。对于超过一百万行的大表,收集统计信息时动态调整采样行数,提高统计信息准确性。 dn:enable_dynamic_samplesize 是否动态调整采样行数。对于超过一百万行的大表,收集统计信息时动态调整采样行数,提高统计信息准确性。 cn:resilience_ctrlslot_available_maxpercent 最多允许慢SQL占用线程池的的线程占用百分比。仅对非sysadmin/monitoradmin用户执行的select类型的语句生效。 dn:resilience_ctrlslot_available_maxpercent 最多允许慢SQL占用线程池的的线程占用百分比。仅对非sysadmin/monitoradmin用户执行的select类型的语句生效。 cn:resilience_ctrlstmt_control_iopslimit 正常SQL语句被标记为慢SQL后,慢SQL可使用的最大IOPS上限。仅对非sysadmin/monitoradmin用户执行的select类型的语句生效。 0(None):表示不对IOPS做限制。 10(LOW):表示对IOPS限制等级为LOW。 20(MEDIUM):表示对IOPS限制等级为MEDIUM。 50(HIGH):表示对IOPS限制等级为HIGH。 dn:resilience_ctrlstmt_control_iopslimit 正常SQL语句被标记为慢SQL后,慢SQL可使用的最大IOPS上限。仅对非sysadmin/monitoradmin用户执行的select类型的语句生效。 0(None):表示不对IOPS做限制。 10(LOW):表示对IOPS限制等级为LOW。 20(MEDIUM):表示对IOPS限制等级为MEDIUM。 50(HIGH):表示对IOPS限制等级为HIGH。 dn:resilience_ctrlstmt_detect_timelimit 正常SQL语句被标记为慢SQL的执行时间,0不做慢SQL识别,大于0表示执行的SQL执行时间超过该时间后备标记为慢SQL。仅对非sysadmin/monitoradmin用户执行的select类型的语句生效。单位为ms。 表2 主备版参数 参数名称 描述 audit_system_object 该参数决定是否对GaussDB Kernel数据库对象的CREATE、DROP、ALTER操作进行审计。GaussDB Kernel数据库对象包括DATABASE、USER、schema、TABLE等。通过修改该配置参数的值,可以只审计需要的数据库对象的操作,在主备强制选主场景建议audit_system_object取最大值,所有DDL对象全部审计,不当修改该参数会导致丢失DDL审计日志,请在技术支持人员指导下进行修改。 autoanalyze 标识是否允许在生成计划的时候,对于没有统计信息的表进行统计信息自动收集。 autoanalyze_timeout 设置autoanalyze的超时时间。在对某张表做autoanalyze时,如果该表的analyze时长超过了autoanalyze_timeout,则自动取消该表此次analyze。0表示不超时,单位为秒。 datestyle 设置日期和时间值的显示格式。 dn:wal_keep_segments “pg_xlog”目录下保留事务日志文件的最小数目。备机通过获取主机此处的日志进行流复制。 enable_seqscan 控制优化器对顺序扫描规划类型的使用。完全消除顺序扫描是不可能的,但是关闭这个变量会让优化器在存在其他方法的时候优先选择其他方法。 enable_slot_log 是否开启逻辑复制槽主备同步特性。 failed_login_attempts 在任意时候,如果输入密码错误的次数达到failed_login_attempts则当前账户被锁定,password_lock_time秒后被自动解锁,仅sysadmin用户可以访问。 log_min_duration_statement 当某条语句的持续时间大于或者等于特定的毫秒数时,记录每条完成语句的持续时间。设置过低的阈值可能影响负载吞吐,-1表示关闭此功能,单位是毫秒。 max_replication_slots 设置主机端的日志复制slot个数。 max_wal_senders 备DN连接主DN获取物理日志,逻辑复制工具连接主DN获取逻辑日志都会占用walsender线程,此参数标识最大允许创建walsender线程的个数。 password_effect_time 该字段决定账户密码的有效时间,单位为天。 password_lock_time 设置账户被锁定后的自动解锁时间,单位为天。 session_timeout 表明与服务器建立链接后,不进行任何操作的最长时间。0表示关闭超时设置,单位为秒。 timezone 设置显示和解释时间类型数值时使用的时区。 update_lockwait_timeout 允许并发更新参数开启情况下,该参数控制并发更新同一行时单个锁的最长等待时间。当申请的锁等待时间超过设定值时,系统会报错,单位是毫秒。 wal_level 设置写入WAL信息量的级别,不能为空或被注释掉。此参数设置为logical后才允许进行逻辑日志抽取,此参数设置为logical后xlog日志中会额外记录主键信息。 dn:audit_thread_num 审计线程的个数,取值范围 1~48。 dn:qrw_inlist2join_optmode 控制是否使用inlist-to-join查询重写。 dn:audit_xid_info 是否在审计日志字段detail_info中记录SQL语句的事务ID,0表示关闭,1表示开启。 dn:default_limit_rows 设置生成genericplan的缺省limit估算行数。此参数设置为正数时意为直接将设置的值作为估算limit的行数,为负数时代表使用百分比的形式设置默认的估算值,负数转换为默认百分比,即-5代表5%。 dn:audit_dml_state_select 是否对SELECT操作进行审计。 dn:audit_dml_state 是否对具体表的INSERT、UPDATE、DELETE操作进行审计,0表示关闭,1表示开启。 dn:random_page_cost 设置优化器计算一次非顺序抓取磁盘页面的开销。 dn:enable_security_policy 安全策略开关,控制统一审计和数据动态脱敏策略是否生效。 dn:audit_set_parameter 是否对SET操作进行审计,0表示关闭,1表示开启。 dn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 dn:vacuum_defer_cleanup_age 指定VACUUM使用的事务数。 dn:enable_pbe_optimization 设置优化器是否对以PBE(Parse Bind Execute)形式执行的语句进行查询计划的优化。 wdr_snapshot_interval 后台Snapshot自动对数据库监控数据执行快照操作的时间间隔,单位分钟。 undo_retention_time 该参数用于闪回查询功能,设置undo日志保留时间,单位为秒。提示:1.本地磁盘undo空间会变大;2.后续增量备份中备份集大小会变大,保留了额外的undo内容。 track_stmt_stat_level 控制语句执行跟踪的级别。 dn:enable_auto_explain 控制是否开启自动打印执行计划。该参数是用来定位慢存储过程或慢查询。 enable_wdr_snapshot 是否开启WDR 性能快照,开启时内核将定期进行性能视图快照。 dn:max_concurrent_autonomous_transactions 自治事务最大连接数,同一时间自治事务执行的最大并发数。当设置为0时,将无法执行自治事务。 dn:max_standby_archive_delay 当开启双机热备模式时,如果备机正处理归档WAL日志数据,此时进行查询会产生冲突,此参数就是设置备机取消查询之前所等待的时间,单位为ms。 dn:max_standby_streaming_delay 设置备机取消查询之前等待的时间,单位为ms。 dn:recovery_max_workers 并行回放线程个数。 dn:auto_explain_log_min_duration 控制自动打印执行计划的耗时阈值,整体耗时大于auto_explain_log_min_duration的执行计划才会被打印。单位为ms。 dn:recovery_time_target 设置recovery_time_target秒能够让备机完成日志写入和回放。单位为秒。 dn:audit_function_exec 这个参数决定在执行存储过程、匿名块或自定义函数(不包括系统自带函数)时是否记录审计信息。 dn:local_syscache_threshold 系统表cache在单个session缓存的大小。单位为KB。 cms:datastorage_threshold_value_check 设置磁盘占用率只读检测阈值,当数据目录所在磁盘占用超过这个阈值,自动将数据库节点设置为只读模式,单位为百分比。 wdr_snapshot_retention_days 系统中数据库监控快照数据的保留天数,单位天。 dn:undo_space_limit_size 用于控制undo强制回收阈值,达到阈值的80%启动强制回收,单位为8kb。建议不小于undo_limit_size_per_transaction的值。 dn:group_concat_max_len 函数GROUP_CONCAT()结果的最大长度。 dn:enable_extension 控制是否支持创建数据库扩展插件。扩展插件属于实验室特性,不推荐使用。 dn:cost_model_version 此参数用来指定优化器代价模型的版本。可以视作一个保护参数,用来禁用最新的优化器代价模型,保持和旧版本计划一致。改变此参数,可能会导致很多SQL计划的改变。因此修改前请谨慎评估。 dn:immediate_analyze_threshold 插入数据后自动做analyze的阈值。当新增数据量达到原有数据量的immediate_analyze_threshold倍,且总行数超过一百时,会自动触发一次analyze。 dn:enable_dynamic_samplesize 是否动态调整采样行数。对于超过一百万行的大表,收集统计信息时动态调整采样行数,提高统计信息准确性。 dn:max_io_capacity 设置后端写进程批量刷页每秒的IO上限,需要根据具体业务场景和机器磁盘IO能力进行设置,要求RTO很短时间或者数据量比共享内存大多倍的情况,业务访问数据量又是随机访问时,该值不宜过小。设置较小的max_io_capacity会减小后端写进程刷页个数,如果业务触发页面淘汰多时,该值设置小会影响业务,单位为KB。 dn:max_connections 设置DN允许连接的最大并发连接数。 log_autovacuum_min_duration 设置自动清理时间阈值,当自动清理的执行时间大于或者等于某个特定的阈值,向服务器日志中记录自动清理执行的每一步操作。当参数设置为0时,表示所有的自动清理操作都记录到日志中。当参数设置为-1时,表示所有的自动清理操作都不记录到日志中。
  • 示例 示例1:连接数据库 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 //以下代码将获取数据库连接操作封装为一个接口,可通过给定用户名和密码来连接数据库。 public static Connection getConnect(String username, String passwd) { //驱动类。 String driver = "org.postgresql.Driver"; //数据库连接描述符。 String sourceURL = "jdbc:postgresql://$ip:$port/postgres"; Connection conn = null; try { //加载驱动。 Class.forName(driver); } catch( Exception e ) { e.printStackTrace(); return null; } try { //创建连接。 conn = DriverManager.getConnection(sourceURL, username, passwd); System.out.println("Connection succeed!"); } catch(Exception e) { e.printStackTrace(); return null; } return conn; } 示例2:使用Properties对象作为参数建立连接 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 // 以下代码将使用Properties对象作为参数建立连接 public static Connection getConnectUseProp(String username, String passwd) { //驱动类。 String driver = "org.postgresql.Driver"; //数据库连接描述符。 String sourceURL = "jdbc:postgresql://$ip:$port/postgres"; Connection conn = null; Properties info = new Properties(); try { //加载驱动。 Class.forName(driver); } catch( Exception e ) { e.printStackTrace(); return null; } try { info.setProperty("user", username); info.setProperty("password", passwd); //创建连接。 conn = DriverManager.getConnection(sourceURL, info); System.out.println("Connection succeed!"); } catch(Exception e) { e.printStackTrace(); return null; } return conn; } 常用参数详情请参见JDBC常用参数参考。
  • 区域和可用区 区域和可用区用来描述数据中心的位置,您可以在特定的区域、可用区创建资源。 区域(Region):从地理位置和网络时延维度划分,同一个Region内共享弹性计算、块存储、对象存储、VPC网络、弹性公网IP、镜像等公共服务。Region分为通用Region和专属Region,通用Region指面向公共租户提供通用云服务的Region;专属Region指只承载同一类业务或只面向特定租户提供业务服务的专用Region。 可用区(AZ,Availability Zone):一个AZ是一个或多个物理数据中心的集合,有独立的风火水电,AZ内逻辑上再将计算、网络、存储等资源划分成多个实例。一个Region中的多个AZ间通过高速光纤相连,以满足用户跨AZ构建高可用性系统的需求。 图1阐明了区域和可用区之间的关系。 图1 区域和可用区 目前,华为云已在全球多个地域开放云服务,您可以根据需求选择适合自己的区域和可用区。更多信息请参见华为云全球站点。
  • 参数 表1 数据库连接参数 参数 描述 url postgresql.jar数据库连接描述符。格式如下: jdbc:postgresql:database jdbc:postgresql://host/database jdbc:postgresql://host:port/database jdbc:postgresql://host:port/database?param1=value1¶m2=value2 jdbc:postgresql://host1:port1,host2:port2/database?param1=value1¶m2=value2 说明: database为要连接的数据库名称。 host为数据库服务器名称或IP地址。 由于安全原因,数据库主节点禁止数据库内部其他节点无认证接入。如果要在数据库内部访问数据库主节点,请将JDBC程序部署在数据库主节点所在机器,host使用“127.0.0.1”。否则可能会出现“FATAL: Forbid remote connection with trust method!”错误。 建议业务系统单独部署在数据库外部,否则可能会影响数据库运行性能。 缺省情况下,连接服务器为localhost。 port为数据库服务器端口。 缺省情况下,会尝试连接到5431端口的database。 param为参数名称,即数据库连接属性。 参数可以配置在URL中,以“?”开始配置,以“=”给参数赋值,以“&”作为不同参数的间隔。也可以采用info对象的属性方式进行配置,详情见示例。 value为参数值,即数据库连接属性值。 连接时需配置connectTimeout、socketTimeout,如果未配置,默认为0,即不会超时。在DN与客户端出现网络故障时,客户端一直未收到DN侧ACK确认报文,会启动超时重传机制,不断的进行重传。当超时时间达到系统默认的600s后才会报超时错误,这会导致RTO时间较高。 info 数据库连接属性(所有属性大小写敏感)。常用的属性如下: PGDBNAME:String类型。表示数据库名称(URL中无需配置该参数,自动从URL中解析)。 PGHOST:String类型。主机IP地址。详情见示例。 PGPORT:Integer类型。主机端口号。详情见示例。 user:String类型。表示创建连接的数据库用户。 password:String类型。表示数据库用户的密码。 enable_ce:String类型。其中enable_ce=1表示JDBC支持密态等值查询基本能力。 refreshClientEncryption:String类型。其中refreshClientEncryption=1表示密态数据库支持客户端缓存刷新(默认值为1)。 loggerLevel:String类型。目前支持3种级别:OFF、DEBUG、TRACE。设置为OFF关闭日志,设置为DEBUG和TRACE记录的日志信息详细程度不同。 loggerFile:String类型。Logger输出的文件名。需要显示指定日志文件名,若未指定目录则生成在客户端运行程序目录。此参数已废弃,不再生效,如需使用可通过 java.util.logging 属性文件或系统属性进行配置。 allowEncodingChanges:Boolean类型。设置该参数值为“true”进行字符集类型更改,配合characterEncoding=CHARSET设置字符集,二者使用“&”分隔。characterEncoding取值范围为UTF8、GBK、LATIN1、GB18030,缺省值为false。 说明: 当连接到字符集为GB18030_2022的数据库时,characterEncoding设置为GB18030_2022不生效,会默认使用UTF8,需要设置为GB18030才能正常解析服务端的GB18030_2022字符。 currentSchema:String类型。在search-path中指定要设置的Schema。如果Schema名包含除字母、数字、下划线之外的特殊字符,建议在Schema名上加引号,注意加引号后Schema名大小写敏感。如需配置多个Schema,要用“,”进行分隔,包含特殊字符的Schema也需要加引号处理。 例如:currentSchema=schema_a、"schema-b"、"schema/c"。 hostRecheckSeconds:Integer类型。JDBC尝试连接主机后会保存主机状态:连接成功或连接失败。在hostRecheckSeconds时间内保持可信,超过则状态失效。缺省值是10秒。 ssl:Boolean类型。以SSL方式连接。 ssl=true可支持NonValidatingFactory通道和使用证书的方式: 1、NonValidatingFactory通道需要配置用户名和密码,同时将SSL设置为true。 2、配置客户端证书、密钥、根证书,将SSL设置为true。 sslmode:String类型。SSL认证方式。取值范围为:disable、allow、prefer、require、verify-ca、verify-full。 disable:不使用SSL安全连接。 allow:如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。 prefer:如果数据库支持,那么首选使用SSL连接,但不验证数据库服务器的真实性。 require只尝试SSL连接,如果存在CA文件,则应设置成verify-ca的方式验证。 verify-ca只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书。 verify-full只尝试SSL连接,并且验证服务器是否具有由可信任的证书机构签发的证书,以及验证服务器主机名是否与证书中的一致。 sslcert:String类型。提供证书文件的完整路径。客户端和服务端证书的类型为End Entity。 sslkey:String类型。提供密钥文件的完整路径。使用时将客户端证书转换为DER格式。 openssl pkcs8 -topk8 -outform DER -in client.key -out client.key.pk8 -nocrypt sslrootcert:String类型。SSL根证书的文件名。根证书的类型为CA。 sslpassword:String类型。提供给ConsoleCallbackHandler使用。 sslpasswordcallback:String类型。SSL密码提供者的类名。缺省值:org.postgresql.ssl.jdbc4.LibPQFactory.ConsoleCallbackHandler。 sslfactory:String类型。提供的值是SSLSocketFactory在建立SSL连接时用的类名。 sslfactoryarg:String类型。此值是sslfactory类的构造函数的可选参数(不推荐使用)。 sslhostnameverifier:String类型。主机名验证程序的类名。接口实现javax.net.ssl.HostnameVerifier,默认使用org.postgresql.ssl.PGjdbcHostnameVerifier。 loginTimeout:Integer类型。指建立数据库连接的等待时间。超时时间单位为秒。当url配置多IP时,若获取连接花费的时间超过此值,则连接失败,不再尝试后续IP,缺省值为0。 connectTimeout:Integer类型。用于连接服务器操作的超时值。如果连接到服务器花费的时间超过此值,则连接断开。超时时间单位为秒,值为0时表示已禁用,timeout不生效。当url配置多IP时,表示连接单个IP的超时时间,缺省值为0。 socketTimeout:Integer类型。用于socket读取操作的超时值。如果从服务器读取所花费的时间超过此值,则连接关闭。超时时间单位为秒,值为0时表示已禁用,timeout不生效,缺省值为0。 socketTimeoutInConnecting:Integer类型。用于控制建连阶段socket读取操作的超时值。如果建连时从服务器读取所花费的时间超过此值,则查找下一个节点建连。超时时间单位为秒,默认为5s。 statementTimeout:Integer类型。用于控制connection中statement执行时间的超时值。如果statement执行时间超过此值,则取消该statement执行。超时时间单位为毫秒,值为0表示已禁用,timeout不生效,缺省值为0。 driverInfoMode:String类型。用于控制驱动描述信息的输出模式。取值范围为postgresql、gaussdb,默认缺省值为postgresql,输出postgresql相关的驱动描述信息;设置为gaussdb时输出gaussdb相关的驱动描述信息。 cancelSignalTimeout:Integer类型。发送取消消息本身可能会阻塞,此属性控制用于取消命令的“connect超时”和“socket超时”。超时时间单位为秒,默认值为10秒。 tcpKeepAlive:Boolean类型。启用或禁用TCP保活探测功能。默认为false。 logUnclosedConnections:Boolean类型。客户端可能由于未调用Connection对象的close()方法而泄漏Connection对象。最终这些对象将被垃圾回收,并且调用finalize()方法。如果调用者忽略了此操作,该方法将关闭Connection,缺省值为false。 assumeMinServerVersion:String类型。客户端会发送请求进行float精度设置。该参数设置要连接的服务器版本,如assumeMinServerVersion=9.0,可以在建立时减少相关包的发送。 ApplicationName:String类型。设置正在使用连接的JDBC驱动的名称。通过在数据库主节点上查询pg_stat_activity表可以看到正在连接的客户端信息,JDBC驱动名称显示在application_name列。缺省值为PostgreSQL JDBC Driver。 connectionExtraInfo:Boolean类型。表示驱动是否上报当前驱动的部署路径、进程属主用户到数据库。 取值范围:true或false,默认值为false。设置connectionExtraInfo为true,JDBC驱动会将当前驱动的部署路径、进程属主用户、url连接配置信息上报到数据库中,记录在connection_info参数里,同时可以在PG_STAT_ACTIVITY中查询到。 autosave:String类型。共有3种:"always"、"never"、"conservative"。如果查询失败,指定驱动程序应该执行的操作。在autosave=always模式下,JDBC驱动程序在每次查询之前设置一个保存点,并在失败时回滚到该保存点。在autosave=never模式(默认)下,无保存点。在autosave=conservative模式下,每次查询都会设置保存点,但是只会在“statement XXX无效”等情况下回滚并重试,缺省值为never。 protocolVersion:Integer类型。连接协议版本号,目前仅支持1和3。设置1时仅代表连接的是V1服务端。设置3时将采用MD5加密方式,需要同步修改数据库的加密方式,将GUC参数password_encryption_type设置为1,重启数据库生效后需要创建用MD5方式加密口令的用户。同时修改pg_hba.conf,将客户端连接方式修改为MD5,用新建用户进行登录(不推荐)。 说明: MD5加密算法安全性低,存在安全风险,建议使用更安全的加密算法。 prepareThreshold:Integer类型。控制parse语句何时发送。默认值是5。第一次parse一个SQL比较慢,后面再parse就会比较快,因为有缓存了。如果一个会话连续多次执行同一个SQL,在达到prepareThreshold次数以上时,JDBC将不再对这个SQL发送parse命令。 preparedStatementCacheQueries:Integer类型。确定每个连接中缓存的查询数,默认情况下是256。若在prepareStatement()调用中使用超过256个不同的查询,则最近最少使用的查询缓存将被丢弃。“0”表示禁用缓存。 preparedStatementCacheSizeMiB:Integer类型。确定每个连接可缓存的最大值(以兆字节为单位),默认情况下是5。若缓存了超过5MB的查询,则最近最少使用的查询缓存将被丢弃。“0”表示禁用缓存。 databaseMetadataCacheFields:Integer类型。默认值是65536。指定每个连接可缓存的最大值。“0”表示禁用缓存。 databaseMetadataCacheFieldsMiB:Integer类型。默认值是5。每个连接可缓存的最大值,单位是MB。“0”表示禁用缓存。 stringtype:String类型。可选字段为:false、"unspecified"、"varchar"。设置通过setString()方法使用的PreparedStatement参数的类型,如果stringtype设置为VARCHAR(默认值),则这些参数将作为varchar参数发送给服务器。若stringtype设置为unspecified,则参数将作为untyped值发送到服务器,服务器将尝试推断适当的类型。 batchMode:String类型。用于确定是否使用batch模式连接。默认值为on,表示开启batch模式。设置batchMode=on执行成功的返回结果为[count, 0, 0...0],数组第一个元素为批量影响的总条数;设置batchMode=off执行成功的返回结果为[1, 1, 1...1],数组各元素对应单次修改的影响条数。 fetchsize:Integer类型。用于设置数据库连接所创建statement的默认fetchsize。默认值为0,表示一次获取所有结果。与defaultRowFetchSize等价。 reWriteBatchedInserts:Boolean类型。批量导入时,该参数设置为true,可将N条插入语句合并为一条:insert into TABLE_NAME values(values1, ..., valuesN), ..., (values1, ..., valuesN);使用该参数时,需设置batchMode=off,缺省值为false。 unknownLength:Integer类型。默认为Integer.MAX_VALUE。某些postgresql类型(例如TEXT)没有明确定义的长度,当通过ResultSetMetaData.getColumnDisplaySize和ResultSetMetaData.getPrecision等函数返回关于这些类型的数据时,此参数指定未知长度类型的长度。 uppercaseAttributeName:Boolean类型。默认值为false不开启,为true时开启。该参数开启后会将获取元数据的接口的查询结果转为大写。适用场景为数据库中存储元数据全为小写,但要使用大写的元数据作为出参和入参。 涉及到的接口请参见:java.sql.DatabaseMetaData、java.sql.ResultSetMetaData defaultRowFetchSize:Integer类型。确定一次fetch在ResultSet中读取的行数。限制每次访问数据库时读取的行数可以避免不必要的内存消耗,从而避免OutOfMemoryException。缺省值是0,意味着ResultSet中将一次获取所有行。本参数不允许设置为负值。 binaryTransfer:Boolean类型。使用二进制格式发送和接收数据,默认值为“false”。 binaryTransferEnable:String类型。启用二进制传输的类型列表,以逗号分隔。OID编号和名称二选一,例如binaryTransferEnable=Integer4_ARRAY,Integer8_ARRAY。 比如:OID名称为BLOB,编号为88,可以如下配置: binaryTransferEnable=BLOB 或 binaryTransferEnable=88 binaryTransferDisEnable:String类型。禁用二进制传输的类型列表,以逗号分隔。OID编号和名称二选一。覆盖binaryTransferEnable的设置。 blobMode:String类型。用于设置setBinaryStream方法为不同类型的数据赋值,设置为on时表示为blob类型数据赋值,设置为off时表示为bytea类型数据赋值,默认为on。 socketFactory:String类型。用于创建与服务器socket连接的类的名称。该类必须实现接口“javax.net.SocketFactory”,并定义无参或单String参数的构造函数。 socketFactoryArg:String类型。此值是上面提供的socketFactory类的构造函数的可选参数,不推荐使用。 receiveBufferSize:Integer类型。该值用于设置连接流上的SO_RCVBUF。 sendBufferSize:Integer类型。该值用于设置连接流上的SO_SNDBUF。 preferQueryMode:String类型。共有4种:"extended", "extendedForPrepared", "extendedCacheEverything", "simple"。用于指定执行查询的模式,simple模式会excute,不parse和bind;extended模式会bind和excute;extendedForPrepared模式为prepared statement扩展使用;extendedCacheEverything模式会缓存每个statement。 targetServerType: String类型。该参数识别主备数据节点是通过查询URL连接串中,数据节点是否允许写操作来实现的,默认为"any"。共有五种:"any"、"master"、"slave"、"preferSlave"、"clusterMainNode"。 master则尝试连接到URL连接串中的主节点,如果找不到将抛出异常。 slave则尝试连接到URL连接串中的备节点,如果找不到将抛出异常。 preferSlave则尝试连接到URL连接串中的备数据节点(如果有可用节点),否则连接到主数据节点。 any则尝试连接URL连接串中的任何一个数据节点。 clusterMainNode则尝试连接到URL串中的主节点或主备(容灾主节点),如果找不到将抛出异常。 priorityServers:Integer类型。此值用于指定url上配置的前n个节点作为主数据库实例被优先连接。默认值为NULL。该值为数字,大于0,且小于url上配置的DN数量。用于流式容灾场景。 例如:jdbc:postgresql://host1:port1,host2:port2,host3:port3,host4:port4,/database?priorityServers=2。即表示host1与host2为主数据库实例节点,host3与host4为容灾数据库实例节点。 forceTargetServerSlave:Boolean类型。此值用于控制是否开启强制连接备机功能,并在数据库实例发生主备切换时,禁止已存在的连接在升主备机上继续使用。默认值为false,表示不开启强制连接备机功能。true,表示开启强制连接备机功能。 traceInterfaceClass:String类型。默认值为NULL,用于获取traceId的实现类。值是实现获取traceId方法接口org.postgresql.log.Tracer的实现类的完整限定类名。 use_boolean:Boolean类型。用于设置extended模式下setBoolean方法绑定的oid类型,默认为false,绑定int2类型。设置为true则绑定Boolean类型。 allowReadOnly:Boolean类型。用于设置是否允许只读模式,默认为true,允许设置只读模式;设置为false则禁用只读模式。 TLSCiphersSupperted:String类型。用于设置支持的TLS加密套件,默认为TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384。 stripTrailingZeros:Boolean类型。默认值为false,设置为true则去除numeric类型后的0,仅对ResultSet.getObject(int columnIndex)生效。 enableTimeZone:Boolean类型。默认值为true,用于指定是否启用服务端时区设置,ture表示获取JVM时区指定数据库时区,false表示使用数据库时区。 loadBalanceHosts:Boolean类型。在默认模式下(禁用),默认顺序连接URL中指定的多个主机。如果启用,则使用洗牌算法从候选主机中随机选择一个主机建立连接。集中式环境下,如果使用此参数需要保证业务中没有写操作。 oracleCompatible:String类型。默认为false。用户控制驱动接口的A兼容特性。有以下几种取值: 设置为true或on,表示开启驱动侧所有的A兼容特性。 设置为false或off,表示关闭驱动侧所有的A兼容特性。 设置为“tag1,tag2,tag3”,配置一个或多个tag,tag之间用“,”隔开,表示开启驱动侧部分的A兼容特性,每个tag对应一个A兼容特性。 当前支持的tag有: getProcedureColumns:DatabaseMetaData#getProcedureColumns接口的行为兼容A行为。 batchInsertAffectedRows:reWriteBatchedInserts开启后,执行批量插入接口Statement#executeBatch的返回结果兼容A行为。 printSqlInLog:Boolean类型。默认值为true,用于指定异常信息中或日志中是否输出sql语句,true表示启用,false表示禁用。 user 数据库用户。 password 数据库用户的密码。 uppercaseAttributeName参数开启后,如果数据库中有小写、大写和大小写混合的元数据,只能查询出小写部分的元数据,并以大写的形式输出。使用前请务必确认元数据的存储是否全为小写以避免数据出错。
  • 数据库实例状态 数据库实例状态是数据库实例的运行情况。用户可以使用管理控制台和API操作查看数据库实例状态。 表1 状态及说明 状态 说明 正常 数据库实例正常和可用。 异常 数据库实例不可用。 创建中 正在创建数据库实例。 创建失败 数据库实例创建失败。 重启中 数据库实例重启中。 启动中 数据库实例启动中。 节点启动中 数据库实例节点启动中。 停止中 数据库实例停止中。 节点停止中 数据库实例节点停止中。 已停止 数据库实例/节点已停止。 扩容中 数据库实例磁盘扩容中。 添加节点中 数据库实例节点扩容中。 备份中 正在备份数据库实例。 恢复中 正在恢复备份到实例中。 恢复失败 实例恢复失败。 冻结 账户余额小于或等于0元,系统对该用户下的实例进行冻结。您需前往费用中心充值成功,欠款核销后,冻结的实例才会解冻。 存储空间满 实例的磁盘空间已满,此时不可进行数据库写入操作,您需要扩容磁盘使实例恢复到正常状态。 已删除 数据库实例已被删除,对于已经删除的实例,将不会在实例列表中显示。 版本升级中 实例版本正在升级中。 参数变更,等待重启 数据库参数修改后,有些参数修改,需等待用户重启实例才能生效。 变更副本中 数据库实例正在执行降副本操作。
  • 约束与限制 云数据库 GaussDB在使用上有一些固定限制,用来提高实例的稳定性和安全性,具体详见表1。 GaussDB 单副本部署实例禁止在生产环境使用,如在生产环境使用,不承诺SLA。且在功能上有相关约束,具体约束限制请参考表2。 表1 功能约束与限制 功能 使用限制 数据库访问 如果GaussDB实例未开通公网访问,则该实例必须与云主机弹性云服务器处在同一个虚拟私有云子网内才能相互访问。 弹性云服务器必须处于目标GaussDB实例所属安全组允许访问的范围内。 如果GaussDB实例与弹性云服务器处于不同的安全组,系统默认不能访问。需要在GaussDB的安全组添加一条“入”的访问规则。 GaussDB实例的默认端口为8000。 数据库端口支持创建时设置,后期可修改。 部署 实例所部署的服务器,对用户都不可见,即只允许应用程序通过IP地址和端口访问数据库。 数据库的root权限 创建实例页面只提供管理员root用户权限。 说明: 在2022.08.30后,GaussDB为root用户开放了sysadmin权限。新创建实例的root用户都将拥有sysadmin权限,而存量实例执行版本升级后,root用户也将拥有sysadmin权限,如果需要进行版本升级,请联系技术支持处理。 如果存量实例未进行版本升级,则管理员root用户权限为:createrole,createdb和monadmin。由于旧版本root权限低于完整的管理员用户权限, 部分SQL语法/函数执行时会报权限不足,例如:create tablespace 等 重启GaussDB实例 无法通过命令行重启,必须通过GaussDB的管理控制台操作重启实例。 GaussDB备份查看 GaussDB实例在对象存储服务上的备份文件,对用户不可见。 变更配置 默认不支持将规格参数变小,如需要将规格参数变小,您可以联系华为云技术支持,由华为云工程师给出分析评估后进行处理。 规格变更前,须确保实例状态正常。在实例异常、节点异常、磁盘满的情况下不允许进行规格变更。 高可用(1主2备)部署形态下,规格变更过程中会进行主备倒换,主备倒换过程中会有1min左右的业务中断。 单副本的部署形态下,规格变更过程中会进行中断重启,中断重启过程中会有5~10min的业务中断。 修改CPU/内存后,将会重启数据库实例,重启数据库实例将导致数据库业务短暂中断。 故障切换 对于主备版,主节点切换备节点,大概有10s左右服务不可用。 数据恢复 为避免数据丢失,建议数据恢复前备份重要数据。 存储空间 若实例的磁盘空间已满,此时不可进行数据库写入操作,您需要扩容磁盘使实例恢复到正常状态。建议定期检查存储空间。 性能优化 性能调优过程有时候需要重启集群,可能会中断当前业务。 表2 主备版单副本实例的基本功能限制 功能 3.0以下版本是否支持 3.0以上版本是否支持 创建实例 Y Y 重启实例 Y Y 参数修改 Y Y 参数应用 Y Y 重置密码 Y Y 全量备份 N Y 差量备份 N Y 删除备份 N Y 修改备份策略 N Y 恢复到当前实例 N Y 恢复到新实例 N Y 恢复到已有实例 N Y 磁盘扩容 Y Y 规格变更 Y Y 热补丁升级 N Y 就地升级 Y(仅支持升级至3.0以上版本) Y 灰度升级 N Y(仅3.207及以上版本支持) 查看监控指标 Y Y 实例删除 Y Y 回收站 N Y 查询磁盘使用 Y Y 创建数据库 Y Y 查询数据库 Y Y 创建schema及用户 Y Y 删除schema及用户 Y Y 执行数据库操作 Y Y
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、虚拟主机和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 参数说明 WITH [ RECURSIVE ] with_query [, ...] 用于声明一个或多个可以在主查询中通过名称引用的子查询,相当于临时表。 如果声明了RECURSIVE,那么允许SELECT子查询通过名称引用它自己。 with_query_name指定子查询生成的结果集名称,在查询中可使用该名称访问 子查询的结果集。 column_name指定子查询结果集中显示的列名。 每个子查询可以是SELECT,VALUES,INSERT,UPDATE或DELETE语句。 用户可以使用MATERIALIZED / NOT MATERIALIZED对CTE进行修饰。 如果声明为MATERIALIZED,WITH查询将被物化,生成一个子查询结果集的拷贝,在引用处直接查询该拷贝,因此WITH子查询无法和主干SELECT语句进行联合优化(如谓词下推、等价类传递等),对于此类场景可以使用NOT MATERIALIZED进行修饰,如果WITH查询语义上可以作为子查询内联执行,则可以进行上述优化。 如果用户没有显示声明物化属性则遵守以下规则:如果CTE只在所属主干语句中被引用一次,且语义上支持内联执行,则会被改写为子查询内联执行,否则以CTE Scan的方式物化执行。 plan_hint子句 以/*+ */的形式在DELETE关键字后,用于对DELETE对应的语句块生成的计划进行hint调优,详细用法请参见章节使用Plan Hint进行调优。每条语句中只有第一个/*+ plan_hint */注释块会作为hint生效,里面可以写多条hint。 ONLY 如果指定ONLY则只有该表被删除;如果没有声明,则该表和它的所有子表将都被删除。 table_name 目标表的名称(可以有模式修饰)。 取值范围:已存在的表名。 支持使用DATABASE LINK方式对远端表进行操作,使用方式详情请见DATABASE LINK。 partition_clause 指定分区删除操作。 PARTITION { ( partition_name ) | FOR ( partition_value [, ...] ) } | SUBPARTITION { ( subpartition_name ) | FOR ( subpartition_value [, ...] ) } 关键字详见SELECT章节介绍。 示例详见CREATE TABLE SUBPARTITION。 partitions_clause 指定多个分区删除操作。 PARTITION { ( { partition_name | subpartition_name } [, ...] ) } 此语法仅在参数sql_compatibility='B'时生效。 关键字详见SELECT章节介绍。 示例详见CREATE TABLE SUBPARTITION。 alias 目标表的别名。 取值范围:字符串,符合标识符命名规范。 using_list using子句。 当参数sql_compatibility='B'或删除多张目标表时,using_list指定关联表的集合时可以同时出现目标表,并且可以定义表的别名并在目标表中使用。其他情况下则目标表不可重复出现在using_list中。 condition 一个返回Boolean值的表达式,用于判断哪些行需要被删除。不建议使用int等数值类型作为condition,因为int等数值类型可以隐式转换为bool值(非0值隐式转换为true,0转换为false),可能导致非预期的结果。 WHERE CURRENT OF cursor_name 当cursor指向表的某一行时,可以使用此语法删除cursor当前指向的行。使用限制及约束请参考UPDATE章节对此语法介绍。 ORDER BY子句 关键字详见SELECT章节介绍。 LIMIT子句 关键字详见SELECT章节介绍。 output_expr DELETE命令删除行之后计算输出结果的表达式。该表达式可以使用表的任意字段。可以使用*返回被删除行的所有字段。 output_name 一个字段的输出名称。 取值范围:字符串,符合标识符命名规范。
  • 注意事项 表的所有者、被授予表DELETE权限的用户或被授予DELETE ANY TABLE权限的用户有权删除表中数据,当三权分立开关关闭时,系统管理员默认拥有此权限。同时也必须有USING子句引用的表以及condition上读取表的SELECT权限。 对于行存复制表,仅支持两种场景下的DELETE操作: 有主键约束的场景。 执行计划能下推的场景。 对于多表删除语法,暂时不支持对视图和含有RULE的表进行多表删除。 对于子查询是STREAM计划的DELETE语句,不支持删除的行数据同时进行UPDATE更新操作。
  • 语法格式 单表删除: [ WITH [ RECURSIVE ] with_query [, ...] ] DELETE [/*+ plan_hint */] [FROM] [ ONLY ] table_name [ * ] [ [ [partition_clause] [ [ AS ] alias ] ] | [ [ [ AS ] alias ] [partitions_clause] ] ] [ USING using_list ] [ WHERE condition | WHERE CURRENT OF cursor_name ] [ ORDER BY {expression [ [ ASC | DESC | USING operator ] [ LIMIT { count } ] [ RETURNING { * | { output_expr [ [ AS ] output_name ] } [, ...] } ];
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 测试连通性 登录ECS实例,请参见《弹性云服务器用户指南》中“Linux弹性云服务器远程登录(VNC方式)”。 在ECS上测试是否可以正常连接到GaussDB实例地址的端口,连接地址和端口通过查询需要连接实例的IP地址和端口号获取。 telnet IP地址 端口 示例: telnet 192.168.0.16 8000 如果提示command not found,请根据ECS使用的操作系统不同,自行安装telnet工具。 如果可以通信,说明网络正常。 如果无法通信,请检查安全组规则。 查看ECS的安全组的出方向规则,如果目的地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将GaussDB实例的IP地址和端口添加到出方向规则。 ECS实例与GaussDB实例在同一VPC,将GaussDB实例的内网IP地址和端口添加到出方向规则。 ECS实例与GaussDB实例不在同一VPC,将GaussDB实例的公网IP地址和端口添加到出方向规则。 图4 ECS的安全组 查看GaussDB的安全组的入方向规则,如果源地址不为“0.0.0.0/0”且协议端口不为“全部”,需要将ECS实例IP地址和端口添加到入方向规则。 ECS实例与GaussDB实例在同一VPC,需要将ECS实例的私有IP地址和端口添加到入方向规则。 ECS实例与GaussDB实例不在同一VPC,将ECS实例的弹性公网IP地址和端口添加到入方向规则。 具体操作请参见设置安全组规则。 图5 GaussDB的安全组
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
  • 购买ECS GaussDB提供gsql工具帮助用户在命令行下连接数据库,用户需要提前创建一台弹性云服务器用于安装gsql工具。 登录管理控制台,查看是否有弹性云服务器。 有弹性云服务器,执行3。 无弹性云服务器,执行2。 图1 ECS实例 购买弹性云服务器时,选择Euler操作系统。 购买Linux弹性云服务器请参考《弹性云服务器快速入门》中“购买弹性云服务器”章节。 在ECS实例基本信息页,查看ECS实例的区域和VPC。 图2 ECS基本信息 操作系统需要选择Euler操作系统。gsql支持的操作系统版本如下: X86:EulerOS V2.0SP5,Kylin V10 SP2 。 鲲鹏服务器:EulerOS V2.0SP8,Kylin V10 SP1 。 在GaussDB实例基本信息页,查看GaussDB实例的区域和VPC。 图3 GaussDB基本信息 确认ECS实例与GaussDB实例是否处于同一区域、同一VPC。 ECS与GaussDB实例在同一区域、同一VPC,则通过内网连接实例,内网地址如何获取,请参考查询需要连接实例的IP地址。 ECS与GaussDB实例不在同一VPC,则通过公网连接实例,公网地址如何获取,请参考查询需要连接实例的IP地址。请确保ECS和GaussDB实例都要有弹性IP。 ECS如何绑定弹性公网IP,请参考绑定弹性公网IP。 GaussDB实例如何绑定弹性公网IP,请参考绑定弹性公网IP。
  • 前提条件 已下载Linux版本的ODBC驱动包和Windows版本的ODBC驱动包。 Linux版本包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Odbc.tar.gz。Linux环境下,开发应用程序要用到unixODBC提供的头文件(sql.h、sqlext.h等)和库libodbc.so。这些头文件和库可从unixODBC-2.3.7的安装包中获得。 Windows版本包名为GaussDB-Kernel_数据库版本号_Windows_Odbc_X64.tar.gz(64位)。Windows环境下,开发应用程序用到的相关头文件和库文件都由系统自带。
  • 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表2所示。 表2 驱动包下载列表 版本 下载地址 8.x 驱动包 驱动包校验包 3.x 驱动包 驱动包校验包 2.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和软件包校验包到虚拟机(Linux操作系统)的同一目录下。 执行如下命令,校验软件包完整性。 cat GaussDB_driver.zip.sha256 | sha256sum --check 如果回显OK,则校验通过。 GaussDB_driver.zip: OK
共100000条