一、导出笔记
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:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TS_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 all privileges 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里也不支持,
所以本次导入数据以失败告终,仅此笔记
原文链接:https://www.f2er.com/oracle/208315.html