目录
10.1. 表空间的管理指南
10.1.1. 使用多个表空间
10.1.2. 将表空间分配给用户
10.2. 创建表空间
10.2.1. 关于创建表空间
10.2.2. 加密表空间
10.2.3. 临时表空间
10.3. 修改表空间可用性
10.3.1. 使表空间脱机
10.3.2. 使表空间联机
10.4. 使用只读表空间
10.4.1. 关于只读表空间
10.4.2. 使表空间只读
10.4.3. 使只读表空间可读写
10.5. 修改和维护表空间
10.6. 重命名表空间
10.7. 删除表空间
10.8. 查看表空间相关信息
表空间是将有关的数据库逻辑数据组合在一起形成的数据库存储单元。表空间允许用户定义指定的数据库对象在文件系统中存储的位置。关系及其数据文件都存储在其所属的表空间中。
表空间的管理指南
供您参考的管理表空间的建议和指南。
创建表空间
创建表空间以将有关的数据库逻辑数据(如表或索引等)组合在一起。数据文件都存储在表空间中。
修改表空间可用性
你可以使表空间进入脱机状态,以使它暂时不可被访问和使用,数据库的其他表空间仍然可以正常访问。你可以使已脱机的表空间重新进入联机状态,以使它可以再次被访问。
使用只读表空间
你可以将表空间设置为只读模式,以防止其中存储的数据被更改。
修改和维护表空间
你可以修改表空间的参数和属主等信息。
重命名表空间
你可以修改表空间名称。
删除表空间
当表空间不再被需要时,你可以删除表空间。在一个表空间能被删除前,其中必须没有任何数据库对象。
查看表空间相关信息
KingbaseES提供表空间信息视图,供查看表空间相关的信息。
供您参考的管理表空间的建议和指南。
使用多个表空间
使用多个表空间可以更灵活的执行数据库操作。
将表空间分配给用户
授予用户在表空间创建对象的权限。
父主题: 管理表空间
使用多个表空间可以更灵活地执行数据库操作。 当数据库具有多个表空间时,您可以:
将用户数据与系统表数据分开,以减少 I/O 争用。
将一个应用程序的数据与另一个应用程序的数据分开,以防止在必须使表空间脱机时多个应用程序受到影响。
将不同表空间的数据文件存储在不同的磁盘驱动器上,以减少 I/O 争用。
使单个表空间脱机,而其他表空间保持联机状态,从而提供更好的整体可用性。
通过为特定类型的数据库使用(如高更新活动、只读活动或临时段存储)保留表空间来优化表空间使用。
备份单个表空间。
父主题: 表空间的管理指南
授予将要创建表、物化视图、索引和其他对象的用户在表空间中创建对象的权限。 如果启用了表空间限额,则为用户在该表空间上配置合适的空间限制配额。
父主题: 表空间的管理指南
创建表空间以将有关的数据库逻辑数据(如表或索引等)组合在一起。数据文件都存储在表空间中。
关于创建表空间
要创建新的表空间,请使用 SQL 语句 CREATE TABLESPACE。
加密表空间
你可以加密一个表空间来保护敏感数据。
临时表空间
临时表空间用于在工作内存不足时存储排序或者连接运算生成的临时关系。指定合适的临时表空间可以改善这种情况下排序和连接操作的性能。
父主题: 管理表空间
要创建新的表空间,请使用 SQL 语句 CREATE TABLESPACE。只有超级用户能创建表空间,但是它们能把表空间的拥有权赋予给非超级用户。
在创建表空间之前,必须创建一个数据库来包含它。任何新建的数据库中都有初始的两个系统表空间:sys_global 和 sys_default。这两个表空间的物理位置位于数据集簇目录下。这两个系统表空间中记录了服务器运行的基本信息,比如系统表。系统表空间可以像任何其他表空间一样进行管理,但需要更高级别的特权,并且在某些方面受到限制,例如,不能重命名或删除系统表空间,也不能使其脱机。两个系统表空间的不同之处在于,sys_global 表空间内的数据在整个数据集簇中对所有数据库共享。而 sys_default 表空间则只记录本数据库的信息。
创建表空间的步骤因操作系统而异,但第一步始终是在操作系统上创建目录结构,以为该表空间指定存储的物理位置。然后,在多数操作系统上,我们需要为该目录设置正确的所有权。一个超级用户可以执行 CREATE TABLESPACE 语句以创建表空间,我们会指定该目录作为该表空间的 LOCATION。此外选择一个合适的表空间名,该名称不能以sys_开头,因为sys_名称是为系统表空间保留的。
可以使用 ALTER TABLESPACE or ALTER DATABASE 语句来更改表空间。同样的,您必须对该TABLESPACE或DATABASE具备操作的权限。
父主题: 创建表空间
你可以对表空间中的数据进行加密,以符合安全需求。
父主题: 创建表空间
临时表空间用于存储会话工作期间的临时数据。这些数据包括:
排序和连接操作的中间结果。
物化操作存储的数据。
临时表和临时索引(缺省状态)。
和普通表空间一样,临时表空间中的数据以临时文件和数据文件的形式存储,其中,排序等中间结果和物化结果会以临时文件存储,而临时表和临时索引则以数据文件存储。
在KingbaseES中,临时表空间的创建和使用和普通表空间无异,只是你需要在创建表空间之后,在参数 temp_tablespaces 中指定哪些表空间将作为临时表空间使用。参数 temp_tablespaces 的值是一个表空间名的列表,当列表中有多于一个成员时,每个临时关系会被随机的存储在其中一个临时表空间中。如果该参数未被配置,数据库将缺省的使用默认表空间,通常为sys_default,兼作为临时表空间使用。
临时表也可以建立在用户指定的表空间中,因此临时表空间只是一个缺省的选择。
父主题: 创建表空间
你可以使表空间进入脱机状态,以使它暂时不可被访问和使用,数据库的其他表空间仍然可以正常访问。你可以使已脱机的表空间重新进入联机状态,以使它可以再次被访问。
使表空间脱机
使一个表空间进入脱机状态,以使它暂时不可被访问和使用。
使表空间联机
使一个表空间进入联机状态,以使它可以再次被访问。这是表空间的初始状态和通常状态。
父主题: 管理表空间
使表空间脱机以使其中的数据不可被访问。只有表空间属主或超级用户具备执行该操作的权限
你可能希望表空间脱机的原因有:
使数据库的一部分数据不可用,同时保持其余部分可以正常访问。
在某应用程序维护和升级期间,保护其所属的数据不被更改和访问。
使一个表空间脱机的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 OFFLINE 子句。
不能使系统表空间 sys_default 和 sys_global 进入脱机模式。
在使表空间脱机之前,应小心那些已将默认表空间设置为该表空间的用户,为其变更默认表空间,否则这些用户可能会无法正常的访问数据。
例如,使用以下语句使表空间脱机:
ALTER TABLESPACE tablesp OFFLINE;
父主题: 修改表空间可用性
使表空间联机,使其中的数据可以被正常访问。联机状态是表空间的初始状态和通常状态,以便用户正常的访问表空间中的数据。
使一个表空间联机的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 ONLINE 子句。
例如,使用以下语句使表空间脱机:
ALTER TABLESPACE tablesp ONLINE;
父主题: 修改表空间可用性
你可以将表空间设置为只读模式,以防止其中存储的数据被更改。
关于只读表空间
只读表空间是被设置为只读模式的表空间,其中的数据不能被更改。
使表空间只读
使用包含 READ ONLY 子句的 ALTER TABLESPACE 命令以使表空间进入只读模式。
使只读表空间可读写
使用包含 READ WRITE 子句的 ALTER TABLESPACE 命令以使表空间进入读写模式。
父主题: 管理表空间
将表空间设置为只读模式,以使表空间中的数据只能被读取,不能被更新和写入。
只读表空间的主要目的是消除对数据库大量静态数据执行备份和恢复的需要。只读表空间还提供了一种保护历史数据不被篡改的方法。将表空间设置为只读可防止用户对表空间中的所有表进行更新,而与用户的更新权限无关。
只读表空间中的对象,如表、索引等,不能被创建、删除、更改定义。目前不支持将只读表空间中的数据放在只读设备,如CD-ROM等上存储。
父主题: 使用只读表空间
通过 ALTER TABLESPACE 命令可以将表空间设置为只读模式。 所有表空间被初始化时都是可读写的。只有表空间属主或超级用户具备执行该操作的权限。
使一个表空间只读的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 READ ONLY 子句。
例如,使用以下语句使表空间只读:
ALTER TABLESPACE tablesp READ ONLY;
父主题: 使用只读表空间
使只读表空间置为可读写模式,以接受对数据文件的写入操作。
使一个表空间可读写的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 READ WRITE 子句。
例如,使用以下语句使表空间可读写:
ALTER TABLESPACE tablesp READ WRITE;
父主题: 使用只读表空间
你可以修改表空间的参数和属主等信息。
只有表空间属主或超级用户具备执行该操作的权限。
修改表空间的参数的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 SET tablespace_option = value 子句。
例如,使用以下语句修改表空间的参数:
ALTER TABLESPACE tablesp SET tablespace_option = value;
合法的tablespace_option有seq_page_cost、random_page_cost和effective_io_concurrency。 它们功能的介绍详见:ALTER TABLESPACE
修改表空间的属主的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 OWNER TO 子句。
例如,使用以下语句修改表空间的属主:
ALTER TABLESPACE tablesp OWNER TO user;
父主题: 管理表空间
你可以修改表空间的名称。 只有表空间属主或超级用户具备执行该操作的权限。
重命名表空间的方式:
执行SQL语句 ALTER TABLESPACE,其中包含 RENAME TO 子句。
例如,使用以下语句重命名表空间:
ALTER TABLESPACE tablesp RENAME TO newtablesp;
父主题: 管理表空间
如果不再需要表空间,你可以删除它。在一个表空间能被删除前,其中必须没有任何数据库对象。 只有表空间属主或超级用户具备执行该操作的权限。
系统表空间 sys_default 和 sys_global 不能被删除。 正在被用作临时表空间的表空间不能被删除,因为有临时文件存在其中。
删除表空间的方式:
执行SQL语句 DROP TABLESPACE。
例如,使用以下语句删除表空间:
DROP TABLESPACE tablesp;
父主题: 管理表空间
以下系统表和视图提供了表空间有关的相关信息。
视图 |
描述 |
---|---|
SYS_TABLESPACE |
记录所有表空间信息的系统表 |
SYS_DATABASE |
查询所有数据库使用的默认表空间 |
DBA_TABLESPACE、 USER_TABLESPACE |
显示所有表空间信息的易阅读系统视图 |
父主题: 管理表空间