关键字:
表空间、金仓数据库
表空间概述
(1)、表空间是数据库分配空间的逻辑结构。
(2)、数据库对象都存放在表空间中,主要存放的是表,所以称作表空间。
(3)、表空间实际上就是给数据库对象指定一个操作系统文件夹。
(4)、表空间依赖于包含在主数据目录中的元数据。
(5)、表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。
(6)、表空间实际上就是给表指定一个存储目录。
表空间的好处
(1)、通过使用表空间,管理员可以控制数据库安装的磁盘布局。
(2)、当表空间所在的存储不够且无法扩展时,可以在不同存储设备上创建新表空间。
(3)、频繁使用的表可以放在告诉磁盘上,性能要求不高的表可以存储在慢磁盘上。
表空间和数据库的关系
(1)、在Oracle数据库中,一个表空间只属于一个数据库使用,而一个数据库可以拥有多个表空间,属于一对多的关系。
(2)、在KES中数据库中,一个表空间可以让多个数据库使用,而一个数据库可以使用多个表空间,属于多对多的关系。
默认表空间
任何新建的数据库中都有初始的两个系统表空间:sys_global 和 sys_default。这两个表空间的物理位置位于数据集簇目录下,这两个系统表空间中记录了服务器运行的基本信息,比如系统表。
系统表空间可以像任何其他表空间一样进行管理,但需要更高级别的特权,并且在某些方面受到限制,例如,不能重命名或删除系统表空间,也不能使其脱机。
两个系统表空间的不同之处在于,sys_global 表空间内的数据在整个数据集簇中对所有数据库共享,而 sys_default 表空间则只记录本数据库的信息。
表空间使用
5.1 创建表空间
基本语法:
# \h CREATE TABLESPACE
命令:CREATE TABLESPACE
说明: 建立新的表空间
语法:
CREATE TABLESPACE 表空间的名称
[ OWNER { 新的属主 | CURRENT_USER | SESSION_USER } ]
LOCATION '目录'
[ WITH ( 表空间_选项 = 值 [, ... ] ) ]
使用:
CREATE TABLESPACE tbs1 LOCATION '/dir1'
5.2 修改表空间
基本语法:
# \h ALTER TABLESPACE
命令:ALTER TABLESPACE
说明: 更改表空间的定义
语法:
ALTER TABLESPACE 名称 RENAME TO 新的名称
ALTER TABLESPACE 名称 OWNER TO { 新的属主 | CURRENT_USER | SESSION_USER }
ALTER TABLESPACE 名称 SET ( 表空间_选项 = 值 [, ... ] )
ALTER TABLESPACE 名称 RESET ( 表空间_选项 [, ... ] )
使用:
# 修改表空间的属主
ALTER TABLESPACE tbs1 OWNER TO user1;
# 重命名表空间
ALTER TABLESPACE tbs1 RENAME TO tbs2;
# 修改表空间的参数
ALTER TABLESPACE tbs1 SET tablespace_option = value;
是啥
使用:
# 修改表空间的属主
ALTER TABLESPACE tbs1 OWNER TO user1;
5.3 删除表空间
基本语法:
# \h DROP TABLESPACE
命令:DROP TABLESPACE
说明: 移除一个表空间
语法:
DROP TABLESPACE [ IF EXISTS ] 名称
使用:
# 表空间删除前不能存在任何对象,否则删除失败。
DROP TABLESPACE tbs1;
5.4 查看表空间
命令行查看:
# \db
表空间列表
名称 | 拥有者 | 所在地
-------------+----------+--------
db1 | kingbase | /dir01
sys_default | kingbase |
sys_global | kingbase |
sysaudit | kingbase |
(4 行记录)
# \db+ db1
表空间列表
名称 | 拥有者 | 所在地 | 存取权限 | 选项 | 大小 | 描述
------+----------+--------+----------+------+-------+------
db1 | kingbase | /dir01 | | | 25 MB |
(1 行记录)
以下系统表和视图提供了表空间有关的相关信息:
(1)、SYS_TABLESPACE:记录所有表空间信息的系统表
(2)、SYS_DATABASE:查询所有数据库使用的默认表空间
(3)、DBA_TABLESPACE、USER_TABLESPACE:显示所有表空间信息的易阅读系统视图
SELECT * FROM sys_tablespace;
oid | spcname | spcowner | spcacl | spcoptions
-------+-------------+----------+--------+------------
1663 | sys_default | 10 | |
1664 | sys_global | 10 | |
1986 | sysaudit | 10 | |
16702 | db1 | 10 | |
(4 行记录)
5.5 表空间其它操作
修改表的表空间:
ALTER DATABASE db1 SET TABLESPACE tbs1;
移动表到新的表空间:
ALTER TABLE t1 SET TABLESPACE tbs1;
使表空间联机:
ALTER TABLESPACE tablesp ONLINE;
使表空间脱机:
ALTER TABLESPACE tablesp OFFLINE;
使表空间只读:
ALTER TABLESPACE tablesp READ ONLY;
使只读表空间可读写:
ALTER TABLESPACE tablesp READ WRITE;