zoukankan      html  css  js  c++  java
  • PostgreSQL9.2的WINDOWS下备份与还原

    这次在项目中需要利用工具pg_dump.exe来实现对PostgresQL数据库的备份,之前的命令如下:

    pg_dump --host localhost --port 5432 --username

    "postgres" --format custom --blobs --verbose --file "C:\20111209pm-xfserver.backup" pipeline

    但是,在测试的过程中,发现命令行下,需要输入Password:才能继续执行,这样实现不了自动备份,而参数里也没有象设置username这样 --password,网上说为了安全不提供这种参数。

    后来,经过查阅资料,找到了一个方法,就是在命令前添加一行:

    set PGPASSWORD=<password>

    就可以了。

    这样,把命令集中在批处理文件中执行,整个文件看起来就像这个样子:

    备份:

    @echo off
    c:

    cd C:\Program Files\PostgreSQL\9.2\bin

    set PGPASSWORD=dsideal

    pg_dump --host localhost --port 5432 --username "postgres" --format custom --blobs --verbose --file "C:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%.dump" dsideal
    pause

     还原 

    恢复数据库实例dsideal

     为了演示好实验,我们首先要删除掉这个数据库:dsideal

    然后马上:

    cd C:\Program Files\PostgreSQL\9.2\bin

    psql -U postgres

    以迅雷不及掩耳盗铃的速度快速执行:

    drop database dsideal;

    如果你的运气好,那么删除成功,否则就需要再次重启一下WINDOWS 服务。

    还原的指令:

    pg_restore.exe -hlocalhost -Upostgres -ddsideal -v "C:\2013-04-22-15-57-52.dump"

    当然,前提是你的数据库 dsideal需要提前创建好,它不负责创建数据库的。

    如果是在LINUX环境中,那么简单了:

    .另一种是查询出使用数据库的服务进程,接着将服务进程杀死,最后删除数据库

    图1

    图1中,数据库“test_db”不能被删除,原因就是有其他用户正在使用它,那要做的就是利用“ps -ef|grep test_db|grep -v grep”查出使用它的服务进程,见图2

                                                                   图2

    这时只要将图2中三个服务进程杀死,然后再执行数据库的删除操作,见图3、图4

    图3

  • 相关阅读:
    缠论
    jQuery 实战读书笔记之第六章:事件本质
    jQuery 实战读书笔记之第五章:使用 jQuery 操作页面
    jQuery 实战读书笔记之第四章:使用特性、属性和数据
    jQuery 实战读书笔记之第三章:操作 jQuery 集合
    jQuery 实战读书笔记之第二章:选择元素
    TCP/IP详解读书笔记:ARP-地址解析协议
    TCP/IP详解读书笔记:链路层
    TCP/IP详解读书笔记:概述
    sql标量函数与表值函数
  • 原文地址:https://www.cnblogs.com/littlehb/p/3035499.html
Copyright © 2011-2022 走看看