如何将.dmp 文件导入自己的Oracle数据库中

1,835 阅读2分钟

前言

最近在还原数据库时,总是会说数据库的空间不足或者空间不足之类的问题。网上查看了许多解决办法,对于本身是前端出身的我,看的是一头雾水。总是当时解决了问题,但是下次导入时还是会遇到此类问题,为了解决这个问题,查看了其他文档,做出以下总结:

自己刚刚学习数据库的内容,如果理解有问题,欢迎大家留言,我会参考改正的,还想说不喜勿喷,给我点鼓励,让我有前进的动力

创建一个自己的用户表空间

eg: create tablespace tableSpaceName datafile 'D:\app\oracle\product\12.2.0\dbhome_1\tableSpaceName.dbf' size 50m autoextend on;

create tableSpaceName (tableSpaceName----表的空间的名字,自己起的)
datafile 'D:\app\oracle\product\12.2.0\dbhome_1\tableSpaceName.dbf'(路径写成自己安装的Oracle的数据库的路径所在的文件的某个路径下)
size 50M (初始化表的空间)
autoextend on(自动扩展)

创建用户,同时使用自己临时创建的表空间

eg:create user userName identified by password DEFAULT TABLESPACE tableSpaceName TEMPORARY TABLESPACE temp;

create user (userName---用户名)
identified by (password---密码)
DEFAULT TABLESPACE (tableSpaceName----使用上面自己起的表空间的名字) 
TEMPORARY TABLESPACE temp(临时表空间 就写temp);

给新建的用户赋予权限,用于管理自己的表空间

说明:权限的赋予是需要进入到Oracle数据库的运行环境中,如下图

1.png

- GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。
- GRANT CONNECT TO utest;  ----创建用户登录Oracle权限。
- GRANT RESOURCE TO utest;  ----可以创建数据库实体,不可以创建数据库结构。
- GRANT UNLIMITED TABLESPACE TO uName;---操作表的空间权限
- GRANT CREATE SESSION TO uName; --- 给用户赋予登录权限
- GRANT CREATE TABLE TO uName;--创建表权限
补充:
DBA:拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。
RESOURCE:拥有Resource权限的用户只可以创建实体,不可以创建数据库结构。
CONNECT:拥有Connect权限的用户只可以登录Oracle,不可以创建实体,不可以创建数据库结构。
对于普通用户:授予connect, resource权限。 
对于DBA管理用户:授予connect,resource, dba权限。

进入cmd,将.dmp 文件导入我们创建的表的空间

eg:imp username/password @orcl file=d:(.dmp文件在的路径)ignore=y full=y;

最后

根据以上步骤就可以解决再导入时表的空间不足等问题