1.【YashanDB知识库】如何设置yasql客户端的字符编码2.【YashanDB知识库】exp导出csv报错YAS-00218 string conversion failed3.【YashanDB知识库】YAS-00218 string conversion failed.4.【YashanDB知识库】虚拟机重启后启动YMP报错5.【YashanDB知识库】OM仲裁节点故障后手工切换方案和yasom仲裁重新部署后重新纳管数据库集群方案6.【YashanDB知识库】oracle与yashanDB的jdbc返回常量列"0.00"的精度和刻度不一致7.【YashanDB知识库】UNDO表空间膨胀怎么处理
8.【YashanDB知识库】如何将mysql含有group by的SQL转换成崖山支持的SQL9.【YashanDB知识库】同样建表语句,大整型数字在Oracle插入成功,在YashanDB插入失败10.【YashanDB知识库】要有好的跑批性能,有哪些参数要注意11.【YashanDB知识库】MySQL迁移至崖山char类型数据自动补空格问题12.【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录13.【YashanDB知识库】kettle同步大表提示java内存溢出14.【YashanDB知识库】查看表空间是否加密15.【YashanDB知识库】误配置SYSTEM级别的STATISTICS_LEVEL参数为ALL导致数据库性能下降16.【YashanDB知识库】用yasldr配置Bulkload模式作单线程迁移300G的业务数据到分布式数据库,迁移任务频繁出错17.【YashanDB知识库】YCP单机部署离线升级-rpc升级方式详细步骤18.【YashanDB知识库】YCP高可用部署离线升级-rpc升级详细步骤19.【YashanDB知识库】如何处理yasql输入交互模式下单行字符总量超过限制4000字节20.【YashanDB知识库】IMP跨网络导入慢问题21.【YashanDB知识库】insert语句有编码不识别字,执行卡住问题22.【YashanDB知识库】服务器重启后Yashandb无法启动23.【YashanDB知识库】如何处理no free block in dictionary cache24.【YashanDB知识库】in大量参数时查询性能慢25.【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写26.【YashanDB知识库】update (子查询) set ORG_ID_STAN -ID 改写27.【YashanDB知识库】XMLAGG方法的兼容28.【YashanDB知识库】YMP迁移过程中报错YAS-02143或YAS-0219329.【YashanDB知识库】复合索引下in大量参数查询性能慢30.【YashanDB知识库】jdbc查询st_geometry类型的数据时抛出YAS-00101 cannot allocate 0 bytes for anlHeapMalloc异常31.【YashanDB知识库】JDBC驱动的date类型字段结果集调用getString方法只返回日期,不返回时分秒32.【YashanDB知识库】Mybatis-Plus调用YashanDB怎么设置分页33.【YashanDB知识库】ycm-YashanDB列表有数据库显示故障排除步骤34.【YashanDB知识库】单机部署报错:prohibited operation, please check if the IP and username are correct35.【YashanDB知识库】启动数据库时报错:YAS-02059 control file version 0.2.64 is incompatible with YashanDB version 0.2.6536.【YashanDB知识库】如何处理报错"UDT column batch insert" has not been implemented yet37.【YashanDB知识库】如何解决共享集群部署遇到报错:YAS-05721 invalid input parameter, reason: node name invalid.38.【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“39.【YashanDB知识库】如何限制用户session连接数40.【YashanDB知识库】通过dblink查询Oracle数据时报YAS-07301异常41.【YashanDB知识库】使用leading hint调整SQL执行计划后报错YAS-04522 invalid hint leading42.【YashanDB知识库】通过触发器复制varchar(4000 char)列的数据导致乱码43.【YashanDB知识库】由于druid中间件配置导致的YAS-04003 maximum number of open cursors is 100044.【YashanDB知识库】exp 导出数据库时,报错YAS-0040245.【YashanDB知识库】YAS-00004 feature "implict table" has not been implemented yet46.【YashanDB知识库】YAS-04003 maximum number of open cursors is xxx47.【YashanDB知识库】YAS-04209 unexpected word ;48.【YashanDB知识库】yasboot集群状态命令登录失败问题49.【YashanDB知识库】YAS-00004 feature "create user" has not been implemented yet50.【YashanDB知识库】yasql / as sysdba无法登录51.【YashanDB知识库】启动yasom时报错:sqlite connection error52.【YashanDB知识库】使用vmware虚拟机安装的YashanDB,本机无法访问53.【YashanDB知识库】安装过程报错: unable to authenticate, attempted methods [none password], no supported methods remain54.【YashanDB知识库】密码带特殊符号登录报错YAS-02143 invalid username/password, login denied55.【YashanDB知识库】如何使用jdbc向YashanDB批量插入gis数据56.【YashanDB知识库】如何在备机节点上做备份和恢复57.【YashanDB知识库】收集统计信息时报错YAS-00507 date/timestamp value overflow58.【YashanDB知识库】druid连接池查询空间数据报错read time out59.【YashanDB知识库】hive初始化崖山报错YAS-0420960.【YashanDB知识库】imp导入数据库时,报错YAS-0802361.【YashanDB知识库】listagg拼接结果发生溢出62.【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断63.【YashanDB知识库】sys登录提示账户被锁,怎么处理?64.【YashanDB知识库】YAS-00402 failed to connect socket, errno 111, error message "Connection refused"65.【YashanDB知识库】YAS-02287 audit policy cannot be dropped as it is currently enabled66.【YashanDB知识库】YAS-02507 base incremental backup set does not exist67.【YashanDB知识库】YAS-02547 there is a gap in the restored archived logs on instance 1, reason: start of restored archive 35 is greater than database last archive 2168.【YashanDB知识库】YAS-02605 the current instance is not master role69.【YashanDB知识库】YAS-04379 invalid alteration of datatype70.【YashanDB知识库】YAS-05534 unsupport operation: Create sibling files to diskgroups71.【YashanDB知识库】YDC连接数据库报错yasdb return code is zero72.【YashanDB知识库】YMP迁移达梦时,报错:查询出现异常73.【YashanDB知识库】查询空间数据提示This socket has been closed.74.【YashanDB知识库】数据库用户所拥有的权限查询75.【YashanDB知识库】JDBC查询时抛出YAS-02094 current session has been killed or canceled异常76.【YashanDB知识库】YashanDB JDBC驱动查询时抛出io fail:Read timed out异常77.【YashanDB知识库】YCM上CPU负载超过实际核数是怎么回事78.【YashanDB知识库】使用Reverse索引的解决自增序列做索引,插入性能大幅提升79.【YashanDB知识库】YMP从达梦迁移到崖山,报错:不能识别文件路径,没找到csv文件80.【YashanDB知识库】YMP在迁移过程中,遇到报错:failed to open file /qianyi/ymp/ymp_23.3, errno 2, error message "No such file or directory".81.【YashanDB知识库】解决mybatis的mapper文件sql语句结尾加分号";"报错82.【YashanDB知识库】进行load data的时候报找不到动态库liblz4.so83.【YashanDB知识库】如何解决删除分区后索引失效问题84.【YashanDB知识库】如何输入小写表名的函数参数85.【YashanDB知识库】审计表UNIFIED_AUDIT_TRAIL出现YAS-00220 utf8 sequence is wrong86.【YashanDB知识库】kettle做增量同步,出现报错:Unrecognized VM option 'MaxPermSize-256m'87.【YashanDB知识库】YashanDB run.log中有slow log queue is full信息88.【YashanDB知识库】YCM托管YashanDB报错 /home/yashan/.yasboot/.env is not existed89.【YashanDB知识库】使用yasboot查看YashanDB status为unconnected,但是YashanDB运行正常90.【YashanDB知识库】YMP从mysql迁移到崖山,报错:服务器错误91.【YashanDB知识库】使用DBeaver 插入数据 nvarchar字段插入为空92.【YashanDB知识库】崖山BIT类型对MYSQL兼容问题93.【YashanDB知识库】YDC无法通过conn切换用户94.【YashanDB知识库】YMP校验从yashandb同步到oracle的数据时,字段timestamp(0)出现不一致95.【YashanDB知识库】并发update报错YAS-02208 lock conflict in consistent write96.【YashanDB知识库】导入数据时报错:YAS-00008 type convert error:literal does not match format string97.【YashanDB知识库】druid连接池做断网测试,无法自动重新连接98.【YashanDB知识库】Hive 命令工具insert崖山数据库报错99.【YashanDB知识库】load data一次导入多个文件的数据时报错100.【YashanDB知识库】YAS-02143 invalid username/password, login denied
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7610111.html?templateId=1718516
问题现象
用户反馈UNDO表空间持续膨胀,出现UNDO空间不足,需要查明原因并如何做清理。
问题的风险及影响
影响对应功能使用
问题影响的版本
YashanDB版本:23.2及以上所有版本
解决方法及规避方式
在崖山是官网上有对UNDO空间的详细描述,UNDO的基本知识比较齐全,可以查阅 UNDO表空间管理 | YashanDB Doc
这里补齐常见的排查方法和应对措施。
1、核查方法
核查tablespace表空间情况,对应视图dba_tablespace,如果没有dba权限,则查询V$tablespace
表空间有对应的数据文件,对应视图dba_data_files/V$datafile, 重点关注AUTO_EXTEND是否打开为ON,FREE_BLOCKS/BLOCKS的比例
SQL> SELECT * FROM DBA_TABLESPACES dt;
ID TABLESPACE_NAME BLOCK_SIZE MAX_SIZE TOTAL_BYTES USER_BYTES USER_BLOCKS STATUS CONTENTS LOGGING ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT ENCRYPTED COMPRESSED SHARED
------------ ---------------------------------------------------------------- ------------ ----------- ----------- ----------- ----------- ----------------- ----------------- ------------- --------------- ------------------------ --------- ---------- -----------------
0 SYSTEM 8192 5.4976E+11 67108864 26083328 3184 ONLINE PERMANENT LOGGING AUTO BITMAP N N SHARED
1 SYSAUX 8192 5.4976E+11 67108864 38600704 4712 ONLINE PERMANENT LOGGING AUTO BITMAP N N SHARED
2 TEMP 8192 5.4976E+11 67108864 61865984 7552 ONLINE TEMPORARY NOLOGGING UNIFORM BITMAP N N SHARED
3 SWAP 8192 5.4976E+11 67108864 66060288 8064 ONLINE SWAP NOLOGGING UNIFORM BITMAP N N SHARED
4 USERS 8192 5.4976E+11 67108864 66060288 8064 ONLINE PERMANENT LOGGING AUTO BITMAP N N SHARED
5 UNDO 8192 6.8719E+10 469762048 303906816 37098 ONLINE UNDO LOGGING AUTO BITMAP N N SHARED
6 rows fetched.
SQL> SELECT * FROM V$tablespace;
ID NAME STATUS EXTENT_BLOCKS CONTENTS ALLOCATION_TYPE MEMORY_MAPPED ENCRYPTED TEMPORARY COMPRESSED SHARED
------------ ---------------------------------------------------------------- ----------------- ------------- ----------------- --------------- ------------- --------- --------- ---------- -----------------
0 SYSTEM ONLINE 8 PERMANENT AUTO FALSE FALSE FALSE FALSE SHARED
1 SYSAUX ONLINE 8 PERMANENT AUTO FALSE FALSE FALSE FALSE SHARED
2 TEMP ONLINE 8 TEMPORARY UNIFORM FALSE FALSE TRUE FALSE SHARED
3 SWAP ONLINE 8 SWAP UNIFORM FALSE FALSE TRUE FALSE SHARED
4 USERS ONLINE 8 PERMANENT AUTO FALSE FALSE FALSE FALSE SHARED
5 UNDO ONLINE 1 UNDO AUTO FALSE FALSE FALSE FALSE SHARED
6 rows fetched.
SQL> SELECT * FROM V$datafile;
ID NAME CREATION_TIME TS# BLOCKS BLOCK_SIZE BYTES STATUS RELATIVE_FNO AUTO_EXTEND NEXT_SIZE MAX_SIZE FREE_BLOCKS DISK_BYTES SHADOW
------------ ---------------------------------------------------------------- ---------------------------------------------------------------- ------------ ------------ ------------ --------------------- --------- ------------ ----------- --------------------- --------------------- ------------ --------------------- ---------
0 /data/fangjingbian/yasdb_data/db-1-1/dbfiles/system 2024-08-15 04:27:42.148097 0 8192 8192 67108864 ONLINE 0 ON 67108864 549755813888 3184 67108864 FALSE
1 /data/fangjingbian/yasdb_data/db-1-1/dbfiles/sysaux 2024-08-15 04:27:42.720697 1 8192 8192 67108864 ONLINE 0 ON 67108864 549755813888 4712 67108864 FALSE
2 /data/fangjingbian/yasdb_data/db-1-1/dbfiles/temp 2024-08-15 20:19:59.067646 2 8192 8192 67108864 ONLINE 0 ON 67108864 549755813888 7552 67108864 FALSE
3 /data/fangjingbian/yasdb_data/db-1-1/dbfiles/swap 2024-08-15 20:19:59.137679 3 8192 8192 67108864 ONLINE 0 ON 67108864 549755813888 8064 67108864 FALSE
4 /data/fangjingbian/yasdb_data/db-1-1/dbfiles/users 2024-08-15 04:27:44.796951 4 8192 8192 67108864 ONLINE 0 ON 67108864 549755813888 8064 67108864 FALSE
5 /data/fangjingbian/yasdb_data/db-1-1/dbfiles/undo 2024-08-15 04:27:45.022139 5 57344 8192 469762048 ONLINE 0 ON 67108864 68719476736 37098 469762048 FALSE
6 rows fetched.
SQL> SELECT * FROM DBA_DATA_FILES;
FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS MAXBYTES MAXBLOCKS AUTO_EXTEND NEXT_SIZE USER_BYTES USER_BLOCKS
---------------------------------------------------------------- ------------ ---------------------------------------------------------------- --------------------- ------------ --------- --------------------- ----------- ----------- --------------------- --------------------- ------------
/data/fangjingbian/yasdb_data/db-1-1/dbfiles/system 0 SYSTEM 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 26083328 3184
/data/fangjingbian/yasdb_data/db-1-1/dbfiles/sysaux 1 SYSAUX 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 38600704 4712
/data/fangjingbian/yasdb_data/db-1-1/dbfiles/temp 2 TEMP 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 61865984 7552
/data/fangjingbian/yasdb_data/db-1-1/dbfiles/swap 3 SWAP 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 66060288 8064
/data/fangjingbian/yasdb_data/db-1-1/dbfiles/users 4 USERS 67108864 8192 ONLINE 549755813888 67108864 ON 67108864 66060288 8064
/data/fangjingbian/yasdb_data/db-1-1/dbfiles/undo 5 UNDO 469762048 57344 ONLINE 68719476736 8388608 ON 67108864 303906816 37098
6 rows fetched.
SQL>
2、处理方法
1)在磁盘空间足够的情况下,直接加数据文件即可
ALTER TABLESPACE UNDO ADD DATAFILE 'undo02' SIZE 10G AUTOEXTEND ON;
2)空间回收
undo空间不能通过alter tablespace shrink的方法缩小空间,但可以通过配置UNDO_SHRINK_ENABLED、UNDO_SHRINK_INTERVAL实现自动回收,详见 配置参数 | YashanDB Doc
另外,UNDO的事务完成之后,对应的block在经过UNDO_RETENTION设置的时间之后,是可被其他事务复用的,因此,在没有长事务的情况下,可以缩小UNDO_RETENTION的时间,另空间可以快速复用。
3)原因核查
一般情况下UNDO的空间默认是自动扩展的,最大数据文件大小有64GB(和其他数据文件不一样,其他数据文件最大有512GB),是用不完的。
undo的空间不足一般情况下通过上面两种方法可以快速规避,但是还需要定位为什么会占用这么大的UNDO空间。
UNDO是做事务一致性控制必须的,其空间膨胀必然有大事务执行,用户在使用的过程应该尽量避免大事务,例如在loop过程分批提交。
另外,后台任务也可能有事务产生,如定时任务、快照清理。快照如果太大太多,也容易造成大事务占用UNDO空间,需要及时处理,快照可以通过SYSAUX表空间核查。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签