前言
最近在还原数据库时,总是会说数据库的空间不足或者空间不足之类的问题。网上查看了许多解决办法,对于本身是前端出身的我,看的是一头雾水。总是当时解决了问题,但是下次导入时还是会遇到此类问题,为了解决这个问题,查看了其他文档,做出以下总结:
自己刚刚学习数据库的内容,如果理解有问题,欢迎大家留言,我会参考改正的,还想说不喜勿喷,给我点鼓励,让我有前进的动力
创建一个自己的用户表空间
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数据库的运行环境中,如下图
- 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;
最后
根据以上步骤就可以解决再导入时表的空间不足等问题