目前,我正在做类似的事情:
pg_dump -a -O -t my_table my_db > my_data_to_import.sql
Run Code Online (Sandbox Code Playgroud)
我真正想要的是能够仅导入/导出数据,而不会引起与autoid字段的冲突或覆盖现有数据。
也许我在考虑整个过程错了吗?
我已经使用pgadmin3工具从system1备份了Postgresql数据库。创建的备份文件的扩展名为“ .backup”
我正在尝试在安装了postgresql 9.0和pgadmin3 1.8的另一个system2上还原它,但出现错误:
无法执行查询:错误:无法识别的配置参数“ lock_timeout”命令为:SET lock_timeout = 0;
两个系统的配置:
system1 win7-64位PostgreSQL 9.0.13-1-64位pgadmin 1.8
system2 win7-32位PostgreSQL 9.0.13-1-32位pgadmin 1.8
我正在尝试通过备份文件还原数据库,我使用的是PgAdmin III(PostgreSQL 9.1)。选择备份文件后,出现一个窗口,指示正在运行pg_restore.exe,然后PgAdmin没有响应,这已经是几个小时了(这不是RAM不足的问题)
可能是由于备份文件大小(500 MB),但是几天前我已经用300 MB的备份文件恢复了数据库,并且操作很顺利。顺便说一下,备份文件的格式(通过pg_dump创建)是“ tar”格式。
如果您有任何想法或需要更多信息,请告诉我。感谢任何人提供的帮助或指导。提前致谢。
我正在尝试在 PostgreSQL 中恢复集群备份。我使用了 pg_dumpall,它生成了一个带有 SQL 查询的纯文本文件。但是,当我尝试恢复它时,出现此错误:
pg_restore: [archiver] 输入文件似乎不是有效的存档
当我尝试恢复数据库的备份(用 pg_dump 生成)时,我也收到了同样的错误,但我解决了这个问题。在那种情况下,pg_restore 无法通过 SQL 查询识别纯文本,因此我更改了命令:
pg_dump db_name -Fc -U user -h host -p port > my_db_backup.dump
Run Code Online (Sandbox Code Playgroud)
而是写道:
pg_dump db_name -Fp -U user -h host -p port > my_db_backup.dump
Run Code Online (Sandbox Code Playgroud)
这样生成的文件不是纯文本,所以 pg_restore 可以很好地处理它。
现在,我正在尝试使用 pg_dumpall 进行相同的管理,但是没有 -F 参数。我的代码(在 Python3 中,但此命令对于任何语言都是相同的)是:
pg_dumpall -U user -h host -p port > my_cluster_backup.dump
Run Code Online (Sandbox Code Playgroud)
知道如何管理这个吗?或者至少如何以任何方式恢复集群备份?先感谢您!
编辑
如果我使用psql来恢复:
psql -U user -h host -p port -f my_cluster_backup.dump postgres'
Run Code Online (Sandbox Code Playgroud)
它似乎有效,控制台中显示了很多命令,但每个命令都给出了“它已经存在”的错误。我无法理解,因为我有两个集群(端口 5432 和 5433),我猜它正在尝试在 5432 中恢复,当我确定我已连接到 5433 时。以前有人遇到过这个问题吗?
我得到了一个数据库备份(带有文件存储),filestore文件夹和另一个包含该数据库上已安装模块的文件夹.
我希望在没有更多数据的情况下在Odoo 8中恢复该备份.所以我所做的是创建拥有数据库表并赋予其足够权限(登录,创建,复制)的PostgreSQL角色.然后我创建了一个Odoo配置文件.在这里,我设置了这个新的PostgreSQL角色db_user和密码db_password.我添加了存储文件存储data_dir的路径,以及包含所有模块的文件夹的路径addons_path.
由于没有给出启动器文件,我复制了其他Odoo实例的OCB文件夹,并使用其odoo.py文件启动Odoo.
新实例似乎运行良好,但现在我刚刚恢复了数据库,我收到此错误:
QWebException: "'HttpRequest' object has no attribute 'endpoint_arguments'" while evaluating
'website.get_alternate_languages(request.httprequest)'
Run Code Online (Sandbox Code Playgroud)
我在google搜索了很多,但除了在其他论坛中没有回答的问题外,我无法找到任何关于它的信息.
有谁知道这是关于什么的?
我有一个使用pg_dump自定义格式创建的 pg 备份。我正在尝试使用pg_restore仅数据恢复到已经有一些数据的数据库中。这在 DB 和转储中存在相同数据(某些行)的情况下失败。有没有办法忽略这些行并继续恢复其余数据?
问题:有没有办法让 pg_dump 命令不使用 search_path 来设置架构,而是使用表名定义架构
我的一般情况是我正在尝试转储和恢复包含许多架构的 postgis 数据库(这是为了将我的数据库迁移到 Amazon RDS)。在每个模式中,我都有一个带有地理列的表。从转储生成的 SQL 类似于:
CREATE SCHEMA aaaa;
SET search_path = aaaa, pg_catalog;
SET default_tablespace = '';
SET default_with_oids = false;
--
-- TOC entry 346 (class 1259 OID 1135099)
-- Name: main; Type: TABLE; Schema: aaaa; Owner: -
--
CREATE TABLE main (
pk bigint NOT NULL,
geometry public.geography(Geometry,4283),
batch bigint NOT NULL,
json jsonb NOT NULL,
cache jsonb NOT NULL,
active bigint DEFAULT date_part('epoch'::text, now()) NOT NULL,
inactive bigint DEFAULT '8640000000000000'::bigint …Run Code Online (Sandbox Code Playgroud) 所以我使用 pg_dump 备份了一个表:
pg_dump -U bob -F c -d commerce -t orders > orders.dump
Run Code Online (Sandbox Code Playgroud)
该表有几个列出的索引,例如主键
但是,当我使用 pg_restore 将此表恢复到另一个系统上的开发数据库时:
pg_restore -U bob -d commerce -t orders > orders.dump
Run Code Online (Sandbox Code Playgroud)
未列出主键或索引
我究竟做错了什么?
我正在尝试从不再配置的系统中恢复 postgres 备份,并且根据我的尝试,我收到了一系列错误。
(我已阅读相关/建议的问题,但它们似乎不相关)
使用以下命令(在 bash 脚本中)创建备份:
pg_dump --schema=public -Fc
Run Code Online (Sandbox Code Playgroud)
用于恢复脚本的命令(备份脚本将其作为帮助文本回显)是:
pg_dump --schema=public -Fc
Run Code Online (Sandbox Code Playgroud)
当我在本地运行 restore 命令时,我得到以下信息:
dropdb ${PGDATABASE}
createdb ${PGDATABASE}
time pg_restore \
-j4 \
-d ${PGDATABASE} \
--create \
--no-privileges \
--no-owner \
--clean \
--if-exists \
--exit-on-error \
"${dirname}/${filename}"
Run Code Online (Sandbox Code Playgroud)
以前,我只有在运行几分钟后才会出现“磁盘空间不足错误”,但正如您从time输出中看到的,此错误几乎立即发生!
备份是使用压缩创建的-Fc,我可以使用压缩将备份解压缩为纯文本pg_restore backup.pg_dump > backup.sql,但我无法在其中找到与以下相关的任何命令DROP DATABASE:/
time pg_restore -j4 -d ${PGDATABASE} --create --no-privileges --no-owner --clean --if-exists --exit-on-error …Run Code Online (Sandbox Code Playgroud) 所以我定期使用 pgadmin4 备份和恢复数据库和模式。我想使用 pg_dump 和 pg_restore 命令通过批处理文件来完成此操作。然而,我总是无法成功,需要一些帮助。我尝试转储一个模式(带有数据)的方法如下:
pg_dump -U postgres -F c -d database -n schema > mw2
Run Code Online (Sandbox Code Playgroud)
然后我尝试使用 pg_restore 恢复它:
pg_restore -U postgres -d otherdatabase -n schema mw2
Run Code Online (Sandbox Code Playgroud)
首先,我尝试使用 .dump 代替 tar,但结果保持不变;这是我的数据库中的空架构。
或者出现如下错误信息:
pg_restore: [archiver] input file does not appear to be a valid archive
Run Code Online (Sandbox Code Playgroud) pg-restore ×10
postgresql ×8
pg-dump ×5
dump ×1
odoo ×1
odoo-8 ×1
pgadmin ×1
postgis ×1
primary-key ×1