A. postgresql的64位数据库怎么备份才能恢复到32位数据库中
pg的64位备份到32位,将数据备份为sql格式的备份文件,然后还原到32位的数据库就可以了,或者通过第三方工具进行数据迁移,不如kettle
B. postgresql 怎么备份数据库
PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰常有限。所以一直寻找完美的备份恢复方案。
梦里寻他千网络,伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_mp,psql。这两个指令 在数据库的安装目录下,比如我自己本地安装的,路径形如:C:\Program Files\PostgreSQL\9.5\;然后进入到bin文件夹,会看到不少的exe文件,这就是PostgreSQL内置的工具了。里面会找到 pg_mp.exe,psql.exe两个文件。我们怎么用他们?
用法:
备份数据库,指令如下:
pg_mp -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
开始-运行-cmd 弹出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最后执行备份指令:
pg_mp -h 164.82.233.54 -U postgres databasename > C:\databasename.bak
指令解释:如上命令,pg_mp 是备份数据库指令,164.82.233.54是数据库的ip地址(必须保证数据库允许外部访问的权限哦~),当然本地的数据库ip写 localhost;postgres 是数据库的用户名;databasename 是数据库名。> 意思是导出到C:\databasename.bak文件里,如果没有写路径,单单写databasename.bak文件名,那么备份文件会保存在C: \Program Files\PostgreSQL\9.0\bin 文件夹里。
恢复数据库,指令如下:
psql -h localhost -U postgres -d databasename < C:\databasename.bak(测试没有成功)
pg_restore.exe --host localhost --port 5432 --username "postgres" --dbname "symbolmcnew" --no-password --verbose "databasename.backup"(测试成功)
指令解释:如上命令,psql是恢复数据库命令,localhost是要恢复到哪个数据库的地址,当然你可以写上ip地址,也就是说能远程恢复(必须保证 数据库允许外部访问的权限哦~);postgres 就是要恢复到哪个数据库的用户;databasename 是要恢复到哪个数据库。< 的意思是把C:\databasename.bak文件导入到指定的数据库里。
以上所有的是针对windows而言的,如果在linux下,会不会有效?
在linux里依然有效。有一个值得注意的是:如果直接进入PostgreSQL的安装目录bin下,执行命令,可能会出现 找不到pg_mp,psql的现象,我们在可以这样:
备份:
/opt/PostgreSQL/9.5/bin/pg_mp -h 164.82.233.54 -U postgres databasename > databasename.bak
恢复:
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename < databasename.bak
C. 如何在PostgreSQL中备份和恢复一张表(包含表结构)
pg_mp -U database_username database -t tablename -f /tmp/tablename.sql恢复数据表,包含表结构。登入数据库后 \i /tmp/tablename.sql即可创建表。注意此方式恢复在恢复已有表时可能会提示错误表已经存在,但应该无大碍,备份时可以尝试只备份数据
D. 请问如何不用输入密码自动备份postgresql数据库
修改pg_hba.conf文件,添加
host all all 127.0.0.1/32 trust
E. 如何在PostgreSQL中备份一张表(包含表结构)和恢复
--以test作为用户名,导出localhost:5432服务器上的Test数据库。
--导出的文件名为test_data
F:PostgreSQL9.2in>pg_mp-ftest_data-hlocalhost-Utest-p5432Test
口令:
F:PostgreSQL9.2in>dirtest_*
驱动器F中的卷是Install
卷的序列号是24AD-61D9
F:PostgreSQL9.2in的目录
2013-04-1514:46136,270test_data
1个文件136,270字节
0个目录10,456,657,920可用字节--将test_data文件中的数据,导入到localhost:5432服务器上的Test2数据库。
F:PostgreSQL9.2in>psql.exe-hlocalhost-Utest-p5432-dTest2<test_data
用户test的口令:test
SET
SET
SET
SET
SET
CREATESCHEMA
ALTERSCHEMA
CREATEEXTENSION
COMMENT
CREATEEXTENSION
COMMENT
......
上面的例子, 是 备份 / 恢复整个数据库的.
如果你是要 仅仅 备份 / 恢复 某个表的, 那么命令行里面增加下面的参数:
-t, --table=TABLE 只转储指定名称的表
F. 怎么在javaWeb里实现备份postgresql的功能
用java运行pg_mp命令行程序就行。
pg_m是postgresql自带的用来备份数据库的命令行程序,具体用法请参考文档。
G. PostgreSQL9.2备份与还原
cd C:\Program Files\PostgreSQL\9.0\bin
备份数据库:
pg_mp -h localhost -U postgres databasename > C:\databasename.bak
恢复数据库:
psql -h localhost -U postgres -d databasename < C:\databasename.bak
H. postgresql 怎样自动备份
第一步:
下载批处理文件。
第二步:
你可以通过一个简单的命令(schtasks /?查看帮助)或者使用图形界面(开始-控制面板-系统和安全-管理工具-任务计划程序)运行任务计划管理工具,还可以在%SYSTEMROOT%\System32目录下双击Taskschd.msc来启动它。
第三步:
你可以通过向导或通过XML文件导入信息来创建基本任务。向导方式创建方法见任务计划程序帮助,下面介绍下命令行语法:
schtasks /Create [/S <system> [/U <username> [/P [<password>]]]] [/RU <username> [/RP <password>]] /SC <schele> [/MO <modifier>] [/D <day>] [/M <months>] [/I <idletime>] /TN <taskname> /TR <taskrun> [/ST <starttime>] [/RI <interval>] [ {/ET <endtime> | /DU <ration>} [/K] [/XML <xmlfile>] [/V1]] [/SD <startdate>] [/ED <enddate>] [/IT] [/Z] [/F]
查看此命令帮助:
schtasks /Create /?
如果在Windows防火墙中远程任务计划管理被禁用而文件和打印共享被启用并且远程注册表服务正在运行,远程计算机上将会被创建一个V1任务即使没有使用参数V1。参数V1表明一个任务对下层系统可见。
使用代码
脚本:
<a href="http://my.oschina.net/echolee1987" target="_blank" rel="nofollow">@ECHO</a> OFF @setlocal enableextensions<a href="http://my.oschina.net/ini" target="_blank" rel="nofollow">@cd</a> /d "%~dp0" SET PGPATH=C:\"Program Files"\PostgreSQL\9.1\bin\ SET SVPATH=f:\ SET PRJDB=demo SET DBUSR=postgres FOR /F "TOKENS=1,2,3 DELIMS=/ " %%i IN ('DATE /T') DO SET d=%%i-%%j-%%k FOR /F "TOKENS=1,2,3 DELIMS=: " %%i IN ('TIME /T') DO SET t=%%i%%j%%k SET DBDUMP=%PRJDB%_%d%_%t%.sql<a href="http://my.oschina.net/echolee1987" target="_blank" rel="nofollow">@ECHO</a> OFF %PGPATH%pg_mp -h localhost -p 5432 -U postgres %PRJDB% > %SVPATH%%DBDUMP% echo Backup Taken Complete %SVPATH%%DBDUMP%
初始值
PGPATH - PostgreSQL路径
SVPATH - 备份文件路径
PRJDB - 要备份的数据库名
DBUSR - 数据库用户名