PostgreSQL 数据库目录迁移

yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-6-x86_64/pgdg-redhat10-10-2.noarch.rpm
yum install postgresql10
yum install postgresql10-server


export PATH=/usr/pgsql-10/bin:$PATH
source /etc/profile

/usr/pgsql-10/bin/postgresql-10-setup initdb

可选设置自动启动:
systemctl enable postgresql-10
systemctl start postgresql-10


启动服务:
#service postgresql-10 initdb
systemctl start postgresql-10
chkconfig postgresql-10 on

ps aux | grep postgres

切换到 su - postgres  

/usr/pgsql-10/bin/psql -p 5432   登录数据库
ALTER USER postgres WITH PASSWORD 'abc123'

重启服务
systemctl restart postgresql-10.service

数据库目录迁移

说明:以9+版本为例,10+的版本只要把目录替换一下即可。迁移目录肯定是要停服的!

1、在数据库软件安装之后,初始化数据库时候,可以指定初始化时创建的数据库的默认文件路径

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

这样初始化之后,再修改配置文件postgresql.conf为修改之后的数据文件路径,就能保证以后的数据文件也在这个路径下。

备注:可以通过find查找该文件的所在位置。

2、如果是已经初始化好了,再修改数据文件路径的,如下过程:

找到配置文件查看原来的数据存储路径在哪

find / -name postgresql.conf

一般是在/etc/postgresql/9.6/main/postgresql.conf

停掉PostgreSQL

service postgresql stop

拷贝原来的数据路径到新的路径下

cp -rf /var/lib/postgresql/9.6/main/ /data/postgresql/

设置用户和权限

chown -R postgres:postgres /data/postgresql/
chmod 700 /data/postgresql/

将配置文件的数据存储路径改成新的

vi /etc/postgresql/9.6/main/postgresql.conf
data_directory='/data/postgresql/datafile'
或
vim /usr/lib/systemd/system/postgresql*.service
修改PGDATA的指向

执行命令重启
systemctl daemon-reload
systemctl start postgresql-11

删除原始PGDATA 里面的内容 重启虚拟机验证。

再启动即可

service postgresql start

修改完毕后,可以用psql命令“show data_directory”查看当前数据目录

postgres=# show data_directory;
data_directory
------------------------
/var/lib/pgsql/10/data
(1 row)

通过上面的修改的方法,使用ps -ef输出的进程还是会显示原来的旧目录,这个相当于做了URL跳转的操作,但对于运维人员不是那么的友好,那么可以通过修改源头来进行修改。修改方法如下:

注意:修改目录时先停止服务!

1、命令行方式启动时指定目录

pg_ctl stop -D /data/pgsql/data2
pg_ctl start -D /data/pgsql/data2

2、以init脚本启动的,修改脚本(10+):

vi /etc/init.d/postgresql-10
# 修改为如下内容
PGDATA=/data/pgsql/data2

2、以systemd启动的,修改脚本(10+):

vi /usr/lib/systemd/system/postgresql-10.service
# 修改为如下内容
Environment=PGDATA=/data/pgsql/data2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值