最近有个处于开发阶段的项目需要DBA介入,希望DBA对这个项目的数据库进行备份。要到主机帐号后,先对数据库进行一翻熟悉,发现上面有虽然有9个库,但是数据量都不大,除了一个库有5G左右,其它的都在1G以下,因为目前业务还没完全上线,等以后业务起来后数据量应该会大些, 由于数据库不是很大,并且和项目发员沟通后,只需要一周备一次,于是决定用pg_dump方式备份,以下是详细内容。
备份脚本 dump_db.sh 内容
| 12
 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 脚本内容
| 12
 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
 
 | 
 
将备份脚本写入任务计划
每周三零晨四点备份
| 12
 
 | ###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/bigdata/236337.html