[英]Error while importing oracle dump using DBMS_DATAPUMP in oracle 12g
我一直试图将转储文件导入AWS的RDS下的Oracle 12g中,并且一直都在错误以下,我无法弄清发生了什么。 任何帮助或指针,我们将不胜感激。
这是我想要做的。
1)我从客户那里获得了一个.dat
转储文件(不确定他们是如何从oracle导出此转储的),我的目标是将其导入到AWS oracle RDS实例。
2)按照如何将Oracle转储文件传输到AWS RDS实例?
我创建了新的EC2实例并安装了Oracle Express版本,然后将.dat文件复制到DATA_PUMP_DIR目录( /u01/app/oracle/admin/XE/dpdump/
)。
3)创建到AWS oracle RDS实例的数据库链接,并能够使用DBMS_FILE_TRANSFER.PUT_FILE
将其复制到rds实例。
4)我可以在oracle rds实例的DATA_PUMP_DIR路径下看到该文件。
到现在为止还挺好。
5)现在,我正在尝试使用以下过程将转储文件导入RDS
DECLARE
hdnl NUMBER;
BEGIN
hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name => null);
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample.dat', directory => 'DATA_PUMP_DIR');
DBMS_DATAPUMP.START_JOB(hdnl);
END;
/
我一直都低于错误
DECLARE
*
ERROR at line 1:
ORA-39001: invalid argument value
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4087
ORA-06512: at "SYS.DBMS_DATAPUMP", line 4338
ORA-06512: at line 5
我知道该错误指向DBMS_DATAPUMP.ADD_FILE()
但我无法确定这里出了什么问题。
我尝试了各种导入选项,但没有一个帮助。 我已经创建了表空间,并且还确保用户具有正确的权限。
任何指针,不胜感激。
1)使用Amazon RDS主用户帐户连接到RDS实例。
2)运行此pl / sql块
DECLARE
hdnl NUMBER;
BEGIN
hdnl := DBMS_DATAPUMP.OPEN( operation => 'IMPORT', job_mode => 'SCHEMA', job_name=>null);
DBMS_DATAPUMP.ADD_FILE( handle => hdnl, filename => 'sample_copied.dmp', directory => 'DATA_PUMP_DIR', filetype => dbms_datapump.ku$_file_type_dump_file);
DBMS_DATAPUMP.METADATA_FILTER(hdnl,'SCHEMA_EXPR','IN (''SCHEMA_NAME'')');
DBMS_DATAPUMP.START_JOB(hdnl);
END;
/
3)您可以开始从任何oracle客户端导入。 例如,实例EC2。
impdp RDS_master_user/password@rds_instance DUMPFILE=sample.dmp DIRECTORY=DATA_PUMP_DIR parfile=import_parfile
import_parfile
SCHEMAS =SCHEMA_NAME
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.