表空间迁移

文章目录

环境

系统平台: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)
相关推荐
Teable任意门互动17 分钟前
AI原生开源多维表格有哪些?主流开源多维表格对比解析
数据库·开源·excel·钉钉·飞书·开源软件·ai-native
TDengine (老段)1 小时前
MNode 内部机制深度解析 — SDB、事务引擎与 DDL 处理全链路
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
这个DBA有点耶1 小时前
数据库上云 vs 自建:从成本到人力的三维对比与决策框架
数据库·经验分享·sql·创业创新·dba
shizhan_cloud1 小时前
MySQL 索引优化 + 慢查询日志
数据库·mysql
Drache_long1 小时前
MySQL数据库(故障排除)
数据库·mysql
2303_821287381 小时前
如何清洗SQL输入数据_使用框架内置的ORM处理数据交互
jvm·数据库·python
清风雅雨1 小时前
AI编程:OA流程明细表中多个金额字段由整数改为2位小数
数据库·ai编程
菜鸟上路_lbz1 小时前
sqlserver存储过程查询缓慢锁表分析
数据库·sqlserver
Elastic 中国社区官方博客1 小时前
在 Elasticsearch 中使用利润率与流行度加权来优化电商搜索
大数据·数据库·elasticsearch·搜索引擎·全文检索
van久2 小时前
Day32:项目性能优化(EF Core + 分页 + 全异步)
数据库·oracle·性能优化