C:\Users\bim>impdp nskftest/kingdee@dms directory=db_bak dumpfile=weiyan170424.dmp logfile=testimpdp.log
Import: Release 11.2.0.4.0 - Production on 星期五 8月 4 15:19:40 2017
Copyright (c) 1982,2011,Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Produc
tion
With the Partitioning,OLAP,Data Mining and Real Application Testing options
ORA-39006: 内部错误
ORA-39213: 元数据处理不可用
sql> execute sys.dbms_Metadata_util.load_stylesheets;
BEGIN sys.dbms_Metadata_util.load_stylesheets; END;
*
第 1 行出现错误:
ORA-01157: 无法标识/锁定数据文件 201 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 201: 'H:\APP\ADMINISTRATOR\ORADATA\DMS\TEMP01.DBF'
ORA-06512: 在 "SYS.DBMS_MetaDATA_UTIL",line 2526
ORA-06512: 在 line 1
sql> alter database datafile 'H:\APP\ADMINISTRATOR\ORADATA\DMS\TEMP01.DBF' offline drop;
alter database datafile 'H:\APP\ADMINISTRATOR\ORADATA\DMS\TEMP01.DBF' offline drop
*
第 1 行出现错误:
ORA-01516: 不存在的日志文件,数据文件或临时文件
"H:\APP\ADMINISTRATOR\ORADATA\DMS\TEMP01.DBF"
sql> alter database tempfile 'H:\APP\ADMINISTRATOR\ORADATA\DMS\TEMP01.DBF' dropincluding datafiles;
数据库已更改。
sql> alter tablespace temp add tempfile 'D:\APP\ADMINISTRATOR\ORADATA\DMS\TEST02.DBF' size 100M autoextend on;
表空间已更改。
sql> exec dbms_Metadata_util.load_stylesheets;
PL/sql 过程已成功完成。
Import: Release 11.2.0.4.0 - Production on 星期一 8月 7 09:50:18 2017
Copyright (c) 1982,Oracle and/or its affiliates. All rights reserved.
;;;
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning,Data Mining and Real Application Testing options
ORA-39014: 一个或多个 worker 进程已过早地退出。
ORA-39029: worker 进程 1 (进程名为 "DW00") 过早地终止
ORA-31671: Worker 进程 DW00 有未处理的异常错误。
ORA-04063: package body "SYS.KUPW$WORKER" 有错误
ORA-06508: PL/sql: 无法找到正在调用 : "SYS.KUPW$WORKER" 的程序单元
ORA-06512: 在 line 2
解决方法:
1、首先尝试去编译这个包:
sql> alterpackageSYS.DBMS_MetaDATA compilepackage;
sql> alterpackageSYS.DBMS_MetaDATA compilebody;
2、如果上述报错,尝试下面的方法:
sql> shutdown immediate;
sql> startup upgrade;
sql> @$ORACLE_HOME/rdbms/admin/catalog.sql;//执行这个脚本后,创建数据库的统计视图,审计视图
sql> @$ORACLE_HOME/rdbms/admin/catproc.sql;//数据库具有pl/sql的使用功能
sql> @$ORACLE_HOME/rdbms/admin/utlrp.sql;//编译数据库中的失效对象utlrp.sql
sql> shutdown immediate;
sql> startup;
再执行导出语句。
ORA-01119:创建数据库文件'D:\oracle\sonar.dbf'时出错
ORA27038所创建的文件已存在
OSD04010指定了<create>选项,但文件已经存在
drop tablespace sonar including contents and datafiles;
今天要把测试库schema用expdp倒进生产数据库中,本来非常简单的几个步骤,遇到了大量的 ora-39112: dependent object type comment skipped 这个错误。
网上查了查,导致这个问题的情况大致有一下几个情况,
1,在原来测试库中,目标schema和别的用户相互授权了,可是你导出的dmp中没有包含所有的用户,导入时对应用户没有创建。
2,再就是,表空间问题,测试库中的用户下的某个表的索引没有在他的默认表空间里,这样你要在目标端(这里就是生产环境),创建好对应的表空间,
就是说如果你在测试库把a用户的下的某个表的权限授给了b,那么你在把a用户用数据泵倒进生产库时,他会在生产库中检测有没有用户b。也要做相同的操作。
仔细一想还真是这样的情况。
解决办法:
使用impdp工具完成数据导入时,会按照dump文件中有关的存储的参数信息完成数据的导入。很多情况下我们希望按照被导入用户的默认参数完成数据的导入,
此时我们可以使用impdp的transform参数辅助完成
impdp system/Oracle directory=mydump dumpfile=newllmj.dmpremap_tablespace=llmj_db:gold_mj_tab remap_schema=newllmj:gold_mjschemas=newllmj table_exists_action=replacetransform=segment_attributes:n remap_tablespace=llmj_db:gold_mj_tab 原来表空间:新的表空间 remap_schema=newllmj:gold_mj 原来的schema:现在的schema transform=segment_attributes:n 去掉表空间和存储子句,加上这个参数后,remap_tablesapce参数就会失效,就会倒进用户默认的表空间, 导入语句改成上面的,然后执行就成功了,没有报错。