分享|优炫数据库管理之表空间

数据库的表空间管理DBA的日常管理工作之一。优炫数据库UXDB中的表空间允许DBA在文件系统中定义用来存放表示数据库对象的文件的位置。一旦被创建,表空间就可以在创建数据库对象时通过名称引用。通过使用表空间,管理员可以控制一个UXDB安装的磁盘布局。

定义表空间

使用CREATE TABLESPACE命令,如:

CREATE TABLESPACE fastspace LOCATION'/ssd1/uxsino/data';

必须是一个已有的空目录,并且属于UXDB操作系统用户,所有后续在该表空间中创建的对象都将被存放在这个目录下的文件中。如果表空间丢失,将会导致集簇无法工作,故位置不能放在可移动或者瞬时存储上。

表空间的创建必须是一个数据库超级用户完成,但在创建完之后,可以允许普通数据库用户来使用。同时给数据库普通用户授予表空间上的CREATE权限。

表、索引和整个数据库都可以被分配到特定的表空间。在给定表空间上有CREATE权限的用户,必须把表空间的名字以参数的形式传递给相关的命令。

表空间space1中创建一个表:

CREATE TABLE foo(i int) TABLESPACE space1;

另外,还可以使用default_tablespace参数:

SET default_tablespace = space1;

CREATE TABLE foo(i int);

default_tablespace被设置为非空字符串,那么它就为没有显式TABLESPACE子句的CREATE TABLE和CREATE INDEX命令提供一个隐式TABLESPACE子句。

temp_tablespaces参数,它决定临时表和索引的位置,以及用于大数据集排序等目的的临时文件的位置。这可以是一个表空间名的列表。

因此,与临时对象有关的负载可以散布在多个表空间上。每次要创建一个临时对象时,将从列表中随机取一个成员来存放它。

此外,如果没有给出TABLESPACE子句并且没有default_tablespace或temp_tablespaces中指定其他选择,它还是在该数据库中创建表、索引和临时文件的默认表空间。

在初始化数据库集簇的时候,会自动创建两个表空间。

ux_global表空间被用于共享系统目录。

ux_default表空间是template1和template0数据库的默认表空间。

表空间一旦被创建,就可以被任何数据库使用,前提是请求的用户具有足够的权限。这也意味着,一个表空间只有在所有使用它的数据库中所有对象都被删除掉之后才可以被删掉。

删除一个空的表空间

使用DROP TABLESPACE命令。要确定现有表空间的集合,可检查ux_tablespace系统目录。

例如 SELECT spcname FROM ux_tablespace;

uxsql程序的\db元命令也可以用来列出现有的表空间。UXDB使用符号连接来简化表空间的实现。这就意味着表空间只能在支持符号连接的系统上使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值