Oracle11g还原数据库导入dmp文件的实现方式

 更新时间:2025年11月10日 15:54:21   作者:Funky_oaNiu  
本文详细介绍了如何从dmp文件导入Oracle数据库数据,包括创建用户、授权、导入步骤、处理导入过程中可能出现的错误,以及解决特定问题的方法

1.首先你要知道往哪个用户里面导,先创建个用户然后授权

打开sqlplus,用system登录(或者有dba权限的用户) 一次执行下面的命令语句

CREATE USER "用户名" PROFILE "DEFAULT" IDENTIFIED BY "密码" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;
GRANT CREATE ANY TABLE TO "用户名";
GRANT UNLIMITED TABLESPACE TO "用户名";
GRANT "CONNECT" TO "用户名";
GRANT "RESOURCE" TO "用户名";
GRANT CREATE ANY VIEW TO "用户名";
GRANT dba TO "用户名";

2.然后打开cmd,根据自己的数据库执行下面语句

imp 刚才创建的用户名/密码@数据库实例名 full=y file=文件的绝对路径(包含文件名) ignore=y

3.导入过程中报错?怎么重新导入?

如果导入数据有问题的话,大多是表空间缺失,因为dmp文件不会把表空间也备份出来的,若报表空间不存在,删掉用户,建表空间,重新imp就行了

执行下面语句删除用户(慎用,别删错了,这是删除用户和用户底下所有的数据)

drop user 用户名 cascade

4.最后记录一下导入过程中遇到的问题

1.在A用户下导入但是数据却导入到了B用户里

这是由于导入的dmp文件的原因,里面设定了自动导入A用户,这时候你需要重新创建一个Oracle实例,注意不是Oracle用户,是实例,创建过程中一定要设置数据库字符集为ZHS16GBK

如何连接到另外一个Oracle实例?

conn 用户名/密码@实例名

2.导入过程中提示: “XXXX值太大,无法执行”

这就是没有设置ZHS16GBK的原因,打开sqlplus,登录后先确定你连接的数据库是你需要修改的(别改错了),然后登录有dba权限(最高权限)的用户,依次执行以下命令语句

SQL> conn /as sysdba;
SQL> shutdown immediate;//这个可能久一点,不超过5分钟
SQL> startup mount;//归档模式
SQL> alter system enable restricted session;//数据库访问受限状态
SQL> alter system set JOB_QUEUE_PROCESSES=0;
SQL> alter system set AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database character set internal_use ZHS16GBK;
SQL> alter database character set ZHS16GBK
SQL> shutdown immediate;
SQL> startup;

执行完成之后再次进行导入发现没有问题了

3.导入过程中提示: "表空间不存在"或“表不存在创建触发器失败”

这是因为dmp文件有问题,最初导出dmp文件的时候,没有提前设置好导出空表,只能去原来数据库将缺少的空表或序列手工导进来,可以用Navicat。

4.报错内容包含表缺失

有可能是源头数据库是11g,没有开启空表导出,这个解决起来比较麻烦,需要知道哪些表是空表,表与表之间的关联关系

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Oracle数据库中创建自增主键的实例教程

    Oracle数据库中创建自增主键的实例教程

    Oracle的字段自增功能,可以利用创建触发器的方式来实现,接下来我们就来看看Oracle数据库中创建自增主键的实例教程,需要的朋友可以参考下
    2016-05-05
  • Oracle数据库时间格式转换的常见示例

    Oracle数据库时间格式转换的常见示例

    这篇文章主要给大家介绍了关于Oracle数据库时间格式转换的常见示例,在实际的工作中会经常会用到to_char()、to_date()函数来对时间、日期进行处理,文中给出了详细的代码示例,需要的朋友可以参考下
    2024-02-02
  • Oracle date 和 timestamp 区别详解

    Oracle date 和 timestamp 区别详解

    这篇文章主要介绍了Oracle date 和 timestamp 区别详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • ORACLE中的的HINT详解

    ORACLE中的的HINT详解

    本篇文章主要介绍了ORACLE中的的HINT详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Oracle 数据库操作类

    Oracle 数据库操作类

    我有对Oracle最基本的数据库操作做了最为简单的归类,希望可以对后来者有所参考。另外,这个类需要有日志记录类(日志记录在Xml文档中),我会在后面的文中在贴出来。
    2009-08-08
  • Oracle Sqlplus命令登录多种方式案例讲解

    Oracle Sqlplus命令登录多种方式案例讲解

    这篇文章主要介绍了Oracle Sqlplus命令登录多种方式案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Oracle 系统变量函数用法指南

    Oracle 系统变量函数用法指南

    在Oracle数据库中,Oracle系统变量函数是经常会使用到的函数,分享下Oracle系统变量函数的用法。希望对大家有所帮助
    2014-08-08
  • oracle iSQL*PLUS配置设置图文说明

    oracle iSQL*PLUS配置设置图文说明

    iSQL*PLUS是从ORACLE 9i开始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已经不支持)是基于三层结构设计的,需要的朋友可以了解下
    2012-12-12
  • Oracle Logminer快速使用详解

    Oracle Logminer快速使用详解

    这篇文章主要介绍了Oracle Logminer使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-10-10
  • Oracle查询实例之订单金额占比与排名分析

    Oracle查询实例之订单金额占比与排名分析

    这篇文章主要介绍了Oracle查询实例之订单金额占比与排名分析的相关资料,文中通过代码介绍了两种方法来查询每个客户在每个日期的订单金额、占比以及排名,需要的朋友可以参考下
    2025-11-11

最新评论