现在的位置: 首页 > 综合 > 正文

把Oracle的数据导到另一个数据库中,用SQL 2008做ssis,发生错误ORA-01653

2013年10月15日 ⁄ 综合 ⁄ 共 2431字 ⁄ 字号 评论关闭

[SSIS.Pipeline] Information: The buffer manager detected that the system was low on virtual memory, but was unable

to swap out any buffers. 0 buffers were considered and 0 were locked. Either not enough memory is available to the

pipeline because not enough is installed, other processes are using it, or too many buffers are l[OLE DB Destination

[34]] Error: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "input "OLE DB Destination Input" (47)"

failed because error code 0xC020907B occurred, and the error row disposition on "input "OLE DB Destination Input"

(47)" specifies failure on error. An error occurred on the specified object of the specified component.  There may

be error messages posted before this with more information about the failure.
ocked.

[OLE DB Destination [34]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code:

0x80004005.
An OLE DB record is available.  Source: "Microsoft OLE DB Provider for Oracle"  Hresult: 0x80004005  Description:

"ORA-01653: 表STAT.S[OLE DB Destination [34]] Error: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has

occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft OLE DB Provider for Oracle"  Hresult: 0x80004005  Description:

"ORA-01653: 表STAT.STAT_CLIENT_USERRECORD无法通过1024(在表空间STAT中)扩展
".
24(在表空间STAT中)扩展
".

 

解决方法:

     发现是由于Oracle的表空间用完了,导致导入数据失败。

 

 网上解决方法修改Oracle表空间的方法:

 

 

     ----查询表空间使用情况---
使用DBA权限登陆
SELECT UPPER(F.TABLESPACE_NAME) "表空间名",
D.TOT_GROOTTE_MB "表空间大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",
F.TOTAL_BYTES "空闲空间(M)",
F.MAX_BYTES "最大块(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC;
表空间名                       表空间大小(M) 已使用空间(M) 使用比 空闲空间(M) 最大块(M)
------------------------------ ------------- ------------- ------- ----------- ----------
...
CCEN                                      10           8.5   85.00         1.5        .94
...

发现表空间只有1.5M的空闲,猜测可能是表空间自动扩展失败的问题(表空间的增长量太高,ORACLE默认是50%),修改表空间文件扩展方式:

SQL>ALTER DATABASE
    DATAFILE '/u01/oracle/oradata/orcl/ccen01.dbf' AUTOEXTEND
    ON NEXT 50M MAXSIZE UNLIMITED
问题解决.

查看表空间是否具有自动扩展的能力
SELECT T.TABLESPACE_NAME,D.FILE_NAME,
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME,FILE_NAME;

 

【上篇】
【下篇】

抱歉!评论已关闭.