表空间迁移

文章目录

环境

系统平台: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)
相关推荐
闲猫1 天前
LangChain / Integrations / Integrations by component / Tool
java·数据库·langchain
xqqxqxxq1 天前
SQL 连接查询技术笔记
数据库·笔记·sql
Databend1 天前
从万亿级大模型到全线应用:Databend Cloud 助力头部 AI 企业构建全链路 Trace 数据管道
大数据·数据库·sql
MC皮蛋侠客1 天前
SQLAlchemy 系列(十一):从 1.x 到 2.x——渐进迁移与数据访问层治理
数据库·python
1001101_QIA1 天前
工控机网络配置
开发语言·数据库·php
ClouGence1 天前
加一张临时表,OceanBase Oracle 写入居然快了 30 倍!
数据库·sql·oracle
tju23331 天前
信创产业二十年:国产基础软件走到哪一步了?
数据库·gitee
东方护航数据恢复(深圳)1 天前
RAID5单盘故障后阵列状态分析与重建风险评估_东方护航数据恢复深圳店
大数据·数据库
会编程的土豆1 天前
GORM 常见操作从入门到能写 DAO
数据库·gorm