1、以下脚本是每周一的早上7点开始备份制定的schema的表与函数的结构信息
2、运行脚本请使用nohup sh greenplum-function-back.sh & 即可
$ cat greenplum-function-back.sh
#!bin/bash
# 当前文件的与父目录
current_path=$(cd `dirname $0`; pwd)
current_parent_path=$(dirname $(pwd))
# gp数据库的链接信息
# 数据库链接信息
gpdatabase='******'
scheamname='******'
gpip='**********'
gpport='*****'
gpuser='******'
# 1、等待一个小时查看以下是不是星期一
# 2、判断星期一的当前位于几点,如果是早上7点则开始导数据
for((i=1;i<=10;));do
sleep 1h
current_batch=`date +%Y%m%d`
current_time=`date +%H`
current_week=$(date +%w)
# 此处请填写schema的列表请以英文逗号分割
schema_name='schema1,schema2[schema3,schmea4]'
if [[ $current_week -eq 1 ]];then
if [[ $current_time -eq 7 ]];then
echo "开始备份chinadaas下的schema信息数据......"
splitnames=(${schema_name//,/ })
for schemaname in ${splitnames[@]}
do
back_path=$current_path/$current_batch
mkdir -p $back_path
echo "开始备份 $schemaname 的信息......"
time pg_dump -h $gpip -p $gpport -s -n $schemaname -U $gpuser $gpdatabase -f $back_path"/chinadaas-"$schemaname".sql"
done
echo -e "\t $current_batch 批次备份chinadaas下的schema信息结束......\n\n"
else
echo "当前是星期一,等待早上七点备份表和函数结构数据......$current_batch $current_time $current_week"
fi
else
echo "当前不是星期一,$current_batch $current_time $current_week"
fi
done