【问题标题】:Postgres 9.2 pg_largeobject tablespacePostgres 9.2 pg_largeobject 表空间
【发布时间】:2013-03-19 10:59:18
【问题描述】:

我目前正在移动一些数据,但遇到了一个有趣的问题。

我有一个 CentOS 服务器 (6.3),在一个内置磁盘空间有限的服务器上运行 Postgres 9.2;但是,我确实有大量非常可靠的外部网络磁盘空间可用。

我已将表空间设置为我的数据库的存储设备上的一个目录,一切似乎都运行良好,直到...

我意识到我有大量的 BLOB 数据需要存储在pg_largeobject

我一直在研究如何设置pg_largeobject 的表空间,我确实找到了some results,但它们已经过时了。

我确实发现 one article 看起来很有希望,但我很犹豫,因为该线程还提到事情将会/应该发生变化。

我有两个问题...

  1. 在理想情况下,我想将所有 postgres(包括 pg_largeobject)移动到这个外部存储上以便于维护。这可能吗?
  2. 如果没有,我怎样才能让pg_largeobject 使用我的网络存储?

【问题讨论】:

    标签: postgresql centos postgresql-9.2


    【解决方案1】:

    正如你所提到的,最好的办法是将整个 PostgreSQL 移动到远程存储上,假设存储使用可靠的文件网络块设备,如 iSCSI、ATAoE 或 NBD。我不建议在 NFS 上运行 Pg,而在 CIFS/SMBFS 上运行它是行不通的。

    只是:

    • 进行备份
    • 记下SHOW data_directory;psql 中的输出
    • 关闭 PostgreSQL
    • 将数据目录(包含pg_xlogpg_clog等的文件夹)移动到远程存储
    • 为datadir的新位置调整父目录的权限,确保postgres用户、postgres、组或others权限块在每个父目录上至少有execute,这样它就可以遍历树。
    • 调整您的系统启动脚本,将新位置设置为 PostgreSQL 数据目录将旧数据目录位置(SHOW data_directory 输出)符号链接到新位置。
    • 启动 PostgreSQL

    不幸的是,不同的系统和软件包以不同的方式找到 datadir。例如,Debian/Ubuntu 使用 pg_wrapper。

    【讨论】:

    • 感谢您的快速响应...我在/etc/sysconfig/pgsql/ 目录中看不到任何内容...我还能在哪里找到它?另外,是否可以直接将 postgres 全新安装到远程位置?
    • @loshorse 你是如何安装 PostgreSQL 的?你用的是什么包?
    • 我按照people.planetpostgresql.org/devrim/index.php?/archives/…这里找到的教程直接安装了包。
    • @losthorse 好的,所以您正在使用 PGDG RPM。看起来 datadir 在其中不可配置,因此请参阅更新的答案。
    • 好的,我找到了包含您提到的文件的目录...我不介意按照您提供的说明进行操作,但如果可能的话,我宁愿重新安装。我不介意添加 repo 并使用 yum,如果这样可以让我设置目标目录...我试图避免的部分内容是必须使服务器上的日志文件与服务器上的记录保持同步执行备份时的外部存储。
    猜你喜欢
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多