导入.dump文件到Oracle 19c的操作步骤

导入.dump文件到Oracle 19c

前言

项目需要。需要把dump文件导入oracle数据库中。

遇到许多文章说dump文件导入oracle,实际上却是dmp。还有说用将.dump文件导入oracle的文件,可也还是dmp。我就纳闷了。

本来以为就是一个小时内能解决的问题。结果饶了两个弯路。不过还好最后解决了,五分钟不到就解决了!

果然会者不难,难者不会。

下面是 我之前安装时候的笔记:

Windows10安装oracle 19c数据库+PLsql详细安装过程

问题现状

使用plsql导入dump文件。通过工具-导入表-oracle导入。发现dump文件不能导入。能导入的文件有SQL文件、PL/SQL Developer导出文件;

步骤

第一步,创建bigfile tablespace

步骤1,在cmd中输入sqlplus,进入数据库。

步骤2,输入用户名和指令;

步骤3,创建bigfile tablespace;
在这里插入图片描述

第二步,在cmd中输入导入指令

在这里插入图片描述

成功

在这里插入图片描述

附录:指令文本

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文件

Dump是进程的内存镜像,用来给驱动程序编写人员调试驱动程序,必须使用专用工具软件打开,比如winDbg。

dump还是oracle以及SQL数据库导出的数据文件。可以备份数据,并可以实现后期的导入。

参考文章:什么是 DUMP 文件扩展名?

文件扩展名Dump有四种文件类型,并且与五种不同的软件程序相关联,但主要相关联软件是由Apple开发的macOS。通常这些被格式化为Dump file。大多数Dump文件被视为system files,但它们也可以是data files。

oracle导入dump文件的文章

参考文章一:imp失败

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 星期三 812 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

参考文章二:impdp失败

导入Oracle数据.dump文件到本地库

1首先使用pl/sql创建oracle可以识别的目录名

2将.dump文件放入该文件夹下

3安装教程,创建与其对应的表空间;创建临时空间;cmd执行导入语句;

我跳过了创建表空间,然后直接创建临时空间,可能是这个原因,也可能是我那个文件比较特殊。

C:\Users\admin>sqlplus

SQL*Plus: Release 19.0.0.0.0 - Production on 星期三 812 15:22:28 2020
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

请输入用户名:  system
输入口令:
上次成功登录时间: 星期三 812 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

使用windbag打开dump文件:失败

下载地址

我的dump文件有60G,所以windbg直接卡爆。

问题解决的原因

因为组里大佬成功了,所有我也成功了。

第二篇文章有一定的参考价值。

总结

论大腿的重要性。

猜你喜欢

转载自blog.csdn.net/weixin_42875245/article/details/107964972