首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个SDD上设置postgresql

在另一个SDD上设置postgresql
EN

Ask Ubuntu用户
提问于 2015-08-31 18:49:15
回答 2查看 4.4K关注 0票数 0

我是ubuntu服务器部分的新手。我正在设置一个安装了ubuntu14.04LTS操作系统的服务器。我有两个1TB的sata磁盘和两个2TB的sata磁盘(这两个磁盘都配置了RAID 1)。我正在使用1TB的操作系统和其他东西,但对于我的数据库,我想使用2TB磁盘。

我已经在服务器上安装了postgresql,但我希望数据库的所有数据都存储在2TB数据库上。

所以我想在如何做到这一点上提供一些帮助。我的意思是如何设置postgresql数据库的主数据库或data_directory,以便将数据直接存储在2TB数据库上。

如果能从安装点开始提供帮助,我将不胜感激。

提前感谢

EN

回答 2

Ask Ubuntu用户

发布于 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。这将关闭正在运行的服务器,并使用新的选项启动它。

另外,正如您可能已经猜到的,服务器的多个实例可以同时运行(当然是在不同的端口上),每个实例管理一个单独的集群(即物理路径)。

票数 2
EN

Ask Ubuntu用户

发布于 2015-08-31 19:09:39

我不确定postgres将其数据存储在哪里,我认为/var/lib/postgresql/。如果您希望将2tb专用于postgres数据,可以执行以下操作:(我没有postgres运行atm,请检查路径和名称。这适用于任何服务类型,同样适用于postgres。)

  • 停止postgres sudo service postgres stop
  • mv数据dir:sudo mv /var/lib/postgresql /var/lib/postgresql.bak
  • sudo mkdir /var/lib/postgresql
  • 创建一个文件系统并将新驱动器挂载到/var/lib/postgresql
  • 将所有者和组更改为postgres并更改访问权限(chownchmod,您可以从ls -la /var/lib/postgresql.bak检查旧设置)
  • 将postgres数据复制回:cp -ra /var/lib/postgresql.bak/. /var/lib/postgresql
  • 重新启动postgres:service postgres start
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/667844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档