07 2024 档案
摘要:冲突处理 逻辑复制的行为类似于正常的DML操作,即便数据在订阅者节点本地被修改,逻辑复制也会根据收到的更改来更新数据。如果流入的数据违背了任何约束,复制将停止。这种情况被称为一个冲突。在复制UPDATE或DELETE操作时,缺失的数据将不会产生冲突并且这类操作将被简单地跳过。 冲突将会产生错误并且停
阅读全文
摘要:出现“Error:No space left on device”提示 问题现象 在数据库使用过程中,出现如下错误提示。 Error:No space left on device 原因分析 磁盘空间不足造成此提示信息。 处理办法 使用如下命令查看磁盘占用情况。显示信息如下,其中Avail列表示各磁
阅读全文
摘要:处理错误表 操作场景 当数据导入发生错误时,请根据本文指引信息进行处理。 查询错误信息 数据导入过程中发生的错误,一般分为数据格式错误和非数据格式错误。 数据格式错误 在创建外表时,通过设置参数“LOG INTO error_table_name”,将数据导入过程中出现的数据格式错误信息写入指定的错
阅读全文
摘要:磁盘空间达到阈值,数据库只读 问题现象 执行非只读SQL时报错如下。 ERROR: cannot execute %s in a read-only transaction. 或者运行中部分非只读SQL(insert、update、create table as、create index、alter
阅读全文
摘要:磁盘满故障引起的core问题 问题现象 TPCC运行时,注入磁盘满故障,数据库进程gaussdb core掉,如下图所示。 原因分析 数据库本身机制,在磁盘满时,Xlog日志无法进行写入,通过panic日志退出程序。 处理办法 外部监控磁盘使用状况,定时进行清理磁盘。 详情查看:https://op
阅读全文
摘要:导出表 openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列和外表属于特殊的表。用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支持排除一个表或者多个表的导出。可根据需要自定义导出如下信息: 导出表全量信息,包含表数据和表定义。 仅导出
阅读全文
摘要:导出模式 openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。用户可通过灵活的自定义方式导出模式内容,不仅支持选定一个模式或多个模式的导出,还支持排除一个模式或者多个模式的导出。可根据需要自定义导出如下信息: 导出模式全量信息,包含数据和对象定义。 仅导出数据,即
阅读全文
摘要:导出全局对象 openGauss支持使用gs_dumpall工具导出所有数据库公共的全局对象,包含数据库用户和组,表空间及属性(例如:适用于数据库整体的访问权限)信息。 操作步骤 以操作系统用户omm登录数据库主节点。 使用gs_dumpall导出表空间对象信息。 gs_dumpall -U omm
阅读全文
摘要:导出数据库 openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有对象定义。可根据需要自定义导出如下信息: 导出数据库全量信息,包含数据和所有对象定义。 使用导出的全量信息可以创建一个与当前库相同的数据库,且库中数据也与当前库相同。 仅导出所有对象定义,包括:库定
阅读全文
摘要:导出所有数据库 openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库信息和公共的全局对象信息。可根据需要自定义导出如下信息: 导出所有数据库全量信息,包含openGauss中每个数据库信息和公共的全局对象信息(包含角色和表空间信息)。 使用导
阅读全文
摘要:导入数据 openGauss数据库提供了灵活的数据入库方式:INSERT、COPY以及gsql元命令\copy。各方式具有不同的特点,具体请参见表1。 表 1 导入方式特点说明 方式 特点 INSERT 通过INSERT语句插入一行或多行数据,及从指定表插入数据。 COPY 通过COPY FROM
阅读全文
摘要:订阅 订阅是逻辑复制的下游端。订阅被定义在其中的节点被称为订阅者。一个订阅会定义到另一个数据库的连接以及它想要订阅的发布集合(一个或者多个)。 订阅者数据库的行为与任何其他openGauss实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的发布。 如果需要,一个订阅者节点可以有多个订阅。
阅读全文
摘要:btree 索引故障情况下应对策略 问题现象 偶发索引丢失错误,报错如下。 ERROR: index 'xxxx_index' contains unexpected zero page 或 ERROR: index 'pg_xxxx_index' contains unexpected zero
阅读全文
摘要:CopyManager类简介 CopyManager是 openGauss JDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。 CopyManager的继承关系 CopyManager类位于org.postgresql.copy Package中,继承自java.lang
阅读全文
摘要:core问题定位 磁盘满故障引起的core问题 GUC参数log_directory设置不正确引起的core问题 开启RemoveIPC引起的core问题 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn
阅读全文
摘要:GUC参数log_directory设置不正确引起的core问题 问题现象 数据库进程拉起后出现coredump,日志无内容。 原因分析 GUC参数log_directory设置的路径不可读取或无访问权限,数据库在启动过程中进行校验失败,通过panic日志退出程序。 处理办法 GUC参数log_di
阅读全文
摘要:TPCC运行时,注入磁盘满故障,TPCC卡住的问题 问题现象 TPCC运行时,注入磁盘满故障,TPCC卡住,故障消除后,TPCC自动续跑。 原因分析 数据库本身机制,在性能日志(gs_profile)所在磁盘满时,导致无法写入而陷入无限等待,表现为TPCC卡住。磁盘满故障消除后,性能日志能正常写入,
阅读全文
摘要:VACUUM FULL一张表后,表文件大小无变化 问题现象 使用VACUUM FULL命令对一张表进行清理,清理完成后表大小和清理前一样大。 原因分析 假定该表的名称为table_name,对于该现象可能有以下两种原因: table_name表本身没有delete过数据,使用VACUUM FULL
阅读全文
摘要:安全性 用于复制连接的角色必须具有REPLICATION属性(或者是具有SYSADMIN权限用户)。 如果角色缺少SUPERUSER 和 BYPASSRLS,发布者的行安全策略可以执行。 角色的访问权限必须在pg_hba.conf中配置,并且必须具有LOGIN属性。 要创建发布,用户必须在数据库中有
阅读全文
摘要:备机处于need repair(WAL)状态问题 问题现象 openGauss备机出现Standby Need repair(WAL)故障。 原因分析 因网络故障、磁盘满等原因造成主备实例连接断开,主备日志不同步,导致数据库在启动时异常。 处理分析 通过gs_ctl build -D 命令对故障节点
阅读全文
摘要:并发写入示例 本章节以表test为例,分别介绍相同表的INSERT和DELETE并发,相同表的并发INSERT,相同表的并发UPDATE,以及数据导入和查询的并发的执行详情。 CREATE TABLE test(id int, name char(50), address varchar(255))
阅读全文
摘要:并发写入事务的潜在死锁情况 只要事务涉及多个表的或者同一个表相同行的更新时,同时运行的事务就可能在同时尝试写入时变为死锁状态。事务会在提交或回滚时一次性解除其所有锁定,而不会逐一放弃锁定。 例如,假设事务T1和T2在大致相同的时间开始: 如果T1开始对表A进行写入且T2开始对表B进行写入,则两个事务
阅读全文
摘要:不同用户查询同表显示数据不同 问题现象 2个用户登录相同数据库human_resource,同样执行如下查询语句,查询同一张表areas时,查询结果却不一致。 select count(*) from areas; 原因分析 检查同名表是否是同一张表。在关系型数据库中,确定一张表通常需要3个因素:d
阅读全文
摘要:常见故障定位案例 core问题定位 TPCC运行时,注入磁盘满故障,TPCC卡住的问题 备机处于need repair(WAL)状态问题 内存不足问题 服务启动失败 出现“Error:No space left on device”提示 在XFS文件系统中,使用du命令查询数据文件大小大于文件实际大
阅读全文
摘要:常见故障定位手段 操作系统故障定位手段 查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。 可以通过如下方法确定操作系统是否存在问题: 通过SSH或者其它远程登录工具登录该节点。如果连接失败,请尝试通过ping发包检查网络状态。 如果ping操作没有回复,则表明这台机器可能存在
阅读全文