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

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL: What's the location of pg_default tablespace ?  

2012-07-10 15:02:37|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

           
  
              pg_default 为 PostgreSQL 的默认表空间,也可以理解成系统表空间,也许有人疑问这个表空间
物理的位置在哪里?在不同操作系统上 PostgreSQL 的安装路径可能不同,但在 Linux 环境下,pg_default
表空间对应的物理位置为 $PGDATA/base 目录下。


--1 查看 PostgreSQL 的表空间

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

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

   
 
   备注:上面显示了三个表空间,其中 tbs_francs 为后来创建的表空间,另外两个为系统表空间。
 

--2 查看表空间的 oid

 postgres=# select oid,spcname from pg_tablespace;
  oid  |  spcname  
-------+------------
  1663 | pg_default
  1664 | pg_global
 16385 | tbs_francs
(3 rows)
   


--3 查看表空间 tbs_francs 的物理目录

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


--4 查看表空间 pg__default 的目录

 postgres=# select  pg_tablespace_location(1663) ;
 pg_tablespace_location
------------------------
 
(1 row)

    
  备注:系统默认表空间 pg_default 查出来的物理位置为空。
 
 
--5 查看数据库的 oid

 postgres=# select oid,datname from pg_database;
  oid  |  datname 
-------+-----------
     1 | template1
 12865 | template0
 12870 | postgres
 16386 | francs
(4 rows)
   
 
 
--6 系统上对应的目录

 [postgres@redhat6 base]$ cd $PGDATA/base
[postgres@redhat6 base]$ pwd
/opt/pgdata9.2/pg_root/base
[postgres@redhat6 base]$ ll
total 20K
drwx------. 2 postgres postgres  12K May 31 03:07 1
drwx------. 2 postgres postgres 4.0K May 17 14:37 12865
drwx------. 2 postgres postgres 4.0K Jul  7 04:08 12870
   

   备注:在 $PGDATA/base 目录下有三个子目录,分别为数据库 template1,template0,postgres 的数据库
             对像存储目录。
        

--7 在 francs 库中创建测试表

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

postgres=# grant all on tablespace  pg_default to francs;
GRANT        

postgres=# \c francs francs
You are now connected to database "francs" as user "francs".
francs=> show default_tablespace;
 default_tablespace
--------------------
 
(1 row)

francs=> set default_tablespace='pg_default';
SET

francs=> show default_tablespace;
 default_tablespace
--------------------
 pg_default
(1 row)

francs=> create table test_default (id integer);
CREATE TABLE

francs=> insert into test_default values (1),(2),(3);
INSERT 0 3

   


--8 再次查看系统目录

 [postgres@redhat6 base]$ cd $PGDATA/base
[postgres@redhat6 base]$ pwd
/opt/pgdata9.2/pg_root/base
[postgres@redhat6 base]$ ll
total 24K
drwx------. 2 postgres postgres  12K May 31 03:07 1
drwx------. 2 postgres postgres 4.0K May 17 14:37 12865
drwx------. 2 postgres postgres 4.0K Jul  7 04:08 12870
drwx------. 2 postgres postgres 4.0K Jul  7 05:03 16386
  

   备注: $PGDATA/base 下正好多了目录 16386。
   
  
--9 接着往下看

 francs=> select oid,relname from pg_class where relname='test_default';
  oid  |   relname   
-------+--------------
 24706 | test_default
(1 row)

[postgres@redhat6 base]$ ll 16386
total 8.0K
-rw-------. 1 postgres postgres 8.0K Jul  7 05:03 24706

   

  备注:已经很明白了,不多解释。
  

  评论这张
 
阅读(27288)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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