本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7281306.html?templateId=171...
问题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;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。