[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > 其它 > 正文
PostgreSQL7.0手冊-管理員手冊-31. 管理數據庫
編譯:何偉平 laser@zhengmai.com.cn (2001-04-21 22:48:00)
第三十一章. 管理數據庫
內容 
創建數據庫 
訪問數據庫 
管理數據庫 
備份和恢復 
如果 Postgrespostmaster 已經就緒並且運行起來了,那我們就可以創建一些數據庫做一些試驗了.這裡我們描述管理數據庫的基本命令. 
創建數據庫
我們假設你要創建一個名為 mydb 的數據庫.你可以用下面命令做這件事情: 
% createdb dbname
Postgres 允許你在一個節點上創建任意數量的數據庫,並且你自動成為該數據庫的管理員.數據庫名必須以字母開頭而且少 31 個字符長(譯注:可以通過配置和重新編譯 postgres 改變這個值。).並不是任何用戶都有權利成為數據庫管理員.如果Postgres拒絕為你創建數據庫,那節點管理員有必要賦予你創建數據庫的權限.如果出現這種現象,請與你的節點管理員聯系.
--------------------------------------------------------------------------------

訪問數據庫
一旦你已經建立了一個數據庫,你可以用下面方法訪問它: 
運行 Postgres 的終端控制程序(SQL界面)(psql),它允許你交互地輸入,編輯和執行 SQL 命令.
寫一個利用 libpq 子過程庫的 C 程序.它允許你在 C 裡面提交一個 SQL 命令,然再收到返回和狀態信息.這個接口將在 PostgreSQL 程序員手冊 中進一步討論.
你可能希望運行起 psql,然把本手冊的例子試驗一下.這個可以通過用下面命令激活數據庫 dbname 進行: 
psql dbname
你將看到如下歡迎信息: 
Welcome to psql, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help on internal slash commands
       \g or terminate with semicolon to execute query
       \q to quit

dbname=>
這個提示符表示SQL界面正在偵聽你的輸入,因此你可以鍵入 SQL 查詢到由SQL界面維護的工作區中.psql 程序響應由反斜槓 "\" 開頭的轉意字符.例如,你可以鍵入下面命令獲得關各種 PostgresSQL 命令的語法的幫助: 
dbname=> \h
一旦你完成了向工作區中查詢的輸入,你可以鍵入下面命令把工作區的內容提交給 Postgres 服務器: 
dbname=> \g
這個命令告訴服務器執行查詢.如果你以分號結束查詢(語句),上面的反斜槓-g就不必輸入了.psql 會自動處理分號結尾的查詢.如果要從一個文件裡讀入查詢,而不是交互地輸入,鍵入: 
dbname=> \i filename
從 psql 退回到 UNIX,鍵入 
dbname=> \q
psql 將退出並且回到你的命令行 shell.(要知道更多的轉意字符信息,在SQL界面提示符上鍵入反斜槓-h.)在 SQL 查詢裡面可以隨意使用空白(例如,空格,tabs 和 新行).單行注釋用 “--”(破折號).在破折號面到行尾的所有內容都被忽略.多行注釋以及行內注釋,用 “/* ... */”-- 從 Ingres 借來的習慣。

--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

刪除數據庫
如果你是數據庫 mydb 的數據庫管理員,你可以用下面 UNIX 命令將其刪除: 
% dropdb dbname
這個動作物理上刪除所有與該數據庫相關的 UNIX 文件,而且是不可逆的,所以在這做之前你必須要考慮清楚. 
還可以用下面語句在一次 SQL 會話裡刪除一個數據庫。(譯注:但不能是正在聯接的數據庫。) 

> drop database dbname


--------------------------------------------------------------------------------
--------------------------------------------------------------------------------

備份和恢復
  注意 
每個數據庫都應該經常備份。因為 Postgres 在文件系統裡管理它自己的文件,我們不建議依靠你的文件系統的系統備份作為你的數據庫備份;那樣不能保証在恢復文件處可用的一致的狀態。 

Postgres 提供兩個工具備份你的系統:pg_dump 備份獨立的數據庫以及 pg_dumpall 在一個步驟裡備份你的數據庫節點。 
可以用下面的命令備份一個獨立的數據庫: 

% pg_dump dbname > dbname.pgdump
然可以用下面命令恢復 
cat dbname.pgdump | psql dbname
這個技巧可以用把數據庫移動到一個新位置,然重新命名現有數據庫。 
大數據庫
作者:由 Hannu Krosing 寫 1999-06-19。
因為 Postgres 允許表的尺寸大你的系統的最大文件尺寸,可能把表輸出到一個文件會有問題,因為生成的文件很可能比你的系統允許的最大文件大。 
因為 pg_dump 輸出到 stdout,你可以用標準的 *nix 工具繞開這個問題: 
  

使用壓縮的 輸出: 
% pg_dump dbname | gzip > filename.dump.gz
重載: 
% createdb dbname
% gunzip -c filename.dump.gz | psql dbname
或 
% cat filename.dump.gz | gunzip | psql dbname
使用分割(split): 
% pg_dump dbname | split -b 1m - filename.dump.
重載: 
% createdb dbname
% cat filename.dump.* | pgsql dbname
當然,文件名(filename)和 pg_dump 輸出的內容不必與數據庫名一樣。同樣,重載的數據庫可以有任意新的名稱,所以這個機制還適用給數據庫改名。

--------------------------------------------------------------------------------

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
PostgreSQL7.0手冊-附錄-文檔 (2001-04-21 23:50:44)
PostgreSQL7.0手冊-附錄-日期/時間支持-CVS 倉庫 (2001-04-21 23:48:48)
PostgreSQL7.0手冊-教程 -73. Postgres SQL 高級特性 (2001-04-21 23:45:36)
PostgreSQL7.0手冊-教程 -72. 查詢語言 (2001-04-21 23:44:40)
PostgreSQL7.0手冊-教程 -71. 開始 (2001-04-21 23:42:54)
PostgreSQL7.0手冊-教程 -70. 體系結構 (2001-04-21 23:41:58)
PostgreSQL7.0手冊-教程 -69. SQL (2001-04-21 23:41:23)
PostgreSQL7.0手冊-開發者手冊 -68. 分頁文件 (2001-04-21 23:39:22)
PostgreSQL7.0手冊-開發者手冊 -67. 端接口 (2001-04-21 23:38:34)
PostgreSQL7.0手冊-開發者手冊 -66. gcc 缺省優化 (2001-04-21 23:37:20)

===更多相關===
 

★  樊強制作 歡迎分享  ★