作为主题,当数据库中仍有许多活动事务时,备份文件会发生什么.它是实时导出还是仅部分备份?
提前致谢.
目前,我正在做类似的事情:
pg_dump -a -O -t my_table my_db > my_data_to_import.sql
Run Code Online (Sandbox Code Playgroud)
我真正想要的是能够仅导入/导出数据,而不会引起与autoid字段的冲突或覆盖现有数据。
也许我在考虑整个过程错了吗?
我们有一个postgresql数据库,每晚从一个cron作业备份,并带有以下命令:
su postgres -c "pg_dump our_database | gzip > /home/smb/shared/database_backup.bak.gz"
Run Code Online (Sandbox Code Playgroud)
最近我们有一个磁盘故障,从一些坏扇区开始,在此期间pg_dump退出时出现以下错误
pg_dump: SQL command failed
pg_dump: Error message from server: ERROR: catalog is missing 17 attribute(s) from relid 20158
pd_dump: The command was: LOCK TABLE public.obvez IN ACCESS SHARE MODE
Run Code Online (Sandbox Code Playgroud)
现在,因为它是在cron作业,没有人注意到错误消息,备份被中断,但它不是零大小,一切似乎都没有,并且当我们意识到我们没有备份时,错误被忽视直到最终磁盘失败.
我们设法从较旧的备份恢复数据,但现在我想知道检查pg_dump是否成功完成其工作的正确方法是什么?
好的,按照这些说明运行我:
$ PGPASSWORD=mypassword pg_dump -Fc --no-acl --no-owner -h localhost -U myuser mydb > mydb.dump
Run Code Online (Sandbox Code Playgroud)
在数据库所在的同一文件夹(app_db.sql)但我一直得到:
pg_dump: [archiver (db)] connection to database "mydb" failed: FATAL: database "mydb" does not exist
Run Code Online (Sandbox Code Playgroud)
为什么会发生这种情况,我能做些什么来解决它?
谢谢
我需要将表的内容从一个数据库复制到另一个数据库,并使用相同的表,该表当前为空.
我计划从旧表中转储表数据,然后将其导入新数据库中的空表.但是,我遇到了一些我不理解使用pg_dump的行为.
我尝试使用以下命令将表数据转储到文件:
pg_dump -a -t '"my_table"' my_database > /tmp/my_table.sql
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我只得到8条记录,如果我像这样查看表格,表格中有超过1000条记录:
SELECT * FROM my_table;
Run Code Online (Sandbox Code Playgroud)
所以,我尝试使用COPY命令生成.csv文件,我看到类似的行为:
COPY my_table TO '/tmp/my_table.csv' WITH CSV HEADER;
Run Code Online (Sandbox Code Playgroud)
我得到与pg_dump相同的8条记录.但是,有:
COPY (SELECT * FROM my_table) TO '/tmp/my_table.csv' WITH CSV HEADER;
Run Code Online (Sandbox Code Playgroud)
我得到了所有1266条记录.
我会假设这些命令都应该返回相同的数据,但显然,我错了.有什么不同?
大家好,任何人都可以帮我从远程AWS服务器上的postgreSQL数据库转储到本地机器上的postgreSQL数据库.
我一直在尝试使用这个堆栈帖子中的答案,但它一直在失败.
我正在使用的命令是
pg_dump -C -h ssh ubuntu@ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev
Run Code Online (Sandbox Code Playgroud)
但我一直在收到错误
pg_dump: too many command-line arguments (first is "paycloud_dev")
Run Code Online (Sandbox Code Playgroud)
无法弄清楚我做错了什么
只是添加,dev_user是我在本地机器和远程服务器上的postgreSQL中设置的角色.paycloud_dev是两个数据库的名称(所有者是dev_user)
编辑1
根据由于某种原因已被删除的帖子尝试下面的命令
pg_dump -C -h ec2-59-16-143-85.eu-west-1.compute.amazonaws.com -U dev_user paycloud_dev | psql -h localhost -U dev_user paycloud_dev
Run Code Online (Sandbox Code Playgroud)
现在这给了我错误
pg_dump: [archiver (db)] connection to database "paycloud_dev" failed: could not connect to server: Connection refused
Is the server running on host "ec2-59-16-143-85.eu-west-1.compute.amazonaws.com" (59.16.143.85) and accepting
TCP/IP …Run Code Online (Sandbox Code Playgroud) 按照标题。
我看了手册页,似乎没有任何命令行参数在“ CREATE TABLE”语句中包含“ IF NOT EXISTS”子句。
我尝试备份我的大学项目数据库。我按照指示进行,似乎一切都输入了:
1:
2:
3:
在官方网站上,应该有类似此内容的另一种弹出消息:
但是我没有得到这个,也没有得到任何发生错误时显示的另一个。
我试图直接使用pg_dump.exe,但是它提示我输入密码。我尝试了所有密码-用户密码,服务器密码,这些密码用于PGAdmin 4中连接到数据库的密码,但其他密码似乎都不起作用。
我试图找到与此有关的任何信息,但是有关pg_dump.exe的所有文章都涉及如何自动执行密码输入。此备份静默失败的原因是什么?pg_dump.exe需要哪个密码?
如果需要的话,我会添加任何详细信息,我现在想算了4个小时...
我需要指定sslmode=allow何时使用psql连接到我的PostgreSQL数据库,如:psql sslmode=allow -h localhost -p 5432
我得到了server does not support SSL, but SSL was required
我尝试指定相同的选项,pg_dump但它无法识别该选项.
如何指定sslmode到pg_dump?
从服务器上的转储文件恢复数据库时出现以下错误:
错误:关系"table_id_seq"不存在第
1行:SELECT pg_catalog.setval('table_id_seq',362,true);
这是我的dump命令:
pg_dump -U username -h localhost db_name > filename.sql
Run Code Online (Sandbox Code Playgroud)
这是我在服务器上的恢复命令:
psql -U username -h localhost db_name < filename.sql
Run Code Online (Sandbox Code Playgroud)
请帮忙,谢谢.
pg-dump ×10
postgresql ×9
sql ×3
backup ×1
command-line ×1
heroku ×1
pg-restore ×1
pgadmin ×1
pgadmin-4 ×1
restore ×1
ssh ×1
ssl ×1