postgresql自动备份linux,postgresql linux安装与定时自动备份数据库

安装PostgreSQL前,确认Internet连接正常,以便下载安装文件。

先使用

yum -y update

指令升级系统到最新版本。

本安装将PostgreSQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本。

# 修改防火墙设置,打开5432端口

vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT

# 重启防火墙使新设置生效

service iptables restart

# 新增用户组

groupadd postgres

# 新增用户

useradd postgres -g postgres

# 新建数据库执行文件目录

mkdir -p /usr/local/pgsql

# 新建数据库数据文件目录

mkdir -p /db/pgsql/data

# 修改目录拥有者

chown -R postgres /usr/local/pgsql/.

chown-R postgres /db/pgsql/data

chown-R postgres /db/pgsql/data/.

# 编辑PATH搜索路径

vi /etc/profile

添加下面的两行:

PATH=/usr/local/pgsql/bin:$PATH

export PATH

# 生效PATH搜索路径

source /etc/profile

# 安装编译源码所需的工具和库

yum -y install wget gcc readline-devel zlib-devel make

# 进入源码压缩包下载目录

cd /usr/src

# 下载源码压缩包

tar jxvf ./postgresql-x.x.x.tar.bz2

# 进入解压缩源码目录

cd ./postgresql-x.x.x# 执行源码编译配置脚本

./configure

# 编译源码、安装

make

make install

#变更登录用户

su - postgres

# 执行数据库初始化脚本

/usr/local/pgsql/bin/initdb --encoding=utf8 -D /db/pgsql/data

# 退出变更登录

exit

# 复制PostgreSQL执行脚本

cp /usr/src/postgresql-x.x.x/contrib/start-scripts/linux /etc/init.d/postgresql

# 增加执行权限

chmod +x /etc/init.d/postgresql

#编辑PostgreSQL执行脚本,指定数据库文件目录

vi /etc/init.d/postgresql

PGDATA="/db/pgsql/data"

# 编辑配置文件,配置可访问数据库的网络地址

(注意别忘了去掉#listen_addresses=前面的#)

vi /db/pgsql/data/postgresql.conf

listen_addresses= '*'

# 启动PostgreSQL服务

service postgresql start

#以postgres用户登录数据库,修改postgres用户的数据库密码

psql -U postgres

postgres=# ALTER USER postgres PASSWORD 'postgres';

postgres=# \q

# 编辑配置文件,设置密码md5验证

a4c26d1e5885305701be709a3d33442f.png

vi /db/pgsql/data/pg_hba.conf

#"local" is forUnix domain socket connections only

local all all md5

# IPv4 local connections:

#host all all127.0.0.1/32trust

host all all0.0.0.0/0 md5

a4c26d1e5885305701be709a3d33442f.png

# 重启数据库服务

service postgresql restart

# 设置开机自动启动服务

chkconfig postgresql on

打开端口号:iptables -A INPUT -ptcp --dport 5432 -j ACCEPT

自动备份

编写shell脚本,保存为/home/postgres/dump.sh

#!/bin/bash

export PGPASSWORD="postgres"

pg_dump Test| gzip > /home/postgres/Test$(date +%Y%m%d).backup.gz

$(date +%Y%m%d)可自行设置。运行pg_dump 需要postgres设置的密码,每次都要手动输入。

所以加上export PGPASSWORD="postgres"可以自动输入密码。

设置执行权限,执行

chmod +x dump.sh

测试脚本是否可以备份数据库。在root用户下执行

su - postgres /home/postgres/dump.sh

如果正常则会生成一个类似于Test20141229.backup.gz的文件。

2、加入自动调度,

Vi /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/src/postgresql-9.3.1/src/bin/pg_dump

MAILTO=root

HOME=/

# For details see man 4 crontabs

# Example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

25 18 * * * postgres /home/postgres/dump.sh

刚开始运行时备份文件能生成,但是文件是空的,查一下/var/spool/mail 的文件发现pg_dump命令未发现

所以添加了PATH路径:/usr/src/postgresql-9.3.1/src/bin/pg_dump。25 18 * * * 是开始自动备份的时间 每天18:25

重新运行后成功

3、设置/home/db目录权限:

chown postgres.postgres /home/db -R 这样就会每天生成1个类似于Test20141229.backup.gz的压缩文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值