一 常用命令
1 啟動(dòng)數(shù)據(jù)庫(kù)
#方式一
$ postgres -D /usr/local/pgsql/data
#方式二
$ postgres -D /usr/local/pgsql/data >logfile 2>&1 &
#方式三
$ pg_ctl start -l logfile
2 關(guān)閉數(shù)據(jù)庫(kù)
#方式一 暴力做法淆衷,不推薦
$ kill -INT `head -1 /usr/local/pgsql/data/postmaster.pid`
#方式二 pg_ctl stop [-D datadir] [-m s[mart] | f[ast] | i[mmediate] ] [-W] [-t seconds] [-s]
$ pg_ctl stop
#指定模式smart寄啼、fast或immediate 默認(rèn)模式是fast
$ pg_ctl stop -m smart
3 重啟數(shù)據(jù)庫(kù)
$ pg_ctl restart
4 顯示服務(wù)器狀態(tài)
$ pg_ctl status
pg_ctl: server is running (PID: 13718)
/usr/local/pgsql/bin/postgres "-D" "/usr/local/pgsql/data" "-p" "5433" "-B" "128"
5 導(dǎo)出數(shù)據(jù)
#0 備份整個(gè)庫(kù)
$ pg_dump testdb > testdb.sql
#查看導(dǎo)出的過(guò)程
$ pg_dump testdb --verbose > testdb.sql
#1 導(dǎo)出單張數(shù)據(jù)表
$ pg_dump -t jy_data_part.pj_cllbjdyb_ada0 sip_cloud > pj_cllbjdyb_ada0.sql
#2 導(dǎo)出多張數(shù)據(jù)表
$ pg_dump -t jy_data_part.pj_clljtxdyb_dza0 -t jy_data_part.pj_clljtxdyb_dza1 -t jy_data_part.pj_clljtxdyb_dza2 sip_cloud > pj_clljtxdyb_dza0.sql
#3 如果表太多執(zhí)行命令行會(huì)報(bào)錯(cuò),可以寫一個(gè)腳本執(zhí)行
#!/bin/bash
echo "開始導(dǎo)出..."
pg_dump \
-t jy_data_part.pj_cztx \
-t jy_data_part.pj_exclusive_info \
-t jy_data_part.pj_clljtxdyb_dza2 \
-t jy_data_part.pj_ljjgxxb \
-t jy_data_part.pj_ljjgxxb_seq \
-t jy_data_part.pj_outer_part \
-t jy_data_part.pj_pplbjdyb \
-t jy_data_part.pj_pzshljdyb \
-t jy_data_part.pj_recycle_part \
-t jy_data_part.pj_sytxfzxxb \
-t jy_data_part.pj_sytxxxb \
-t jy_data_part.pj_txxxb \
-t jy_data_part.pj_zc_cxdyb \
-t jy_data_part.pj_zd_lbjbzb \
-t jy_data_part.pj_zd_pzbwzdb \
-t jy_data_part.pj_zd_pzcdzdb \
-t jy_data_part.pj_zd_qyzd \
-t jy_data_part.ref_part_flag \
-t jy_data_part.seri_infod \
-t jy_data_part.series_grade_relation sip_cloud > pj_cztx.sql
echo "導(dǎo)出結(jié)束..."
6 數(shù)據(jù)導(dǎo)入
$ psql -d yanbao -U root -f /home/postgres/part_material.sql
#數(shù)據(jù)密碼
7 批量執(zhí)行表授權(quán)
select 'grant all on table "' || schemaname || '".' || tablename || ' to yanbao;' from pg_tables
where schemaname = 'jy_data_part'
order by tablename;
8 批量執(zhí)行創(chuàng)建視圖
select 'create view '|| tablename || ' as select * from jy_data_part.' || tablename ||';' from pg_tables
where schemaname = 'jy_data_part'
order by tablename;
二 其他
-bash-4.2$ /usr/pgsql-9.5/bin/pg_basebackup --help
pg_basebackup 在運(yùn)行的PostgreSQL服務(wù)器上執(zhí)行基礎(chǔ)備份.
使用方法:
pg_basebackup [選項(xiàng)]...
控制輸出的選項(xiàng):
-D, --pgdata=DIRECTORY 接收基礎(chǔ)備份到指定目錄
-F, --format=p|t 輸出格式 (純文本 (缺省值), tar壓縮格式)
-r, --max-rate=RATE 傳輸數(shù)據(jù)目錄的最大傳輸速率
(單位 kB/s, 也可以使用后綴"k" 或 "M")
-R, --write-recovery-conf
write recovery.conf for replication
-T, --tablespace-mapping=OLDDIR=NEWDIR
將表空間由 OLDDIR 重定位到 NEWDIR
-x, --xlog 在備份中包含必需的WAL文件(fetch 模式)
-X, --xlog-method=fetch|stream
按指定的模式包含必需的WAL日志文件
--xlogdir=XLOGDIR 當(dāng)前事務(wù)日志目錄的位置
-z, --gzip 對(duì)tar文件進(jìn)行壓縮輸出
-Z, --compress=0-9 按給定的壓縮級(jí)別對(duì)tar文件進(jìn)行壓縮輸出
一般選項(xiàng):
-c, --checkpoint=fast|spread
設(shè)置檢查點(diǎn)方式(fast或者spread)
-l, --label=LABEL 設(shè)置備份標(biāo)簽
-P, --progress 顯示進(jìn)度信息
-v, --verbose 輸出詳細(xì)的消息
-V, --version 輸出版本信息, 然后退出
-?, --help 顯示幫助, 然后退出
聯(lián)接選項(xiàng):
-d, --dbname=CONNSTR 連接串
-h, --host=HOSTNAME 數(shù)據(jù)庫(kù)服務(wù)器主機(jī)或者是socket目錄
-p, --port=PORT 數(shù)據(jù)庫(kù)服務(wù)器端口號(hào)
-s, --status-interval=INTERVAL
發(fā)往服務(wù)器的狀態(tài)包的時(shí)間間隔 (以秒計(jì))
-U, --username=NAME 指定連接所需的數(shù)據(jù)庫(kù)用戶名
-w, --no-password 禁用輸入密碼的提示
-W, --password 強(qiáng)制提示輸入密碼 (應(yīng)該自動(dòng)發(fā)生)
postgres=# \?
一般性
\copyright 顯示PostgreSQL的使用和發(fā)行許可條款
\g [文件] or; 執(zhí)行查詢 (并把結(jié)果寫入文件或 |管道)
\gset [PREFIX] 執(zhí)行查詢并把結(jié)果存到psql變量中
\q 退出 psql
\watch [SEC] 每隔SEC秒執(zhí)行一次查詢
幫助
\? [commands] show help on backslash commands
\? options show help on psql command-line options
\? variables show help on special variables
\h [名稱] SQL命令語(yǔ)法上的說(shuō)明森瘪,用*顯示全部命令的語(yǔ)法說(shuō)明
查詢緩存區(qū)
\e [FILE] [LINE] 使用外部編輯器編輯查詢緩存區(qū)(或文件)
\ef [FUNCNAME [LINE]] 使用外部編輯器編輯函數(shù)定義
\p 顯示查詢緩存區(qū)的內(nèi)容
\r 重置(清除)查詢緩存區(qū)
\s [文件] 顯示歷史記錄或?qū)v史記錄保存在文件中
\w 文件 將查詢緩存區(qū)的內(nèi)容寫入文件
輸入/輸出
\copy ... 執(zhí)行 SQL COPY,將數(shù)據(jù)流發(fā)送到客戶端主機(jī)
\echo [字符串] 將字符串寫到標(biāo)準(zhǔn)輸出
\i 文件 從文件中執(zhí)行命令
\ir FILE 與 \i類似, 但是相對(duì)于當(dāng)前腳本的位置
\o [文件] 將全部查詢結(jié)果寫入文件或 |管道
\qecho [字符串] 將字符串寫到查詢輸出串流(參考 \o)
資訊性
(選項(xiàng): S = 顯示系統(tǒng)對(duì)象, + = 其余的詳細(xì)信息)
\d[S+] 列出表,視圖和序列
\d[S+] 名稱 描述表,視圖洽沟,序列,或索引
\da[S] [模式] 列出聚合函數(shù)
\db[+] [模式] 列出表空間
\dc[S+] [PATTERN] 列表轉(zhuǎn)換
\dC[+] [PATTERN] 列出類型強(qiáng)制轉(zhuǎn)換
\dd[S] [PATTERN] 顯示沒有在別處顯示的對(duì)象描述
\ddp [模式] 列出默認(rèn)權(quán)限
\dD[S+] [PATTERN] 列出共同值域
\det[+] [PATTERN] 列出引用表
\des[+] [模式] 列出外部服務(wù)器
\deu[+] [模式] 列出用戶映射
\dew[+] [模式] 列出外部數(shù)據(jù)封裝器
\df[antw][S+] [模式] 列出[只包括 聚合/常規(guī)/觸發(fā)器/窗口]函數(shù)
\dF[+] [模式] 列出文本搜索配置
\dFd[+] [模式] 列出文本搜索字典
\dFp[+] [模式] 列出文本搜索解析器
\dFt[+] [模式] 列出文本搜索模版
\dg[+] [PATTERN] 列出角色
\di[S+] [模式] 列出索引
\dl 列出大對(duì)象蜗细, 功能與\lo_list相同
\dL[S+] [PATTERN] 列出所有過(guò)程語(yǔ)言
\dm[S+] [PATTERN] 列出所有物化視圖
\dn[S+] [PATTERN] 列出所有模式
\do[S] [模式] 列出運(yùn)算符
\dO[S+] [PATTERN] 列出所有校對(duì)規(guī)則
\dp [模式] 列出表裆操,視圖和序列的訪問(wèn)權(quán)限
\drds [模式1 [模式2]] 列出每個(gè)數(shù)據(jù)庫(kù)的角色設(shè)置
\ds[S+] [模式] 列出序列
\dt[S+] [模式] 列出表
\dT[S+] [模式] 列出數(shù)據(jù)類型
\du[+] [PATTERN] 列出角色
\dv[S+] [模式] 列出視圖
\dE[S+] [PATTERN] 列出引用表
\dx[+] [PATTERN] 列出擴(kuò)展
\dy [PATTERN] 列出所有事件觸發(fā)器
\l[+] [PATTERN] 列出所有數(shù)據(jù)庫(kù)
\sf[+] FUNCNAME 顯示一個(gè)函數(shù)的定義
\z [模式] 和\dp的功能相同
格式化
\a 在非對(duì)齊模式和對(duì)齊模式之間切換
\C [字符串] 設(shè)置表的標(biāo)題,或如果沒有的標(biāo)題就取消
\f [字符串] 顯示或設(shè)定非對(duì)齊模式查詢輸出的字段分隔符
\H 切換HTML輸出模式 (目前是 關(guān)閉)
\pset [NAME [VALUE]] set table output option
(NAME := {border|columns|expanded|fieldsep|fieldsep_zero|
footer|format|linestyle|null|numericlocale|pager|
pager_min_lines|recordsep|recordsep_zero|tableattr|title|
tuples_only|unicode_border_linestyle|
unicode_column_linestyle|unicode_header_linestyle})
\t [開|關(guān)] 只顯示記錄 (目前是 關(guān)閉)
\T [字符串] 設(shè)置HTML <表格>標(biāo)簽屬性, 或者如果沒有的話取消設(shè)置
\x [on|off|auto] 切換擴(kuò)展輸出模式(目前是 關(guān)閉)
連接
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
連接到新數(shù)據(jù)庫(kù)(當(dāng)前是"postgres")
\encoding [編碼名稱] 顯示或設(shè)定客戶端編碼
\password [USERNAME] 安全地為用戶更改口令
\conninfo 顯示當(dāng)前連接的相關(guān)信息
操作系統(tǒng)
\cd [目錄] 更改目前的工作目錄
\setenv NAME [VALUE] 設(shè)置或清空環(huán)境變量
\timing [開|關(guān)] 切換命令計(jì)時(shí)開關(guān) (目前是 關(guān)閉)
\! [命令] 在 shell中執(zhí)行命令或啟動(dòng)一個(gè)交互式shell
變量
\prompt [文本] 名稱 提示用戶設(shè)定內(nèi)部變量
\set [名稱 [值數(shù)]] 設(shè)定內(nèi)部變量炉媒,若無(wú)參數(shù)則列出全部變量
\unset 名稱 清空(刪除)內(nèi)部變量
大對(duì)象
\lo_export LOBOID 文件
\lo_import 文件 [注釋]
\lo_list
\lo_unlink LOBOID 大對(duì)象運(yùn)算