dmp文件是什么 oracle - CSDN
精华内容
参与话题
  • Oracle 导入数据库dmp文件的几种方式

    千次阅读 2018-10-09 15:36:08
    使用cmd命令进行导入 进入cmd直接输入命令 imp 用户名/密码@监听器路径/数据库实例名称 file='d:\数据库文件.dmp' full=y ignore=y 1 例如: ...imp mislogin/mislogin@localhost/...使用Oracle的bin目录imp.exe导...

    使用cmd命令进行导入

    进入cmd直接输入命令

    imp 用户名/密码@监听器路径/数据库实例名称 file='d:\数据库文件.dmp' full=y ignore=y
    
    • 1

    例如:

    imp mislogin/mislogin@localhost/JFJOA file="d:\data.dmp" full=y ignore=y 
    
    • 1

    导入数据库

    使用Oracle的bin目录imp.exe导入

    打开Oracle主目录
    E:\app\shaoduo\product\11.2.0\dbhome_1\BIN
    找到impdb.exe 进行导入
    使用管理员身份运行。输入密码,输入密码 再输入dmp 的路径, 后边会出现 什么 yes 什么 no的 看情况输入回车就可以了。

    使用PL/SQL 的tools工具进行导入

    这里写图片描述
    这里写图片描述

    import即可

    --------------------- 本文来自 shaoduo 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/shaoduo/article/details/70942016?utm_source=copy

    展开全文
  • Oracle dmp文件结构探秘

    千次阅读 2020-08-21 16:10:12
    前几天接手了一个解析oracle dmp文件的任务(目前我已离职)。oracledmp文件实际上是一堆16进制的代码,它用于oracle数据库的导入和导出。我们的需求是找出其中的规律,并抓取出其中的建表语句和insert语句。目前...

    前几天接手了一个解析oracle dmp文件的任务(目前我已离职)。oracle的dmp文件实际上是一堆16进制的代码,它用于oracle数据库的导入和导出。我们的需求是找出其中的规律,并抓取出其中的建表语句和insert语句。目前该解析器初步实现,11g下能跑出结果。下面就来揭示出oracle dmp文件结构的一些秘密吧。

    上图所示的便是oracle dmp文件的部分内容(需要说明的一点是,我是用Nodepad++打开的文件,但是默认情况下其打开是一堆乱码,需要下载其十六进制编辑器插件,在Nodepad++中是HEX-Editor),最左边一列是地址指针,之后的列便是其具体的内容。其中两个十六进制数是一对,表示一个字节。可以看出,不管是地址指针还是数据都是用十六进制表示的。

    其文件表结构大致如下所示:

    由上可知,红色的部分便是我们需要的数据,剩下的无用数据并不是真的无用数据,只是对于我们而言是不关心的数据而已。其中包括一些表的元数据、索引的建立等等。有一点需要说明的是,除了文件头部的固定头之外,上述图演示的是一张表的结构示意图。如果一个oracle dmp文件有多张表,则会有多个上述图所演示的表结构片段(不包括固定头)。这点需要留意。

    该解析器是使用RandomAccessFile来进行读取的,其中的readLine方法并不是每次读取一行数据,而是以“0a”作为分隔,每次读出两个“0a”之间的内容。这点需要特别留意。首先需要跳过一个0x90 * 0x10 + 0xD的固定头,来到下一个“0a”处。跳过之后来到下图红框之后的位置处:

    此时调用三次readLine方法分别获得表声明表创建insert批处理语句(从最后面的描述列也可以略知一二)。接下来就是拼接具体的insert语句了。抓到真实的数据字段,和insert批处理语句进行拼接即可。在我们调用了三次readLine方法后,当前指针来到了下面红框的位置:

    之后我们需要找到“00 00 00 00 00”,五个“00”这样结构的位置处,在其之后便是真实的数据字段位置了。在上图中便是蓝框框中的内容处。之后我们读两个字节,这里是“24 00”,该数据表示之后插入数据的字节数比如说“24 00”换成十进制是36(经过实测,“00 24”和“24 00”都代表十进制的36,这里需要进一步分析总结),表示之后插入数据是36个字节,如上面所示便是向后数的36个字节。之后继续读两个字节,也就是“10 00”,十进制是16,之后读取16个字节…以此类推。

    那么什么时候是一行数据读取完呢?当我们遇到两个“00”也就是“00 00”的时候,代表着一行数据的结束。上述所说过程如下图所示,其中红框是此时需要插入值的前后校验位、黄框是插入的真实数据、蓝框框中的便是一行结束的位置:

    之后便开始了下一行数据的解析,和之前的过程一样,这里不再赘述。那么什么时候是一张表的所有插入语句都结束的位置呢?当遇到“00 00 ff ff 0a”这样的结构时,则代表当前表的插入过程都结束了。如下所示:

    另外需要说明的一点是当我们在“00 00”后读到的下一字节是“fe”时,代表该位置是一个空字段。这点需要留意。

    此时我们有了insert的批处理语句,也有了真实的插入数据的语句。就可以将这两者结合,拼接出真正的insert语句了。比如说我们有了批处理语句:“INSERT INTO "TABLE1" ("A", "B")  VALUES (:1, :2)”和对应的两行真实数据:“'q1'、'q2'”和“'q3'、'q4'”,我们就可以使用正则来将这二者拼接,得到两条insert语句:“INSERT INTO "TABLE1" ("A", "B")  VALUES ('q1', 'q2')”和“INSERT INTO "TABLE1" ("A", "B")  VALUES ('q3', 'q4')”。

    至此,我们完成了一张表的解析工作。接下来,继续去寻找下一次表的创建语句、批处理语句和真实数据语句。不断读取数据,找出第一句是“TABLE”开头和第二句是“CREATE TABLE”开头的语句。如果有这样的结构,则表示下一张表的解析工作就此开始。之后的解析过程和上述所说的内容一样,这里也不再做讲解了。

    那么,什么时候才是一个dmp文件真正解析结束呢?请看下图:

    当我们不断readLine时读取出的字符串是“EXIT”时,此时代表着文件解析的结束。

    至此,一张oracle dmp文件解析的全过程就完成了。但是需要注意的是,上述我所说的文件结构只是最一般的情况,有时也会有特例出现。比如:一张表插入真实数据的结束不仅可以用“00 00 ff ff 0a”来表示,也可以用“00 00 3F 3F 0A”来表示;有时候明明两个字符的校验位是“0c 00”,也就是十进制的12,表示后面的12个字节是一个数据段,但通过查看发现,后面的24个字段其实是作为一个整体的(我感觉是跟中文的编码集有关,一个中文对应两个字节,但有些中文却不是这样的规则。待考证)。同时,对于Blob、Clob字段的解析,我们暂时是没有实现的。有兴趣的同学可以查看,Blob和Clob字段首先会跟着一堆的“00”,且个数不固定,然后是跟着一些十六进制数。这跟我们现有的解析规则发生了冲突(看来Oracle对于Blob和Clob字段有着特殊的处理)。尽管如此,上述的解析过程也可以让我们对oracle的dmp文件有了一个初步的认识。下面是我解析出上面这个oracle dmp文件结果的部分截图,感兴趣的同学可以自行尝试实现一下:

    GitHub源码:https://github.com/MonkeyOneCool/OracleDmpParser

    展开全文
  • 一个菜鸟的oracle导入dmp文件过程

    千次阅读 2017-08-05 16:28:43
    首先我对oracle数据库不太了解,结果领导叫我导入dmp文件,网上找了半天资料终于导进去了,过程如下: 1、首先oracle版本是11G,登录服务器发现不知道用户名和密码,用默认的用户名:sys和密码sysdba登陆,然后创建...

    首先我对oracle数据库不太了解,结果领导叫我导入dmp文件,网上找了半天资料终于导进去了,过程如下:

    1、首先oracle版本是11G,登录服务器发现不知道用户名和密码,用默认的用户名:sys和密码sysdba登陆,然后创建新用户

    create user dmp的用户名  identified by 密码;

    创建成功以后就给该用户授权

    grant connect, resource,dba to   刚才创建的用户名;

    然后用cmd打开命令提示符

    输入imp          刚才创建的用户名/密码@实例名      file=dmp文件路径      full=y;

    然后就可以看到提示正在导入文件,


    用PL/sql连接数据库的时候一定要记得,在工具首选项地址里面填写oracle的tnsname文件夹的路径


    解决pl/sql中文乱码的方法:

    1、用命令select * from v$nls_parameters;查看数据库的编码是什么,如下图:


    发现编码不对。然后需要添加环境变量

    解决办法:重新设置本地客户端的编码:
     进入 我的电脑-->属性-->高级-->环境变量,添加2项:
     1.LANG=zh_CN.GBK
     2.NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

    或者

    在windows中创建一个名为“NLS_LANG”的系统环境变量,设置其值为“SIMPLIFIED CHINESE_CHINA.ZHS16GBK”,然后重新启动 pl/sql developer,这样检索出来的中文内容就不会是乱码了。


    如果用pl/sql在本地无法连接oracle数据库提示ora-12170连接超时,首先登录服务器查看数据库监听是否正常,如果监听正常在服务器端用pl/sql看看连接数据库是否正常,如果服务器端正常的话。这个时候你要看看自己本地计算机是否开启了防火墙,把本地防火墙关闭了,然后再服务器端的防火墙上添加入站规则端口1521试试


    展开全文
  • 如何打开Oracledmp文件

    万次阅读 2010-09-28 23:52:00
    在工作中经常使用到别人...   1、如果dmp文件比较小,用文本编辑器打开就可以了。   2、如果dmp特别大,可以通过toad工具打开。在database/export/exert file browse浏览要打开的dmp即可。

    在工作中经常使用到别人提供过来的dmp文件,由于不知道备份时所用的用户名,这样就不能恢复。

    通过打开DMP文件可以查看到备份时使用的用户名。

     

    1、如果dmp文件比较小,用文本编辑器打开就可以了。

     

    2、如果dmp特别大,可以通过toad工具打开。在database/export/exert file browse浏览要打开的dmp即可。

    展开全文
  • linux下 oracle怎么导入dmp文件

    万次阅读 2018-03-31 21:37:35
    先创建数据库用户:create user XXX identified by xxx default tablespace ...数据库:用户名:XXXX密码:XXXX服务器连接地址和SID:10.XX.XX.XXX:1521/orcl1、给dmp文件加权限chmod 777 /home/userct/oss-shan...
  • 首先可以通过 –help命令查看命令行语句的关键字信息: 如以下的exp -help(下图仅显示本命令部分信息) ...在导出的目录中可以看到导出的dmp文件以及对应的日志: 导入: imp 用户名/密码@实例名...
  • linux下 oracle怎么导出dmp文件

    万次阅读 2018-03-31 21:42:32
    dmp文件oracle的逻辑备份文件,常用于数据库逻辑备份,数据库迁移等操作。1、先给导出的路径 赋予权限:chmod 777 /home/userct/oss-shanxi2、切换用户su oracle3、连接数据库并导出exp 用户名/密码@orcl file=/...
  • 如何将dmp文件导入到自己的oracle数据库中

    万次阅读 多人点赞 2016-12-16 17:26:20
    1、首先,我们可以先建立自己的一个用户表...datafile 'D:\oracle\product\10.2.0\userdata\test.dbf' (这边可以写成oracle的某个路径下) size 50m (初始大小) autoextend on;(自动扩展) 2、接下来,我们
  • 以orcl实例为例子:在此实例下频繁的删除更新数据库. 1 打开cmd窗口   2 命令sqlplus 3 输入用户名: conn / as sysdba 密码:***** 4 如果有orcl那么删除 ...create user orcl identified by orcl account...
  • linux 下oracle导入dmp文件

    万次阅读 2017-08-02 08:46:25
    linux 导dmp文件oracle
  • 更改由oracle导入的dmp文件的版本

    千次阅读 2015-02-13 12:29:09
    今天客户给了我一个从oracle11g数据库里面导出的一张表数据文件给我,文件的后缀是dmp文件,我把dmp文件导入我们的业务数据库中报错,后来网上一查是因为oracle数据库版本不一致的原因造成的,我们的业务数据库版本...
  • oracle之cmd导入dmp文件

    万次阅读 2016-06-07 19:56:59
    打开cmd窗口,执行以下格式命令: imp 用户名/密码@服务器IP:端口/服务名 file=dmp文件路径 full=y 例子,这是我的: imp ZXXT/ZXXT@192.168.20.212:1521/orcl file=E:\运政执法数据\yz\yzdata.dmp full=y
  • 有一个从oracle导出的dmp文件,需要导出.csv或者.sql再导入mysql,请问该怎么办,从来没用过oracle,装了个11g之后连服务都起不来。。
  • step1、首先知道你要导入数据库中的DMP文件(例如aa.dmp)是那个版本导出的(导出导入的版本要一致,当然11g的文件可以导出10g的DMP文件)。 step2、在sqlplus命令框中用sysdba管理员登录,connect sys/password as...
  • Oracledmp文件的导入

    千次阅读 2019-09-10 16:47:45
    2,在导入dmp文件的时候,也是利用navicat,显示没有systemdba权限 3,先创建新用户赋予systemdba权限,但是有显示insufficient privileges(权限不足) 4,放弃navicat 利用mysql service 在控制台进行操作cmd 5...
  • oracle11g导入dmp文件(根据用户)

    千次阅读 2018-04-04 09:13:48
    需求:将该dmp文件导入本地oracle11g中。 步骤:  1、将该dmp文件拷贝到G:\oracle11g\admin\orcl\dpdump目录下;(这里是我自己的oracle11g安装目录G:\oracle11g)  2、cmd打开dos窗口;  3、键入命令:impdp...
  • 1.先去新建oracle用户,记得分配权限(dba.resource,contect) 下面为新建的数据库用户:   2.接下来就是导数据。从zsj系统中用到的用户到检测认证的用户中。登录数据库服务器(linux) 但是oracle用户没有ssh登
  • Oracle数据库使用DMP文件恢复数据

    万次阅读 2016-10-07 09:43:37
    1、创建还原所用的dmp所在的文件夹 create directory 文件夹名 as '/dir' create directory backup as 'backup'; 2、创建表空间 create tablespace 空间名 datafile '.dbf'size 500M autoextend on maxsize ...
  • oracle数据库导入、导出dmp文件

    万次阅读 2017-10-24 14:19:43
    今天碰到一个问题,需要在另外一台机器(经过核实,本机器上已经安装过oracle数据库)上导入oracle的后缀名是DMP的数据文件,但是不知道机器上oracle的相关用户的用户名和密码,(还好经过尝试sysdba的用户名密码没有被...
  • 1、Oracle12c导出dmp文件 2、直接导入Oracle10g提示如下错误 3、使用notepad工具打开Oracle10g导出的dmp文件版本号 4、使用AlxcTools.exe工具修改dmp文件版本号 5、再次进行导入到Oracle10gm,成功...
1 2 3 4 5 ... 20
收藏数 25,367
精华内容 10,146
热门标签
关键字:

dmp文件是什么 oracle