
正文
包含postgresql还原表数据库的词条
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
在PostgreSQL中怎么把一个数据库中一个表的数据复制到另一个数据库的表中 高手们帮帮忙,很急!!!
Postgresql不支持跨数据库操作。
可以通过pg_dump加上pg_restore或psql来完成迁移
或者直接使用sql语句中的copy语句来完成数据的迁移
具体看你的情况来选择一个合适的方法,你可以加我HI,我给你些建议
相关问答
Q1: postgresql 怎么备份数据库
PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰常有限。所以一直寻找完美的备份恢复方案。
梦里寻他千百度,伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_dump,psql。这两个指令 在数据库的安装目录下,比如我自己本地安装的,路径形如:C:\Program Files\PostgreSQL\9.5\;然后进入到bin文件夹,会看到不少的exe文件,这就是PostgreSQL内置的工具了。里面会找到 pg_dump.exe,psql.exe两个文件。我们怎么用他们?
用法:
备份数据库,指令如下:
pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak
开始-运行-cmd 弹出dos控制台;然后 在控制台里,进入PostgreSQL安装目录bin下:
cd C:\Program Files\PostgreSQL\9.0\bin
最后执行备份指令:
pg_dump -h 164.82.233.54 -U postgres databasename C:\databasename.bak
指令解释:如上命令,pg_dump 是备份数据库指令,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_dump,psql的现象,我们在可以这样:
备份:
/opt/PostgreSQL/9.5/bin/pg_dump -h 164.82.233.54 -U postgres databasename databasename.bak
恢复:
/opt/PostgreSQL/9.5/bin/psql -h localhost -U postgres -d databasename databasename.bak
Q2: 如何实现Postgresql数据库的重装与postgres密码重置
相信如果你在重新安装或者升级Postgresql数据库的时候都需要你输入在第一次安装时候的密码,这个密码往往我们都会忘记,那么万一忘记了该咋办?难道真就不能安装了?答案当然是否定的。在项目中,本人就遇到过这样的情况,一番摸索过后发现终于发现其中的奥秘,首先,Postgresql 安装时,会往用户组中添加一个postgresql用户,而这个用户就是阻止你密码验证不能通过的罪魁祸首,好吧,将其删除,再试试呢,成功了。别急,有些时候,你在安装的时候还会报一些错误,我同事就遇到此类情况,最后发现Postgresql 还会在当前用户下记录一下信息,比如管理工具的默认用户名和密码等信息,密码是不加密的哦!!以我的Win 7 32bit Enterprise version 为例,我的用户为:Abc_Zhou,则在C:\Users\abc_zhou\AppData\Roaming folder下看到有postgresql,删掉吧,好了,至此,你将能够完全安装成功了。
有时候在不知道密码的情况下如何能够使用数据库呢?当然前提是你知道用户名。这个是比较纠结的问题,用以上方法重装?显然不行,谁能保证我的数据呢。别急,咱们也有办法,首先,来到数据库的安装目录data文件夹下面,我的是9.0.4 version,路径为(PostgreSQL\9.0\data),然后找到pg_hba.conf文件,在最下放有一下几句话:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
好吧,将所有的md5修改称为trust,重启数据库服务,再去界面登录看看,记住不要输入密码哦。当你登录成功了之后难道想改个密码还不容易?
Alter user 'postgres' with password '123456';
至此,重新把method改回md5吧,重启服务,使用刚刚修改的密码登录,果断成功了。
好了,到此基本上完成我们的全部需求了,可是,有时候我们又不想改掉原本的密码,或许系统中还会有其他软件使用此用户呢。好,那还不简单,重新创建一个用户不就得了,不错好方法。但是我要告诉你一个更绝的办法,就是如果有人在管理工具中登录并保存过密码,那你就可以通过以下文件直接找出密码:C:\AllUsers\abc_zhou\AppData\postgresql 中的pgpass.conf 文件(机器环境同上),记事本打开就ok了,是不是可以看到密码了,就是这么简单。
Q3: 如何在PostgreSQL中备份一张表(包含表结构)和恢复
-- 以 test 作为用户名,导出 localhost:5432 服务器上的 Test 数据库。
-- 导出的文件名为 test_data
F:\PostgreSQL\9.2\binpg_dump -f test_data -h localhost -U test -p 5432 Test
口令:
F:\PostgreSQL\9.2\bindir test_*
驱动器 F 中的卷是 Install
卷的序列号是 24AD-61D9
F:\PostgreSQL\9.2\bin 的目录
2013-04-15 14:46 136,270 test_data
1 个文件 136,270 字节
0 个目录 10,456,657,920 可用字节
-- 将 test_data 文件中的数据,导入到 localhost:5432 服务器上的 Test2 数据库。
F:\PostgreSQL\9.2\binpsql.exe -h localhost -U test -p 5432 -d Test2 test_data
用户 test 的口令:test
SET
SET
SET
SET
SET
CREATE SCHEMA
ALTER SCHEMA
CREATE EXTENSION
COMMENT
CREATE EXTENSION
COMMENT
......
上面的例子, 是 备份 / 恢复整个数据库的.
如果你是要 仅仅 备份 / 恢复 某个表的, 那么命令行里面增加下面的参数:
-t, --table=TABLE 只转储指定名称的表
Q4: 如何在PostgreSQL中备份和恢复一张表
使用pg_dump进行单独表备份,且包含表结构,可以用于数据表迁移到新数据库。
pg_dump -U database_username database -t tablename -f /tmp/tablename.sql
恢复数据表,包含表结构。
登入数据库后 \i /tmp/tablename.sql即可创建表。应该pg_restore也可用但没有尝试过。
Q5: postgresql的64位数据库怎么备份才能恢复到32位数据库中
pg的64位备份到32位,将数据备份为sql格式的备份文件,然后还原到32位的数据库就可以了,或者通过第三方工具进行数据迁移,不如kettle
postgresql还原表数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、postgresql还原表数据库的信息别忘了在本站进行查找喔。






