Answers:
有两种工具可供选择,具体取决于创建转储文件的方式。
您的第一个参考来源应该是手册页,pg_dump(1)
因为手册页是创建转储本身的原因。它说:
转储可以脚本或存档文件格式输出。脚本转储是纯文本文件,其中包含将数据库重建到保存时所处状态所需的SQL命令。要从此类脚本还原,请将其提供给psql(1)。脚本文件甚至可以在其他机器和其他体系结构上用于重建数据库。甚至在其他SQL数据库产品上也进行了一些修改。
备用存档文件格式必须与pg_restore(1)一起使用才能重建数据库。它们允许pg_restore对恢复什么有选择性,甚至可以在恢复之前对项目进行重新排序。存档文件格式设计为可跨体系结构移植。
因此,取决于转储的方式。您可能可以使用出色的file(1)
命令来弄清楚-如果它提到ASCII文本和/或SQL,则应使用还原它,psql
否则您应该使用pg_restore
恢复非常容易:
psql -U username -d dbname < filename.sql
-- For Postgres versions 9.0 or earlier
psql -U username -d dbname -1 -f filename.sql
要么
pg_restore -U username -d dbname -1 filename.dump
查阅各自的联机帮助页-有很多影响还原工作方式的选项。在还原之前,您可能必须清理“活动”数据库或从template0(如注释中指出)重新创建它们,具体取决于转储的生成方式。
-d
与-f
在同一时间。pg_restore: options -d/--dbname and -f/--file cannot be used together
cannot be used together
,请参阅此处:stackoverflow.com/questions/27882070/…–
创建备份
pg_dump -h localhost -p 5432 -U postgres -F c -b -v -f
"/usr/local/backup/10.70.0.61.backup" old_db
-F c是自定义格式(已压缩,并且可以与-j N并行执行)-b是blob,-v是详细信息,-f是备份文件名
从备份还原
pg_restore -h localhost -p 5432 -U postgres -d old_db -v
"/usr/local/backup/10.70.0.61.backup"
设置-h localhost-选项很重要
您可能需要以身份登录postgres
才能在数据库上拥有全部权限。
su - postgres
psql -l # will list all databases on Postgres cluster
pg_dump / pg_restore
pg_dump -U username -f backup.dump database_name -Fc
切换-F
指定备份文件的格式:
c
将使用自定义的PostgreSQL格式,该格式将被压缩并导致最小的备份文件大小d
用于每个文件是一个表的目录t
用于TAR存档(大于自定义格式)-h
/ --host
指定运行服务器的计算机的主机名-W
/ --password
强制pg_dump
在连接数据库之前提示输入密码恢复备份:
pg_restore -d database_name -U username -C backup.dump
参数-C
应在导入数据之前创建数据库。如果它不起作用,您可以随时创建数据库,例如。使用命令(作为postgres
具有创建数据库权限的用户或其他帐户)createdb db_name -O owner
pg_dump / psql
如果您未指定参数,-F
则使用默认的纯文本SQL格式(或-F p
)。那你就不能使用pg_restore
。您可以使用导入数据psql
。
备用:
pg_dump -U username -f backup.sql database_name
恢复:
psql -d database_name -f backup.sql
postgres
)设置了密码,-W
则应使用option。例如,在Ubuntu上无需在su postgres
终端上执行任何操作,$ psql -h localhost -U postgres -W -d DB_NAME < DB_BACKUP.sql
该命令对我有用,可在本地主机上还原备份。请注意,该-h
选项是必需的。
-W
选项从来都不是必不可少的。pg_dump
如果服务器要求密码验证,将自动提示输入密码。PGPASSWORD
如果您使用的是纯文本密码,也可以使用env变量。-h
如果默认设置PGHOST
不适用,则为必需。这些选项对于许多PostgreSQL utils都是通用的,因此对于回答这个问题不是必需的(它在很大程度上取决于您的设置)。
pg_dump/psql
部分对我有用。但是第一部分pg_dump/pg_restore
对我来说无法恢复。谢谢。
-Fc
以下是我pg_dump
用来还原数据库的版本:
pg_restore -h localhost -p 5432 -U postgres -d my_new_database my_old_database.backup
或使用psql
:
psql -h localhost -U postgres -p 5432 my_new_database < my_old_database.backup
其中,-h
主机,-p
端口,-u
登录用户名,-d
数据库的名称
my_new_database
使用时应该已经存在psql
,不是吗?
Backup: $ pg_dump -U {user-name} {source_db} -f {dumpfilename.sql}
Restore: $ psql -U {user-name} -d {desintation_db} -f {dumpfilename.sql}
这为我工作:
pg_restore --verbose --clean --no-acl --no-owner --host=localhost --dbname=db_name --username=username latest.dump
--no-owner
真的帮助了我。
1.打开终端。
2.使用以下命令备份数据库
您的postgres bin-/opt/PostgreSQL/9.1/bin/
您的源数据库服务器-192.168.1.111
您的备份文件位置和名称-/home/dinesh/db/mydb.backup
您的源数据库名称-mydatabase
/opt/PostgreSQL/9.1/bin/pg_dump --host'192.168.1.111'--port 5432 --username“ postgres”-无密码--format custom --blobs --file“ / home / dinesh / db /mydb.backup“” mydatabase“
3.将mydb.backup文件恢复到目标位置。
您的目标服务器-本地主机
您的目标数据库名称-mydatabase
创建用于还原备份的数据库。
/opt/PostgreSQL/9.1/bin/psql -h'localhost'-p 5432 -U postgres -c“创建数据库mydatabase”
恢复备份。
/opt/PostgreSQL/9.1/bin/pg_restore --host'localhost'--port 5432 --username“ postgres” --dbname“ mydatabase” --no-password --clean“ / home / dinesh / db / mydb。备用”
如果使用pg_dump创建备份,则可以通过以下方式轻松还原它:
cd "C:\ProgramFiles\PostgreSQL\9.5\bin"
For example: psql.exe -U postgres -d YourDatabase -f D:\Backup\.sql
尝试这个:
psql -U <username> -d <dbname> -f <filename>.sql
从.sql文件还原DB psql
如下所示,您可以使用psql命令还原转储文件:
https://www.postgresql.org/docs/8.1/static/backup.html#BACKUP-DUMP-RESTORE
psql dbname < infile
如果您需要设置用户名,只需在命令后添加用户名,例如:
psql dbname < infile username
尝试:
pg_restore -h localhost -p 5432 -U <username> -d <dbname> -1 <filename>
恢复postgres备份文件取决于您首先如何进行备份。
如果您将pg_dump与-F c或-F d一起使用,则需要使用pg_restore,否则可以使用
psql -h localhost -p 5432 -U postgres <备份文件
尝试查看以下命令是否可以帮助您:
sudo su - yourdbuser
psql
\i yourbackupfile
如果您有备份SQL文件,则可以轻松还原它。只需按照下面的说明进行操作
1. At first, create a database using pgAdmin or whatever you want (for example my_db is our created db name)
2. Now Open command line window
3. Go to Postgres bin folder. For example: cd "C:\ProgramFiles\PostgreSQL\pg10\bin"
4. Enter the following command to restore your database: psql.exe -U postgres -d my_db -f D:\Backup\backup_file_name.sql
如果需要,为您的postgres用户键入密码,然后让Postgres完成其工作。然后,您可以检查还原过程。
如果要备份数据或从备份还原数据,则可以运行以下命令:
要创建数据备份,请转到您的postgres \ bin \目录C:\programfiles\postgres\10\bin\
,然后键入以下命令:
pg_dump -FC -U ngb -d ngb -p 5432 >C:\BACK_UP\ngb.090718_after_readUpload.backup
要从备份恢复数据,请转到您的postgres \ bin \目录C:\programfiles\postgres\10\bin\
,然后键入以下命令:
C:\programFiles\postgres\10\bin> pg_restore -Fc -U ngb -d ngb -p 5432 <C:\ngb.130918.backup
请确保备份文件存在。