oracle - 在 oracle 12g 中使用 DBMS_DATAPUMP 导入 oracle 转储时出错
问题描述
我一直在尝试将转储文件导入 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
.
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
推荐阅读
- vuejs2 - 使用 Vue 使用 Openlayers 绘制地图时出现问题
- c++ - 四叉树没有正确细分 C++ SFML
- vb.net - 当我输入 Admin:Chu 和 Password:123456 时,从字符串“Chu”到输入“Double”的转换无效。那里发生了什么
- excel - 根据列标题值跨多个工作表删除列
- hugo - 如何在 Hugo 中获取页面资源的完整路径?
- python - 如何使用 PyTesseract 从图像中提取单个字母?
- mysql - MySQL 以一对一关系插入行时出错 - (1452) 无法添加或更新子行:外键约束失败
- python - youtube 视频下载的暂停和恢复功能
- java - 为什么我的 CountDownTimer 似乎在倒退?
- python - Django:获取要在表单中使用的当前 URL 路径