赞
踩
表空间---数据库---数据库对象
数据库初始化之后就会有pg_default和pg_global两个表空间(pg_tablespace视图查看,也可以通过\db查看)。
查看数据库存放在哪个表空间中
select a.datname,b.spcname from pg_database a , pg_tablespace b where a.dattablespace=b.oid;
初始化库集簇:INITDB –D $PGDATA来完成。(相当于oracle数据库dbca建库)
pg_ctl -d $PGDATA可以启动数据库
对象标识符(OID)来对整个数据集簇中唯一的标识数据库对象,包括:数据库、表、索引、视图、元组、类型等。
默认的端口号是5432 ,端口号可以在配置文件中进行修改
数据默认的表空间有pg_default和pg_global两个
pg_default表空间是用来存储系统目录对象、用户表、用户表index、和临时表、临时表index、内部临时表的默认空间。对应存储目录$PADATA/base/ (template0、template1和postgres数据库存放在pg_default表空间下)
pg_global表空间用来存放系统字典表,共享系统目录;对应存储目录$PADATA/global/。相当于oracle数据库的system表空间
$PG_DATA/pg_tblspc目录下有表空间的标识符16384,软链接到具体的路径(用户手动创建的表空间)
postgres=# CREATE TABLESPACE tbs1 LOCATION '/var/postgre/data1_tbs';
select * from pg_tablespace;
2.PostgreSQL集簇的布局
文件:
目录:
3.initdb演示:
生成数据库集簇
create table test(id serial primary key,uname varchar(20));
CREATE TABLE
insert into test (uname) values ('mia');
insert into test (uname) values ('pg');
insert into test (uname) values ('redis');
test=# select pg_relation_filepath('test'::regclass);
pg_relation_filepath
----------------------
base/16384/16388 ---数据库oid/表的oid
(1 row)
pgtbs1
Create tablespace tbs01 location '/pgdb/tbs01’;
Create database test tablespace tbs01;
表空间及其存放路径对应关系
查看数据库存放在哪个表空间中
select a.datname,b.spcname from pg_database a , pg_tablespace b where a.dattablespace=b.oid;
PostgreSQL集簇的布局
PostgreSQL数据集簇
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。