数据库表空间操作
注意点:
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关键字。
创建永久表空间
create tablespace FNBANK datafile '/opt/11g/oracle/oradata/nontax/bank.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
创建临时表空间会报错:
ORA-02195: 尝试创建的PERMANENT对象在TEMPORARY表空间中
解决方案:把临时表空间删除。新建永久表空间
----删除表空间 DROP TABLESPACE 表空间名字 INCLUDING CONTENTS AND DATAFILES; ----查看表空间 select * from dba_tablespaces; ----查看表空间存储位置 select * from dba_data_files
第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