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

Posted yang_z_1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]# ls
base              global  pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.opts
current_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]# ls
base              global  pg_commit_ts  pg_hba.conf    pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf  postmaster.opts
current_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
总用量 64
drwx------ 7 postgres postgres    71 319 23:51 base
-rw------- 1 postgres postgres    30 322 00:00 current_logfiles
drwx------ 2 postgres postgres  4096 319 22:02 global
drwx------ 2 postgres postgres   188 228 00:00 log
drwx------ 2 postgres postgres     6 222 13:52 pg_commit_ts
drwx------ 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.conf
drwx------ 4 postgres postgres    68 322 14:15 pg_logical
drwx------ 4 postgres postgres    36 222 13:52 pg_multixact
drwx------ 2 postgres postgres     6 222 13:52 pg_notify
drwx------ 2 postgres postgres     6 222 13:52 pg_replslot
drwx------ 2 postgres postgres     6 222 13:52 pg_serial
drwx------ 2 postgres postgres     6 222 13:52 pg_snapshots
drwx------ 2 postgres postgres    84 322 14:15 pg_stat
drwx------ 2 postgres postgres     6 322 14:15 pg_stat_tmp
drwx------ 2 postgres postgres    18 222 13:52 pg_subtrans
drwx------ 2 postgres postgres     6 222 13:52 pg_tblspc
drwx------ 2 postgres postgres     6 222 13:52 pg_twophase
-rw------- 1 postgres postgres     3 222 13:52 PG_VERSION
drwx------ 3 postgres postgres    92 315 09:51 pg_wal
drwx------ 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]# ls
data
[root@hrmw-web-api pgsql14]# ll
总用量 4
drwx------ 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 directory
Environment=PGDATA=/u01/apps/pgsql14/data/

修改为新盘的地址:

# Location of database directory
Environment=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

以上是关于Linux 上 PostgreSql 14 数据库 和 timescaledb 时序库 数据迁移测试的主要内容,如果未能解决你的问题,请参考以下文章

Linux 上 学习使用 KingbaseES数据库 (postgresql 版)

Linux 上 学习使用 KingbaseES数据库 (postgresql 版)

ubuntu 14.04安装postgresql最新版本

关于linux上postgresql的一些理解

无法在Linux上登录到新的PostgreSQL数据库

COPY FROM .csv 文件到远程 PostgreSQL 数据库(在 Linux 服务器上运行)