1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > ★Oracle imp/impdp 导入dmp文件到数据库

★Oracle imp/impdp 导入dmp文件到数据库

时间:2019-12-18 03:01:59

相关推荐

★Oracle imp/impdp 导入dmp文件到数据库

使用EXPDP和IMPDP时应该注意的事项:

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

注意:EXP不会导出空表(可能会对存储过程有影响)

1.exp/imp导出/导入数据

--exp导出数据exp CCENSE/CCENSE@OracleDB file=D:\DBBackUp\oracleExp.dmp log=D:\DBBackUp\oracleExp1103.log--imp导入数据imp CCENSE/CCENSE@OracleDB file=D:\DBBackUp\oracleExp.dmp log=D:\DBBackUp\oracleImp1103.log FULL=y;/* 说明:CCENSE/CCENSE@OracleDB --->用户名/密码@数据库实例file="本地路径+需要导入/导出的dmp文件全称"log="日志文件"FULL=y;*/

--给当前用户追加connect,resource,dba [非必须] grant connect,resource,dba to CCENSE;

数据导出:将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中exp system/manager@TEST file=d:\daochu.dmp full=y将数据库中system用户与sys用户的表导出exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)将数据库中的表table1 、table2导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 将数据库中的表table1中的字段filed1以"00"打头的数据导出exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面 加上 compress=y 就可以了 数据的导入将D:\daochu.dmp 中的数据导入 TEST数据库中。imp system/manager@TEST file=d:\daochu.dmp上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上 ignore=y 就可以了。将d:\daochu.dmp中的表table1 导入imp system/manager@TEST file=d:\daochu.dmp tables=(table1)

2.expdp/impdp导出/导入数据

使用impdp命令,需要在oracle数据库服务器操作:

使用sqlplus或者Oracle客户端(PL/SQL) 链接到相应的Oracle数据库实例(进行下面第一,第二两步骤的操作)

一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。

create directory dpdata1 as 'd:\test\dump';(查看服务器上若没有存在d:\test\dump目录,则手动新建,把dmp备份文件放到d:\test\dump目录下面)

二、查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存在,则出错)

select * from dba_directories;

3.导入数据库

--expdp导出数据expdp CCENSE/CCENSE@OracleDB directory = "dpdata1" dumpfile ="oracleExpdp.dmp" logfile = oracleExpdp1103.log--impdp导入数据impdp CCENSE/CCENSE@OracleDB directory="dpdata1" dumpfile="oracleExpdp.dmp" logfile = oracleImpdp1103.log FULL=y;/* 说明:CCENSE/CCENSE@OracleDB --->用户名/密码@数据库实例directory="在步骤一中创建的逻辑目录"dumpfile="需要导入/导出的dmp文件全称"logfile="日志文件"FULL=y;*/

--其他SQL--表空间[10G]和临时表空间[1G]/*表空间*/SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_name GROUP BY t.tablespace_name;/*临时表空间*/select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;-- 查看端口是否被占用netstat -aon|findstr "1522"-- 查看监听状态,启动监听,关闭监听lsnrctl status LISTENER2lsnrctl start LISTENER2 lsnrctl stop LISTENER2--访问地址linux sqlplus ccense/ccense@//localhost:1521/OracleDB;win sqlplus ccense/ccense@IP:1521/OracleDB;

imp 只导入数据,不导入表结构,在命令里加上ignore=y就可以了

ignore=y相当于,如果没有的表,创建并倒入数据,如果已经有的表,忽略创建的,但不忽略倒入。

在使用IMP导入并使用ignore=y参数时,Oracle根本不检查要导入的数据结构和现存在数据库中表的结构是否相同

exp 命令导出表结构,不导出表数据。只需在命令行里加一个参数rows=n即可。表示不导出表数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。