Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 访问新创建的PostgreSQL群集_Database_Postgresql_Psql - Fatal编程技术网

Database 访问新创建的PostgreSQL群集

Database 访问新创建的PostgreSQL群集,database,postgresql,psql,Database,Postgresql,Psql,我希望在PostgreSQL中创建一个新的数据库集群,因为我希望该集群指向一个不同(且更大)的数据目录,而不是本地主机5432上的当前集群。为了创建一个新集群,我运行了下面的命令。但是,重新启动PostgresSQL后,我在pgAdmin中看不到db集群,无法连接到端口为5435的服务器。如何连接到此新群集?或者,我想我可以在旧集群中创建一个新的表空间,它指向这个更大的数据目录,但是我假设使用这个表空间填充数据库仍然会导致文件被写入集群数据目录?我正在Ubuntu 12.4上运行PostgreS

我希望在PostgreSQL中创建一个新的数据库集群,因为我希望该集群指向一个不同(且更大)的数据目录,而不是本地主机5432上的当前集群。为了创建一个新集群,我运行了下面的命令。但是,重新启动PostgresSQL后,我在pgAdmin中看不到db集群,无法连接到端口为5435的服务器。如何连接到此新群集?或者,我想我可以在旧集群中创建一个新的表空间,它指向这个更大的数据目录,但是我假设使用这个表空间填充数据库仍然会导致文件被写入集群数据目录?我正在Ubuntu 12.4上运行PostgreSQL 9.3

$ pg_createcluster -d /home/foo 9.3 test_env

Creating new cluster 9.3/test_env ...
  config /etc/postgresql/9.3/test_env
  data   /home/foo/
  locale en_US.UTF-8
  port   5435

如果希望实际启动数据库,则需要指定选项“--start”。否则,它只会创建数据目录


但是,使用表空间可能是更好的解决方案,因为运行多个数据库集群会带来运行完全独立的postmaster进程的开销。如果在表空间中创建数据库,则与该数据库关联的所有文件都将位于关联目录中。系统目录仍将位于群集的数据目录中,但其大小不太可能导致任何问题。

因此,如果数据库指向表空间,则该数据库中表的元数据信息仅存储在群集数据目录中,而所有其他文件,即用于创建表的文件,存储在表空间?元信息,以及事务日志工作目录(pg_xlog)中。出于性能原因,我经常将后者移动到另一个文件系统,使用符号链接指向它的新主页。但两者都不应该占用太多空间。谢谢!一开始我很担心;当我第一次注意到脚本正在向集群数据目录写入数据时,我先发制人地杀死了它,但正如您所说,它非常小。