最近有个处于开发阶段的项目需要DBA介入,希望DBA对这个项目的数据库进行备份。要到主机帐号后,先对数据库进行一翻熟悉,发现上面有虽然有9个库,但是数据量都不大,除了一个库有5G左右,其它的都在1G以下,因为目前业务还没完全上线,等以后业务起来后数据量应该会大些, 由于数据库不是很大,并且和项目发员沟通后,只需要一周备一次,于是决定用pg_dump方式备份,以下是详细内容。
备份脚本 dump_db.sh 内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
export PGHOME=/usr/local/pgsql export PGPORT=5432 export PGDATA=/usr/local/pgsql/data export PATH=$PGHOME/bin:$PATH CUR_DATE=`date +%Y%m%d`
CONFIG_FILE="/appt/pgbackup/db.config" #Set config file . ${CONFIG_FILE}
SAVE_BASE_DIR="/appt/pgbackup/dump_dir" DAT_FILE_DIR="${SAVE_BASE_DIR}/${CUR_DATE}" if [ -d ${DAT_FILE_DIR} ] then : else mkdir -p ${DAT_FILE_DIR} fi
echo "`date +%F %T` begin backup db " for db_name in ${db_name[@]} do pg_dump -E UTF8 -Fc ${db_name} -U postgres -v > ${DAT_FILE_DIR}/${db_name}_${CUR_DATE}.dmp done echo "`date +% F%T` end backup db "
|
db.config 脚本内容
1 2 3 4 5 6 7 8 9
|
db_name[1]=db_name1 db_name[2]=db_name2 db_name[3]=db_name3 db_name[4]=db_name4 db_name[5]=db_name5 db_name[6]=db_name6 db_name[7]=db_name7 db_name[8]=db_name8 db_name[9]=db_name9
|
将备份脚本写入任务计划
每周三零晨四点备份
1 2
|
###Backup maopao db every week### 0 4 * * 3 /appt/pgbackup/dump_db.sh >>/appt/pgbackup/log/dump.err 2>&1
|
后期
由于没有备份服务器,备份集暂时保存在数据库本机,等有了机器后,需要完善下备份脚本,并且根据需求将备份集清理脚本也加上。
原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/tech/database/236337.html