PG-表空间管理

摘要:
表空间也是数据库集簇的一部分并且不能被视作数据文件的一个自治集合。当初始化数据库集簇时,会自动创建两个表空间。pg_default表空间是template1和template0数据库的默认表空间。$PGDATA/pg_tblspc目录包含指向集簇中定义的每个非内建表空间的符号连接。这可以是一个表空间名的列表,使用逗号隔开。

2.5 表空间

PostgreSQL中的表空间允许数据库管理员在文件系统中定义用来存放表示数据库对象的文件的位置。一旦被创建,表空间就可以在创建数据库对象时通过名称引用。

表空间也是数据库集簇的一部分 并且不能被视作数据文件的一个自治集合。 它们依赖于包含在主数据目录中的元数据,并且因此不能被附加到一个不同的数据库集簇或者单独备份。

当初始化数据库集簇($PGDATA)时,会自动创建两个表空间。pg_global表空间被用于共享系统目录。pg_default表空间是template1template0数据库的默认表空间。$PGDATA/pg_tblspc目录包含指向集簇中定义的每个非内建表空间的符号连接。

表空间符号链接

2.5.1 创建表空间

表空间创建步骤
  • 在服务器上创建文件系统目录
  • 修改目录权限
  • 数据库上创建表空间
-- 格式
CREATE TABLESPACE fastspace LOCATION '/ssd1/postgresql/data';

位置必须是一个已有的空目录,并且属于PostgreSQL操作系统用户

# 1. FS上创建目录
mkdir -p /ups/data/pgdata/devtbs
chown postgres:postgres /ups/data/pgdata/devtbs
chmod 700 /ups/data/pgdata/devtbs

# 2. psql上创建表空间
create tablespace "devtbs" location '/ups/data/pgdata/devtbs';

# 3. create dbs
create database "devdb" with owner = postgres encoding = 'UTF8' tablespace = devtbs;

# 4. show info
select oid, datname from pg_database;

2.5.2 临时表空间

temp_tablespaces参数决定临时表和索引的位置,以及用于大数据集排序、聚合等目的的临时文件的位置。 这可以是一个表空间名的列表,使用逗号隔开。因此,与临时对象有关的负载可以散布在多个表空间上。每次要创建一个临时对象时,将从列表中随机取一个成员来存放它。

创建表空间目录路径
mkdir -p /ups/data/pgdata/12/pg_tbs_tmp
chown postgres:postgres /ups/data/pgdata/12/pg_tbs_tmp
chmod 700 /ups/data/pgdata/12/pg_tbs_tmp
创建表空间
-- 创建表空间
CREATE TABLESPACE tbs_tmp LOCATION '/ups/data/pgdata/12/pg_tbs_tmp';
设置临时表空间
在session 级别设置临时表空间
set session temp_tablespaces='tbs_tmp';
修改配置文件参数 temp_tablespaces (永久)
vi $PGDATA/postgresql.conf
#temp_tablespaces = ''			# a list of tablespace names, '' uses


pg_ctl reload
查看临时表空间
show temp_tablespaces

2.5.3 删除表空间

语法
10:40:01 [local]:5432 postgres@postgres=# h DROP TABLESPACE
Command:     DROP TABLESPACE
Description: remove a tablespace
Syntax:
DROP TABLESPACE [ IF EXISTS ] name

URL: https://www.postgresql.org/docs/12/sql-droptablespace.html

示例
drop tablespace if exists tbs_test;

查看表空间信息

元命令 db[+]
10:19:58 [local]:5432 postgres@postgres=# db+
                                           List of tablespaces
    Name    |  Owner   |          Location          | Access privileges | Options |  Size  | Description 
------------+----------+----------------------------+-------------------+---------+--------+-------------
 devtbs     | postgres | /ups/data/pgdata/12/pg_usr |                   |         | 53 MB  | 
 pg_default | postgres |                            |                   |         | 46 MB  | 
 pg_global  | postgres |                            |                   |         | 863 kB | 
(3 rows)

SQL 语句
select * from pg_catalog.pg_tablespace;

创建数据库对象到指定表空间

-- 1.1 
CREATE TABLE foo(i int) TABLESPACE sp1;

-- 1.2 指定默认表空间
SET default_tablespace = sp1;
CREATE TABLE foo(i int);

免责声明:文章转载自《PG-表空间管理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇pdb调试hadoop入门手册4:Hadoop【2.7.1】初级入门之命令:文件系统shell1下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SqlServer数据库存入decimal类型数据注意事项

对sqlserver而言,Decimal可用来保存具有小数点而且数值确定的数值,它不像float和real是用来保存近似值。目的是满足进行精密数学运算的需求,它是范围最大、最精确的浮点数类型。 decimal类型需要注意是要指定精度否则decimal就会和int一样只能存入整数。例如:decimal(18,2)就是存入长度18位,小数点后2位的数据。...

MyBatis 映射文件详解(六)

MyBatis 配置文件类型 MyBatis配置文件有两种类型,如下: 全局配置文件(如 mybatis-config.xml) Mapper XML 映射文件(如 UserMapper.xml) 上篇讲解全局配置文件,这篇接着讲解Mapper 接口映射文件 Mapper XML 映射文件详解 CRUD 标签(或元素) select Map...

Oracle—dblink创建与使用

一、DbLink的创建 1.PLSQL图文方式 2.SQL方式 -- Drop existing database link drop database link LINK_NC_ZS; -- Create database link create database link LINK_NC_ZS connect to ZSFNC identi...

mongodb的配置参数

Mongodb启动命令mongod参数说明mongod的主要参数有: 基本配置-------------------------------------------------------------------------------- --quiet # 安静输出 --port arg # 指定服务端口号,默认端口27017 --bind...

六、对ES增删改查

一、ES的数据结构 ES跟MySQL有很大的区别,现在将MySQL跟ES做对比,这样方便理解。 因为ES数据库是通过API接口进行访问的,访问的方式有如下几种 1、es-head插件 2、kibana控制台 3、curl命令 4、Postman工具 1、ES数据库结构对比 MySQL术语 ES术语 库,databases 索引,index 表...

怎么删除表空间对应的某一个数据文件

如果想要删除表空间的数据文件,最好且最安全的办法是,删除表空间后重建 步骤如下:   1,导出该表空间中的所有内容;   2,删除表空间:DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS;   3,重新创建新的表空间及其数据文件;   4,将导出的数据导入表空间; 但是在实际应用环境中,数...