当前位置: 首页 > news >正文

pg数据库,本地服务器下不同端口迁移

目标如下: 
1. 将5432端口改为15433 
2. 添加openssl

具体操作:一. 在本地新安装pg数据库
1. 补丁在第一次安装数据库已经添加。所以这里不在做补丁等基础安装.2. 创建用户
groupadd -g 60031 pg16
useradd -u 60031 -g pg16 pg16
echo "Bdstar1234" | passwd --stdin pg163. 创建目录 
mkdir -p  /postgresql/pg16/{pgdata,archive,scripts,backup,pg16,soft,pgdir}
--postgresql-16.1.tar.gz上传到/postgresql/pg16/soft 中
chown -R pg16:pg16 /postgresql/pg16
chmod -R 775 /postgresql/pg16su - pg16  cd /postgresql/pg16/soft/
tar -zxvf postgresql-16.1.tar.gz
cd postgresql-16.14. 编译数据库以及相关编译(重点)
./configure --prefix=/postgresql/pg16/pg16 --without-readline --with-uuid=e2fs   --with-opensslmake -j 20 && make installcd   contrib/uuid-ossp/
make && make installcd   ../../contrib/sslinfo
make && make installcd   ../../contrib/passwordcheck
make && make installcd   ../../contrib/file_fdw
make && make install8. 配置环境变量
cat >>  ~/.bash_profile <<"EOF"
export LANG=en_US.UTF-8
export PS1="[\u@\h \W]\$ "
export PGPORT=15433
export PGDATA=/postgresql/pg16/pgdata
export PGHOME=/postgresql/pg16/pg16
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:.
export DATE=`date +"%Y%m%d%H%M"`
export MANPATH=$PGHOME/share/man:$MANPATH
export PGHOST=$PGDATA
export PGUSER=postgres
export PGDATABASE=postgresalias psql='rlwrap psql' 
EOFsource  ~/.bash_profile9. 初始化
initdb -D /postgresql/pg16/pgdata -E UTF8 --locale=en_US.utf8 -U postgres  10. 修改参数
cat >> /postgresql/pg16/pgdata/postgresql.conf <<"EOF"timezone = 'Asia/Shanghai'
listen_addresses = '*'
port=15433
unix_socket_directories='/postgresql/pg16/pgdata'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOFcat   > /postgresql/pg16/pgdata/pg_hba.conf << EOF
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0        md5
host   replication  all    0.0.0.0/0        md5
EOF11.启动检查
su - pg16
pg_ctl start
pg_ctl status
pg_ctl stop二, 迁移数据库
--用pg_basebackup备份出生产数据库
1. pg_basebackup  -U postgres -l bk20250729 -F p -P -R -D /postgresql/pgdir200/pgdir16/bak101-202507280020022. 关闭从库,删除从库的数据文件,并且将备份文件覆盖从库的数据文件
root用户:rm -rf /postgresql/pg16/pgdata/*
mv     /postgresql/pgdir200/pgdir16/bak101-20250728002002/*   /postgresql/pg16/pgdata/
*/修改用户属性
chown pg16:pg16 /postgresql/pg16/pgdata/    -Rpg16用户(以下所有操作都用pg16):3. 删除备份信号文件
rm -rf /postgresql/pg16/pgdata/standby.signal4. 修改参数:
cat >> /postgresql/pg16/pgdata/postgresql.conf <<"EOF"timezone = 'Asia/Shanghai'
listen_addresses = '*'
port=15433
unix_socket_directories='/postgresql/pg16/pgdata'
logging_collector = on
log_directory = 'pg_log'
log_filename = 'postgresql-%a.log'
log_truncate_on_rotation = on
EOFcat   > /postgresql/pg16/pgdata/pg_hba.conf << EOF
# TYPE  DATABASE    USER    ADDRESS       METHOD
local     all       all                    trust
host      all       all   127.0.0.1/32     trust
host      all       all    0.0.0.0/0        md5
host   replication  all    0.0.0.0/0        md5
EOF5. 启动数据库测试
pg_ctl stop
pg_ctl start 三,数据库添加OpenSSL
1. 查看postgresql是否使用openssl选项编译安装,没有则需重新编译:
[pg16@db01 pgdata]$  pg_config|grep CONFIGURE
CONFIGURE = '--prefix=/4T/postgresql/pg16/pg16' '--without-readline' '--with-uuid=e2fs' '--with-openssl'2. 查看ssl_library的参数值是OpenSSL
[pg16@jczc file_fdw]$ psqlpostgres=#  show ssl_library ;ssl_library 
-------------OpenSSL
(1 row)postgres=# select version();version                                   
-----------------------------------------------------------------------------PostgreSQL 16.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.0, 64-bit
(1 row)3.PostgreSQL配置单向SSL认证连接
mkdir /postgresql/pg16/pgdata/openssl
openssl req -new -x509 -days 365 -nodes -text -subj '/CN=postgres' -out /postgresql/pg16/pgdata/openssl/server.crt -keyout  /postgresql/pg16/pgdata/openssl/server.key
chmod 600 /postgresql/pg16/pgdata/openssl/server.key4. postgresql.conf配置文件添加
vim /postgresql/pg16/pgdata/postgresql.confssl = on
ssl_cert_file = '/postgresql/pg16/pgdata/openssl/server.crt'
ssl_key_file = '/postgresql/pg16/pgdata/openssl/server.key'pg_hba.conf配置文件添加
vim /postgresql/pg16/pgdata/pg_hba.confhost     all        all    all              md5
hostssl  all        all    0.0.0.0/0        cert5. 重启,连接的时候需要加上-h参数,否则不是以ssl连接的
[pg16@db01 pgdata]$ pg_ctl restart
[pg16@db01 pgdata]$ psql -h 127.0.0.1 -d postgres -U postgres -p 15433Password for user postgres: 
psql (16.1)
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.6.创建sslinfo
postgres=# create extension sslinfo;
CREATE EXTENSIONpostgres=# select ssl_is_used();ssl_is_used 
-------------t7.检查ssl 版本
postgres=# select ssl_version();ssl_version 
-------------TLSv1.3
(1 row)

http://www.lryc.cn/news/602755.html

相关文章:

  • 用了Flutter包体积增大就弃用Flutter吗?包体积与开发效率,这两者之间如何权衡?
  • 微信小程序点击输入框时,顶部导航栏被遮挡问题如何解决?
  • 鸿蒙打包签名
  • Linux驱动23 --- RkMedia 使用
  • gdb 基本命令
  • 3DGRUT: 革命性的3D高斯粒子光线追踪与混合光栅化技术深度解析
  • Error: Unable to find a match: python3.8
  • 【Linux操作系统】简学深悟启示录:Linux环境基础开发工具使用
  • Spring IOC与DI
  • 【服务器知识】nginx配置ipv6支持
  • JVM 内存共享区域详解
  • RabbitMQ概念与管理端配置说明
  • 学习游戏制作记录(改进剑投掷状态)7.28
  • 四、计算机组成原理——第7章:输入/输出系统
  • Unity_UI_NGUI_组合控件2
  • 数论1.01
  • socketpair函数详解
  • MCU+RTOS调试
  • STM32-基本定时器
  • JavaScript手录-排序算法篇
  • 二分查找的「左右为难」:如何优雅地找到数组中元素的首尾位置
  • 城阳区奥赛暑假公益班第三次入门组初赛模拟赛
  • 把振动数据转成音频并播放
  • 提取apk中的各种语言翻译成表格,python脚本
  • Lakehouse: Unifying DW Advanced Analytics in Open Platforms
  • 《Java 程序设计》第 8 章 - Java 常用核心类详解
  • 未授权访问漏洞 总结
  • 阿里云【免费试用】Elasticsearch 智能运维 AI 助手
  • python毕业设计案例:基于python django的抖音数据分析与可视化系统,可视化有echarts,算法包括lstm+朴素贝叶斯算法
  • Flutter渲染引擎:Impeller和Skia