postgresql-管理表空间

PostgreSQL-表空间、数据库、模式、角色实践 目录 1表空间(tablespace) 数据库(database) 模式(Schema) ​​​​​​​角色(role||user) 1. 表空间(tablespace) 不同的数据库表空间有不同的定义。在postgres中,表空间允许在文件系统中定义数据库对象存储的位置,实质上就是指定一个目录。 1.2 应用场景 存储磁盘没有空间时,可以使用表空间把数据存在其它地方; 利用表空间对数据库进行性能优化。常用来将频繁使用的数据表或者索引放在高性能的硬盘上,而较少使用的放在普... 阅读详情

基本概念

在 PostgreSQL 中,表空间(tablespace)表示数据文件的存放目录,这些数据文件代表了数
据库的对象,例如表或索引。当我们访问表时,系统通过它所在的表空间定位到对应数据文件所
在的位置
在这里插入图片描述
PostgreSQL 中的表空间与其他数据库系统不太一样,它更偏向于一个物理上的概念
表空间的引入为 PostgreSQL 的管理带来了以下好处:

  • 如果数据库集群所在的初始磁盘分区或磁盘卷的空间不足,又无法进行扩展,可以在其
    他分区上创建一个新的表空间以供使用
  • 管理员可以根据数据库对象的使用统计优化系统的性能。例如,可以将访问频繁的索引
    存放到一个快速且可靠的磁盘上,比如昂贵的固态硬盘。与此同时,将很少使用或者对
    性能要求不高的归档数据表存储到廉价的低速磁盘上

PostgreSQL 在集群初始化时将所有的数据文件和配置文件存储到它的数据目录中,通常是
环境变量 PGDATA 的值。默认创建了两个表空间:

  • pg_default,template1 和 template0 默认的表空间,也是创建其他数据库时的默认表空间;
    对应目录为安装目录下data文件下的base文件夹
    在这里插入图片描述
  • pg_global,用于存储一些集群级别的共享系统表(system catalogs),例如 pg_database、
    pg_control; 对应目录为安装目录下data文件下的global文件夹
    在这里插入图片描述
    官网关于文件和目录的介绍

创建表空间

创建新的表空间使用create tablespace

CREATE TABLESPACE 表空间名称
OWNER 用户名称
LOCATION 目录;

表空间的名称不能以 pg_开头,它们是系统表空间的保留名称;LOCATION 参数必须指定
绝对路径名,指定的目录必须是一个已经存在的空目录,PostgreSQL 操作系统用户(postgres)
必须是该目录的拥有者,以便能够进行文件的读写

-- 创建表空间
create tablespace app_tbs location 'D:\tools\postgresql\data\app_tbs';

在这里插入图片描述
在表空间对应的目录中,创建一个特定版本的子目录(PG_版本_创建时间)
在这里插入图片描述

用户授权

--对于普通用户,需要授予表空间上的对象创建权限才能使用该表空间。我们为用户 tony 授予表空间 app_tbs 上的使用权限:
grant create on tablespace app_tbs to tony;

移动表空间

PostgreSQL 支持在 CREATE DATABASE、CREATE TABLE、CREATE INDEX 以及 ADD
CONSTRAINT 语句中指定 tablespace_name 选项,覆盖默认的表空间(pg_default)。也可以使
用相应的 ALTER …语句将对象从一个表空间移到另一个表空间

-- alter table if exists 表空间名.表名  set tablespace 新的表空间
alter table if exists public.products set tablespace app_tbs;

对于临时表和索引,使用配置参数 temp_tablespaces 进行控制,参考官方文档

修改表空间

如果需要修改表空间的定义,可以使用 alter tablespace 语句:

ALTER TABLESPACE name RENAME TO new_name
ALTER TABLESPACE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER TABLESPACE name SET ( tablespace_option = value [, ... ] )
ALTER TABLESPACE name RESET ( tablespace_option [, ... ] )

第一个语句用于表空间的重命名;第二个语句用于修改表空间的拥有者;最后两个语句用于
设置表空间的参数。
只有表空间的拥有者或超级用户才能修改表空间的定义。

--将表空间 app_tbs 重命名为 hr_tbs
alter tablespace app_tbs rename to hr_tbs;

表空间名称变了,存储的位置没有变
在这里插入图片描述
PostgreSQL 支 持 设 置 的 表 空 间 参 数 包 括seq_page_cost
random_page_cost
effective_io_concurrency

移动表空间位置

目前,PostgreSQL 还不支持使用语句修改表空间的存储路径。但是,可以通过手动的方式移动表空间的位置:

  • 停止 PostgreSQL 服务器进程;
    在这里插入图片描述

  • 移动文件系统中的数据文件位置;

  • 修改 安装目录下data文件夹下表空间的链接,指向新的目录
    在这里插入图片描述

  • 启动 PostgreSQL 服务器进程
    在这里插入图片描述

删除表空间

对于不再需要的表空间,可以使用drop tablespace语句进行删除

DROP TABLESPACE [ IF EXISTS ] name

IF EXISTS 可以避免删除不存在的表空间时产生错误信息。
只有表空间的拥有者或超级用户能够删除表空间。删除表空间之前需要确保其中不存在任何
数据库对象,否则无法删除
其他数据库中也可能存在依赖于被删除表空间的对象,同样需要先进行处理,才能删除表空
间。
删除表空间时,同时会删除文件系统中对应的表空间子目录。

PostgreSQL:表空间 PostgreSQL 中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在 PostgreSQL 中表空间实际上就是给表指定一个存储目录。 作用 通过使用表空间,管理员可以控制一个 PostgreSQL 安装的磁盘布局。这么做至少有两个用处。 如果初始化集簇所在的分区或者卷用光了空间,而又不能在逻辑上扩展或者做别的什么操作,那么表空间可以被创建在一个不同的分区上,直到系统可以被重新配置。 表空间允许管理员根据数据库对象的使用模式来优化性能。例如,一个很频繁使用的索引可以被 阅读详情

相关推荐

PostgreSQL 如何应对数据库存储空间不足的情况?

存储空间不足是 PostgreSQL 数据库中常见的问题,但通过合理的规划、监控和优化措施,可以有效地应对这个问题。增加存储空间、清理无用数据、优化表结构、数据分区以及及时的监控和预警是解决存储空间不足的关键步骤。根据实际的业务需求和数据库环境,选择合适的方法组合,以确保数据库的稳定运行和良好性能。🎉相关推荐🍅关注博主🎗️带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf📙PostgreSQL 中文手册📘PostgreSQL 技术专栏。

发现生活,分享智慧,一起成长! 2695

mysql 查看所有用户_当面试官问你查看共用一个表空间的所有用户时该怎么办?...

概述有朋友问到如何查出表空间都被哪些用户使用的一些方法,因为有几种情况需要考虑,也顺便做个总结。需求:如何查看共用一个表空间的所有用户查看某表空间下表的所有者使用dba用户查询:1、如果先要知道表空间的命名,可以这样查询:select tablespace_name from dba_tablespaces;2、然后再通过一个表空间的名,利用dba_tables视图查看,这个表空间下表的所有者,就...

weixin_39963096的博客 447

《PostgreSQL开发指南》第07篇 管理表空间

在 PostgreSQL 中,表空间(tablespace)表示数据文件的存放目录,这些数据文件代表了数据库的对象,例如表或索引。当我们访问表时,系统通过它所在的表空间定位到对应数据文件所在的位置。 本篇介绍 PostgreSQL 中如何管理表空间,包括 CREATE TABLESPACE、ALTER TABLESPACE 以及 DROP TABLESPACE 语句。

Tony.Dong的专栏 2437

Postgresql表空间详解

Postgresql表空间详解

lusklusklusk的博客 6275

PostgreSQL-表空间的创建、修改和删除

“表空间”支持把不同的数据库、数据表,放在不同的存储介质或不同的文件系统下。比如我们可以将频繁更新、查询的表放在高速存储介质中(固态硬盘)以提高数据查询的速度,将查询、更新操作不频繁的表放置在机械硬盘中。 语法中,大写字符是关键字,小写字符是自定义的名称和路径参数说明: 创建表空间时可能会报错,报错如下提示没有权限因为数据库的安全策略,这个文件夹不属于postgres用户,所以表空间不能被建立在这个文件夹中。...

孙霸天的专栏 4930

直播间人气协议算法:从批量操作到数据接口的自动化实现

本文深入解析直播间人气协议算法的实现原理与技术细节,涵盖批量账号管理、IP代理方案、用户行为模拟算法及平台数据接口调用策略。通过逆向工程分析通信协议,结合算法设计实现自动化流量提升,同时探讨风控规避与系统性能优化方案,为开发者提供合规的技术实践参考。

weixin_30505225的博客 515

PostgreSQL15——管理表空间

表空间的名称不能以 pg_开头,它们是系统表空间的保留名称;LOCATION 参数必须指定绝对路径名,指定的目录必须是一个已经存在的空目录,PostgreSQL 操作系统用户(postgres)必须是该目录的拥有者,以便能够进行文件的读写。在PostgreSQL 中,表空间(tablespace)表示数据文件的存放目录,这些数据文件代表了数据库的对象,例如表或索引。默认情况下,执行 CREATE TABLESPACE 语句的用户为该表空间的拥有者,也可以使用OWNER 选项指定拥有者。

吴声子夜歌的博客 1452

从0开始部署基础的AlwaysOn

在这个快餐文化盛行的时代,应该没多少人真的会沉下心来看理论和具体步骤,加上我自己也需要一篇可以扩展的快速搭建环境的指引,所以特别写了这篇文章。 我们在这里要做的事情有以下几个:安装环境。包括虚拟机和网络配置等。安装Windows域、配置必要的账号密码及功能。搭建域环境并进行配置。安装配置Windows Server Failover Cluster(WSFC)。安装SQL Server。配置Alw

MVP黄钊吉(發糞塗牆) 7566

postgresql 表空间

pgsql允许管理员在文件系统里定义表空间存储位置,这样创建数据库对象时候就可以引用这个表空间了。好处就不用多说了,可以把数据库对象存储到不同的分区上,比如更好的存储之类。默认initdb之后会有两个表空间pg_global和pg_default。查看pgsql当前表空间有哪些可以试试下面:postgres=> SELECT spcname FROM pg_tablespace;

smallfish | http://chenxiaoyu.org/blog 1068

EEGLAB安装、EDF数据导入、EEG预处理(Matlab)

目录下载和安装下载安装遇到问题及解决方案导入EDF数据EEG预处理 下载和安装 下载 链接:https://pan.baidu.com/s/17eMT6B7LgZ4PyqWvD5ixmg 提取码:12gz 安装 **第一步:**将下载下来的文件解压,修改名称为eeglab,将此文件夹存放在matlab的安装目录里的toolbox文件夹下,下图是我的路径,需要拷贝到自己相对应的路径中 第二步: 打开Matlab软件,点击主页中的设置路径 设置路径 点击添加并包含子文件夹,将eeglab文件夹添加进来,保

y18771025420的博客 1万+

VM虚拟机下,通过无线,有线两种方式连接PLC的设置方法

1,VMware软件:编辑>虚拟网络编辑器。 2.右下角:更改设置(如果可以选中“添加网络”选项,则可考虑略过此步) 3.选中VMnet0,点击桥接模式,选中你的物理机有线网卡。点击确定。 4.点击添加网络,我的添加完是VMnet2,然后选中,像上一步样,点击桥接模式,在下拉菜单中选中笔记本的【无线网卡】,然后点击确定。 5.VMware软件:虚拟机>设置。 6.点击 添加>网络...

weixin_46441715的博客 2万+

postgresql 表迁移表空间

os: ubuntu 16.04 db: postgresql 10.6 postgresql 的表空间其实就是操作系统的一个文件夹.有时候需要将热点数据移动到SSD盘.就会在数据库层面创建一个表空间指向SSD的文件夹目录. 版本 # lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: U...

一名数据库爱好者的专栏 2845

紫光同创国产FPGA学习之Fabric Debugger

文章从紫光同创参考书拷贝过来的。因为我用的时候,看了一下就会用了(纯粹只是会用了,默认和xilinx的一样),没有看教程。先更新点文本,后面在写程序。 一、      软件简介 Fabric Debugger是一款界面化的FPGA芯片调试工具,能够针对公司目前以及未来的FPGA芯片进行在线调试。本软件直接与JtagHub、DebugCore交互,能够实时的配置目标FPGA、设置触发条件并且观测结...

my_share的专栏 6386

PostgreSQL的表空间

在 PostgreSQL 中,表空间(Tablespace)是一个可以用于存储数据库对象(如表、索引)的文件系统位置。PostgreSQL的表空间让你可以将数据库对象分散存储在不同的系统目录中,以优化磁盘I/O、管理数据存放、更好地进行性能调优,以及灵活地管理磁盘空间。

文牧之的博客 2318

1.Fay-UE5数字人工程导入(UE数字人系统教程)

ue5数字人系列教程(含源文件工程)

1万+

天融信防火墙NGFW4000(TG-4628)安装配置笔记

配置一台全新的天融信防火墙NGFW4000,配置完后,内网用户10.10.1.0/24和10.10.2.0/24可以通过防火墙上网,外网用户可以通过访问防火墙的外网接口地址来访问内网的WEB服务器10.10.1.200,并且内网用户也可以通过WEB服务器的外网地址进行访问。 网络说明: 防火墙外网接口地址:218.90.123.121/30 防火墙内网接口地址:19...

weixin_33671935的博客 4454

postgresql 表空间创建、删除

表空间:字面上理解就是表存储的物理空间,其实包括数据库的表、索引、序列等。 可以将表空间创建在服务器的不同分区,这样做的好处有: 一、如果初始化集群所在分区已经用光,可以方便的其他分区上创建表空间已达到扩容的目的。 二、对于频繁访问的数据可以存储在性能较高、较快的磁盘分区上,而不常用的数据存储在便宜的较慢的磁盘分区上。 语法: postgres=# \h create tables...

weixin_33969116的博客 300

Mplus实战:随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用

本文深入探讨了随机截距交叉滞后模型(RI-CLPM)在心理学纵向研究中的进阶应用,通过Mplus实战演示了模型设定、结果解读及进阶建模策略。RI-CLPM能有效区分个体间差异和个体内变化,适用于追踪青少年手机使用与抑郁症状等研究。文章还提供了样本量规划、模型比较和结果可视化等实用技巧,助力研究者避免常见陷阱。

weixin_29220405的博客 369

【PostgreSQL-9.6.3】表空间

在PostgreSQL中,表空间实际上是为表指定一个存储目录,这样方便我们把不同的表放在不同的存储介质或者文件系统中。在创建数据库、表、索引时都可以指定表空间。 1. 创建表空间 --表空间目录必须是系统中已存在的目录 test=# create tablespace tb_01 location '/opt/postgresql/data/pg_data'; CREATE TABLE

Just Do IT 760

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

查看postgresql当前表空间

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33727510的博客 2184

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

PostgreSQL 表空间

PostgreSQL 表空间 一 介绍使用表空间可以将不同的表放到不同的存储介质或不同的文件系统下,实际上是为表指定一个存储的目录。创建数据库,表,索引时可以指定表空间,将数据库,表,索引放到指定的目录下。 二 使用示例 创建表空间create tablespace tbs_data location '/home/postgres/tbs_data'; 查看\db ...

weixin_30892763的博客 187

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

pg数据库表存放在哪里_史上最全的postgresql表空间介绍

概述在数据库运维工作中,经常会有数据目录使用率较高需要调整的情况,通常会给数据库建立多个表空间,并分别位于不同的盘上,这时需要做的工作就是调整库中现有表和索引的表空间。今天主要针对PG表空间做一下总结。表空间用途PostgreSQL中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在PostgreSQL中表空间实际上就是给表指定一个存储目录。通过使用表空间,管理员可以控制一个Pos...

weixin_35964207的博客 2778

postgresql 临时表_一文看懂PG的表空间物理布局设计、布局及管理

概述PostgreSQL中的表空间实际上就是文件系统位置的一个目录,可以保存所有其他对象的容器,如表、索引等,有默认表空间、共享系统表表空间、自定义表空间。一般PG DBA会规划一个存索引的表空间、存归档的表空间,一个很频繁使用的索引可以被放在非常快并且非常可靠的磁盘上,一个很少使用的或者对性能要求不高的存储归档数据的表可以存储在一个便宜但比较慢的磁盘系统上。DBA规划表空间就是合理利用磁盘性能和...

weixin_32831351的博客 988

oracle 清空表_史上最全的postgresql表空间介绍

概述在数据库运维工作中,经常会有数据目录使用率较高需要调整的情况,通常会给数据库建立多个表空间,并分别位于不同的盘上,这时需要做的工作就是调整库中现有表和索引的表空间。今天主要针对PG表空间做一下总结。表空间用途PostgreSQL中的表空间允许在文件系统中定义用来存放表示数据库对象的文件的位置。在PostgreSQL中表空间实际上就是给表指定一个存储目录。通过使用表空间,管理员可以控制一个Pos...

weixin_39642687的博客 363

postgresql 临时表_超详细的PG表空间布局设计、管理方式介绍

概述PostgreSQL中的表空间实际上就是文件系统位置的一个目录,可以保存所有其他对象的容器,如表、索引等,有默认表空间、共享系统表表空间、自定义表空间。一般PG DBA会规划一个存索引的表空间、存归档的表空间,一个很频繁使用的索引可以被放在非常快并且非常可靠的磁盘上,一个很少使用的或者对性能要求不高的存储归档数据的表可以存储在一个便宜但比较慢的磁盘系统上。DBA规划表空间就是合理利用磁盘性能和...

weixin_32027779的博客 1957

postgres讲义05_创建postgres表空间

PostgreSQL中表空间实际上就是给表指定一个存储目录。 表空间的用途 1,如果初始化集簇所在的分区或者卷用光了空间,表空间可以被创建在一个不同的分区上,重新配置。 2,根据数据库对象的使用模式来优化性能。 例如,一个很频繁使用的索引可以被放在非常快并且非常可靠的磁盘上(如一种非常贵的固态设备)。 表空间跟数据库关系 a-在Oracle数据库中;一个表空间只属于一个数据库使用;而一...

木生火 1772
上一篇: postgresql-管理数据表
下一篇: postgresql-备份与恢复
迷失的小鹿
博客等级 码龄8年 1万+粉丝 199原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值