表空间迁移

文章目录

环境

系统平台:Linux x86-64 Red Hat Enterprise Linux 8

版本:4.5.10

文档用途

瀚高数据库表空间位置变更及表空间的数据迁移

详细信息

1.将原表空间下的数据备份

sql 复制代码
pg_dump -F c -f  /opt/db111.dmp  -C -v -E UTF8  -U sysdba -d db111 >>/opt/db111.txt 2>&1

2.删除原有表空间,删除表空间前请先删除表空间内的对象,否则会提示表空间目录不为空不允许删除

sql 复制代码
highgo=# \l+
                                                                 List of databases
   Name    | Owner  | Encoding |   Collate   |    Ctype    | Access privileges |   Size   | Tablespace |    
            Description                 
-----------+--------+----------+-------------+-------------+-------------------+----------+------------+----
----------------------------------------
 db111    | sysdba | UTF8     | en_US.UTF-8 | en_US.UTF-8 |                   | 10018 kB | db111        | 

highgo=# \db
      List of tablespaces
    Name    | Owner  | Location 
------------+--------+----------
 pg_default | sysdba | 
 pg_global  | sysdba | 
 db111        | sysdba | /opt

可以看到表空间db111关联的库为db111,位置为/opt,此时如果只删除表空间会报错,先删除数据库后才能正常删除表空间

sql 复制代码
highgo=# drop tablespace db111;
ERROR:  tablespace "db111" is not empty

highgo=# drop  database  db111;
DROP DATABASE
highgo=# drop tablespace db111;
DROP TABLESPACE
highgo=# 

3.新建表空间和数据库

sql 复制代码
highgo=# create  tablespace db111 location '/data/hgtbs01';
CREATE TABLESPACE
highgo=# create  database  db111;
CREATE DATABASE
highgo=# alter database db111 tablespace  db111;
ALTER DATABASE

4.恢复数据

sql 复制代码
pg_restore -U sysdba -d db111  -v /opt/db111.dmp >> /opt/db111.txt 2>&1

5.验证数据

sql 复制代码
[root@CentOS opt]# psql -U sysdba -d  db111
Password for user sysdba: 
NOTICE:  
-------------------------------------------
Login User: sysdba 
Login time: 2025-04-21 01:05:34.040101+08 
Login Address: [local] 
Last Login Status: SUCCESS 
Login Failures: 0 
Valied Until: infinity 
-------------------------------------------

psql (4.5.10.2)
Type "help" for help.

db111=# \dt
            List of relations
 Schema |      Name      | Type  | Owner  
--------+----------------+-------+--------
 public | hg_t_audit_log | table | syssao
 public | test111        | table | sysdba
(2 rows)


db111=# select * from test111;
 a 
---
 3
 3
 3
(3 rows)
相关推荐
两点王爷9 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
两点王爷10 小时前
PostgreSQL 好用又独特的特性与空间函数
数据库
梦帮科技10 小时前
AI 音乐产品的发布工程:验证门、数据发布、回滚与生产运维纪律
数据结构·数据库·架构·node.js·音视频·动态规划·推荐算法
TDengine (老段)11 小时前
TDengine 常见问题 TOP3
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
螺蛳粉 螺蛳粉14 小时前
MySQL 分布式集群系列 · 第五篇——全方位对比:NDB、MGR、主从复制、分库分表怎么选?
数据库·分布式·mysql
这个DBA有点耶18 小时前
从OLTP到OLAP到HTAP:数据库负载分类的技术演进与选型指南
数据库·mysql·架构
YangYang9YangYan19 小时前
商业数据分析校招项目怎么选,附项目设计与简历包装思路
大数据·数据库·数据分析
李白客20 小时前
数据库培训怎么选?零基础到DBA的学习路线与机构认证对比(2026)
数据库·学习
shark-chili20 小时前
关于AI辅助编程的认知
数据库·人工智能·redis·macos·缓存
SendTomo20 小时前
.ico透明图标在线生成下载平台深度解析
大数据·数据结构·数据库·数据仓库·个人开发