数据库表空间操作

Posted shawWey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库表空间操作相关的知识,希望对你有一定的参考价值。

注意点:
1.如果在PL/SQL 等工具里打开的话,直接修改下面的代码中[斜体加粗部分]执行
2.确保路径存在,比如 C:\oracle\oradata\Oracle11\ 也就是你要保存文件的路径存在
3.以下语句必须为dba权限的用户才可以执行成功。

分为四步
第1步:创建临时表空间

create temporary tablespace user_temp   
tempfile C:\oracle\oradata\Oracle11\user_temp.dbf   
size 50m   
autoextend on   
next 50m maxsize 20480m   
extent management local;  

说明:

user_temp 为需要创建的临时表空间的名称,根据实际情况可以自行变更。
tempfile 后面为临时表空间文件存放的磁盘位置,文件不需要创建,但文件夹需要创建好。
Create [TEMPORARY] TABLESPACE tablespace_name TEMPFILE|DATAFILE ‘fileName.dbf‘ size xx
#TEMPFILE|DATAFILE 指的是我们存储的数据文件的类型和名字。
#size 表示数据文件的大小
#[TEMPORARY] 如果我们创建的是临时表空间,那么需要在create关键字后加上TEMPORARY的关键字,而且使用TEMPFILE关键字。

第2步:创建数据表空间 

create tablespace user_data   
logging   
datafile C:\oracle\oradata\Oracle11\user_data.dbf   
size 50m   
autoextend on   
next 50m maxsize 20480m   
extent management local; 

说明:
user_data 为需要创建的临时表空间的名称,根据实际情况可以自行变更。
datafile 后面为表空间文件存放的磁盘位置,文件不需要创建,但文件夹需要创建好。

第3步:创建用户并指定表空间

create user username identified by password   
default tablespace user_data   
temporary tablespace user_temp;
说明: 
username 为需要创建数据库用户的用户名,根据实际情况可以自行变更。
password为需要创建数据库用户的用户密码,根据实际情况可以自行变更
user_data 为分配给该用户的表空间,根据实际情况可以自行变更
user_data 为分配给该用户的临时表空间,根据实际情况可以自行变更

第4步:给用户授予权限

grant connect,resource,dba to username;  

说明:
username 为需要分配权限用户的用户名,根据实际情况可以自行变更。
connect,resource,dba 分别三种不同操作权限,根据实际情况可以自行变更。

实例:

CREATE TABLESPACE FS_BSAF_TBS
LOGGING
  DATAFILE +DATA/bspjdb/datafile/FS_BSAF_TBS_01.dbf SIZE 2G
  AUTOEXTEND ON NEXT 100M MAXSIZE 2G
  EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

一个表空间的大小也不是可以通过添加数据文件的方式随便加的。
如果你建的是一般的表空间(smallfile)的话一个表空间的最大大小应该是4m个oracle块。
如果你建的是bigfile表空间的话,一个表空间的最大大小应该是4g个oracle块。
不过不建议把一个表空间建的太大,如果太大的话一方面备份花费的时间长,另外一方面是,对存放在该表空间上的数据不安全,如果表空间出错了,那么该表空间上的数据都会丢掉。

查看表空间的使用情况:

https://blog.csdn.net/high2011/article/details/50674081

以上是关于数据库表空间操作的主要内容,如果未能解决你的问题,请参考以下文章

Mysql Innodb 表碎片整理

数据库表空间操作

sql Closure表操作SQL片段

将数据从底部工作表对话框片段传递到片段

排序02-直接插入排序法

临时表空间操作总结