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 3月 19 23:51 base-rw------- 1 postgres postgres 30 3月 22 00:00 current_logfilesdrwx------ 2 postgres postgres 4096 3月 19 22:02 globaldrwx------ 2 postgres postgres 188 2月 28 00:00 logdrwx------ 2 postgres postgres 6 2月 22 13:52 pg_commit_tsdrwx------ 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.confdrwx------ 4 postgres postgres 68 3月 22 14:15 pg_logicaldrwx------ 4 postgres postgres 36 2月 22 13:52 pg_multixactdrwx------ 2 postgres postgres 6 2月 22 13:52 pg_notifydrwx------ 2 postgres postgres 6 2月 22 13:52 pg_replslotdrwx------ 2 postgres postgres 6 2月 22 13:52 pg_serialdrwx------ 2 postgres postgres 6 2月 22 13:52 pg_snapshotsdrwx------ 2 postgres postgres 84 3月 22 14:15 pg_statdrwx------ 2 postgres postgres 6 3月 22 14:15 pg_stat_tmpdrwx------ 2 postgres postgres 18 2月 22 13:52 pg_subtransdrwx------ 2 postgres postgres 6 2月 22 13:52 pg_tblspcdrwx------ 2 postgres postgres 6 2月 22 13:52 pg_twophase-rw------- 1 postgres postgres 3 2月 22 13:52 PG_VERSIONdrwx------ 3 postgres postgres 92 3月 15 09:51 pg_waldrwx------ 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]# lsdata[root@hrmw-web-api pgsql14]# ll总用量 4drwx------ 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 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 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