PostgreSQL小版本升级
admin
2023-05-21 19:02:35
0

我们知道pg_upgrade和pg_dump/pg_restore可以实现大版本升级数据库,那么小版本如何升级,比如从9.6.3到9.6.5?

原理:用新版本的软件程序启动,指定老的的数据目录


安装pgsql9.6.3

mkdir -p /usr/local/pgsql/pgsql9.6.3/{data,arch}

groupadd dba

useradd -g dba -G root postgres -d /usr/local/pgsql

tar xf postgresql-9.6.3.tar.gz

chmod -R 755 /usr/local/pgsql

chown -R postgres:dba /usr/local/pgsql

chmod -R 700 /usr/local/pgsql/pgsql9.6.3/data/

./configure --prefix=/usr/local/pgsql/pgsql9.6.3/

make world && make install-world

cd /usr/local/pgsql/pgsql9.6.3/bin

./initdb -D /usr/local/pgsql/pgsql9.6.3/data  -U postgres -E UTF8  -W


vim pg_hba.conf

host all all 0.0.0.0/0 md5


vim postgresql.conf

listen_addresses = '*'

wal_level = replica

port = 5432

max_connections = 300

shared_buffers = 128MB

logging_collector = on

log_directory = 'pg_log'

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

archive_mode = on

archive_command = 'test ! -f /usr/local/pgsql/pgsql9.6.5/arch/%f  &&  cp %p /usr/local/pgsql/pgsql9.6.5/arch/%f'

/usr/local/pgsql/pgsql9.6.3/bin/pg_ctl start -D /usr/local/pgsql/pgsql9.6.3/data


#生成测试数据

create database testdb1;

\c testdb1;

create table t1(id int primary key, info text);

insert into t1 select generate_series(1,1000000),'helloWorld';


安装pgsql9.6.5

mkdir -p /usr/local/pgsql/pgsql9.6.5/{data,arch}

groupadd dba

useradd -g dba -G root postgres -d /usr/local/pgsql

tar xf postgresql-9.6.5.tar.gz

chmod -R 755 /usr/local/pgsql

chown -R postgres:dba /usr/local/pgsql

chmod -R 700 /usr/local/pgsql/pgsql9.6.5/data/

./configure --prefix=/usr/local/pgsql/pgsql9.6.5/

make world && make install-world

cd /usr/local/pgsql/pgsql9.6.5/bin

/usr/local/pgsql/pgsql9.6.5/bin/initdb -D /usr/local/pgsql/pgsql9.6.5/data  -U postgres -E UTF8  -W


vim pg_hba.conf

host all all 0.0.0.0/0 md5


vim postgresql.conf

listen_addresses = '*'

wal_level = replica

port = 5431

max_connections = 300

shared_buffers = 128MB

logging_collector = on

log_directory = 'pg_log'

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

archive_mode = on

archive_command = 'test ! -f /usr/local/pgsql/pgsql9.6.5/arch/%f  &&  cp %p /usr/local/pgsql/pgsql9.6.5/arch/%f'

/usr/local/pgsql/pgsql9.6.5/bin/pg_ctl start -D /usr/local/pgsql/pgsql9.6.5/data

/usr/local/pgsql/pgsql9.6.5/bin/pg_ctl stop -m fast -D /usr/local/pgsql/pgsql9.6.5/data


#停止老的数据库9.6.3

/usr/local/pgsql/pgsql9.6.3/bin/pg_ctl stop -m fast -D /usr/local/pgsql/pgsql9.6.3/data

#用9.6.5的软件程序启动,指定9.6.3的数据目录

/usr/local/pgsql/pgsql9.6.5/bin/pg_ctl start -D /usr/local/pgsql/pgsql9.6.3/data


postgres=# select version();

                                                 version                                                 

---------------------------------------------------------------------------------------------------------

PostgreSQL 9.6.5 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4), 64-bit

testdb1=# select count(*) from t1;

  count  

---------

1000000


相关内容

热门资讯

普京回答小男孩什么是胜利 据凤凰卫视报道,8月3日,俄罗斯总统普京与全俄“大变革”竞赛总决赛选手交谈时,13岁的年轻选手卡泽金...
菲尔兹奖与定点爆破 【文/观察者网专栏作者 边芹】近日舆论场一片喜庆,中国数学家得了菲尔兹奖。自1978年后,这类新闻便...
“救”在身边!4天2场“急”时... ▲红十字少年叶子豪与护士马莉开展紧急救援。台海网8月4日讯(导报记者 石程罗纳 通讯员 苏映红 陈雅...
Claude仅用8分钟,5年未... 新智元报道 25分钟,500个钱包被洗劫一空! 这几天,知名硬件钱包Coldcard暴雷,而引发这...
低价流量卡一夜消失!三大运营商... 最近几天,关于流量卡的讨论热度越来越高,原因很简单——流量卡没了。 最开始,只是有网友突然上传了一份...
薪火传家 执“戟”报国——王戟... 新华社长沙8月3日电 题:薪火传家 执“戟”报国——国防科技大学研究员王戟的家风故事新华社记者黄明、...
夏季战役第二阶段打响,乌方称俄... 据凤凰卫视报道,俄乌夏季战役第二阶段已经打响,顿巴斯中线多地陷入持续激战,俄军拿下了别列茨克定居点,...
顶尖AI人才争夺白热化 招聘逻... 图片来源:AI生成 证券时报记者 周春媚 财富的洪流永恒流动,但从不固守同一片河床,而是不断涌向新的...
婚外胚胎纠纷案,不容忽视的情理... 近日,上海一起婚外冷冻胚胎纠纷案持续搅动舆论漩涡。身患肺癌、长期休养的朱女士,意外发现丈夫与第三者伪...
抽水马桶水箱不进水的解决办法 步骤一、准备小刷子或是其他清洁工具;步骤二、打开水箱盖子;步骤三、将水箱的堵塞和污渍清理干净;步骤四...