postgresql14管理(五)-tablespace

2023-10-27 16:28

本文主要是介绍postgresql14管理(五)-tablespace,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基本概念

表空间tablespace在postgresql中,表示数据库对象(比如表或索引)的存放目录。当表被访问时,系统通过表空间定位到对应数据文件所在的位置。
在这里插入图片描述
优势:
1、如果数据库集群所在的初始磁盘分区或磁盘卷的空间不足,又无法进行扩展,可以在其他分区上创建一个新的表空间以供使用;
2、可以根据数据库对象的使用统计优化系统的性能。例如,可以将访问频繁的索引存放到固态硬盘,而对于将很少使用,或对性能要求不高的归档数据表存储到廉价的机械硬盘;

介绍:
在pg集群初始化时将所有的数据文件和配置文件存储到数据目录中,一般是环境变量PGDATA的值。默认创建了两个表空间:
1、pg_default:template1 和 template0 默认的表空间,也是创建其他数据库时的默认表空间,对应的目录为 PGDATA/base;
2、pg_global:用于存储一些集群级别的共享系统表system catalogs(pg_database、pg_control),对应的目录为PGDATA/global;

#查看表空间
postgres=# \db
List of tablespaces
Name | Owner | Location
------------+----------+------------------------
pg_default | postgres |
pg_global | postgres |
(2 rows)
#也可进入到对应目录ls -l /var/lib/pgsql/14/data/

创建

CREATE TABLESPACE tablespace_name
OWNER user_name
LOCATION 'directory'/*
pg_开头的表空间是系统保留,所以不能用来开头;
LOCATION参数必须指定绝对路径名,指定的目录必须是一个已经存在的空目录;
操作系统用户必须是该目录的拥有者,以便能够进行文件的读写;
*/
CREATE TABLESPACE app_tbs LOCATION 'D:\PostgreSQL\14\data\app_tbs';
--成功创建,目录下会出现PG_14_date的目录,同时,目录pgtblspc下会有相应的连接

在这里插入图片描述

--普通用户需要提前获得权限
GRANT CREATE ON TABLESPACE app_tbs TO tony;

CREATE DATABASE、CREATE TABLE、CREATE INDEX 以及 ADD
CONSTRAINT语句中默认的表空间为pg_default,可以通过tablespace_name指定。也可以用ALTER语句将对象从一个表空间移到另一个表空间。

--如果不想手动指定表空间,可以使用配置参数default_tablespace
SET default_tablespace = app_tbs2;

修改

--重命名
ALTER TABLESPACE name RENAME TO new_name;
ALTER TABLESAPCE app_tbs RENAME TO hr_tbs;--更改拥有者
ALTER TABLESPACE name OWNER TO {new_owner | CURRENT_USER | SESSION_USER};
--参数优化
ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] );
ALTER TABLESPACE name RESET ( tablespace_option [, ... ]/*
支持设置的表空间参数:seq_page_cost、random_page_cost、effective_io_concurrency。均用于查询计划器选择执行计划时的代价评估。
*/

修改存储路径:目前不支持通过语句修改,可以以手动方式修改

#1、停止pg服务
pg_ctl stop
#2、移动目录
mv /var/lib/pgsql/app_tbs/ /var/lib/pgsql/tony_tbs
#3、更新软链接至新目录
ln -snf /var/lib/pgsql/tony_tbs /var/lib/pgsql/14/data/pg_tblspc/164
#4、检查
ls -lh /var/lib/pgsql/14/data/pg_tblspc/164
#5、启动pg服务
pg_ctl start#查看表空间
postgres=# \db
/*
删除表:IF EXISTS用作删除不存在的表空间;
只有表空间的拥有者或超级用户能够删除表空间;
删除表空间时,同时会删除文件系统中对应的表空间子目录;
需要确保其中不存在任何数据库对象,否则无法删除;
*/
DROP TABLESPACE [ IF EXISTS ] name
--先删表
DROP TABLE 表名;
--或先将表迁移至其他表空间

在这里插入图片描述

这篇关于postgresql14管理(五)-tablespace的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/286870

相关文章

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Redis实现RBAC权限管理

《Redis实现RBAC权限管理》本文主要介绍了Redis实现RBAC权限管理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1. 什么是 RBAC?2. 为什么使用 Redis 实现 RBAC?3. 设计 RBAC 数据结构

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Linux内存泄露的原因排查和解决方案(内存管理方法)

《Linux内存泄露的原因排查和解决方案(内存管理方法)》文章主要介绍了运维团队在Linux处理LB服务内存暴涨、内存报警问题的过程,从发现问题、排查原因到制定解决方案,并从中学习了Linux内存管理... 目录一、问题二、排查过程三、解决方案四、内存管理方法1)linux内存寻址2)Linux分页机制3)

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

SpringBoot使用minio进行文件管理的流程步骤

《SpringBoot使用minio进行文件管理的流程步骤》MinIO是一个高性能的对象存储系统,兼容AmazonS3API,该软件设计用于处理非结构化数据,如图片、视频、日志文件以及备份数据等,本文... 目录一、拉取minio镜像二、创建配置文件和上传文件的目录三、启动容器四、浏览器登录 minio五、

IDEA中的Kafka管理神器详解

《IDEA中的Kafka管理神器详解》这款基于IDEA插件实现的Kafka管理工具,能够在本地IDE环境中直接运行,简化了设置流程,为开发者提供了更加紧密集成、高效且直观的Kafka操作体验... 目录免安装:IDEA中的Kafka管理神器!简介安装必要的插件创建 Kafka 连接第一步:创建连接第二步:选