oracle数据泵导库相关笔记
一、导出笔记 1.用sysdba用户登录数据库 2.和exp和imp相比,需要创建directory目录,导出文件和导入文件都放在这个目录里,先在实体盘符e盘下创建ys文件夹先 创建语句为:create or replace directory ys as 'E:ys'; 查询所有目录:select * from dba_directories; 默认会有个data_pump_dir目录,是在oracle安装目录下, 3.管理员权限进入cmd命令窗口 4.输入导出命令:expdp JOBA/JOBA@orcl directory=ys dumpfile=JOBA_20170728.dmp schemas=JOBA logfile=JOBA_20170728.log content=metadata_only version=10.2.0.1.0 解析:JOBA/JOBA@orcl:为导出数据库的用户名密码及数据库, directory=ys :指定目录,这个目录一定要先创建实体目录,再在数据库里执行创建语句,否则数据库提示创建成功,导出还是会有问题 dumpfile=JOBA_20170728.dmp : 导出的文件名,可以自己写 schemas=JOBA :指定对象为JOBA,不指定则为全部,这里指定了,才能在导入时使用remap_schemas属性,否则会导入不成功 logfile=JOBA_20170728.log : 导出的日志文件,可以自己写 content=metadata_only : content有【metadata_only】-- 只导出对象定义,元数据;【data_only】-- 只导出数据;【all】全部导出,不写该属性也是全导入 version=10.2.0.1.0 :高版本往低版本导入是需要加,但在后面实验中,发现并没有什么卵用,还是导入失败 二、导入笔记 1.创建表空间 创建语句为: create tablespace TS_JOBB datafile 'E:ORACLEPRODUCT10.2.0ORADATAORCLTS_MOU.DBF' size 50m autoextend on next 50m maxsize 20480m extent management local; 删除语句为:drop tablespace TS_JOBB including contents and datafiles; 2.创建用户,分配表空间 创建语句:create user JOBB identified by "JOBB" default tablespace TS_JOBB; 也可以分开,先创建用户,再分配表空间:create user JOBB identified by "JOBB"; alter user JOBB default tablespace TS_JOBB; 3.给用户授权 授权语句: grant create session to JOBB; //数据库链接权限 grant read,write on directory ys to JOBA; //这是赋予目录的读写权限,如果没有赋这个权限,会导致导入时报错为,找不到目录 4.管理员权限登陆cmd 5.执行导入命令:impdp JOBB/JOBB@192.168.0.123/ORCL directory=ys dumpfile=JOBB_20170728.DMP logfile=JOBB_20170728.log remap_schema=JOBA:JOBB remap_tablespace=TS_JOBA:TS_JOBB table_exists_action=replace version=10.2.0.1.0
PS:只有在导出时指定schemas,才能在导入时用remap_schemas属性,否则会报ORA-39165:未找到方案; 跨版本导入只能导最简单的数据和表,带分区的表只要是10g不支持的分区方式,都导入报错,11g支持的grant alter database link,在10g里也不支持, 所以本次导入数据以失败告终,仅此笔记 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |