Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10326864
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: Oracle

2016-12-08 11:22:10



用Oracle10g自带的企业管理器或PL/SQL图形化的方法创建表空间和用户以及分配权限是相对比较简单的,本文要介绍的是另一种方法,使用Oracle 9i所带的命令行工具:SQLPLUS
来创建表空间,这个方法用起来更加简明快捷。
  假设: 文章假设,如果您用的是Linux系统,那么Oracle用户名为oracle。同时,您是在oracle服务器上操作。
  如果是在Windows系统下, 请先点击“开始”,然后点“运行”,输入cmd并点击“确定”,打开命令行窗口
  如果是在Linux的图形窗口,请右键点击桌面并点击“打开终端”,然后输入    su  -   oracl
  做好上述准备工作以后,输入以下命令:
  sqlplus   /nolog
  回车后,将出现提示符 SQL>
  这时输入
  conn   /   as   sysdba
  一般即可登录,如果失败的话,可以试一下用conn    sys/sys用户的密码   as sysdba来重试一下
  接下来,我们看看您当前的数据库文件一般都是放在哪里的:
  select    name    from    v$datafile;
  windows下可能看到的结果如下:
  SQL> select name from v$datafile;
  NAME
  --------------------------------------------------------------------------------
  D:\oracle\oradata\orcl\system01.dbf
  D:\oracle\oradata\orcl\undotbs01.dbf
  D:\oracle\oradata\orcl\cwmlite01.dbf
  D:\oracle\oradata\orcl\drsys01.dbf
  D:\oracle\oradata\orcl\indx01.dbf
  D:\oracle\oradata\orcl\tools01.dbf
  说明您的数据文件是放在 D:\oracle\/oradata\orcl\ 这个目录下的
  Linux下可能看到的结果如下:
  SQL> select name from v$datafile;
  NAME
  --------------------------------------------------------------------------------
  /oracle/oradata/orcl/system01.dbf
  /oracle/oradata/orcl/undotbs01.dbf
  /oracle/oradata/orcl/cwmlite01.dbf
  /oracle/oradata/orcl/drsys01.dbf
  /oracle/oradata/orcl/indx01.dbf
  /oracle/oradata/orcl/tools01.dbf
  说明您的数据文件是放在 /oracle/oradata/orcl/ 这个目录下的
  好,我们可以开始创建数据库表空间了,创建数据库表空间的命令格式如下:
  create  tablespace  表空间名  datafile   '对应的文件名'    size   大小;
  举例如下:
  对于上述的windows情况:
  create  tablespace  eqes2015   datafile   'C:\oracle\product\10.2.0\oradata\orcleqes2015.dbf'    size   3000m;
  3000m指的是3000MB
  对于上述的Linux的情况:
  create  tablespace  yang   datafile   '/oracle/oradata/orcl/yang.dbf'    size   3000m;
  至此,所需的表空间已建立。
  接下来我们开始创建用户,创建用户的命令格式如下:
  create  user  用户名  identified   by   密码  default   tablespace   用户默认使用哪一个表空间;
  修改用户的权限:
  grant   角色1,角色2  to  用户名;
  举例如下:
  create   user   eqes2015   identified    by    eqes2015    default   tablespace   eqes2015;
  grant   dba, connect,RESOURCE    to   eqes2015;
授权成功。




imp eqes2015/eqes2015@orcl  file=c:\222.dmp log=c:\222.log full=y



ORA-01659无法分配超出5(XXX)的MINEXTENTS解决
 
昨天遇到导入表问题:
 
报错:ORA-01659 无法分配超出5(XXX)的MINEXTENTS
 
1,尝试删除表空间重新建
 
    删除表空间:DROP TABLESPACE BPM2 INCLUDING CONTENTS
 
   执行后发现表空间被占用,删除不掉,于是
 
   查看表空间被占用索引:SELECT * FROM dba_indexes  WHERE tablespace_name='BPM2'
 
  发现有其他表关联这个表空间,不能轻易删除,所以执行了第二步
 
2,修改表空间大小命令:
 
     ALTER DATABASE DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\BPM2.dbf' AUTOEXTEND ON NEXT 200M MAXSIZE UNLIMITED
 
 或
     ALTER TABLESPACE SDE AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
 
然后重新导入,成功!



遇到这么一个错误

IMP-00003: 遇到  错误 1659

ORA-01659: 无法分配超出 6 的 MINEXTENTS (在表空间 DATA 中)

IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:

查了一下资料,原来是在创建表空间的时候,没有把表空间设置成自动扩展,表空间不够造成的。可以选择扩大表空间,或者设置成自动扩展。

1.创建tablespace test:表示创建一个名为test的tablespace,test的大小为8M,自动增长步长为5M,最大空间是10M。

create tablespace test datafile '/home/app/oracle/oradata/oracle8i/test01.dbf' size 8M autoextend on next 5M maxsize 10M;

2.创建tablespace sales:表示创建一个名为sales的tablespace,sales的大小为800M,自动增长步长为50M,没有最大空间限制。

create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize unlimited maxsize UNLIMITED; --是大小不受限制

3.创建tablespace sales:表示创建一个名为sales的tablespace,sales的大小为800M,自动增长步长为50M,最大空间为1000M,

采用local管理方式,unform表示区的大小相同,默认为1000M。

create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform; --unform表示区的大小相同,默认为1000M

4.创建tablespace sales:表示创建一个名为sales的tablesapce,sales的大小为800M,自动增长步长为50M,最大空间为1000M,

采用local管理方式,uniform表示区的大小相同为500M。

create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local uniform size 500K; --unform size 500K;表示区的大小相同,为500K

5.创建tablespace sales:表示创建一个名为sales的tablespace,sales的大小为800M,自动增长步长为50M,最大空间为1000M,

采用local管理方式,automaticate表示区的大小由随表的大小自动动态改变,大表使用大的分区,小表使用小的分区。

create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M extent management local autoallocate; --autoallocate表示区的大小由随表的大小自动动态改变,大表使用大区小表使用小区

6.创建tablespace sales:表示创建一个名为sales的tablespace,sales的大小为800M,自动增长步长为50M,最大空间为1000M,

temporary表示创建字典管理临时表空间。

create tablespace sales datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M temporary; --temporary创建字典管理临时表空间

7.创建临时tablespace sales:表示创建一个名为sales的temporary tablespace,并且datafile变成tempfile。

create temporary tablespace sales tempfile '/home/app/oracle/oradata/oracle8i/sales01.dbf' size 800M autoextend on next 50M maxsize 1000M --创建本地管理临时表空间,如果是临时表空间,所有语句中的datafile都换为tempfile 8i系统默认创建字典管理临时表空间,要创建本地管理临时表空间要加temporary tablespace关键字

8.创建本地管理临时表空间时,不得使用atuoallocate参数,系统默认创建uniform管理方式 为表空间增加数据文件:

alter tablespace sales add datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M autoextend on next 50M maxsize 1000M;

9.为表空间增加数据文件

alter tablespace sales add datafile '/home/app/oracle/oradata/oracle8i/sales02.dbf' size 800M autoextend on next 50M maxsize 1000M;

10.更改自动扩展属性

alter database datafile '/home/app/oracle/oradata/oracle8i/sales01.dbf', '/home/app/oracle/oradata/oracle8i/sales02.dbf' '/home/app/oracle/oradata/oracle8i/sales01.dbf autoextend off;

11.删除表空间

Drop tablespace test INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;




阅读(1365) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~