1. 程式人生 > >PostgreSQL 表空間與資料庫

PostgreSQL 表空間與資料庫

PostgreSQL中表空間的建立有點像Oracle在裸裝置上建立表空間,也就是說它只有表空間的名稱與資料庫檔案的目錄,而沒有具體的大小。在PostgeSQL中,它沒有資料檔案的概念,只是一個數據目錄。 下面,我們來看例子。 postgres=# create tablespace ts_demo location '/home/pgsqladmin/pgdata01'; CREATE TABLESPACE postgres=# 建立語法非常簡單。 我們可以在已有的表空間上建立表或是索引,如下: postgres=# create table t( postgres(# x int, postgres(# y varchar(30), postgres(# z date postgres(# ) postgres-# tablespace ts_demo
postgres-# ; CREATE TABLE postgres=# create index t_idx_x on t(x) tablespace ts_demo; CREATE INDEX postgres=#  與Oracle中相關對像的建立語法類似。 我們也可以在新增表的主鍵約束或是唯一鍵約束的時候指定表空間,如下: postgres=# alter table t add constraint t_y_unique unique(y) using index tablespace ts_demo; ALTER TABLE postgres=#  我們可以使用psql工具下的命令來查看錶空間,如下: postgres=# \db
                 List of tablespaces     Name    |   Owner    |         Location           ------------+------------+---------------------------  pg_default | pgsqladmin |   pg_global  | pgsqladmin |   ts_demo    | pgsqladmin | /home/pgsqladmin/pgdata01 (3 rows) postgres=# alter tablespace ts_demo rename to ts_demo01
; ALTER TABLESPACE postgres=# \db                  List of tablespaces     Name    |   Owner    |         Location           ------------+------------+---------------------------  pg_default | pgsqladmin |   pg_global  | pgsqladmin |   ts_demo01  | pgsqladmin | /home/pgsqladmin/pgdata01 (3 rows) postgres=#  查看錶T的相關變化: postgres=# \d t               Table "public.t"  Column |         Type          | Modifiers  --------+-----------------------+-----------  x      | integer               |   y      | character varying(30) |   z      | date                  |  Indexes:     "t_y_unique" UNIQUE CONSTRAINT, btree (y), tablespace "ts_demo01"     "t_idx_x" btree (x), tablespace "ts_demo01" Tablespace: "ts_demo01" postgres=#  我們也可以把表進行在表空間上的移動,如下: postgres=# create tablespace ts_demo02 location '/home/pgsqladmin/pgdata02'; CREATE TABLESPACE postgres=# alter table t set tablespace ts_demo02; ALTER TABLE postgres=# \d t               Table "public.t"  Column |         Type          | Modifiers  --------+-----------------------+-----------  x      | integer               |   y      | character varying(30) |   z      | date                  |  Indexes:     "t_y_unique" UNIQUE CONSTRAINT, btree (y), tablespace "ts_demo01"     "t_idx_x" btree (x), tablespace "ts_demo01" Tablespace: "ts_demo02" postgres=#  在一個PostgreSQL資料庫系統中,資料的組織結構可以分為如下三成: 資料庫:一個PostgreSQL資料庫下可以管理多個數據庫,當應用連線的時候,只能連線到其中的一個數據庫,而一個數據庫只能屬於一個例項。這與Oracle 12c中有Pluggable Database有點類似,但是一個PDB可以有多個例項,一個例項可以有多個PDB,它是用service name來加以區分。在Oracle 12c之前,一個例項只能有一個數據庫,而一個數據庫可以有多個例項(RAC)。 表、索引:一個數據庫裡可以有多個表與索引。一般,在PostgreSQL中表的術語為“Relation”。 資料行:在每張表中可以有很多資料行。一般,在PostgreSQL中資料行叫做“Tuple”。 下面,我們來看一下如何建立資料庫。 我先給出資料庫的建立語法: create database db_name [ [ WITH]  [ OWNER [ = ] user_name ] [ TEMPLDATE [ =] templdate ] [ ENCODING [ = ] encoding ] [ LC_COLLATE [ = ] lc_collate ] [ LC_CTYPE [ = ] lc_ctype ] [ TABLESPACE [ = ] tablespace ] [ CONNECTION LIMIT [ = ] connection limit ] ] 說明:OWNER用來指定要建立的資料庫屬於那個使用者,如果沒有指定,則屬於建立的使用者。 TEMPLDATE:指定建立資料庫需要的模板,如果不指定,則使用預設的模板template1,可以指定為template0。如果指定為template1,則建立的資料庫的編碼和區域的設定必須與模板資料庫的相匹配,如果模板資料庫中包含了與新建的資料庫有編碼不匹配的資料,或者包含了接受LC_COLLATE 與LC_CTYPE 影響的索引,那麼複製這些資料將會導致資料庫被新設定破壞。template0公認不包含任何會受字元編碼或排序影響的資料的索引。 ENCODING:指定資料庫使用的編碼,比如為utf8。 LC_COLLATE ,LC_CTYPE :指定排序型別。 TABLESPACE:指定資料庫的預設表空間。 CONNECTION LIMIT:指定資料庫的最大連線數,預設為-1,表示禁用連線。 下面,我們來看個例子。 postgres=# create database demodb postgres-# template template0 postgres-# encoding 'UTF8' postgres-# tablespace ts_demo01 postgres-# connection limit 200; CREATE DATABASE postgres=# \l                                      List of databases    Name    |   Owner    | Encoding |   Collate   |    Ctype    |     Access privileges      -----------+------------+----------+-------------+-------------+---------------------------  demodb    | pgsqladmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |   postgres  | pgsqladmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 |   template0 | pgsqladmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/pgsqladmin            +            |            |          |             |             | pgsqladmin=CTc/pgsqladmin  template1 | pgsqladmin | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/pgsqladmin            +            |            |          |             |             | pgsqladmin=CTc/pgsqladmin (4 rows) postgres=#  建立完成。 下面,我們來連線並進行訪問。 postgres=# \q [[email protected] ~]$  [[email protected] ~]$ psql -d demodb psql (9.4.4) Type "help" for help. demodb=# create table t demodb-# ( demodb(# x int, demodb(# y varchar(30), demodb(# z date demodb(# ); CREATE TABLE demodb=# insert into t(x,y,z) values(123,'abcd',date'2015-07-09'); INSERT 0 1 demodb=# commit; WARNING:  there is no transaction in progress COMMIT demodb=# \d t               Table "public.t"  Column |         Type          | Modifiers  --------+-----------------------+-----------  x      | integer               |   y      | character varying(30) |   z      | date                  |  demodb=# select * from t;   x  |  y   |     z       -----+------+------------  123 | abcd | 2015-07-09 (1 row) demodb=# 

相關推薦

PostgreSQL 空間資料庫

PostgreSQL中表空間的建立有點像Oracle在裸裝置上建立表空間,也就是說它只有表空間的名稱與資料庫檔案的目錄,而沒有具體的大小。在PostgeSQL中,它沒有資料檔案的概念,只是一個數據目錄。 下面,我們來看例子。 postgres=# create tabl

PostgreSQL空間資料庫、模式、、使用者/角色之間的關係

    而template1資料庫的預設表空間是pg_default,這個表空間是在資料庫初始化時建立的,所以所有template1中的物件將被同步克隆到新的資料庫中。    相對完整的語法應該是這樣的:CREATE DATABASE dbname OWNER kanon TEMPLATE template1

共享空間獨立空間、frm,MYD,MYI.idb,par文件說明

適合 數據 sla back 磁盤空間 ble .cn per 會有 一、共享表空間與獨立表空間MySQL5.5默認是共享表空間 ,5.6中,默認是獨立表空間。共享表空間:ibdata1是InnoDB的共享表空間,默認配置是把全部表空間存放到ibdata1中,因此而造成ib

Oracle 空間數據文件

username 結構 rman 記錄日誌 back 返回 group bubuko 改名 Oracle 表空間與數據文件 一、概念 表空間:是一個或多個數據文件的邏輯集合 表空間邏輯存儲對象:永久段-->如表與索引

Oracle 11g R2 DBA 操作指南(13) 空間資料檔案管理

1.Oracle 資料庫的邏輯結構 (邏輯結構)一個數據庫有一個或多個表空間,一個表空間有一個或多個段,而一個段由一個或多個區段組成,一個區段由多個數據庫塊組成,一個數據庫塊由多個作業系統資料庫塊組成。 (物理結構)一個表空間有一個或多個數據檔案,一個數據檔

oracle-dba-空間資料檔案管理

表空間與資料檔案管理 ORACLE資料庫應用系統ORACLE中介軟體DBMS資料檔案 邏輯結構:一個數據庫有多個表空間,一個表空間有多個段,一個段有多個區段,一個區段有多個數據塊,一個數據塊有多個作業系統資料庫塊 物理結構:一個表空間有多個數據

postgresql空間

建立表空間的語法: 命令:       CREATE TABLESPACE 描述:       建立新的表空間 語法: CREATE TABLESPACE 表空間的名稱     [ OWNER { 新的屬主 | CURRENT_USER | SESSION_USER } ]

建使用者、空間授權的sql語句

2、建立永久表空間,指定多個數據檔案create tablespace aaadatafile '+DATA\aaa_01.dbf' size 32g,'+DATA\aaa_02.dbf' size 32g,'+DATA\aaa_03.dbf' size 32g,'+DATA\aaa_04.dbf'

Oracle_空間資料庫物件

1、Oracle資料庫物件 資料庫物件是資料庫的組成部分,常常用 CREATE 命令進行建立,可以使用 ALTER 命令修改,用 DROP 執行刪除操作。前面已經接觸過的資料庫物件有表、使用者等。 同義詞:就是給資料庫物件一個別名。 序列:Oracle 中實現增長的物件

oracle 11g 資料庫空間建立資料匯入匯出

** oracle資料庫中進行資料的匯入匯出時要在cmd中進行而不是在sqlplus中進行操作! (1)向oracle資料庫中匯入完整的資料庫(字尾名:dmp)      首先進入cmd,輸入sqlplus /nolog執行oracle自帶程式,

Oracle資料庫入門使用者空間(二)

目錄 甲骨文使用者 協議介面卡錯誤解決方案 檢視使用者 啟動scott使用者 表空間 建立永久表空間 修改永久表空間 增加資料檔案 刪除資料檔案(注意不能刪除第一個建立的資料檔案,除非刪除所有) 刪除表空間     甲骨

postgresql 資料庫,模式,空間的關係

資料庫與模式模式(schema)是對資料庫(database)邏輯分割在資料庫建立的同時,就已經預設為資料庫建立了一個模式--public,這也是該資料庫的預設模式。所有為此資料庫建立的物件(表、函式、試圖、索引、序列等)都是常見在這個模式中的。test2_user=# create database myp

postgresql 檢視資料庫,,索引,空間以及大小

轉載自部落格 1,檢視資料庫 playboy=> \l //\加上字母l,相當於mysql的,mysql> show databases; List of databases Name |

PostgreSQL資料庫空間、角色及使用者

一、建立資料庫 1、通過pgAdmin建立資料庫TestDb1: 開啟資料庫TestDb1看到建庫指令碼: 在目錄——PostgreSQL(pg_catalog)——資料表——pg_database中可以檢視多了一個數據庫TestDb1: select oid,* from pg_database;

Oracle建立資料庫空間和資料字典的概念

(一)Oracle建立資料庫不同於MySQL Oracle建立資料庫主要有一下幾種方法: 第一種方法:使用Oracle的Database Configuration Assistant(資料庫配置助手

PostgreSQL空間

reat courier sin family 修改 postgre 索引 span 介質 在PostgreSQL中,表空間實際上是為表指定一個存儲目錄,這樣方便我們把不同的表放在不同的存儲介質或者文件系統中。在創建數據庫、表、索引時都可以指定表空間。 1. 創建表空間

11g創建空間和用戶(不區分大小寫)導入導出命令

RR cmd IT word bho contents ide 刪除 創建用戶 --用戶名不區分大小寫--刪除用戶表空間drop user &用戶名 cascade;drop tablespace &永久表空間名稱 including contents a

Oracle 空間的日常維護管理

enc rename 文件操作 pdb form 允許 恢復 constrain gin 目錄 Oracle 表空間的日常維護與管理 1、創建數據表空間 2、創建臨時表空間 3、創建 UNDO 表空間 4、表空間的擴展與修改大小 5、表空間重命名 6、表空間的刪除 7、更

PostgreSQL的DB在空間之間遷移

-- upload wait access ren oba style acl rate BackgroundThe /data/01 disk space is insufficient, but /data/02 is sufficient, so we migrat

詳解oracle 12c數據庫新特征CDBPDB(熱插拔數據庫)以及空間管理

dia emp 圖片 朋友 不可 管理 ada pfile esp 表空間概念 表空間是數據庫的邏輯劃分,一個表空間只能屬於一個數據庫。所有的數據庫對象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間。Oracle數據庫中至少存在一個表空間,即SYSTEM的表空間