重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
仔细分析,无非几个原因:
云龙网站建设公司创新互联,云龙网站设计制作,有大型网站制作公司丰富经验。已为云龙近千家提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的云龙做网站的公司定做!
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,成功!
主要就是把除了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
要执行SQL语句,要加-c,双引号中的是SQL语句 OR 命令
db_storelib:数据库名
将db_storelib中表tbl_repos内容以UTF的字符集导出到d:\6789.txt中!
通过命令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