写点什么

【YashanDB 知识库】Yasldr 错误处理

作者:YashanDB
  • 2025-01-23
    广东
  • 本文字数:1442 字

    阅读完需:约 5 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7281306.html?templateId=1718516


问题 1. YAS-04113 bracket expected [YASLDR] execute failed**


原因:


导入数据的用户没有 dba 权限


解决法:


为导入数据的用户赋 dba 权限:grant dba to username;


问题****2. YAS-00218 string conversion failed


原因:


1、字符集存在不一致(操作系统字符集,源库字符集,目标库字符集)


2、源库导出的数据和 YashanDB 的表结构不一致


解决法:


1、检查操作系统字符集,源库字符集与目标库的字符集是否一致


--查询操作系统字符集


locale


--查询 YashanDB 数据库字符集


select * from V$parameter where name='CHARACTER_SET';


--查询 Oralce 数据库字符集


select * from nls_database_parameters where parameter like '%NLS_CHARACTERSET%';


2、检查源库和 YashanDB 的表结构是否一致,不一致则修改表结构


问题****3. Fail to connect socket, error 111, error message “Connection refused”


原因:


1、查看数据库是否启动,状态是否正常


2、在主备部署环境下,可能出现归档日志满的情况,当系统硬盘被占满后,会出现数据库异常


解决法:


1、在 linux 操作系统检查 yasdb 进程是否存在


ps -ef | grep yasdb


--如果不存在则用以下命令启动数据库


yasboot cluster start -c yashandb;


2、需要修改 log 的删除模式参数,手动清除归档日志


● 归档日志查看:select * from v$archived_log;


● 更改归档模式清理策略:alter system set ARCH_CLEAN_IGNORE_MODE=both


● 手动清理归档:


--删除所有归档日志


ALTER DATABASE DELETE ARCHIVELOG ALL;


--删除包括 2022-01-06 11:30:00 之前的归档日志


ALTER DATABASE DELETE ARCHIVELOG until TIME TO_DATE('2022-01-06 11:30:00', 'yyyy-mmdd hh24:mi:ss');


--删除序列号包括 71 号之前的归档日志


ALTER DATABASE DELETE ARCHIVELOG until SEQUENCE 71;


问题****4. YAS-08019 partition key does not map to any partition


原因:


Oracle 导出的分区表数据和 yasdb 表结构不⼀致


解决案:


需要重新获取 Oracle 的对应表结构,在 yasdb 中重新建表


问题****5. YAS-02007 no free extent in tablespace TEST


原因:


1、表空间不足,为表空间添加数据文件


2、也可能是在导入过程中大表存在大量索引分裂,将表空间占满


解决案:


1、为表空间添加数据文件:


alter tablespace test add datafile '.../.../data/db-1-1/dbfiles/TEST6' size 1g autoextend on;


2、在建表完成后,将索引 drop 掉,待数据都导入完成后,再单独建索引


**问题 6. LOB件导⼊:**YAS-04892:csv line terminates expect embedded


原因:


数据中存在换行符,yasldr 默认不将换行符作为数据包含进包围符内


解决:


在 ctl 文件中,field 前面加入 WITHEMBEDDED


问题 7. LOB 件导**:**YAS-00301:file operation "write file" failed. errno 28. error message"No space left on device"


原因:


表空间剩余空间不够


解决:


为对应的表空间添加数据文件


查看表空间剩余空间大小:


"SELECT id, tablespace_name, status, block_size, total_bytes/1024/1024 as "TOTAL_SIZE(MB)",


CAST((total_bytes-user_bytes)/1024/1024 AS decimal(15,2)) as "USED(MB)",


CAST(user_bytes/1024/1024 AS decimal(15,2)) as "AVAILABLE(MB)",


CAST(user_bytes/total_bytes*100 AS decimal(5,2)) AS FREE_PERCENT FROM dba_tablespaces


LIMIT ${ROWSRETUEN}"


为表空间添加数据文件:


alter tablespace test add datafile '.../.../data/db-1-1/dbfiles/TEST6' size 1g autoextend on;

发布于: 刚刚阅读数: 2
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】Yasldr错误处理_数据库_YashanDB_InfoQ写作社区