项目需要。需要把dump文件导入oracle数据库中。
遇到许多文章说dump文件导入oracle,实际上却是dmp。还有说用将.dump文件导入oracle的文件,可也还是dmp。我就纳闷了。
本来以为就是一个小时内能解决的问题。结果饶了两个弯路。不过还好最后解决了,五分钟不到就解决了!。
果然会者不难,难者不会。
下面是 我之前安装时候的笔记:
Windows10安装oracle 19c数据库+PLsql详细安装过程
使用plsql导入dump文件。通过工具-导入表-oracle导入。发现dump文件不能导入。能导入的文件有SQL文件、PL/SQL Developer导出文件;
步骤1,在cmd中输入sqlplus,进入数据库。
步骤2,输入用户名和指令;
CREATE BIGFILE tablespace ODSVIEW
logging
datafile 'D:\Oracle\oradata\ORCL\POWER.DBF'
size 8000m
autoextend on
next 50m maxsize UNLIMITED
extent management local;
impdp system/qweasd123 DIRECTORY=dpdata1 DUMPFILE=MP_READ_CURVE_JG1_10.dump REMAP_SCHEMA=SC_DPSH:system
这里的数据文件为’D:\Oracle\oradata\ORCL\POWER.DBF’。是因为我安装的时候数据库安装在’D:\Oracle\oradata’。
这里的DIRECTORY=dpdata1 是目录路径。是我在尝试参考文章二的时候,用下面这行代码设置的。
SQL> create or replace directory dpdata1 as 'C:\MP_READ_CURVE_JG1_10';
目录已创建。
create tablespace 表空间名
datafile ‘物理文件名du.dbf’
size 50m --初始大小
autoextend on --自动扩展
next 50m maxsize 20480m --自动扩展每次增加50M,最大可到20480M
extent management local;
说明:其中表空间名和物理文件名需要用英文,物理文件名如果不想放在默认目录下,可以写成“路径/物理文件名.dbf”的格式,如:“‘e:\oracle\product\10.2.0\oradata\orcl\aa_data.dbf’”
首先明白dump是什么文件,如何打开,如何使用。
参考文章:百度百科——Dump文件
Dump是进程的内存镜像,用来给驱动程序编写人员调试驱动程序,必须使用专用工具软件打开,比如winDbg。
dump还是oracle以及SQL数据库导出的数据文件。可以备份数据,并可以实现后期的导入。
参考文章:什么是 DUMP 文件扩展名?
文件扩展名Dump有四种文件类型,并且与五种不同的软件程序相关联,但主要相关联软件是由Apple开发的macOS。通常这些被格式化为Dump file。大多数Dump文件被视为system files,但它们也可以是data files。
Oracle导入、导出dump文件
由于数据量比较大,被推荐用dump文件代替SQL文件。
导出A服务器表数据为dump文件,通过pl/sql 命令导出。
- Oracle导出:导出.dump文件,可以跨平台,还能包含权限,效率不错,用的很广;
- SQL插入:导出.sql文件,可以用文本编辑器查看,效率不如第一种,大数量时慎用;
- PL/SQL Developer:导出.pde文件,是PL/SQL Developer自有的文件格式,只能通过PL/SQL Developer自己导入导出;
我怀疑这个博主是不是打错字了,把dmp打成了dump。
导入dump文件
打开cmd,输入命令
imp 用户名/密码@服务名 file="dump文件路径" full=y ignore=y; imp LVXIAOBU/123456@orcl file="D:\da_hw_ne.dump" full=y ignore=y;
我参考一下最后说的这个指令。
C:\Users\admin>imp system/qweasd123 file="C:\Users\admin\Desktop\MP_READ_CURVE_JG1_10.dump" full=y ignore=y;
'C:\Users\admin' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\admin>cd C:\Windows\System
C:\Windows\System>imp system/qweasd123 file="C:\Users\admin\Desktop\MP_READ_CURVE_JG1_10.dump" full=y ignore=y;
Import: Release 19.0.0.0.0 - Production on 星期三 8月 12 14:24:24 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
IMP-00010: 不是有效的导出文件, 标头验证失败
IMP-00000: 未成功终止导入
这个和我一开始使用plsql导入时的报错一样。
impdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y
导入Oracle数据.dump文件到本地库
1首先使用pl/sql创建oracle可以识别的目录名
2将.dump文件放入该文件夹下
3安装教程,创建与其对应的表空间;创建临时空间;cmd执行导入语句;
我跳过了创建表空间,然后直接创建临时空间,可能是这个原因,也可能是我那个文件比较特殊。
C:\Users\admin>sqlplus
SQL*Plus: Release 19.0.0.0.0 - Production on 星期三 8月 12 15:22:28 2020
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
请输入用户名: system
输入口令:
上次成功登录时间: 星期三 8月 12 2020 15:14:45 +08:00
连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> create or replace directory dpdata1 as 'C:\MP_READ_CURVE_JG1_10';
目录已创建。
SQL>
create temporary tablespace newtablespace
tempfile 'D:\Oracle\oradata\ORCL\NWETABLESPACE.DBF'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
表空间已创建。
以下的没运行。
create tablespace newtablespace
logging
datafile 'D:\Oracle\oradata\ORCL\NWETABLESPACE.DBF'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
impdp system/qweasd123 directory=dpdata1 dumpfile=MP_READ_CURVE_JG1_10.dump table_exists_action=replace full=y;
CREATE BIGFILE tablespace ODSVIEW
logging
datafile 'D:\Oracle\oradata\ORCL\POWER.DBF'
size 8000m
autoextend on
next 50m maxsize UNLIMITED
extent management local;
impdp system/qweasd123 DIRECTORY=dpdata1 DUMPFILE=MP_READ_CURVE_JG1_10.dump REMAP_SCHEMA=SC_DPSH:system
下载地址
我的dump文件有60G,所以windbg直接卡爆。
因为组里大佬成功了,所有我也成功了。
第二篇文章有一定的参考价值。
论大腿的重要性。