表空间迁移

文章目录

环境

系统平台: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)
相关推荐
王二车3 小时前
交叉编译microcom ARM终端串口调试工具
数据库
xxxibolva4 小时前
SQL 学习
数据库·sql·学习
孪生质数-4 小时前
MySQL主从延迟根因诊断法
数据库·mysql
bLEd RING5 小时前
Redis 设置密码无效问题解决
数据库·redis·缓存
WiChP5 小时前
【V0.1B5】从零开始的2D游戏引擎开发之路
java·服务器·数据库
75115896 小时前
笔记:postgresql如何下载驱动并安装?
数据库·postgresql
荒川之神6 小时前
拉链表概念与基本设计
java·开发语言·数据库
Highcharts.js6 小时前
适合报表系统的可视化图表|Highcharts支持直接导出PNG和PDF
javascript·数据库·react.js·pdf
刘~浪地球7 小时前
Redis 从入门到精通(一):简介、安装与配置
数据库·redis·缓存
APIshop7 小时前
Java获取京东商品详情接口(item_get)实战指南
java·linux·数据库