1.打开数据库驱动
sqlplus/nolog (此处切记不能有分号)
2.以管理员权限登录
conn / as sysdba;
3.创建新用户
create user TELEMT identified by TELEMT;
4.给用户授权
grant resource,connect,dba to TELEMT;
5.创建数据表空间
create tablespace TELEMT datafile ‘D:apporadataTELEMT.dbf’ size 5120M autoextend on next 100M;
6.赋予用户表空间
alter user TELEMT default tablespace TELEMT;
7.将数据导入到oracle
在导入之前将dmp文件放入oracle安装目录下的 appADMINadminorcldpdump文件夹中
或者在我的电脑里面,建立文件夹f: empdump,把TELEMT.DMP拷贝进该文件夹。例如:
CREATE OR REPLACE DIRECTORY tempdump AS 'f:/tempdump/';
GRANT READ, WRITE ON DIRECTORY tempdump TO TELEMT;
8.打开另一个cmd窗口,使用impdp导入数据库
impdp TELEMT/TELEMT@ORCL full=Y directory=tempdump dumpfile=frameworkexpdp.dmp
有时会报ORA-31640: unable to open dump file 问题解决
设置cluster=N,再次进行导入
impdp TELEMT/TELEMT@ORCL full=Y directory=tempdump dumpfile=frameworkexpdp.dmp cluster=N
发现日志没有导入视图的信息,不知道视图导入没有,当时忘了查看一下了,然后补充执行下面
impdp TELEMT/TELEMT directory=tempdump dumpfile=TELEMT.dmp remap_schema=原用户名:当前数据库用户名remap_tablespace=原表空间:现在数据库表空间 TABLE_EXISTS_ACTION = SKIP
(imp telant_test/telant_test file=telant_test_201800810_data.dmp log=C:UsersyaoyongDesktop elemt190701.log grants=no full=y;)
想到会不会重复导入相同的表查了查,当使用IMPDP完成数据库导入时,如遇到表已存在时,Oracle提供给我们如下四种处理方式:
- SKIP:跳过已经存在的表,继续导入下一个对象,如果CONTENT设置了DATA_ONLY参数,则不能使用SKIP
- APPEND:不会影响已存在的数据,在原有数据表的基础上继续增加数据
- REPLACE:先删除掉表,然后创建表,最后完成数据插入
- TRUNCATE:删除已存在的行,然后插入所有的数据
补充了参数TABLE_EXISTS_ACTION = SKIP
最后发现没有再报错误日志,一开始导入失败时,删除用户和命名空间,重新创建就可以重新导入数据库,
暂时导入成功,发现问题再补充
impdp TELEMT/TELEMT@ORCL full=Y directory=tempdump dumpfile=frameworkexpdp.dmp cluster=N TABLE_EXISTS_ACTION = SKIP