我已经在我的机器上安装了PG 9.2。我有一个大约一年前创建的数据库集群,使用initdb
,使用postgreSQL版本8.4。
(8.4)数据集群消耗几个Gb,因此它在自己的单独硬盘上。我指示旧的8.4服务器在服务器启动时传递一个-D /path/ to / data /文件夹,从而使用正确的数据位置。
我的问题是:
我有一个(v8.4)数据库集群(包含大约10个数据库)位于/some/path/to/datadir
我有一个新安装的postgreSQL 9.2服务器。
如何升级集群(及其数据库),以便新服务器可以使用集群--记住我希望数据保持在当前的数据位置(映射到‘/’的物理上独立的设备)。
我尝试通过修改配置文件来针对旧集群文件运行服务器,我(不足为奇地)得到了以下错误:
* Starting PostgreSQL 9.2 database server * The PostgreSQL server failed to start. Please check the log output:
2012-11-18 23:50:31 GMT FATAL: database files are incompatible with server
2012-11-18 23:50:31 GMT DETAIL: The data directory was initialized by PostgreSQL version 8.4, which is not compatible with this version 9.2.1.
那么,如何升级8.4集群(在指定的数据目录中),以供9.2服务器使用?
发布于 2012-11-15 23:02:22
Ubuntu使用pg_wrapper
管理一个系统上的多个PostgreSQL安装。
在做任何事情之前,对数据库进行备份。
您可以使用pg_upgradecluster -n 9.1 8.4 main
将您的8.4集群升级到9.1。升级完成后(它将进行转储和重新加载),您可以使用pg_stopcluster 8.4 main
并确保仍然可以访问新集群上的所有数据。然后在新集群中编辑postgresql.conf
,将端口更改为默认的5432
,并且,当您高兴的时候,一切都很好,pg_dropcluster
就是旧的集群。
请注意,pg_upgradecluster
不使用pg_upgrade
。它做一个转储和重新装载。对于大型数据库,您可能希望根据升级时的PostgreSQL文档,使用pg_upgrade
或转储来手动管理升级。Ubuntu对PostgreSQL 迷茫pg_upgrade
的奇怪打包,因此PostgreSQL文档中的过程将不完全匹配。
有关上面引用的命令和less /usr/share/doc/postgresql-common/README.Debian.gz
,请参见手册页。
https://dba.stackexchange.com/questions/28731
复制相似问题