扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
主要就是把除了template0和template1外的数据库全部dump到指定目录并打包
按需开发网站可以根据自己的需求进行定制,网站建设、成都网站设计构思过程中功能建设理应排到主要部位公司网站建设、成都网站设计的运用实际效果公司网站制作网站建立与制做的实际意义
使用前把BACKUPDIR修改至你自己的备份目录
一般来说你不用修改DUMPCMD,除非你的PostgreSQL安装时的prefix指定到了其他地方,又或者你想加上其他的pg_dump参数
可以放在crontab里每天定时执行
可以考虑root来执行,因为一般root可以不通过密码验证直接使用数据库pgsql用户dump数据,一切都取决于你的pg_hba.conf和postgresql.conf设置,碰到问题自行判断
想在Windows上运行需要自行稍微修改
#! /bin/sh
DATE=`date +%Y%m%d%H`
BACKUPDIR=/path/to/backup
DUMPCMD='/usr/local/bin/pg_dump -U pgsql -O -x'
if [ ! -d $BACKUPDIR ]; then
mkdir $BACKUPDIR
fi
for DB in `/usr/local/bin/psql -U pgsql -d template1 -c '\l' -q -t | /usr/bin/awk '{print $1}'`
do
FILENAME=${DATE}_${DB}
if [ $DB != 'template0' ] [ $DB != 'template1' ]; then
echo "Backup $DB ..."
$DUMPCMD -f $BACKUPDIR/$FILENAME.sql $DB
/usr/bin/tar -C $BACKUPDIR -c -j -f $BACKUPDIR/$FILENAME.tar.bz2 $FILENAME.sql \
rm -f $BACKUPDIR/$FILENAME.sql
fi
done
sync
通过命令pg_dump可以导出数据库的数据,用copy命令可以将一张表的数据导出为csv格式数据,
命令行执行:psql -d 库名 -f 文件名;
直接sql脚本加:psql 库名 (-U 用户名)!
直接运行脚本sh 或直接赋予执行权限
trampwind(随风) 于 2005-3-10 11:42:27
psql交互界面直接用: i 文件名;
执行SQL脚本
先要执行命令放 .sql 格式文件 比 gcz_test.sql
执行 ./gcz_test.sql
要执行SQL语句,要加-c,双引号中的是SQL语句 OR 命令
db_storelib:数据库名
将db_storelib中表tbl_repos内容以UTF的字符集导出到d:\6789.txt中!
仔细分析,无非几个原因:
1、log目录的权限问题,比如log文件指定的目录postgres用户无权写入,因此没有产生任何log文件。检查了/var/lib/postgresql/11/main的目录,没有发现问题。
2、配置文件的权限问题,检查了/etc/postgresql/11/main目录,也没有发现任何问题,postgres用户是有权限读取配置文件的。
3、配置文件有错误导致无法正常启动postgresql。排除了上面的两个原因,这个应该是最大的原因了。但是,错误在哪里呢?没有给出提示啊!
尝试了service postgresql start, pg_ctrcluster, pg_ctl均无法给出任何提示,后来才想明白,这几个都是对postmaster的脚本封装啊,也许这些封装忽略了什么重要的信息!应该直接运行postmaster才能得到直接的出错提示的!果然,执行/usr/lib/postgresql/11/bin/下的postmaster给出了提示,执行语句:
看到这里立刻明白了:我将postgresql.conf中的lc_messages改为了 en_US.UTF-8,可是没有产生en_US.UTF-8的locale文件啊!于是修改/etc/locales.gen文件添加en_US.UTF-8,执行locales.gen,再次启动postgresql,成功!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流