Sql 是否在还原到数据库之前显式创建数据库?
当我安装PostgreSQL server时,我要做的第一件事就是为外部源导入数据库。以下哪项是正确的方法Sql 是否在还原到数据库之前显式创建数据库?,sql,database,postgresql,database-backups,database-restore,Sql,Database,Postgresql,Database Backups,Database Restore,当我安装PostgreSQL server时,我要做的第一件事就是为外部源导入数据库。以下哪项是正确的方法 在PostgreSQL服务器上创建一个名为“NEWDB”的数据库,然后 将我的外部“BACKUPDB”数据库从我的pg_转储导入 “新数据库” 不要在PostgreSQL server上创建数据库,请导入 “NEWDB”数据库,从而在 postgresql server 我想我的问题是,如果我想将现有数据库导入PostgreSQL server,我是否需要先创建一个数据库,以便它进入?
- 在PostgreSQL服务器上创建一个名为“NEWDB”的数据库,然后 将我的外部“BACKUPDB”数据库从我的pg_转储导入 “新数据库”
- 不要在PostgreSQL server上创建数据库,请导入 “NEWDB”数据库,从而在 postgresql server
CREATE database
和ALTER database
命令。您需要连接到现有数据库。因此,您必须首先创建它。我引述: 如果您的数据库集群在模板中有任何本地添加1 数据库中,请小心将pg_dump的输出恢复到 空数据库;否则,由于以下原因,您可能会出现错误: 添加对象的重复定义。创建空数据库的步骤 在没有任何本地添加的情况下,从template0复制而不是从template1复制,例如 例如:
使用模板template0创建数据库foo代码>
而且:
转储文件也不包含任何ALTER数据库。。。设置
命令;这些设置与数据库一起由pg_dumpall转储
用户和其他安装范围的设置
另一方面,转储整个DB集群,包括像用户这样的元对象。它包括CREATE DATABASE
语句,并在恢复时连接到每个数据库。您甚至可以使用-c
(-clean
)选项包含DROP DATABASE
语句。小心点
PostgreSQL的每个实例都有一个名为“postgres”的默认维护数据库,您可以连接到该数据库,以创建实例数据库或启动完整还原(从pg_dumpall)。但是,必须针对其目标数据库运行单个数据库转储(来自pg_dump)
最后:
恢复后,明智的做法是在每个数据库上运行ANALYZE,以便
优化器具有有用的统计信息。您还可以运行vacuumdb-a-z来
分析所有数据库