首先要清楚你的dmp文件是否是全库导出来的,如果是全库导出,一般根据需求要再创建一个数据库实例,例如我这里是创建exoa数据库实例
本文基于win 10操作系统,已经成功安装了Oracle 12c数据库,配置好了内核参数和环境变量,下面介绍如何新建一个实例
Oracle Database版本:Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
1、在开始中运行 oracle目录下的 Database Configuration Assistant
“创建模式”中推荐选择“高级配置”,默认配置会留下很多大坑,不推荐。
选择模板可以选择“定制数据库”或“一般用途或事务处理”,由于定制数据库是不基于模板的,所以创建过程非常缓慢,可能需要好几个小时的时间,而“一般用途或事务处理”是基于Oracle提供的模板创建,创建速度很快,5分钟不到即可完成,而且可配置的选项已经足够了,所以选择“一般用途或事务处理”;数据量特别大的选择数据仓库。
“容器数据库”是12c版本新加的一个功能,但是这个功能可能很少有人用,最麻烦的是一旦勾选了这个选项,那么你新建的数据库用户必须以C##开头,特别不方便,所以此处建议不勾选容器数据库,除非你真的有这方面需求。
这里根据你的数据库而定,密码口令不符合oracle也没问题
指定快速恢复区,推荐全部勾选(图中没有勾选),有用快速恢复区之后,使用rman做的完整备份会被放到快速恢复区去,启用归档以后可以使用rman快速创建全库备份。如果此处不填写,那么以后再想启用归档就要把数据库实例停止之后再设置归档,而且会导致归档不完整,所以推荐建立实例的时候就开启归档。另外点击“编辑归档模式参数”按钮之后可以选择归档文件的保存地点,建议选择一个和快速恢复区、表空间不同的硬盘来存储,提高安全性。
Data Vault选项保持默认
数据库的存储方式,建议选择UTF-8,下面的默认语言也选择“英语(美国)”,否则在使用命令行和SQLPULS的时候,中文字符很容易变成????,同样的问题还会出现在你应用的日志上
创建选项推荐勾选另存为数据库模板,这样可以很快的创建一模一样的数据库,为其他的测试环境创造便利。点击定制存储位置可以看到这个实例所创建的表空间的位置
建议修改sys和system的口令密码
用户名 / 密码 |
登录身份 |
说明 |
sys/change_on_install | SYSDBA 或 SYSOPER | 不能以 NORMAL 登录,可作为默认的系统管理员 |
system/manager | SYSDBA 或 NORMAL | 不能以 SYSOPER 登录,可作为默认的系统管理员 |
sysman/oem_temp | sysman 为 oms 的用户名 | |
scott/tiger | NORMAL | 普通用户 |
aqadm /aqadm | SYSDBA 或 NORMAL | 高级队列管理员 |
Dbsnmp/dbsnmp | SYSDBA 或 NORMAL | 复制管理员sysman 为 oms 的用户名 |
scott/tiger | NORMAL | 普通用户 |
aqadm /aqadm | SYSDBA 或 NORMAL | 高级队列管理员 |
Dbsnmp/dbsnmp | SYSDBA 或 NORMAL | 复制管理员 |
下面是导入dmp文件具体操作
SQL> create tablespace EXOA datafile 'D:\oracle\oradata\exoa\EXOA.dbf' size 500m reuse autoextend on next 1m maxsize unlimited;
创建表空间,表空间路径可以在其他盘符
SQL> create temporary tablespace EXOA_TEMP tempfile 'D:\oracle\oradata\exoa\EXOA_TEMP.dbf' size 500m reuse autoextend on next 1m maxsize unlimited;
创建临时表空间,表空间路径可以在其他盘符
SQL> create user exoa identified by exoa default tablespace EXOA temporary tablespaceEXOA_TEMP;
创建用户,指定表空间,临时表空间
SQL> grant dba to exoa;
DBA权限是必需的,授予用户数据库管理员权限
SQL> grant create session to exoa;
授予用户创建权限
SQL> alter user exoa quota unlimited on EXOA;
设置在用户在 EXOA 表空间配额不受限。
SQL> commit;
提交
----------------------------------------------------------------------------------
----------------------------------------------------------------------------------
接下来以管理员身份进入cmd
ignore=y #不检查要导入的数据表结构,直接导入
grants=y #导入相应用户权限
fromuser=exoa #从原数据库exoa用户导入数据
touser=exoa #导入数据到新数据库用户exoa中去
file=D:\backup\OSYUNWEI.dmp #备份文件路
log=D:\oraclelog\exoa.log #导入日志文件
假如在导入时遇到如下报错:
IMP-00058: 遇到 ORACLE 错误 12154
ORA-12154: TNS: 无法解析指定的连接标识符
IMP-00000: 未成功终止导入
1、看下Service 和Listener服务有没有打开。
2、再set oracle_sid=***
3、有时候本机导入的话,要去掉@exoa
这样就导入dmp文件成功了