oracle创建表空间自增空间管理

时间:2021-12-09 05:39:48

表空间(tablespace)、段(segment)、区(extent)、块(block),这些都是oracle数据库在数据文件中组织数据的基本单元

1.创建表空间
create tablespace SIRM2 
datafile 'D:\oracle\product\10.2.0\oradata\orcl\SIRM2.dbf' size 1024M --存储地址 初始大小1G
autoextend on next 10M maxsize unlimited   --每次扩展10M,无限制扩展
EXTENT MANAGEMENT local  autoallocate
segment space management auto;

创建表空间,名称为SIRM2 ;
2. 表空间有一个数据文件*.dbf,大小为1024MB;
3. 允许表空间自动扩展(autoextends),每次增长10MB(next 10M),并且不限制最大大小;
4. 说明表空间本地(local)管理,并自动分配范围(autoallocate),用户不能指定范围的大小;
5. 段空间(segment)的空间管理上使用bitmaps(auto)来管理数据块。使用AUTO会比使用MANUAL有更好的空间利用率,与效能上的提升。

在Oracle 8i以前,可以有两种选择,一种是在字典中管理(DICTIONARY),另一种是本地管理(LOCAL ),从9I开始,只能是本地管理方式.因为LOCAL 管理方式有很多优点.
在字典中管理(DICTIONARY): 将数据文件中的每一个存储单元做为一条记录,所以在做DM操作时,就会产生大量的对这个管理表的Delete和Update操作.做大量数据管理时,将会产生很多的DM操作,严得的影响性能,同时,长时间对表数据的操作,会产生很多的磁盘碎片,这就是为什么要做磁盘整理的原因.
本地管理(LOCAL): 用二进制的方式管理磁盘,有很高的效率,同进能最大限度的使用磁盘. 同时能够自动跟踪记录临近空闲空间的情况,避免进行空闲区的合并操作。
SEGMENT SPACE MANAGEMENT
磁盘扩展管理方法:
SEGMENT SPACE MANAGEMENT: 使用该选项时区大小由系统自动确定。由于 Oracle 可确定各区的最佳大小,所以区大小是可变的。

2.创建用户
 create user test  identified by test 
default tablespace SIRM2
  temporary tablespace TEMP
  profile DEFAULT;
3.授权
grant dba to test;
grant connect to test;
grant resource to test;

4.代码例子

--查看表空间
select distinct tablespace_name from dba_free_space;
--创建表空间
create tablespace XH_History_WS
datafile 'D:\app\bailongfei123\oradata\orcl\XH_History_WS.dbf'
size 120M --存储地址 初始大小120M
autoextend on next 10M maxsize unlimited --每次扩展10M,无限制扩展
EXTENT MANAGEMENT local autoallocate ---说明表空间本地(local)管理,并自动分配范围(autoallocate),用户不能指定范围的大小
segment space management auto; --段空间(segment)的空间管理上使用bitmaps(auto)来管理数据块。使用AUTO会比使用MANUAL有更好的空间利用率,与效能上的提升
--删除表空间
drop tablespace XH_History_WS including contents and datafiles; --创建用户
create user XH_Bai_History_WS
identified by tiger
default tablespace XH_History_WS; -----
alter user 用户 quota unlimited on 表空间A;
alter user 用户 quota unlimited on 表空间B;
--或者放开所有表空间
grant unlimited tablespace to 用户;
--或者索性给所有权限
grant resource,connect,dba to 用户;
--查询用户
select * from all_users; --授权
grant connect to XH_Bai_History_WS;-- --是授予最终用户的典型权利,最基本的权力,能够连接到ORACLE数据库中,并在对其他用户的表有访问权限时,做SELECT、UPDATE、INSERTT等操作
grant resource to XH_Bai_History_WS;--是授予开发人员的,能在自己的方案中创建表、序列、视图等。
grant dba to XH_Bai_History_WS;--是授予系统管理员的,拥有该角色的用户就能成为系统管理员了,它拥有所有的系统权限
--revoke
revoke connect,resource from java_user;
grant create view to java_user
--创建视图权限,一般网上找都是说的这句,但是光有这句还是无法创建
grant create view to XH_Bai_History_WS; --授予查询权限
grant select any table to B; --授予权限
grant select any dictionary to B; --以上3项地后就能正常创建视图了。