参考: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 能够组合使用和指定 屡次用于选择多个对象. 若是没有提供输入文件名, 则使用标准输入.