DWS的表空间布局介绍
一、DWS表空间介绍
DWS中的表空间实际上就是数据文件系统位置上的一个目录而已,目录中存放了所有的其他对象,例如:表、索引等等; DWS的表空间又分为:默认表空间:pg_default(base)、全局共享系统表表空间pg_global(global)、用户自定义表空间。 DWS的集群中,每个数据库都会在数据目录的base目录下生成一个子目录,文件目录的名称与数据库的OID一一对应,一个表空间可以让多个数据库使用;数据库的目录也可以分布在多个表空间上,也就是说同一个数据库oid可以存在于不同表空间,属于“多对多”关系。(在Oracle中,一个表空间只属于一个数据库使用,而一个数据库可以使用多个表空间,属于一对多的关系)。
二、DWS默认表空间--pg_default
pg_default 表空间用来存储系统目录对象、用户表、用户表index等等,对应的目录是数据目录下的base目录; 1) :目录名称是"1"的表示是系统数据库template1的数据库对象存储目录; 2) :目录数字倒数第二的是系统数据库template0的数据库对象存储目录; 3) :目录数字倒数第三的是系统数据库postgres的数据库对象存储目录; 4) :其他数字目录是用户建立的数据库目录; 5) :目录的命名方法就是数据库的oid值; 6) :目录中_fsm的文件记录的是每个数据块的空闲空间; 7) :目录中_vm文件让vacuum操作高效工作,被标记为无效的记录需要用vacuum/vacuum full 来进行清理操作,需要一个文件来标识哪些数据块中存在无效的记录来达到高效的清理。
三、DWS系统表空间--pg_global空间
pg_global空间是存放共享的全局系统表的位置,文件种类也类似base目录,一般在数据目录下的global目录;大多数的系统目录都是在数据库创建过程中从模板数据库中拷贝过来的,因此都是与数据库相关的。少数的目录在物理上是在一个集簇的所有数据库间中共享的。常见的使用的全局系统表如下:
系统表名 | 用途 |
pg_pltemplate | 存储过程语言的“模板”信息 |
pg_tablespace | 存储表空间的信息 |
pg_shdepend | 记录数据库对象和共享对象(比如角色)之间的依赖关系 |
pg_authid | 存储有关数据库认证标识符(角色)的信息 |
pg_auth_members | 存储显示角色之间的成员关系 |
pg_database | 存储关于可用数据库的信息 |
pg_resource_pool | 提供了数据库资源池的信息 |
pg_user_status | 提供了访问数据库用户的状态。需要有系统管理员权限才可 以访问此系统表 |
pg_workload_action | 存储query_band的信息 |
pgxc_group | 存储节点组信息 |
pgxc_node | 存储集群节点信息 |
pg_jobs | 存储用户创建的定时任务的任务详细信息 |
四、DWS表空间管理相关命令
1、查看表空间 select * from pg_tablespace;
2、创建表空间 CREATE TABLESPACE tablespace_name [ OWNER user_name ] RELATIVE LOCATION 'directory' [ MAXSIZE 'space_size' ] [with_option_clause]; 其中: RELATIVE
使用相对路径,LOCATION目录是相对于各个CN/DN数据目录下的。
目录层次:CN和DN的数据目录/pg_location/相对路径
相对路径最多指定两层
3、删除表空间 drop tablespace tablespace_name;
4、给数据库指定默认表空间
ALTER DATABASE name SET TABLESPACE new_tablespace;
5、将表从一个表空间移到另一个表空间
ALTER TABLE name SET TABLESPACE new_tablespace;
- 点赞
- 收藏
- 关注作者
评论(0)