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 3月 19 23:51 base
-rw------- 1 postgres postgres 30 3月 22 00:00 current_logfiles
drwx------ 2 postgres postgres 4096 3月 19 22:02 global
drwx------ 2 postgres postgres 188 2月 28 00:00 log
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_commit_ts
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_dynshmem
-rw------- 1 postgres postgres 4819 2月 22 14:10 pg_hba.conf
-rw------- 1 postgres postgres 1636 2月 22 13:52 pg_ident.conf
drwx------ 4 postgres postgres 68 3月 22 14:15 pg_logical
drwx------ 4 postgres postgres 36 2月 22 13:52 pg_multixact
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_notify
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_replslot
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_serial
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_snapshots
drwx------ 2 postgres postgres 84 3月 22 14:15 pg_stat
drwx------ 2 postgres postgres 6 3月 22 14:15 pg_stat_tmp
drwx------ 2 postgres postgres 18 2月 22 13:52 pg_subtrans
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_tblspc
drwx------ 2 postgres postgres 6 2月 22 13:52 pg_twophase
-rw------- 1 postgres postgres 3 2月 22 13:52 PG_VERSION
drwx------ 3 postgres postgres 92 3月 15 09:51 pg_wal
drwx------ 2 postgres postgres 18 2月 22 13:52 pg_xact
-rw------- 1 postgres postgres 88 2月 22 13:52 postgresql.auto.conf
-rw------- 1 postgres postgres 28768 2月 22 15:02 postgresql.conf
-rw------- 1 postgres postgres 58 2月 22 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 3月 22 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
3月 22 14:56:09 hrmw-web-api systemd[1]: Starting PostgreSQL 14 database server...
3月 22 14:56:09 hrmw-web-api postmaster[43363]: 2022-03-22 14:56:09.520 CST [43363] 日志: 日志输出重定向到日志收集进程
3月 22 14:56:09 hrmw-web-api postmaster[43363]: 2022-03-22 14:56:09.520 CST [43363] 提示: 后续的日志输出将出现在目录 "log"中.
3月 22 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 版)