我是ubuntu服务器部分的新手。我正在设置一个安装了ubuntu14.04LTS操作系统的服务器。我有两个1TB的sata磁盘和两个2TB的sata磁盘(这两个磁盘都配置了RAID 1)。我正在使用1TB的操作系统和其他东西,但对于我的数据库,我想使用2TB磁盘。
我已经在服务器上安装了postgresql,但我希望数据库的所有数据都存储在2TB数据库上。
所以我想在如何做到这一点上提供一些帮助。我的意思是如何设置postgresql数据库的主数据库或data_directory,以便将数据直接存储在2TB数据库上。
如果能从安装点开始提供帮助,我将不胜感激。
提前感谢
发布于 2015-08-31 21:49:21
其实这很简单。您所要做的就是在创建数据库集群时指定路径。这来自postgresql文档。创建新pg集群的命令是initdb,如下所示:
initdb [option...] [--pgdata | -D] directory
根据文档,initdb将创建指定的目录,除非它没有写到目标位置的特权。为了安全起见,您可以将其创建为root用户,然后将所有权更改为postgres系统用户。在我的系统(用于开发)中,我在/home (在raid1数组上)下创建了一个属于postgres的目录,并针对该目录运行initdb。
cd /home sudo mkdir postgres sudo chown postgres:postgres postgres initdb [your db creation options here] --pgdata /home/postgres
现在可以启动postgresql服务器,指定pgdata目录。例如,
pg_ctl start -D /home/postgres
将启动使用指定目录的服务器实例。如果服务器实例已经在运行,您可能希望用start替换restart。这将关闭正在运行的服务器,并使用新的选项启动它。
另外,正如您可能已经猜到的,服务器的多个实例可以同时运行(当然是在不同的端口上),每个实例管理一个单独的集群(即物理路径)。
发布于 2015-08-31 19:09:39
我不确定postgres将其数据存储在哪里,我认为/var/lib/postgresql/。如果您希望将2tb专用于postgres数据,可以执行以下操作:(我没有postgres运行atm,请检查路径和名称。这适用于任何服务类型,同样适用于postgres。)
sudo service postgres stopsudo mv /var/lib/postgresql /var/lib/postgresql.baksudo mkdir /var/lib/postgresql/var/lib/postgresqlchown和chmod,您可以从ls -la /var/lib/postgresql.bak检查旧设置)cp -ra /var/lib/postgresql.bak/. /var/lib/postgresqlservice postgres starthttps://askubuntu.com/questions/667844
复制相似问题