oracle 创建数据库实例及导入dmp文件教程

来源:互联网 发布:python 字符串替换代码 编辑:程序博客网 时间:2024/05/17 01:01

首先要清楚你的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_installSYSDBA 或 SYSOPER不能以 NORMAL 登录,可作为默认的系统管理员system/managerSYSDBA 或 NORMAL不能以 SYSOPER 登录,可作为默认的系统管理员sysman/oem_temp  sysman 为 oms 的用户名scott/tigerNORMAL普通用户aqadm /aqadmSYSDBA 或 NORMAL高级队列管理员Dbsnmp/dbsnmpSYSDBA 或 NORMAL复制管理员sysman 为 oms 的用户名scott/tigerNORMAL普通用户aqadm /aqadmSYSDBA 或 NORMAL高级队列管理员Dbsnmp/dbsnmpSYSDBA 或 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 #导入日志文件



C:\Users\Lenovo>imp exoa/exoa@exoa ignore=y grants=y fromuser=exoa touser=exoa file=D:\exoa1120.dmp log=D:\oraclelog\exoa.log


Import: Release 12.1.0.2.0 - Production on 星期三 11月 22 11:40:03 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

经由常规路径由 EXPORT:V11.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
导出服务器使用 AL16UTF16 NCHAR 字符集 (可能的 ncharset 转换)
. 正在将 EXOA 的对象导入到 EXOA
. . 正在导入表                      "ADD_FILE"导入了           0 行

Import: Release 12.1.0.2.0 - Production on 星期三 11月 22 11:40:03 2017

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.


连接到: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

经由常规路径由 EXPORT:V11.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
导出服务器使用 AL16UTF16 NCHAR 字符集 (可能的 ncharset 转换)
. 正在将 EXOA 的对象导入到 EXOA
. . 正在导入表                      "ADD_FILE"导入了           0 行


假如在导入时遇到如下报错:

   IMP-00058: 遇到 ORACLE 错误 12154
   ORA-12154: TNS: 无法解析指定的连接标识符
   IMP-00000: 未成功终止导入


1、看下Service 和Listener服务有没有打开。

2、再set  oracle_sid=***

3、有时候本机导入的话,要去掉@exoa


这样就导入dmp文件成功了






原创粉丝点击