@echo off
set idb=VionCount
set back_dir=D:\123.backup
set isql=C:\Program Files\PostgreSQL\8.1\bin\pg_dump.exe
set PGUSER=postgres
set PGPASSWORD=vion
"%isql%" -i -h localhost -p5432 -F c -b -v -f "%back_dir%" %idb%
这是我的备份的批处理程序,没有问题.现在我想搞个还原的,实在是找不到了~哪位大哥大姐懂呢~帮帮小弟吧,谢谢了~
set idb=VionCount
set back_dir=D:\123.backup
set isql=C:\Program Files\PostgreSQL\8.1\bin\pg_dump.exe
set PGUSER=postgres
set PGPASSWORD=vion
"%isql%" -i -h localhost -p5432 -F c -b -v -f "%back_dir%" %idb%
这是我的备份的批处理程序,没有问题.现在我想搞个还原的,实在是找不到了~哪位大哥大姐懂呢~帮帮小弟吧,谢谢了~
从备份中恢复数据的工作比执行备份甚至更简单——您所要做的就是通过执行备份文件中的SQL命令来对数据库进行恢复。如果您是使用pg_dump 对某一个数据库进行了备份,那么备份中就会有CREATE TABLE 的语句来对源表进行复制。当然,您首先要新创建一个空数据库来存放这些数据表。您可以使用createdb 这个工具来完成这一步工作,这个工具也是PostgreSQL 套件中的一部分:xiaop@xiaop-laptop:~$ /usr/lib/postgresql/8.2/bin/createdb mydb(数据库名称)
现在您就可以执行备份文件中的SQL命令来对数据库进行恢复了, pg_dump 生成的文本文件可以由 psql 程序读取。 从转储中恢复的常用命令格式是:psql dbname < infile如下例所示:xiaop@xiaop-laptop:~$ /usr/lib/postgresql/8.2/bin/psql -h localhost -U xiaop(用户名) -d mydb(数据库名称) < mydb.bak3.2 用pg_dumpall恢复;
如果您是使用pg_dumpall对所有的数据库进行备份的,就没有必要先新建一个数据库,因为备份文件中已经包含了完成CREATE DATABASE工作的相关的调用。在这里,只需要在psql命令行客户端中输入对应的备份文件就可以了,而不需要指定目标数据库:xiaop@xiaop-laptop:~$ /usr/lib/postgresql/8.2/bin/psql -h localhost -U xiaop(用户名 ) < all.bak
一旦数据恢复完成后,您就可以登录到服务器并查看到已恢复的数据。
psql dbname < infile
不行?
psql -d DBNAME -U postgres -f ./a.sql
我用
@echo off
set isql=C:\Program Files\PostgreSQL\8.1\bin\pg_dump.exe
%isql% te< D:\123.backup
没效果
psql -d te -U postgres -f D:/VionCount.sql
用这个也什么效果都没有
psql -d 123 -U postgres -f D:/VionCount.sql
我用这个也没效果
or
pg_restore -d newdb db.out
恢复数据库
pg_restore -d 123 d:/VionCount.backup
pg_restore -d d:/VionCount.backup 123
psql -d d:/VionCount.backup -f 123
psql -d 123 -f d:/VionCount.backup
123还是空的
set idb=123
set back_dir=D:\123.backup
set isql=C:\Program Files\PostgreSQL\8.1\bin\pg_restore.exe
set PGUSER=postgres
set PGPASSWORD=vion
"%isql%" -i -h localhost -p5432 -U postgres -d "123" -v "back_dir"应该这样,解决了