使用pgAgent对postgresql数据库自动备份
自己写了一个bat文件,双击执行都能进行数据库的备份,bat没有问题.
可是加到pgAgent job中显示成功执行,但是却未能备份成功.
在"步骤"的"统计量"下信息都是"执行成功",但是在"输出"那里有乱码,如下:C:\WINDOWS\system32>D:\Program Files\PostgreSQL\9.0\bin\backup.bat 
'D:\Program' ²»ÊÇÄÚ²¿»òÍⲿÃüÁҲ²»ÊÇ¿ÉÔËÐеijÌÐò
»òÅú´¦ÀíÎļþ¡£不知道为啥,有遇上这种情况的?
bat文件位置D:\Program Files\PostgreSQL\9.0\bin\backup.bat

解决方案 »

  1.   

    双击bat,能正确的执行备份..
    难道pgAgent执行的bat有特殊要求?
      

  2.   

    注册paAgent服务是使用的postgres用户, 运行服务也需要postgres用户.
    你用postgres用户登陆试试or打开 service.msc, 找到 pgAgent的服务, 将登陆用户改为目前你登陆的用户,
    重启pgAgent服务试试
      

  3.   

    如果这样,不如直接放在WINDOWS的计划任务中。
      

  4.   


    or直接用WINDOWS的计划任务
      

  5.   

    or
    因为pgAgent服务是postgres用户运行的, 故系统会到系统USER目录下查找密码文件
               C:\Documents and Settings\postgres\Application Data\postgresql\pgpass.conf 
               如果此文件中有正确的User:PWD记录, 登陆DB成功, 运行调度任务;
               文件不存在或其中密码不正确, 登陆失败, 自然调度任务失败!!          比如, 我的登陆DB的用户名为 aaa, 密码为bbb, 则记录的pgpass.conf文件内容为:
                    localhost:5432:*:aaa:bbb
                自己手动创建此pgpass.conf 文件, 即可解决此问题(效果一样).      or
     将数据库的登陆模式改为:trust
      

  6.   

    现在是注册和运行都是postgres用户,但是登录操作系统的是administrator
    现在的情况是pgAgent能正确的加载和正确的定时执行,只是执行的不对.还有根据网上的说法,我把"pg_hba.conf"文件里面改了127.0.0.1/32  trust验证,本地登录不验证,应该是用哪个用户登录pgAgent都没问题吧?
      

  7.   

    可以测试 一下,估计没有问题,一般用pg-dump备份
      

  8.   

    用postgres登录操作系统
    修改C:\Documents and Settings\postgres\Application Data\postgresql\pgpass.conf 没有
    打开 service.msc, 找到 pgAgent的服务, 将登陆用户改为目前你登陆的用户,
    重启pgAgent服务试试