注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL 9.2: Remove the spclocation field from pg_tablespace  

2012-06-26 20:23:07|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

       今天在 PostgreSQL9.2 测试版上做实验时发现了一奇怪现象,以前可以通过 pg_tablespace 系统表定位表空间

对应的物理文件,而在 PostgreSQL9.2 版本不可以,后来查询了下 PostgreSQL9.2 Realease 才知道这个信息有变化。

 

--1 PostgreSQL9.1 查询表空间信息

 [postgres@pgb ~]$ psql
psql (9.1.0)
Type "help" for help.

postgres=# select * from pg_tablespace;
    spcname    | spcowner |                  spclocation                  | spcacl | spcoptions
---------------+----------+-----------------------------------------------+--------+------------
 pg_default    |       10 |                                               |        |
 pg_global     |       10 |                                               |        |
 tbs_mydb      |    16384 | /database/pgdata1923_9.1/pg_tbs/tbs_mydb      |        |
 tbs_skytf     |    41818 | /database/pgdata1923_9.1/pg_tbs/tbs_skytf     |        |
 tbs_skytf_idx |    41818 | /database/pgdata1923_9.1/pg_tbs/tbs_skytf_idx |        |
(5 rows)

   

    备注:pg_tablespace.spclocation 显示了表空间对应系统上的数据目录。

 

--2 PostgreSQL9.2 beta1

 [postgres@redhat6 ~]$ psql
psql (9.2beta1)
Type "help" for help.

postgres=# select oid,* from pg_tablespace;
  oid  |  spcname   | spcowner |                 spcacl                  | spcoptions
-------+------------+----------+-----------------------------------------+------------
  1663 | pg_default |       10 |                                         |
  1664 | pg_global  |       10 |                                         |
 16385 | tbs_francs |       10 | {postgres=C/postgres,francs=C/postgres} |
(3 rows)

   

 备注: PostgreSQL9.2 版的 pg_tablespace 上没有 spclocation 字段,当然查不到表空间对应的数据目录。

 

--3 PostgreSQL9.2beta 的 release note

  • Remove the spclocation field from pg_tablespace (Magnus Hagander)

    This field was duplicative of the symbolic links already present in the data directory. This allows tablespace directories to be moved while the server is down. Also add pg_tablespace_location() to allow querying of the symbolic links.

     

       备注:原来在 PostgreSQL9.2 版本中,spclocation 字段信息已经被去除了,同时在 9.2 版本中,提供函数

                  pg_tablespace_location() 查询表空间对应的数据目录。

     

    --4 PostgreSQL9.2 中查询表空间对应目录

    postgres=# \df pg_tablespace_location
                                       List of functions
       Schema   |          Name          | Result data type | Argument data types |  Type 
    ------------+------------------------+------------------+---------------------+--------
     pg_catalog | pg_tablespace_location | text             | oid                 | normal
    (1 row)

    postgres=# select pg_tablespace_location(16385);
              pg_tablespace_location         
    ------------------------------------------
     /database/1922/pgdata1/pg_tbs/tbs_francs
    (1 row)

       

    --5 也可以通过元子命令查询

     postgres=# \db
                           List of tablespaces
        Name    |  Owner   |                 Location                
    ------------+----------+------------------------------------------
     pg_default | postgres |
     pg_global  | postgres |
     tbs_francs | postgres | /database/1922/pgdata1/pg_tbs/tbs_francs
       


    --6 参考
  • http://www.postgresql.org/docs/9.2/static/release-9-2.html


  •   评论这张
     
    阅读(24970)| 评论(0)
    推荐 转载

    历史上的今天

    在LOFTER的更多文章

    评论

    <#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    页脚

    网易公司版权所有 ©1997-2016