> 文档中心 > Linux 上 PostgreSql 14 数据库 和 timescaledb 时序库 数据迁移测试

Linux 上 PostgreSql 14 数据库 和 timescaledb 时序库 数据迁移测试


Linux 上 PostgreSql 14 数据库 和 timescaledb 时序库 数据迁移测试

文章目录

  • Linux 上 PostgreSql 14 数据库 和 timescaledb 时序库 数据迁移测试
  • 🌈前言
    • 任务:
    • 目标:
    • 环境
  • 🌈测试步骤
    • 一 准备工作
    • 二 创建地址及文档
    • 三 把数据迁移
    • 四 修改启动文件
    • 五 启动数据库服务
  • 🌈结果
  • 🌈后记

🌈前言

任务:

由于数据量变大,原本的数据盘不够用了,现在打算扩容,但是由于没法直接扩到原先的数据盘上,先打算把数据迁移到新盘上,再把旧盘格式化,加载到新盘中,以达到扩容的目的。

目标:

测试数据库是否可以通过这个办法迁移数据。

环境

数据库 : postgresql 14
Linux :

Linux web-api 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux 

新盘已挂载,为/u02 的状态下。

🌈测试步骤

一 准备工作

原数据库地址: /u01/apps/pgsql14/data
新数据库地址 : /u02/pgsql14/data

二 创建地址及文档

mkdir -p /u02/pgsql14/data
赋权:
chown -R postgres:postgres /u02/pgsql14/

三 把数据迁移

由于是测试,数据量不大,这边直接 mv ,到现场建议压缩传输。

[root@hrmw-web-api pgsql14]# cd /u01/apps/pgsql14/data[root@hrmw-web-api data]# lsbaseglobal  pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.optscurrent_logfiles  log     pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf[root@hrmw-web-api data]# cd ..[root@hrmw-web-api pgsql14]# mv data /u02/pgsql14/[root@hrmw-web-api pgsql14]# ls

验证:

[root@hrmw-web-api pgsql14]# cd /u02/pgsql14/data[root@hrmw-web-api data]# lsbaseglobal  pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.optscurrent_logfiles  log     pg_dynshmem   pg_ident.conf  pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf[root@hrmw-web-api data]# ll总用量 64drwx------ 7 postgres postgres    71 319 23:51 base-rw------- 1 postgres postgres    30 322 00:00 current_logfilesdrwx------ 2 postgres postgres  4096 319 22:02 globaldrwx------ 2 postgres postgres   188 228 00:00 logdrwx------ 2 postgres postgres     6 222 13:52 pg_commit_tsdrwx------ 2 postgres postgres     6 222 13:52 pg_dynshmem-rw------- 1 postgres postgres  4819 222 14:10 pg_hba.conf-rw------- 1 postgres postgres  1636 222 13:52 pg_ident.confdrwx------ 4 postgres postgres    68 322 14:15 pg_logicaldrwx------ 4 postgres postgres    36 222 13:52 pg_multixactdrwx------ 2 postgres postgres     6 222 13:52 pg_notifydrwx------ 2 postgres postgres     6 222 13:52 pg_replslotdrwx------ 2 postgres postgres     6 222 13:52 pg_serialdrwx------ 2 postgres postgres     6 222 13:52 pg_snapshotsdrwx------ 2 postgres postgres    84 322 14:15 pg_statdrwx------ 2 postgres postgres     6 322 14:15 pg_stat_tmpdrwx------ 2 postgres postgres    18 222 13:52 pg_subtransdrwx------ 2 postgres postgres     6 222 13:52 pg_tblspcdrwx------ 2 postgres postgres     6 222 13:52 pg_twophase-rw------- 1 postgres postgres     3 222 13:52 PG_VERSIONdrwx------ 3 postgres postgres    92 315 09:51 pg_waldrwx------ 2 postgres postgres    18 222 13:52 pg_xact-rw------- 1 postgres postgres    88 222 13:52 postgresql.auto.conf-rw------- 1 postgres postgres 28768 222 15:02 postgresql.conf-rw------- 1 postgres postgres    58 222 15:11 postmaster.opts[root@hrmw-web-api data]# cd ..[root@hrmw-web-api pgsql14]# lsdata[root@hrmw-web-api pgsql14]# ll总用量 4drwx------ 20 postgres postgres 4096 322 14:15 data[root@hrmw-web-api pgsql14]# 

如果 不放心的化,可以用 cp -r 的命令来执行。

四 修改启动文件

使用root用户修改 /usr/lib/systemd/system/postgresql-14.service 文件,将其中的PGDATA修改为新的数据目录

vim /usr/lib/systemd/system/postgresql-14.service
# Location of database directoryEnvironment=PGDATA=/u01/apps/pgsql14/data/

修改为新盘的地址:

# Location of database directoryEnvironment=PGDATA=/u02/pgsql14/data/

五 启动数据库服务

启动服务:systemctl start postgresql-14
停止服务:systemctl stop postgresql-14
重启服务:systemctl restart postgresql-14

验证:

[root@hrmw-web-api pgsql14]# systemctl start postgresql-14[root@hrmw-web-api pgsql14]# systemctl status postgresql-14● postgresql-14.service - PostgreSQL 14 database server   Loaded: loaded (/usr/lib/systemd/system/postgresql-14.service; disabled; vendor preset: disabled)   Active: active (running) since 二 2022-03-22 14:56:09 CST; 11s ago     Docs: https://www.postgresql.org/docs/14/static/  Process: 43358 ExecStartPre=/usr/pgsql-14/bin/postgresql-14-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS) Main PID: 43363 (postmaster)    Tasks: 9   Memory: 23.3M   CGroup: /system.slice/postgresql-14.service    ├─43363 /usr/pgsql-14/bin/postmaster -D /u02/pgsql14/data/    ├─43365 postgres: logger     ├─43367 postgres: checkpointer     ├─43368 postgres: background writer     ├─43369 postgres: walwriter     ├─43370 postgres: autovacuum launcher     ├─43371 postgres: stats collector     ├─43372 postgres: TimescaleDB Background Worker Launcher     └─43373 postgres: logical replication launcher 322 14:56:09 hrmw-web-api systemd[1]: Starting PostgreSQL 14 database server...322 14:56:09 hrmw-web-api postmaster[43363]: 2022-03-22 14:56:09.520 CST [43363] 日志:  日志输出重定向到日志收集进程322 14:56:09 hrmw-web-api postmaster[43363]: 2022-03-22 14:56:09.520 CST [43363] 提示:  后续的日志输出将出现在目录 "log"中.322 14:56:09 hrmw-web-api systemd[1]: Started PostgreSQL 14 database server.[root@hrmw-web-api pgsql14]# 

🌈结果

通过navicat链接数据库进行测试,发现原来的数据都在,还原没有问题。

实时证明这个方法可行,数据库可以用这个方法进行还原。

在这里插入图片描述

🌈后记

如果本文章有何错误,请您评论中指出,或联系我,我会改正,如果您觉得这篇文章有用,请帮忙一键三连,让更多的人看见,谢谢
作者 yang_z_1 csdn博客地址: https://blog.csdn.net/yang_z_1?type=blog