參考:https://blog.csdn.net/antma/article/details/84454466php
https://www.yiibai.com/postgresql前端
PostgreSQL是一個功能強大的開源對象關係數據庫管理系統(ORDBMS)。 用於安全地存儲數據; 支持最佳作法,並容許在處理請求時檢索它們。sql
特色:數據庫
工具:編程
它是一個命令行工具,也是管理PostgreSQL的主要工具。 pgAdmin
是PostgreSQL的免費開源圖形用戶界面管理工具。安全
它是用PHP編寫的PostgreSQL的基於Web的管理工具。 它基於phpMyAdmin工具管理MySQL功能來開發。它能夠用做PostgreSQL的前端工具。服務器
它是一個日誌分析器,能夠從PostgreSQL日誌文件建立報告。 專有工具備 -
Lightning Admin for PostgreSQL, Borland Kylix, DBOne, DBTools Manager PgManager, Rekall, Data Architect, SyBase Power Designer, Microsoft Access, eRWin, DeZign for Databases, PGExplorer, Case Studio 2, pgEdit, RazorSQL, MicroOLAP Database Designer, Aqua Data Studio, Tuples, EMS Database Management Tools for PostgreSQL, Navicat, SQL Maestro Group products for PostgreSQL, Datanamic DataDiff for PostgreSQL, Datanamic SchemaDiff for PostgreSQL, DB MultiRun PostgreSQL Edition, SQLPro, SQL Image Viewer, SQL Data Sets 等等。session
數據類型分爲三種,以下併發
工具:pg_dump和pg_restoreyii
是用於備份PostgreSQL數據庫的工具。它能夠在數據庫正在使用的時候進行完整一致的備份,並不阻塞其它用戶對數據庫的訪問。做用是把一個數據庫轉儲爲純文本文件或者是其它格式.
用法: pg_dump [選項]... [數據庫名字] 通常選項: -f, --file=FILENAME 輸出文件或目錄名 -F, --format=c|d|t|p 輸出文件格式 (定製, 目錄, tar) 明文 (默認值)) -j, --jobs=NUM 執行多個並行任務進行備份轉儲工做 -v, --verbose 詳細模式 -V, --version 輸出版本信息,而後退出 -Z, --compress=0-9 被壓縮格式的壓縮級別 --lock-wait-timeout=TIMEOUT 在等待表鎖超時後操做失敗 --no-sync do not wait for changes to be written safely to disk -?, --help 顯示此幫助, 而後退出 控制輸出內容選項: -a, --data-only 只轉儲數據,不包括模式 -b, --blobs 在轉儲中包括大對象 -B, --no-blobs exclude large objects in dump -c, --clean 在從新建立以前,先清除(刪除)數據庫對象 -C, --create 在轉儲中包括命令,以便建立數據庫 -E, --encoding=ENCODING 轉儲以ENCODING形式編碼的數據 -n, --schema=SCHEMA 只轉儲指定名稱的模式 -N, --exclude-schema=SCHEMA 不轉儲已命名的模式 -o, --oids 在轉儲中包括 OID -O, --no-owner 在明文格式中, 忽略恢復對象所屬者 -s, --schema-only 只轉儲模式, 不包括數據 -S, --superuser=NAME 在明文格式中使用指定的超級用戶名 -t, --table=TABLE 只轉儲指定名稱的表 -T, --exclude-table=TABLE 不轉儲指定名稱的表 -x, --no-privileges 不要轉儲權限 (grant/revoke) --binary-upgrade 只能由升級工具使用 --column-inserts 以帶有列名的INSERT命令形式轉儲數據 --disable-dollar-quoting 取消美圓 (符號) 引號, 使用 SQL 標準引號 --disable-triggers 在只恢復數據的過程當中禁用觸發器 --enable-row-security 啓用行安全性(只轉儲用戶可以訪問的內容) --exclude-table-data=TABLE 不轉儲指定名稱的表中的數據 --if-exists 當刪除對象時使用IF EXISTS --inserts 以INSERT命令,而不是COPY命令的形式轉儲數據 --no-publications do not dump publications --no-security-labels 不轉儲安全標籤的分配 --no-subscriptions do not dump subscriptions --no-synchronized-snapshots 在並行工做集中不使用同步快照 --no-tablespaces 不轉儲表空間分配信息 --no-unlogged-table-data 不轉儲沒有日誌的表數據 --quote-all-identifiers 全部標識符加引號,即便不是關鍵字 --section=SECTION 備份命名的節 (數據前, 數據, 及 數據後) --serializable-deferrable 等到備份能夠無異常運行 --snapshot=SNAPSHOT 爲轉儲使用給定的快照 --strict-names 要求每一個表和/或schema包括模式以匹配至少一個實體 --use-set-session-authorization 使用 SESSION AUTHORIZATION 命令代替 ALTER OWNER 命令來設置全部權 聯接選項: -d, --dbname=DBNAME 對數據庫 DBNAME備份 -h, --host=主機名 數據庫服務器的主機名或套接字目錄 -p, --port=端口號 數據庫服務器的端口號 -U, --username=名字 以指定的數據庫用戶聯接 -w, --no-password 永遠不提示輸入口令 -W, --password 強制口令提示 (自動) --role=ROLENAME 在轉儲前運行SET ROLE 若是沒有提供數據庫名字, 那麼使用 PGDATABASE 環境變量 的數值.
使用案例 :
僅遷移數據庫結構
pg_dump -U TestRole1 -s -f TestDb1.sql TestDb1
pg_restore 從一個歸檔中恢復一個由 pg_dump 建立的 PostgreSQL 數據庫. 用法: pg_restore [選項]... [文件名] 通常選項: -d, --dbname=名字 鏈接數據庫名字 -f, --file=文件名 輸出文件名 -F, --format=c|d|t 備份文件格式(應該自動進行) -l, --list 打印歸檔文件的 TOC 概述 -v, --verbose 詳細模式 -V, --version 輸出版本信息, 而後退出 -?, --help 顯示此幫助, 而後退出 恢復控制選項: -a, --data-only 只恢復數據, 不包括模式 -c, --clean 在從新建立以前,先清除(刪除)數據庫對象 -C, --create 建立目標數據庫 -e, --exit-on-error 發生錯誤退出, 默認爲繼續 -I, --index=NAME 恢復指定名稱的索引 -j, --jobs=NUM 執行多個並行任務進行恢復工做 -L, --use-list=FILENAME 從這個文件中使用指定的內容表排序 輸出 -n, --schema=NAME 在這個模式中只恢復對象 -N, --exclude-schema=NAME do not restore objects in this schema -O, --no-owner 不恢復對象所屬者 -P, --function=NAME(args) 恢復指定名字的函數 -s, --schema-only 只恢復模式, 不包括數據 -S, --superuser=NAME 使用指定的超級用戶來禁用觸發器 -t, --table=NAME restore named relation (table, view, etc.) -T, --trigger=NAME 恢復指定名字的觸發器 -x, --no-privileges 跳過處理權限的恢復 (grant/revoke) -1, --single-transaction 做爲單個事務恢復 --disable-triggers 在只恢復數據的過程當中禁用觸發器 --enable-row-security 啓用行安全性 --if-exists 當刪除對象時使用IF EXISTS --no-data-for-failed-tables 對那些沒法建立的表不進行 數據恢復 --no-publications do not restore publications --no-security-labels 不恢復安全標籤信息 --no-subscriptions do not restore subscriptions --no-tablespaces 不恢復表空間的分配信息 --section=SECTION 恢復命名節 (數據前、數據及數據後) --strict-names 要求每一個表和/或schema包括模式以匹配至少一個實體 --use-set-session-authorization 使用 SESSION AUTHORIZATION 命令代替 ALTER OWNER 命令來設置全部權 聯接選項: -h, --host=主機名 數據庫服務器的主機名或套接字目錄 -p, --port=端口號 數據庫服務器的端口號 -U, --username=名字 以指定的數據庫用戶聯接 -w, --no-password 永遠不提示輸入口令 -W, --password 強制口令提示 (自動) --role=ROLENAME 在恢復前執行SET ROLE操做 選項 -I, -n, -P, -t, -T, 以及 --section 能夠組合使用和指定 屢次用於選擇多個對象. 若是沒有提供輸入文件名, 則使用標準輸入.