多postgresql库批量执行SQL脚本文件

    xiaoxiao2025-11-08  7

    1、编辑pgpass文件 pgpass文件内容格式为:     地址:端口:数据库名称:用户名:密码 cd ${HOME} vi .pgpass 编辑如 :192.168.1.90:5432:ABCD:odoo:odoo 保存后  chmod 600 .pgpass 2、编辑shell脚本 mkdir shell cd shell   mkdir back #存放备份文件  vi execute_sql.shell   #!/bin/bash DATE=$(date +%Y%m%d) DIR="sql_back_${DATE}" HOST="192.168.1.90" PORT="5432" USER="odoo" PASSWORD="odoo" #通过查询pg_database表根据datname字段查询出需要批量执行的库 datanames=`psql -h $HOST -d ABCD -U $USER -c"SELECT datname FROM pg_database;"|tail -n +3|head -n -2` #清空.pgpass文件 echo "" >${HOME}/.pgpass for dataname in $datanames do #遍历往.pgpass文件写数据,因为psql没提供-p 输密码的参数,所以只能通过.pgpass echo $HOST:$PORT:$dataname:$USER:$PASSWORD >>${HOME}/.pgpass #执行SQL脚本 psql -h $HOST -d $dataname -U $USER -f *.sql -o out.log done #备份执行脚本 cd ${HOME}/shell/back  mkdir "$DIR" mv ../*.sql ./$DIR #注释都是后来自己写的,可能格式有问题,呜呜~~,请自己调下   3、执行脚本 1)将后缀为sql的脚本文件放到与execute_sql.shell同级目录下  2)sh   execute_sql.shell 3) SQL脚本执行完成后会自动备份

    转载请注明原文地址: https://ju.6miu.com/read-1303973.html
    最新回复(0)