05 2024 档案

摘要:Database和Schema设计 openGauss中可以使用Database和Schema实现业务的隔离,区别在于Database的隔离更加彻底,各个Database之间共享资源极少,可实现连接隔离、权限隔离等,Database之间无法直接互访。Schema隔离的方式共用资源较多,可以通过gra 阅读全文
posted @ 2024-05-16 14:30 奔跑的数据库 阅读(64) 评论(0) 推荐(0) 编辑
摘要:dblink dblink是一个可以在openGauss数据库会话中连接到其它数据库的工具,同libpq支持的连接参数一致,也可以在通过在连接串中增加drivername(对应odbc.ini文件中的数据源名称)字段通过ODBC连接异构数据库。 libpq连接串详见:链接参数 ODBC的使用方法详见 阅读全文
posted @ 2024-05-16 14:29 奔跑的数据库 阅读(172) 评论(0) 推荐(0) 编辑
摘要:cursor.fetchone() 功能描述 此方法提取查询结果集的下一行,并返回一个元组。 原型 cursor.fetchone() 参数 无。 返回值 单个元组,为结果集的第一条结果,当没有更多数据可用时,返回为“None”。 示例 请参见示例:常用操作。 详情查看:https://openga 阅读全文
posted @ 2024-05-16 14:29 奔跑的数据库 阅读(8) 评论(0) 推荐(0) 编辑
摘要:cursor.fetchall() 功能描述 此方法获取查询结果的所有(剩余)行,并将它们作为元组列表返回。 原型 cursor.fetchall() 参数 无。 返回值 元组列表,为结果集的所有结果。空行时则返回空列表。 示例 请参见示例:常用操作。 详情查看:https://opengauss. 阅读全文
posted @ 2024-05-16 14:15 奔跑的数据库 阅读(15) 评论(0) 推荐(0) 编辑
摘要:cursor.execute(query,vars_list) 功能描述 此方法执行被参数化的SQL语句(即占位符,而不是SQL文字)。psycopg2模块支持用%s标志的占位符。 原型 curosr.execute(query,vars_list) 参数 表 1 curosr.execute参数 阅读全文
posted @ 2024-05-16 14:14 奔跑的数据库 阅读(9) 评论(0) 推荐(0) 编辑
摘要:cursor.close() 功能描述 此方法关闭当前连接的游标。 原型 cursor.close() 参数 无。 返回值 无。 示例 请参见示例:常用操作。 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn 阅读全文
posted @ 2024-05-16 14:14 奔跑的数据库 阅读(6) 评论(0) 推荐(0) 编辑
摘要:curosr.executemany(query,vars_list) 功能描述 此方法执行SQL命令所有参数序列或序列中的SQL映射。 原型 curosr.executemany(query,vars_list) 参数 表 1 curosr.executemany参数 关键字 参数说明 query 阅读全文
posted @ 2024-05-16 14:12 奔跑的数据库 阅读(3) 评论(0) 推荐(0) 编辑
摘要:CopyManager CopyManager是openGauss JDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。 CopyManager的继承关系 CopyManager类位于org.postgresql.copy Package中,继承自java.lang.Obj 阅读全文
posted @ 2024-05-16 14:12 奔跑的数据库 阅读(23) 评论(0) 推荐(0) 编辑
摘要:connection.rollback() 功能描述 此方法回滚当前挂起事务。 注意: 执行关闭连接“close()”而不先提交更改“commit()”将导致执行隐式回滚。 原型 connection.rollback() 参数 无。 返回值 无。 示例 请参见示例:常用操作。 阅读全文
posted @ 2024-05-16 14:12 奔跑的数据库 阅读(17) 评论(0) 推荐(0) 编辑
摘要:connection.cursor() 功能描述 此方法用于返回新的cursor对象。 原型 cursor(name=None, cursor_factory=None, scrollable=None, withhold=False) 参数 表 1 connection.cursor参数 关键字 阅读全文
posted @ 2024-05-16 14:11 奔跑的数据库 阅读(14) 评论(0) 推荐(0) 编辑
摘要:connection.commit() 功能描述 此方法将当前挂起的事务提交到数据库。 注意: 默认情况下,Psycopg在执行第一个命令之前打开一个事务:如果不调用commit(),任何数据操作的效果都将丢失。 原型 connection.commit() 参数 无。 返回值 无。 示例 请参见示 阅读全文
posted @ 2024-05-16 14:11 奔跑的数据库 阅读(5) 评论(0) 推荐(0) 编辑
摘要:connection.close() 功能描述 此方法关闭数据库连接。 注意: 此方法关闭数据库连接,并不自动调用commit()。如果只是关闭数据库连接而不调用commit()方法,那么所有更改将会丢失。 原型 connection.close() 参数 无。 返回值 无。 示例 请参见示例:常用 阅读全文
posted @ 2024-05-16 14:11 奔跑的数据库 阅读(10) 评论(0) 推荐(0) 编辑
摘要:重建索引失败 问题现象 当Desc表的索引出现损坏时,无法进行一系列操作,可能的报错信息如下。 index \"%s\" contains corrupted page at block %u" ,RelationGetRelationName(rel),BufferGetBlockNumber(b 阅读全文
posted @ 2024-05-16 14:10 奔跑的数据库 阅读(18) 评论(0) 推荐(0) 编辑
摘要:执行修改表分区操作时报错 问题现象 执行ALTER TABLE PARTITION时,报错如下。 ERROR:start value of partition "XX" NOT EQUAL up-boundary of last partition. 原因分析 在同一条ALTER TABLE PAR 阅读全文
posted @ 2024-05-16 14:10 奔跑的数据库 阅读(32) 评论(0) 推荐(0) 编辑
摘要:执行 SQL 语句时,提示 Lock wait timeout 问题现象 执行SQL语句时,提示"Lock wait timeout"。 ERROR: Lock wait timeout: thread 140533638080272 waiting for ShareLock on relatio 阅读全文
posted @ 2024-05-16 14:09 奔跑的数据库 阅读(49) 评论(0) 推荐(0) 编辑
摘要:在XFS文件系统中,使用du命令查询数据文件大小大于文件实际大小 问题现象 在数据库使用过程中,通过如下du命令查询数据文件大小,查询结果大于文件实际的大小。 du -sh file 原因分析 XFS文件系统有预分配机制,预分配的大小由参数allocsize确定。du命令显示的文件大小包括该预分配的 阅读全文
posted @ 2024-05-16 14:09 奔跑的数据库 阅读(37) 评论(0) 推荐(0) 编辑
摘要:在XFS文件系统中,出现文件损坏 问题现象 在数据库使用过程中,有极小的概率出现XFS文件系统的报错()Input/Output error , structure needs cleaning)。 原因分析 此为XFS文件系统问题。 处理办法 首先尝试umount/mount对应文件系统,重试看是 阅读全文
posted @ 2024-05-16 14:08 奔跑的数据库 阅读(18) 评论(0) 推荐(0) 编辑
摘要:业务运行时整数转换错 问题现象 在转换整数时报错如下。 Invalid input syntax for integer: "13." 原因分析 部分数据类型不能转换成目标数据类型。 处理办法 逐步缩小SQL范围确定不能转换的数据类型。 详情查看:https://opengauss.org 详情查看 阅读全文
posted @ 2024-05-16 14:08 奔跑的数据库 阅读(6) 评论(0) 推荐(0) 编辑
摘要:修改索引时只调用索引名提示索引不存在 问题现象 修改索引时只调用索引名提示索引不存在。举例如下。 --创建分区表索引HR_staffS_p1_index1,不指定索引分区的名称。 CREATE INDEX HR_staffS_p1_index1 ON HR.staffS_p1 (staff_ID) 阅读全文
posted @ 2024-05-15 10:17 奔跑的数据库 阅读(18) 评论(0) 推荐(0) 编辑
摘要:写入和读写操作 关于写入和读写操作的命令: INSERT,可向表中插入一行或多行数据。 UPDATE,可修改表中现有数据。 DELETE,可删除表中现有数据。 COPY,导入数据。 INSERT和COPY是纯写入的操作。并发写入操作,需要等待,对同一个表的操作,当事务T1的INSERT或COPY未解 阅读全文
posted @ 2024-05-15 10:14 奔跑的数据库 阅读(25) 评论(0) 推荐(0) 编辑
摘要:相同表的并发UPDATE 事务T1: START TRANSACTION; UPDATE test SET address='test1234' WHERE name='test1'; COMMIT; 事务T2: START TRANSACTION; UPDATE test SET address= 阅读全文
posted @ 2024-05-15 10:14 奔跑的数据库 阅读(15) 评论(0) 推荐(0) 编辑
摘要:相同表的并发INSERT 事务T1: START TRANSACTION; INSERT INTO test VALUES(2,'test2','test123'); COMMIT; 事务T2: START TRANSACTION; INSERT INTO test VALUES(3,'test3' 阅读全文
posted @ 2024-05-15 10:14 奔跑的数据库 阅读(12) 评论(0) 推荐(0) 编辑
摘要:相同表的INSERT和DELETE并发 事务T1: START TRANSACTION; INSERT INTO test VALUES(1,'test1','test123'); COMMIT; 事务T2: START TRANSACTION; DELETE test WHERE NAME='te 阅读全文
posted @ 2024-05-15 10:13 奔跑的数据库 阅读(11) 评论(0) 推荐(0) 编辑
摘要:限制 发布订阅基于逻辑复制实现,继承所有逻辑复制的限制,同时发布订阅还有下列额外的限制或者缺失的功能。 数据库模式和DDL命令不会被复制。初始模式可以手工使用gs_dump --schema-only进行拷贝。后续的模式改变需要手工保持同步。 序列数据不被复制。后台由序列支撑的serial或者标识列 阅读全文
posted @ 2024-05-15 10:13 奔跑的数据库 阅读(14) 评论(0) 推荐(0) 编辑
摘要:无权限角色导出数据 gs_dump和gs_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导出所要求的权限时,会无法导出数据。此时,需先将具有权限的角色赋权给无权限角色,然后在导出命令中设置--role参数来指定具备权限的角色。在执行命令后,gs_dump和gs_dumpall 阅读全文
posted @ 2024-05-15 10:13 奔跑的数据库 阅读(27) 评论(0) 推荐(0) 编辑
摘要:通过INSERT语句直接写入数据 用户可以通过以下方式执行INSERT语句直接向openGauss数据库写入数据: 使用openGauss数据库提供的客户端工具向openGauss数据库写入数据。 请参见向表中插入数据。 通过JDBC驱动连接数据库执行INSERT语句向openGauss数据库写入数 阅读全文
posted @ 2024-05-15 10:12 奔跑的数据库 阅读(15) 评论(0) 推荐(0) 编辑
摘要:数据导入和查询的并发 事务T1: START TRANSACTION; COPY test FROM '...'; COMMIT; 事务T2: START TRANSACTION; SELECT * FROM test; COMMIT; 场景1: 开启事务T1,不提交的同时开启事务T2,事务T1开始 阅读全文
posted @ 2024-05-15 10:12 奔跑的数据库 阅读(16) 评论(0) 推荐(0) 编辑
摘要:通过创建临时表并截断原始表来执行深层复制 该方法使用CREATE** TEMP **TABLE ... AS语句创建原始表的临时表,然后截断原始表并从临时表填充它完成原始表的深层复制。 在新建表需要保留父表的主键属性,或如果父表具有依赖项的情况下,建议使用此方法。 操作步骤 使用CREATE** T 阅读全文
posted @ 2024-05-15 10:12 奔跑的数据库 阅读(33) 评论(0) 推荐(0) 编辑
摘要:数据安全维护建议 为保证openGauss数据库中的数据安全,避免丢失数据,非法访问数据等事故发生,请仔细阅读以下内容。 避免数据被丢失 建议用户规划周期性的物理备份,且对备份文件进行可靠的保存。在系统发生严重错误的情况下,可以利用备份文件,将系统恢复到备份前的状态。 避免数据被非法访问 建议对数据 阅读全文
posted @ 2024-05-15 10:11 奔跑的数据库 阅读(10) 评论(0) 推荐(0) 编辑
摘要:事务隔离说明 openGauss基于MVCC(多版本并发控制)并结合两阶段锁的方式进行事务管理,其特点是读写之间不阻塞。SELECT是纯读操作,UPDATE和DELETE是读写操作。 读写操作和纯读操作之间并不会发生冲突,读写操作之间也不会发生冲突。每个并发事务在事务开始时创建事务快照,并发事务之间 阅读全文
posted @ 2024-05-15 10:11 奔跑的数据库 阅读(38) 评论(0) 推荐(0) 编辑
摘要:启停openGauss 启动openGauss 以操作系统用户omm登录数据库主节点。 使用以下命令启动openGauss。 gs_ctl start -D /opt/data 说明: 如果提示找不到gs_ctl,请检查是否source过环境变量文件(默认是~/.bashrc),若不想source环 阅读全文
posted @ 2024-05-13 14:39 奔跑的数据库 阅读(185) 评论(0) 推荐(0) 编辑
摘要:配置设置 发布订阅要求设置一些配置选项。 在发布者端,wal_level必须被设置为logical,而max_replication_slots中设置的值必须至少是预期要连接的订阅数加上保留给表同步的连接数。发布端参数max_wal_senders应满足:max_wal_senders >= max 阅读全文
posted @ 2024-05-13 14:39 奔跑的数据库 阅读(27) 评论(0) 推荐(0) 编辑
摘要:内存不足问题 问题现象 客户端或日志里出现错误:memory usage reach the max_dynamic_memory。 原因分析 出现内存不足可能因GUC参数max_process_memory值设置较小相关,该参数限制一个openGauss实例可用最大内存。 处理分析 通过工具gs_ 阅读全文
posted @ 2024-05-13 14:39 奔跑的数据库 阅读(133) 评论(0) 推荐(0) 编辑
摘要:慢SQL诊断 背景信息 在SQL语句执行性能不符合预期时,可以查看SQL语句执行信息,便于事后分析SQL语句执行时的行为,从而诊断SQL语句执行出现的相关问题。 前提条件 数据库实例运行正常。 查询SQL语句信息,需要正确设置GUC参数track_stmt_stat_level。 只能用系统管理员和 阅读全文
posted @ 2024-05-13 14:38 奔跑的数据库 阅读(94) 评论(0) 推荐(0) 编辑
摘要:逻辑解码概述 功能描述 openGauss对数据复制能力的支持情况为: 支持通过数据迁移工具定期向异构数据库(如Oracle等)进行数据同步,不具备实时数据复制能力。不足以支撑与异构数据库间并网运行实时数据同步的诉求。 openGauss提供了逻辑解码功能,通过反解xlog的方式生成逻辑日志。目标数 阅读全文
posted @ 2024-05-13 14:38 奔跑的数据库 阅读(15) 评论(0) 推荐(0) 编辑
摘要:逻辑复制支持DDL操作 功能描述 Vastbase在逻辑复制过程中支持如下DDL操作: CREATE/DROP TABLE|TABLE PARTITION CREATE/DROP INDEX 注意事项 只支持行存表的DDL操作。 不支持列存,ustore存储引擎。 在订阅端手动删除表会导致DDL同步 阅读全文
posted @ 2024-05-13 14:37 奔跑的数据库 阅读(69) 评论(0) 推荐(0) 编辑
摘要:逻辑复制 逻辑解码 使用逻辑复制工具复制数据 发布订阅 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn 阅读全文
posted @ 2024-05-13 14:37 奔跑的数据库 阅读(3) 评论(0) 推荐(0) 编辑
摘要:逻辑备份恢复 gs_dump gs_dumpall gs_restore 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn 阅读全文
posted @ 2024-05-13 14:36 奔跑的数据库 阅读(8) 评论(0) 推荐(0) 编辑
摘要:例行重建索引 背景信息 数据库经过多次删除操作后,索引页面上的索引键将被删除,造成索引膨胀。例行重建索引,可有效的提高查询效率。 数据库支持的索引类型为B-tree索引,例行重建索引可有效的提高查询效率。 如果数据发生大量删除后,索引页面上的索引键将被删除,导致索引页面数量的减少,造成索引膨胀。重建 阅读全文
posted @ 2024-05-13 14:36 奔跑的数据库 阅读(44) 评论(0) 推荐(0) 编辑
摘要:例行维护表 为了保证数据库的有效运行,数据库必须在插入/删除操作后,基于客户场景,定期做VACUUM FULL和ANALYZE,更新统计信息,以便获得更优的性能。 相关概念 使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因: VACUUM FULL可回 阅读全文
posted @ 2024-05-13 14:36 奔跑的数据库 阅读(28) 评论(0) 推荐(0) 编辑
摘要:例行维护 检查时间一致性 检查应用连接数 例行维护表 例行重建索引 数据安全维护建议 为保证openGauss数据库中的数据安全,避免丢失数据,非法访问数据等事故发生,请仔细阅读以下内容。 慢SQL诊断 阅读全文
posted @ 2024-05-13 14:35 奔跑的数据库 阅读(3) 评论(0) 推荐(0) 编辑
摘要:快速设置 首先在postgresql.conf中设置配置选项: wal_level = logical 对于一个基础设置来说,其他所需的设置使用默认值就足够了。 需要调整pg_hba.conf以允许复制(这里的值取决于实际的网络配置以及用于连接的用户): host all repuser 0.0.0 阅读全文
posted @ 2024-05-13 14:35 奔跑的数据库 阅读(16) 评论(0) 推荐(0) 编辑
摘要:开启RemoveIPC引起的core问题 问题现象 操作系统配置中RemoveIPC参数设置为yes,数据库运行过程中出现宕机,并显示如下日志消息。 FATAL: semctl(1463124609, 3, SETVAL, 0) failed: Invalid argument 原因分析 当Remo 阅读全文
posted @ 2024-05-13 14:35 奔跑的数据库 阅读(9) 评论(0) 推荐(0) 编辑
摘要:检查应用连接数 如果应用程序与数据库的连接数超过最大值,则新的连接无法建立。建议每天检查连接数,及时释放空闲的连接或者增加最大连接数。 操作步骤 以操作系统用户omm登录数据库主节点。 使用如下命令连接数据库。 gsql -d postgres -p 8000 postgres为需要连接的数据库名称 阅读全文
posted @ 2024-05-13 14:28 奔跑的数据库 阅读(57) 评论(0) 推荐(0) 编辑
摘要:检查时间一致性 数据库事务一致性通过逻辑时钟保证,与操作系统时间无关,但是系统时间不一致会导致诸多潜在问题,主要是后台运维和监控功能异常,因此在月度检查时建议检查各个节点的时间一致性。 操作步骤 以操作系统用户omm登录数据库主节点。 创建记录openGauss各节点的配置文件(mpphosts文件 阅读全文
posted @ 2024-05-13 14:22 奔跑的数据库 阅读(39) 评论(0) 推荐(0) 编辑
摘要:监控 因为逻辑复制是基于与物理流复制相似的架构的,一个发布节点上的监控也类似于对物理复制主节点的监控。 有关订阅的监控信息在pg_stat_subscription中可以看到。 每一个订阅工作者在这个视图都有一行。一个订阅能有零个或者多个活跃订阅工作者取决于它的状态。 通常,对于一个已启用的订阅会有 阅读全文
posted @ 2024-05-13 14:22 奔跑的数据库 阅读(38) 评论(0) 推荐(0) 编辑
摘要:架构 发布者上的更改会在它们发生时实时传送给订阅者。订阅者按照数据在发布者上被提交的顺序应用数据,这样任意单一订阅中的发布的事务一致性才能得到保证。 逻辑复制被构建在一种类似于物理流复制的架构上。它由“walsender”和“apply”进程实现。walsender进程开始对WAL的逻辑解码并且载入 阅读全文
posted @ 2024-05-13 14:22 奔跑的数据库 阅读(14) 评论(0) 推荐(0) 编辑
摘要:管理并发写入操作 事务隔离说明 写入和读写操作 并发写入事务的潜在死锁情况 并发写入示例 阅读全文
posted @ 2024-05-13 14:21 奔跑的数据库 阅读(8) 评论(0) 推荐(0) 编辑
摘要:关于COPY FROM STDIN导入数据 用户可以使用以下方式通过COPY FROM STDIN语句直接向openGauss写入数据。 通过键盘输入向openGauss写入数据。详细请参见COPY。 通过JDBC驱动的CopyManager接口从文件或者数据库向openGauss写入数据。此方法支 阅读全文
posted @ 2024-05-13 14:21 奔跑的数据库 阅读(13) 评论(0) 推荐(0) 编辑
摘要:高危操作一览表 各项操作请严格遵守指导书操作,同时避免执行如下高危操作。 表1中描述在产品的操作与维护阶段,进行日常操作时应注意的严禁操作。 表 1 禁用操作 操作名称 操作风险 严禁修改数据目录下文件名,权限,内容不能修改,不能删除内容。 导致数据库节点实例出现严重错误,并且无法修复。 严禁删除数 阅读全文
posted @ 2024-05-13 14:20 奔跑的数据库 阅读(25) 评论(0) 推荐(0) 编辑
摘要:高并发报错"too many clients already"或无法创建线程 问题现象 高并发执行SQL,报错"sorry, too many clients already";或报无法创建线程、无法fork进程等错误。 原因分析 该类报错是由于操作系统线程资源不足引起,查看操作系统ulimit - 阅读全文
posted @ 2024-05-13 14:20 奔跑的数据库 阅读(90) 评论(0) 推荐(0) 编辑
摘要:概述 openGauss提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库信息的迁移。gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出openGauss中所有数据库或 阅读全文
posted @ 2024-05-13 14:19 奔跑的数据库 阅读(23) 评论(0) 推荐(0) 编辑
摘要:概述 数据备份是保护数据安全的重要手段之一,为了更好的保护数据安全,openGauss数据库支持三种备份恢复类型、多种备份恢复方案,备份和恢复过程中提供数据的可靠性保障机制。 备份与恢复类型可分为逻辑备份与恢复、闪回恢复。 逻辑备份与恢复:通过逻辑导出对数据进行备份,逻辑备份只能基于备份时刻进行数据 阅读全文
posted @ 2024-05-13 14:19 奔跑的数据库 阅读(74) 评论(0) 推荐(0) 编辑
摘要:服务启动失败 问题现象 服务启动失败。 原因分析 配置参数不合理,数据库因系统资源不足,或者配置参数不满足内部约束,启动失败。 由于部分数据节点状态不正常,导致数据库启动失败。 目录权限不够。例如对/tmp目录、数据库数据目录的权限不足。 配置的端口已经被占用。 开启了系统防火墙导致数据库启动失败。 阅读全文
posted @ 2024-05-13 14:18 奔跑的数据库 阅读(306) 评论(0) 推荐(0) 编辑
摘要:分析查询语句长时间运行的问题 问题现象 系统中部分查询语句运行时间过长。 原因分析 查询语句较为复杂,需要长时间运行。 查询语句阻塞。 处理办法 以操作系统用户omm登录主机。 使用如下命令连接数据库。 gsql -d postgres -p 8000 postgres为需要连接的数据库名称,800 阅读全文
posted @ 2024-05-13 14:18 奔跑的数据库 阅读(44) 评论(0) 推荐(0) 编辑
摘要:分析查询语句运行状态 问题现象 系统中部分查询语句运行时间过长,需要分析查询语句的运行状态。 处理办法 以操作系统用户omm登录主机。 使用如下命令连接数据库。 gsql -d postgres -p 8000 postgres为需要连接的数据库名称,8000为端口号。 设置参数track_acti 阅读全文
posted @ 2024-05-13 14:18 奔跑的数据库 阅读(57) 评论(0) 推荐(0) 编辑
摘要:分析查询语句是否被阻塞 问题现象 数据库系统运行时,在某些业务场景下,查询语句会被阻塞,导致语句运行时间过长。 原因分析 查询语句需要通过加锁来保护其要访问的数据对象。当要进行加锁时发现要访问的数据对象已经被其他会话加锁,则查询语句会被阻塞,等待其他会话完成操作并释放锁资源。这些需要加锁访问的数据对 阅读全文
posted @ 2024-05-13 14:17 奔跑的数据库 阅读(36) 评论(0) 推荐(0) 编辑
摘要:分析查询效率异常降低的问题 问题现象 通常在几十毫秒内完成的查询,有时会突然需要几秒的时间完成;而通常需要几秒完成的查询,有时需要半小时才能完成。 处理办法 通过下列的操作步骤,分析查询效率异常降低的原因。 使用analyze命令分析数据库。 analyze命令更新所有表中数据大小以及属性等相关统计 阅读全文
posted @ 2024-05-13 14:14 奔跑的数据库 阅读(45) 评论(0) 推荐(0) 编辑
摘要:订阅 订阅是逻辑复制的下游端。订阅被定义在其中的节点被称为订阅者。一个订阅会定义到另一个数据库的连接以及它想要订阅的发布集合(一个或者多个)。 订阅者数据库的行为与任何其他openGauss实例相同,并且可以被用作其他数据库的发布者,只需要定义它自己的发布。 如果需要,一个订阅者节点可以有多个订阅。 阅读全文
posted @ 2024-05-07 10:01 奔跑的数据库 阅读(9) 评论(0) 推荐(0) 编辑
摘要:对表执行VACUUM 如果导入过程中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,然后运行ANALYZE命令。大量的更新和删除操作,会产生大量的磁盘页面碎片,从而逐渐降低查询的效率。VACUUM FULL可以将磁盘页面碎片恢复并交还操作系统。 对表执行VACUUM FULL。 以表 阅读全文
posted @ 2024-05-07 10:01 奔跑的数据库 阅读(33) 评论(0) 推荐(0) 编辑
摘要:发布 发布可以被定义在任何物理复制的主服务器上。定义有发布的节点被称为发布者。发布是从一个表或者一组表生成的改变的集合,也可以被描述为更改集合或者复制集合。每个发布都只存在于一个数据库中。 发布与模式不同,不会影响表的访问方式。如果需要,每个表都可以被加入到多个发布。当前,发布只能包含表。对象必须被 阅读全文
posted @ 2024-05-07 10:00 奔跑的数据库 阅读(6) 评论(0) 推荐(0) 编辑
摘要:发布订阅 发布 订阅 冲突处理 限制 架构 监控 安全性 配置设置 快速设置 发布和订阅基于逻辑复制实现,其中有一个或者更多订阅者订阅一个发布者节点上的一个或者更多发布。订阅者从它们所订阅的发布拉取数据。 发布者上的更改会被实时发送给订阅者。订阅者以与发布者相同的顺序应用那些数据,这样在一个订阅中能 阅读全文
posted @ 2024-05-07 10:00 奔跑的数据库 阅读(20) 评论(0) 推荐(0) 编辑
摘要:分析表 执行计划生成器需要使用表的统计信息,以生成最有效的查询执行计划,提高查询性能。因此数据导入完成后,建议执行ANALYZE语句生成最新的表统计信息。统计结果存储在系统表PG_STATISTIC中。 分析表 ANALYZE支持的表类型有行/列存表。ANALYZE同时也支持对本地表的指定列进行信息 阅读全文
posted @ 2024-05-07 09:59 奔跑的数据库 阅读(39) 评论(0) 推荐(0) 编辑
摘要:冲突处理 逻辑复制的行为类似于正常的DML操作,即便数据在订阅者节点本地被修改,逻辑复制也会根据收到的更改来更新数据。如果流入的数据违背了任何约束,复制将停止。这种情况被称为一个冲突。在复制UPDATE或DELETE操作时,缺失的数据将不会产生冲突并且这类操作将被简单地跳过。 冲突将会产生错误并且停 阅读全文
posted @ 2024-05-07 09:57 奔跑的数据库 阅读(68) 评论(0) 推荐(0) 编辑
摘要:出现“Error:No space left on device”提示 问题现象 在数据库使用过程中,出现如下错误提示。 Error:No space left on device 原因分析 磁盘空间不足造成此提示信息。 处理办法 使用如下命令查看磁盘占用情况。显示信息如下,其中Avail列表示各磁 阅读全文
posted @ 2024-05-07 09:57 奔跑的数据库 阅读(43) 评论(0) 推荐(0) 编辑
摘要:处理错误表 操作场景 当数据导入发生错误时,请根据本文指引信息进行处理。 查询错误信息 数据导入过程中发生的错误,一般分为数据格式错误和非数据格式错误。 数据格式错误 在创建外表时,通过设置参数“LOG INTO error_table_name”,将数据导入过程中出现的数据格式错误信息写入指定的错 阅读全文
posted @ 2024-05-07 09:53 奔跑的数据库 阅读(107) 评论(0) 推荐(0) 编辑
摘要:磁盘空间达到阈值,数据库只读 问题现象 执行非只读SQL时报错如下。 ERROR: cannot execute %s in a read-only transaction. 或者运行中部分非只读SQL(insert、update、create table as、create index、alter 阅读全文
posted @ 2024-05-07 09:53 奔跑的数据库 阅读(93) 评论(0) 推荐(0) 编辑
摘要:磁盘满故障引起的core问题 问题现象 TPCC运行时,注入磁盘满故障,数据库进程gaussdb core掉,如下图所示。 原因分析 数据库本身机制,在磁盘满时,Xlog日志无法进行写入,通过panic日志退出程序。 处理办法 外部监控磁盘使用状况,定时进行清理磁盘。 阅读全文
posted @ 2024-05-07 09:53 奔跑的数据库 阅读(15) 评论(0) 推荐(0) 编辑
摘要:导出表 openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列和外表属于特殊的表。用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支持排除一个表或者多个表的导出。可根据需要自定义导出如下信息: 导出表全量信息,包含表数据和表定义。 仅导出 阅读全文
posted @ 2024-05-07 09:52 奔跑的数据库 阅读(71) 评论(0) 推荐(0) 编辑
摘要:导出模式 openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。用户可通过灵活的自定义方式导出模式内容,不仅支持选定一个模式或多个模式的导出,还支持排除一个模式或者多个模式的导出。可根据需要自定义导出如下信息: 导出模式全量信息,包含数据和对象定义。 仅导出数据,即 阅读全文
posted @ 2024-05-07 09:52 奔跑的数据库 阅读(20) 评论(0) 推荐(0) 编辑
摘要:导出全局对象 openGauss支持使用gs_dumpall工具导出所有数据库公共的全局对象,包含数据库用户和组,表空间及属性(例如:适用于数据库整体的访问权限)信息。 操作步骤 以操作系统用户omm登录数据库主节点。 使用gs_dumpall导出表空间对象信息。 gs_dumpall -U omm 阅读全文
posted @ 2024-05-07 09:52 奔跑的数据库 阅读(4) 评论(0) 推荐(0) 编辑
摘要:导出数据库 openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有对象定义。可根据需要自定义导出如下信息: 导出数据库全量信息,包含数据和所有对象定义。 使用导出的全量信息可以创建一个与当前库相同的数据库,且库中数据也与当前库相同。 仅导出所有对象定义,包括:库定 阅读全文
posted @ 2024-05-07 09:51 奔跑的数据库 阅读(65) 评论(0) 推荐(0) 编辑
摘要:导出所有数据库 openGauss支持使用gs_dumpall工具导出所有数据库的全量信息,包含openGauss中每个数据库信息和公共的全局对象信息。可根据需要自定义导出如下信息: 导出所有数据库全量信息,包含openGauss中每个数据库信息和公共的全局对象信息(包含角色和表空间信息)。 使用导 阅读全文
posted @ 2024-05-07 09:50 奔跑的数据库 阅读(22) 评论(0) 推荐(0) 编辑
摘要:导入数据 openGauss数据库提供了灵活的数据入库方式:INSERT、COPY以及gsql元命令\copy。各方式具有不同的特点,具体请参见表1。 表 1 导入方式特点说明 方式 特点 INSERT 通过INSERT语句插入一行或多行数据,及从指定表插入数据。 COPY 通过COPY FROM 阅读全文
posted @ 2024-05-07 09:50 奔跑的数据库 阅读(278) 评论(0) 推荐(0) 编辑
摘要:btree 索引故障情况下应对策略 问题现象 偶发索引丢失错误,报错如下。 ERROR: index 'xxxx_index' contains unexpected zero page 或 ERROR: index 'pg_xxxx_index' contains unexpected zero 阅读全文
posted @ 2024-05-06 17:21 奔跑的数据库 阅读(19) 评论(0) 推荐(0) 编辑
摘要:CopyManager类简介 CopyManager是 openGauss JDBC驱动中提供的一个API接口类,用于批量向openGauss中导入数据。 CopyManager的继承关系 CopyManager类位于org.postgresql.copy Package中,继承自java.lang 阅读全文
posted @ 2024-05-06 17:21 奔跑的数据库 阅读(61) 评论(0) 推荐(0) 编辑
摘要:core问题定位 磁盘满故障引起的core问题 GUC参数log_directory设置不正确引起的core问题 开启RemoveIPC引起的core问题 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn 阅读全文
posted @ 2024-05-06 17:20 奔跑的数据库 阅读(6) 评论(0) 推荐(0) 编辑
摘要:GUC参数log_directory设置不正确引起的core问题 问题现象 数据库进程拉起后出现coredump,日志无内容。 原因分析 GUC参数log_directory设置的路径不可读取或无访问权限,数据库在启动过程中进行校验失败,通过panic日志退出程序。 处理办法 GUC参数log_di 阅读全文
posted @ 2024-05-06 17:19 奔跑的数据库 阅读(10) 评论(0) 推荐(0) 编辑
摘要:TPCC运行时,注入磁盘满故障,TPCC卡住的问题 问题现象 TPCC运行时,注入磁盘满故障,TPCC卡住,故障消除后,TPCC自动续跑。 原因分析 数据库本身机制,在性能日志(gs_profile)所在磁盘满时,导致无法写入而陷入无限等待,表现为TPCC卡住。磁盘满故障消除后,性能日志能正常写入, 阅读全文
posted @ 2024-05-06 17:14 奔跑的数据库 阅读(13) 评论(0) 推荐(0) 编辑
摘要:VACUUM FULL一张表后,表文件大小无变化 问题现象 使用VACUUM FULL命令对一张表进行清理,清理完成后表大小和清理前一样大。 原因分析 假定该表的名称为table_name,对于该现象可能有以下两种原因: table_name表本身没有delete过数据,使用VACUUM FULL 阅读全文
posted @ 2024-05-06 17:14 奔跑的数据库 阅读(33) 评论(1) 推荐(0) 编辑
摘要:安全性 用于复制连接的角色必须具有REPLICATION属性(或者是具有SYSADMIN权限用户)。 如果角色缺少SUPERUSER 和 BYPASSRLS,发布者的行安全策略可以执行。 角色的访问权限必须在pg_hba.conf中配置,并且必须具有LOGIN属性。 要创建发布,用户必须在数据库中有 阅读全文
posted @ 2024-05-06 17:13 奔跑的数据库 阅读(8) 评论(0) 推荐(0) 编辑
摘要:备份与恢复 概述 逻辑备份恢复 闪回恢复 详情查看:https://opengauss.org 详情查看:https://docs-opengauss.osinfra.cn 阅读全文
posted @ 2024-05-06 17:13 奔跑的数据库 阅读(29) 评论(0) 推荐(0) 编辑
摘要:备机处于need repair(WAL)状态问题 问题现象 openGauss备机出现Standby Need repair(WAL)故障。 原因分析 因网络故障、磁盘满等原因造成主备实例连接断开,主备日志不同步,导致数据库在启动时异常。 处理分析 通过gs_ctl build -D 命令对故障节点 阅读全文
posted @ 2024-05-06 17:13 奔跑的数据库 阅读(56) 评论(0) 推荐(0) 编辑
摘要:并发写入示例 本章节以表test为例,分别介绍相同表的INSERT和DELETE并发,相同表的并发INSERT,相同表的并发UPDATE,以及数据导入和查询的并发的执行详情。 CREATE TABLE test(id int, name char(50), address varchar(255)) 阅读全文
posted @ 2024-05-06 17:11 奔跑的数据库 阅读(8) 评论(0) 推荐(0) 编辑
摘要:并发写入事务的潜在死锁情况 只要事务涉及多个表的或者同一个表相同行的更新时,同时运行的事务就可能在同时尝试写入时变为死锁状态。事务会在提交或回滚时一次性解除其所有锁定,而不会逐一放弃锁定。 例如,假设事务T1和T2在大致相同的时间开始: 如果T1开始对表A进行写入且T2开始对表B进行写入,则两个事务 阅读全文
posted @ 2024-05-06 16:04 奔跑的数据库 阅读(36) 评论(0) 推荐(0) 编辑
摘要:不同用户查询同表显示数据不同 问题现象 2个用户登录相同数据库human_resource,同样执行如下查询语句,查询同一张表areas时,查询结果却不一致。 select count(*) from areas; 原因分析 检查同名表是否是同一张表。在关系型数据库中,确定一张表通常需要3个因素:d 阅读全文
posted @ 2024-05-06 16:04 奔跑的数据库 阅读(36) 评论(0) 推荐(0) 编辑
摘要:常见故障定位案例 core问题定位 TPCC运行时,注入磁盘满故障,TPCC卡住的问题 备机处于need repair(WAL)状态问题 内存不足问题 服务启动失败 出现“Error:No space left on device”提示 在XFS文件系统中,使用du命令查询数据文件大小大于文件实际大 阅读全文
posted @ 2024-05-06 16:03 奔跑的数据库 阅读(10) 评论(0) 推荐(0) 编辑
摘要:常见故障定位手段 操作系统故障定位手段 查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。 可以通过如下方法确定操作系统是否存在问题: 通过SSH或者其它远程登录工具登录该节点。如果连接失败,请尝试通过ping发包检查网络状态。 如果ping操作没有回复,则表明这台机器可能存在 阅读全文
posted @ 2024-05-06 16:03 奔跑的数据库 阅读(79) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示