GaussDB
基于开源GaussDB数据库相关分享
Zhao.Mr
精通Shell编程;对Mysql、Oracle、Postgresql等数据库有着丰富的管理经验,注重于实战操作,喜欢研究新技术;熟悉Python全栈开发;了解Hadoop各种组件及其应用
展开
-
gaussdb 设置数据库只读
GaussDB 设置数据库只读Gauss没有严格意义上的只读模式,只能通过调整参数或设置事务模式可以将后续登录的SESSION或者当前事务设置为只读模式。1. 设置数据库只读注意,这里设置只读只对新session生效,而且数据库不需要重启也永久生效。alter user {user_name} set default_transaction_read_only=on;2. 设置数据库可写注意,这里设置只读只对新session生效,而且数据库不需要重启也永久生效。alter user {use原创 2020-11-16 17:02:21 · 1493 阅读 · 0 评论 -
gaussdb 开源免费版本【包下载、安装部署】【01】
1. gaussdb 版本介绍目前官方收费版本:gaussdb 100 (主打OLTP,在线事务处理)gaussdb 200 (主打OLAP 在线分析处理)gaussdb 300 (100+200混合,未来可能废弃的版本)目前免费开源版本:openGauss2. openGauss 开源免费版本部署相关部署文档【openGauss保姆式安装说明】https://blog.csdn.net/ygp12345/article/details/107972011…【官方安装说明】ht原创 2020-11-11 15:58:05 · 8001 阅读 · 0 评论 -
gaussdb 日常运维命令总结【01】
1. 确认数据库连接情况(用户流量)select * from pg_stat_activity;select usename,client_addr,query from pg_stat_activity;select distinct * from (select usename 用户名,client_addr 监听地址,count(1) over(partition by usename,client_addr) 连接数,count(1) over() 连接总数 from pg_stat_a原创 2020-11-10 21:12:21 · 10775 阅读 · 0 评论 -
gaussdb 数据库用户和安全管理【配置操作系统环境】【06】
1. 规划系统用户修改用户名,把用户名 “gaussdba” 改名为 “gauss”。usermod -l gauss gaussdba锁定“gauss”用户,使其不能登录。usermod -L gauss解锁“gauss”用户帐号,使其可以登录。usermod -U gauss查看账号是否过期chage -l gauss设置账号永不过期chage -M 99999 gauss删除用户userdel -r gauss说明:userdel 命令可删除用户帐号与相关的原创 2020-11-10 16:36:44 · 2091 阅读 · 0 评论 -
gaussdb 数据库用户和安全管理【用openssl生成SSL证书的流程】【05】
1.相关概念对称加密:通过加密文件进行加密数据,使用相同的加密文件进行解密数据。非对称加密:通过加密文件进行加密数据,使用另一个加密文件进行解密数据。加密解密:公钥和私钥都可以用来加密数据,使用公钥加密数据,然后私钥解密的情况称为加密解密。签名、验证签名:使用私钥加密数据,公钥解密一般被称为签名和验证签名。说明:使用公钥加密的数据只有它相对应的私钥可以解开,所以你可以把公钥给其他人,让别人加密他想要传送给你的数据,这个数据只有到了有私钥的你这里,才可以解开有用的数据。同理,如果你用你的私原创 2020-11-10 14:42:31 · 640 阅读 · 0 评论 -
gaussdb 数据库用户和安全管理【用SSL进行安全的TCP/IP连接】【04】
1. 用SSL进行安全的TCP/IP连接GaussDB支持通过SSL加密客户端和服务器之间、主机和备机之间的通讯,为敏感数据在Internet上的传输提供了一种安全保障手段。背景信息GaussDB支持SSL 3.0协议标准,SSL 3.0协议是一种安全性更高的协议标准,它加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。如果只是为了测试,可以使用Openssl生成证书。SSL相关的参数既控制客户端和主机的SSL通讯,同时还控制着主机和备机之间的SSL通原创 2020-11-08 21:48:14 · 1279 阅读 · 1 评论 -
gaussdb 数据库用户和安全管理【数据加密】【03】
1. 数据加密数据加密的密钥由系统对钱夹密码的复杂变化逻辑生成。钱夹密码由用户指定输入,必须符合密码复杂度要求。注意:GaussDB不提供修改钱夹密码的接口,一旦设定,请牢记。01.设定用于数据加密的钱夹密码。通过以下SQL命令设定钱夹密码,以设定钱夹密码为gaussdb_123为例:ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY 'gaussdb_123'; 说明:钱夹密码设定后,GaussDB通过对钱夹密码的一系列复杂变化,生成用于数原创 2020-11-08 20:04:33 · 1021 阅读 · 0 评论 -
gaussdb 数据库用户和安全管理【客户端接入认证】【02】
1. 配置客户端接入认证客户端接入认证是由一个配置文件(默认名称为pg_hba.conf)控制的,它存放在数据库的数据目录里。hba(host-based authentication)表示是基于主机的认证。背景信息GaussDB支持如下三种认证方式,无论哪种认证方式,都需要配置pg_hba.conf文件。基于主机的认证:服务器端根据客户端的IP地址、用户名及要访问的数据库来查看配置文件从而判断用户是否通过认证。口令认证:包括远程连接的加密口令认证和本地连接的非加密口令认证。SSL加密:使用V原创 2020-11-08 20:01:53 · 1243 阅读 · 0 评论 -
gaussdb 数据库用户和安全管理【用户权限管理】【01】
1. 用户权限管理01. 创建用户并分配权限创建用户并分配系统权限创建一个具有创建数据库权限的用户:CREATE USER joe WITH CREATEDB PASSWORD "GAUSS@123";给用户指定对象权限将表student的select权限赋给用户joe:GRANT SELECT ON TABLE student to joe;给角色赋予对象权限将表teacher的select权限赋给角色lily:GRANT SELECT ON TABLE teacher to li原创 2020-11-08 19:26:58 · 10903 阅读 · 0 评论 -
gaussdb 日志管理【系统、操作、黑匣子、审计、WAl 日志管理】【01】
1. 查看系统日志运行日志和调试日志可以统称为系统日志,运行日志是数据库正常运行时产生的日志,调试日志基于数据库进行应用程序的开发调试时产生的日志。GaussDB的运行日志和调试日志都记录在同一个日志文件中。日志文件存储路径在$GAUSSDATA\pg_log目录下。其中$GAUSSDATA代表GaussDB的数据目录。日志文件命名格式GaussDB的运行日志和调试日志记录在如下文件中:gaussdb+日期+时间.log。默认情况下,超过1天或者日志文件大于16MB,则生成新的日志文件用以记原创 2020-11-08 18:02:59 · 2524 阅读 · 0 评论 -
gaussdb 数据库审计【设置数据库审计】【01】
1. 设置数据库审计审计概述数据库的安全对数据库系统来说至关重要。GaussDB支持审计功能,它将用户对数据库的所有操作写入审计日志。数据库安全管理员可以利用审计信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。目前,GaussDB支持的审计项如下:用户登录、注销审计数据库启动、停止、恢复和切换审计用户锁定和解锁审计用户访问越权审计授权和回收权限审计数据库对象(数据库、表、schema 等)增删改审计具体表的insert、delete、update操作审计安全配原创 2020-11-08 12:51:24 · 1888 阅读 · 0 评论 -
gaussdb 安全维护【数据库审计安全策略】【08】
1. 设置数据库审计安全策略GaussDB支持审计功能,它将用户对数据库的特定操作写入审计日志,例如:用户登录和注销、数据库启动、停止、恢复和切换等。数据库安全管理员可以利用审计信息,重现导致数据库现状的一系列事件,找出非法操作的用户、时间和内容等。1.以gaussdba用户身份登录GaussDB服务器。2.检查审计总开关是否打开。以连接默认数据库postgres为例,端口号是5432,使用如下命令:gsql -d postgres -p 5432用show命令显示审计总开关audit_ena原创 2020-11-07 23:59:44 · 1386 阅读 · 0 评论 -
gaussdb 安全维护【数据导入导出安全操作建议】【07】
数据导入导出安全操作建议为避免使用gs_dump命令转储的数据库文件遭到人为破坏或者修改,GaussDB引入了导入导出安全管理机制(对导出的数据库文件加密,导入时再对加密的文件进行解密),为数据库的安全提供保证。表1 导入导出安全策略 配置项 配置方式 加密导出文件 GaussDB使用AES128加密方式对导出的文件进行加密。 gs_dump dbname -p port --with-encryption=AES128 --with-key原创 2020-11-07 23:21:35 · 519 阅读 · 0 评论 -
gaussdb 安全维护【设置远程连接安全策略】【06】
设置远程连接安全策略GaussDB远程连接安全管理采取了SSL认证功能,包括双向认证、服务器认证和客户端认证。前提条件从CA认证中心申请到正式的服务器证书和私钥。(假设服务器的私钥为server.key,证书为server.crt,客户端的私钥为client.key,证书为client.crt,CA根证书名称为cacert.pem)背景信息GaussDB支持SSL协议标准,SSL协议是一种安全性更高的协议标准,它加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数原创 2020-11-07 22:54:53 · 730 阅读 · 0 评论 -
gaussdb 安全维护【设置文件权限安全策略】【05】
设置文件权限安全策略GaussDB设置目录及文件的权限管理规则,保证文件在使用过程中的安全性。背景信息GaussDB安装过程中,会自动对其文件权限(包括运行过程中生成的文件,如日志文件等)进行设置。其权限规则如下:数据库程序目录的权限为0755。数据库数据文件目录的权限为0700。数据文件的权限为0600。数据文件包括数据库的数据文件、归档日志、运行日志、审计日志和其他GaussDB程序生成的数据文件。用户和组属于安装运行GaussDB数据库的用户和组。注意:非数据库的os用户有破坏数原创 2020-11-07 22:26:42 · 491 阅读 · 0 评论 -
gaussdb 安全维护【设置密码安全策略】【04】
设置密码安全策略GaussDB设置了完善的密码安全策略,保证帐户的使用安全。用户密码存储在系统表pg_authid中,为防止用户密码泄露,GaussDB对用户密码进行加密存储,所采用的加密算法由配置参数password_encryption_type决定。查看已配置的加密算法。show password_encryption_type; password_encryption_type-------------------------- 1(1 row) 说明:1表示采用SHA25原创 2020-11-07 22:06:34 · 2736 阅读 · 0 评论 -
gaussdb 安全维护【设置帐户安全策略】【03】
设置帐户安全策略(主机)GaussDB为帐户提供了自动锁定和解锁、手动锁定异常帐户和删除不再使用的帐户等一系列的安全措施,保证数据的使用安全。 配置项 描述 配制方法 帐户自动锁定和解锁 为了保证帐户安全,如果用户输入密码次数超过一定次数(failed_login_attempts),系统将自动锁定该帐户,默认值为10。次数设置越小越安全,但是在使用过程中会带来不便。 当帐户被锁定时间超过设定值(password_lock_time),则当前帐户自动解锁原创 2020-11-07 21:09:35 · 1398 阅读 · 0 评论 -
gaussdb 安全维护【设置帐户权限】【02】
背景信息默认情况下,GaussDB的用户可分为两类:系统管理员和普通用户。用户及其权限 用户 权限 系统管理员 具备数据库的最高权限、所有系统权限和对象权限,权限类型的详细信息请参见表2。 普通用户 可以连接GaussDB默认的数据库postgres,并访问其中默认的系统表和视图。除此之外还具有对所有数据库的登录权限以及所有函数的执行权限。普通用户只能通过系统管理员使用CREATE/ALTER USER的方式来给予其系统权限,但自身可以通过GR原创 2020-11-06 17:46:02 · 1296 阅读 · 0 评论 -
gaussdb 安全维护【检查安装程序完整性】【01】
检查安装程序完整性安装程序完整性校验是GaussDB保证数据库安全的第一道防线,它避免了通过人为的仿造、更改bin文件或md5文件来破坏数据库安全的情况。(黑客防线) 解压安装包,检查MD5校验文件是否存在。在安装包所在目录执行以下命令:gunzip GaussDB-VXXXRXXXCXX-SUSE11-64bit.tar.gztar xvf GaussDB-VXXXRXXXCXX-SUSE11-64bit.tar执行ls命令,显示类似如下信息,其中GaussDB-VXXXRXXXC原创 2020-11-06 17:14:26 · 680 阅读 · 0 评论 -
gaussdb 系统表和视图【其他_*】【10】
标准统计视图用于显示统计收集结果的视图。标准的统计视图请参见表1,一般不推荐使用。 视图名字 描述 pg_stat_activity 每个服务器进程一行,显示:数据库OID 、数据库名、进程ID 、用户OID 、用户名、当前查询、当前查询等待状态、当前查询开始执行的时间、进程启动的时间、客户端地址、客户端端口。报告当前查询相关信息的各个字段只有在打开stats_command_string参数的时候才可用。另外,除非检查这些字段的用户是系统管理员或者是正在报告的原创 2020-11-06 11:35:44 · 762 阅读 · 0 评论 -
gaussdb 系统表和视图【其他_*】【09】
V$SESSION存储当前会话的所有会话信息。 名称 类型 描述 SID INTEGER 当前活动的后台进程的OID。 SERIAL# INTEGER 当前活动的后台进程的序号,在GaussDB中为0。 USER# OID 登录此后台进程的用户的OID。 USERNAME NAME 登录此后台进程的用户名。 V$SESSION_LONGOPS存储当前正在执行的操作的进度。原创 2020-11-06 11:35:26 · 479 阅读 · 0 评论 -
gaussdb 系统表和视图【USER_*】【08】
USER_INDEXES存储关于本模式下的索引信息。 名称 类型 描述 OWNER CHARACTER VARYING(64) 索引的所有者 INDEX_NAME CHARACTER VARYING(64) 索引名字 USER_JOBS视图存储当前用户的作业信息。 名称 类型 描述 JOB INTEGER 作业ID LOG_USER OID 创建者ID原创 2020-11-06 10:29:32 · 620 阅读 · 0 评论 -
gaussdb 系统表和视图【PG_*】【07】
PG_TIMEZONE_ABBREVS提供了输入例程能够识别的所有时区缩写。 名称 类型 描述 ABBREV TEXT 时区缩写。 UTC_OFFSET INTERVAL 相对于UTC的偏移量。 IS_DST BOOLEAN 如果这是一个夏时制时区缩写则为TRUE,否则为FALSE。 PG_TIMEZONE_NAMES提供了显示了所有能够被SET TIMEZONE识别的时区名及其缩写、UTC偏移量、是否夏原创 2020-11-05 17:45:32 · 469 阅读 · 0 评论 -
gaussdb 系统表和视图【PG_*】【06】
PG_PROC存储函数或过程的信息。 名称 类型 描述 PRONAME NAME 函数名字。 PRONAMESPACE OID 包含该函数名字空间的OID。 PROOWNER OID 函数的所有者。 PROLANG OID 这个函数的实现语言或调用接口。 PROCOST REAL 估算的执行成本。 PROROWS REAL 估算的影响行的数目。原创 2020-11-05 17:45:18 · 733 阅读 · 0 评论 -
gaussdb 系统表和视图【PG_*】【05】
PG_FOREIGN_TABLE存储外部表的附助信息。 名称 类型 描述 FTRELID OID 外部表的ID。 FTSERVER OID 外部表的所在服务器。 FTOPTIONS TEXT[] 外部表的可选项。 PG_INDEX存储索引的一部分信息,其他的信息大多数在PG_CLASS中。 名称 类型 描述 INDEXRELID OID 这个索引在pg_原创 2020-11-05 17:43:22 · 860 阅读 · 0 评论 -
gaussdb 系统表和视图【PG_*】【04】
PG_ATTRDEF存储列的默认值。 名称 类型 描述 ADRELID OID 该列的所属表 ADNUM INTEGER 该列的数目 ADBIN PG_NODE_TREE 字段缺省值的内部表现形式 ADSRC TEXT 人类可读的缺省值的内部表现形式 PG_ATTRIBUTE存储表关于表字段的信息。 名称 类型 描述 ATTRELID原创 2020-11-05 17:34:42 · 864 阅读 · 0 评论 -
gaussdb 系统表和视图【DBA_*】【03】
DBA_DATA_FILES存储关于数据库文件的描述。需要有系统管理员权限才可以访问。 名称 类型 描述 TABLESPACE_NAME NAME 文件所属的表空间的名称 BYTES DOUBLE PRECISION 文件的字节长度 DBA_INDEXES存储关于数据库下的所有索引信息。需要有系统管理员权限才可以访问。 名称 类型 描述 OWNER CHARACTER VARY原创 2020-11-05 16:21:42 · 658 阅读 · 0 评论 -
gaussdb 系统表和视图【ALL_*】【02】
ALL_ALL_TABLES存储当前用户所能访问的表或视图。 名称 类型 描述 OWNER NAME 表或视图的所有者 TABLE_NAME NAME 表或视图的名称 TABLESPACE_NAME NAME 表或视图所在的表空间 ALL_COL_COMMENTS存储关于当前用户可用的表和视图的列的注释。 名称 类型 描述 COLUMN_NAME CHAR原创 2020-10-22 20:40:34 · 594 阅读 · 0 评论 -
gaussdb 系统表和视图【总览】【01】
系统表和视图系统表是GaussDB存放结构元数据的地方,它是GaussDB数据库系统运行控制信息的来源,是数据库系统的核心组成部分。系统视图提供了查询系统表和访问数据库内部状态的方法。用户可以删除后重新创建这些表、增加列、插入和更新数值,但是用户修改系统表会导致系统信息的不一致,从而导致系统控制紊乱。正常情况下不应该由用户手工修改系统表或系统视图,或者手工重命名系统表或系统视图所在的模式,而是由SQL命令关联的系统表操作自动维护系统表信息。当前用户所能访问的对象ALL_ALL_TABL原创 2020-10-22 19:55:12 · 7443 阅读 · 1 评论 -
gaussdb 双机维护【在线配置单机为双机、配置双机数据复制方式SSL】【07】
在线配置单机为双机分别以gaussdba用户登录GaussDB服务器主机、备机和级联备机,并执行下面的操作。以单机模式启动主机数据库。gs_ctl start修改配置文件,添加双机配置参数。通知主机进程重新读取配置文件。gs_ctl reload将单机变为双机。gs_ctl notify -M primary说明:单机变为双机时,只能变为主机。对于备机或级联备机,您可以在其他服务器上手动配置。检查双机关系是否正确建立。执行如下命令查看双机的状态信息。gs_ctl query原创 2020-10-20 17:39:03 · 332 阅读 · 0 评论 -
gaussdb 双机维护【切换双机】【06】
双机正常时的切换前提条件GaussDB双机正常运行,已经建立日志同步。双机需在同一地域,不同地域的双机无法进行切换。背景信息场景一:当数据库升级时,先停止备机,升级备机数据库,然后启动备机,当主备关系稳定后切换主备机,然后升级原来的主机数据库,这样可保证业务零中断,数据零丢失,提供高可靠性数据库服务。场景二:在复杂的应用系统中,除数据库软件还有其他应用进程,当这些进程产生异常时需进行切换,则为了避免数据丢失,主备数据库也要跟着切换。switchover 命令必须在双机正常状态下执行,它会原创 2020-10-20 16:42:32 · 591 阅读 · 0 评论 -
gaussdb 双机维护【重建双机】【05】
重建双机 重建双机是双机高可靠性的体现,它可以使用主机来恢复备机,或者使用备机来恢复级联备机。重建方式以一主一备为例说明重建双机的两种方式。全量重建会删除备机所有的数据文件,但是保留自己的配置文件(postgresql.conf)。将主机的数据文件拷贝到备机,但是不会覆盖备机的配置文件。全量重建完毕后,主机和备机的数据文件相同。增量重建对主机和备机的数据文件进行校验,只拷贝主机上与备机有差异的数据文件,增量重建完毕原创 2020-10-20 15:47:02 · 632 阅读 · 0 评论 -
gaussdb 双机维护【查询双机状态】【04】
查询双机状态 数据库维护人员可下放双机查询命令以检查数据库双机是否正常运行,如果有异常,则可及时处理,保证数据库双机正常运行,从而使数据库具有高可靠性。 分别以gaussdba用户登录GaussDB服务器主机、备机和级联备机,执行如下命令查询双机状态。gs_ctl queryHa state: LOCAL_ROLE原创 2020-10-16 17:06:39 · 651 阅读 · 0 评论 -
gaussdb 双机维护【启动和停止双机】【03】
启动和停止双机 在双机数据库安装完毕后,需要通过正确的方式启动两边的数据库,然后GaussDB双机关系才能够正常建立。(分别以gaussdba用户身份登录GaussDB服务器主机、备机、级联备机和次级联备机,并执行下面的操作。)方式一:在启动的时候便指定主备机。 双机方案 启动时指定主备 一主一备 执行如下命令启动双机服务: 主机:gs_ctl start -M pri原创 2020-10-16 16:00:56 · 585 阅读 · 0 评论 -
gaussdb 双机维护【双机命令一览表】【02】
数据库操作 命令接口 说明 启动双机 gs_ctl start [-M SERVERMODE] 以指定模式启动数据库。 -M 必选参数,指定服务器启动模式。 说明: SERVERMODE有几种: primary:指定数据库主机启动。 standby:指定数据库备机启动。 cascadestandby:指定数据库级联备机启动。 cascadestandby1:指定数据...原创 2020-10-16 15:25:26 · 440 阅读 · 0 评论 -
gaussdb 双机维护【应用场景、工作机制】【01】
1. 应用场景1.1 什么是双机从广义上讲,有两台数据库服务器提供服务。一台作为主用,可以进行读写操作;一台作为备用,可以进行读操作。当主机出现故障的时候,可以将备机升为主机,承担服务任务,从而在不需要人工干预的情况下,自动保证系统能持续提供服务。从狭义上讲,双机是指primary/standby模式的数据库服务器部署机制。如果primary模式的数据库出现故障,数据库维护人员或仲裁程序将standby模式的数据库升为primary模式,继续提供服务。1.2 双机基本概念主机GaussDB原创 2020-10-09 16:49:56 · 579 阅读 · 0 评论 -
gaussdb 【FAQ_006】【limit查询超时】
问题现象在执行含有LIMIT Clause的查询的时候,有的时候会遇到查询失败,并给出如下的报错的情况。smartcare=# select * from t1 limit 1;WARNING: timeout while waiting for responseERROR: Failed to read response from Datanodes datanode1 when ending query可能原因某一个或几个DataNode状态不正常,比如挂掉,导致DataNode不能原创 2020-09-30 17:06:56 · 801 阅读 · 0 评论 -
gaussdb 【FAQ_005】【多表联合查询_返回结果集过大_gsql耗尽服务器内存】
问题现象多表联合查询,返回结果集过大,gsql耗尽服务器内存,导致系统卡死。例如:SELECT * FROM FVT_GAUSSDB_ADAPT.REPLACE_TBL_011_1, FVT_GAUSSDB_ADAPT.REPLACE_TBL_011_2, FVT_GAUSSDB_ADAPT.REPLACE_TBL_011_3, FVT_GAUSSDB_ADAPT.REPLACE_TBL_011_4, FVT_GAUSSDB_ADAPT.REPLACE_TBL_011_5, FVT_GAUSSDB_A原创 2020-09-30 17:02:53 · 310 阅读 · 0 评论 -
gaussdb 【FAQ_004】【数据库启动失败_提示 “could not start server“】
问题现象使用gs_ctl start命令启动GaussDB时,提示如下错误信息,关键信息为“could not start server”。server starting.... stopped waitinggs_ctl: could not start serverExamine the log output: /opt/gaussdb/data/pg_log/gs_ctl-current.log or the log directory configured by parameter "log原创 2020-09-30 16:59:16 · 3257 阅读 · 0 评论 -
gaussdb 【FAQ_003】【事务并发量大_IO繁忙_导致Linux系统崩溃】
问题现象在数据库事务并发量太大且IO操作密集的情况下,Linux系统(单板或者服务器)重启。查看Linux系统日志,有类似如下提示信息:Nov 7 20:01:26 linux kernel: [473215.424811] INFO: task gaussdb:8723 blocked for more than 120 seconds.Nov 7 20:01:26 linux kernel: [473215.424814] "echo 0 > /proc/sys/kernel/hung_原创 2020-09-30 16:47:19 · 300 阅读 · 0 评论