Oracle表空间概念及操作
表空间,顾名思义,就是一张表所存在的空间。
一个表同时只能存在于一个表空间,不同表空间的表是相互隔离的,可以取相同的名字。
在数据库只有一个实例的情况下,如果要实现数据的隔离,最简单的方法就是创建多个表空间,添加多个用户,一个用户对应一个表空间,这样就实现了数据的隔离(多个开发团队共用一个oracle实例)。
表空间的分类
- 临时表空间
主要用途是在数据库进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索 引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。 -
数据表空间
此空间是用来进行[数据存储]的(表、function、存储过程等),所以是实际物理存储区域。
表空间的便利性:
- 将用户隔离,方便赋予权限,限制每个用户的可使用内存。
- 限制表可以使用的内存。
- 方便将表进行分类操作,大数据量的表放入一个表空间,小数据量的表放入另一个表空间,方便充分利用内存。
- 数据与日志隔离
表空间大小限制
表空间数据文件容量与DB_BLOCK_SIZE有关,ORACLE的物理文件最大只允许4194304个数据块,表空间数据文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。
4k最大表空间为: 16384M
8K最大表空间为: 32768M
16k最大表空间为:65536M
32K最大表空间为:131072M
64k最大表空间为:262144M
sql语句如下:
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;
select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_data_files
alter database tempfile '/oradata/table/kingdee99temp01.dbf' resize 32768M;
add datafile '/oradata/table/kingdee99temp01.dbf' size 10240M;
1.ssh shell 工具登录到oracle服务器(Linux)
切换到oracle
输入命令:su - oracle
进入sqlplus
输入命令:sqlplus
输入用户名和密码(有dba权限的用户)
2.查看表空间文件的位置
select name from v$datafile;
假如我的实例名称为orcl,oracle安装在了/u01/app目录下,查询结果是这样
/u01/app/oracle/oradata/orcl/system.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
......
3.创建表空间
这里就创建在/u01/app/oracle/oradata/orcl/目录下,
db_test01 是表空间名称,data_test01.dbf是表空间文件
create tablespace db_test01 datafile '/u01/app/oracle/oradata/orcl/data_test01.dbf' size 256M autoextend on next 100M maxsize unlimited;
这步执行完用 select name from v$datafile; 查看下是否创建成功。
也可以再给这个表空间再增加表空间文件(一个表空间文件不够的情况下)。
alter tablespace db_test01add datafile '/u01/app/oracle/oradata/orcl/data_test02.dbf' size 256M autoextend on next 100M maxsize unlimited;
4.创建用户并指定用户所使用的表空间
创建用户名为test_user,密码为123456,所使用表空间为db_test01的用户
create user test_user identified by 123456 default tablespace db_test01;
5.用户授权
将dba权限授给test_user
grant dba to test_user
ok,搞定了,可以用plsql或其他工具登录测试一下。
若要实现数据的隔离(如:另一个开发小组也用这个数据库实例),重复3,4,5步,指定不同的表空间名称、不同的表空间文件、不同的用户即可。
本文来自博客园,作者:aspirant,转载请注明原文链接:https://www.cnblogs.com/aspirant/p/16984176.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)