postgresql迁移表空间

环境:

OS:Centos 7

DB:13.8

 

1.创建新表空间自定义目录
su - postgres
[postgres@host134 pg13]$ mkdir -p /opt/pg13/mytps01

2.创建表空间
postgres=# create tablespace hxltps01 location '/opt/pg13/mytps01';
CREATE TABLESPACE

3.将数据库迁移到新的表空间(迁移期间不能对表有dml ddl操作)
postgres=# alter database db_test set tablespace hxltps01;
ERROR: database "db_test" is being accessed by other users
DETAIL: There is 1 other session using the database.

杀掉会话:
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'db_test';

select datname from pg_stat_activity;

这个时候pg_tblspc目录会生成一个新的链接符,指向mytps01的
[postgres@host134 pg_tblspc]$ ls -al
total 4
drwx------ 2 postgres postgres 32 Oct 26 16:42 .
drwx------ 19 postgres postgres 4096 Oct 26 10:25 ..
lrwxrwxrwx 1 postgres postgres 15 Oct 26 10:25 32780 -> /opt/pg13/mytps
lrwxrwxrwx 1 postgres postgres 17 Oct 26 16:42 40973 -> /opt/pg13/mytps01


4.删除旧的表空间
postgres=# drop tablespace hxltps;
DROP TABLESPACE

这个时候旧的链接也删除了
[postgres@host134 pg_tblspc]$ ls -al
total 4
drwx------ 2 postgres postgres 19 Oct 26 16:49 .
drwx------ 19 postgres postgres 4096 Oct 26 10:25 ..
lrwxrwxrwx 1 postgres postgres 17 Oct 26 16:42 40973 -> /opt/pg13/mytps01

posted @   slnngk  阅读(295)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-10-26 Error in invoking target 'agent nmhs' of makefile
2020-10-26 打补丁(18370031)
点击右上角即可分享
微信分享提示