瀚高数据库
目录
环境
文档用途
详细信息

环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7,Microsoft Windows (64-bit) 10
版本:14
文档用途
本文介绍pgAdmin4使用技巧和工具所具有的比较好的功能。

详细信息

pgAdmin4是用于设计、维护和管理PG及其衍生品的图形化工具,是PostgreSQL领先的开源管理工具;

pgAdmin4可以以两种模式安装:桌面和服务器模式,桌面模式作为独立应用程序安装,由同一操作系统用户使用,而服务器模式可以通过网络访问,从而允许多个用户使用它;

pgAdmin4可以在Linux,Unix,macOS和Windows上使用;

其所支持的功能比其他(支持PG)的工具要丰富,但是其功能菜单布局对用户并不友好。

1、本文以最新版pgAdmin 4介绍。

下载地址:https://www.pgadmin.org/download/

历史版本下载:https://www.postgresql.org/ftp/pgadmin/

安装:以上下载地址基本包含了所有平台,但是不建议源码安装。

1)Windows下安装好后,双击安装目录runtime下的pgAdmin4.exe启动。

2)Linux下按照官方的步骤:

rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm

    # 桌面模式和Web模式都安装

    yum install pgadmin4

    # 只安装桌面模式

    yum install pgadmin4-desktop

    # 只安装Web模式

    yum install pgadmin4-web

    cd /usr/pgadmin4/bin

    ./setup-web.sh 

      启动Web端(首次使用需要设置邮箱和密码),Web默认地址:http://127.0.0.1/pgadmin4,因此需要防火墙开启80端口,远程使用127.0.0.1改成本机ip。

    ./ pgadmin4 启动桌面端

    桌面端和Web端打开后界面是一样的。

pg_dump 导出schema下的表_java

2、新建数据库连接

Servers右击Register->Server:

pg_dump 导出schema下的表_pg_dump 导出schema下的表_02

自定义一个连接名;

需要填写的连接信息在Connection选项;

pg_dump 导出schema下的表_开发语言_03

点击【Save】保存。

连接后展示数据库基本监控信息。

pg_dump 导出schema下的表_开发语言_04

注意:桌面模式数据库连接信息只保存在当前机器;Web模式连接信息所有用户共享,但是连接信息的数据库密码不共享。

3、经验介绍

所有数据库的管理工具其基本功能都是一样的,也都具备了,下面以Web模式介绍pgAdmin4的技巧性的方便工作的功能。

1)配置页面:File->Preferences:

pg_dump 导出schema下的表_数据库_05

可以配置UI主题、SQL格式化、自动补全SQL、二进制路径等,这里二进制路径是执行psql, pg_dump, pg_dumpall, and pg_restore的bin目录;Miscellaneous->User language可以切换中文显示。

例如:

  SQL格式化功能:

pg_dump 导出schema下的表_pg_dump 导出schema下的表_06

格式化后效果,如下:

pg_dump 导出schema下的表_pg_dump 导出schema下的表_07

可以自定义格式化样式,如下:

pg_dump 导出schema下的表_pg_dump 导出schema下的表_08

2)Schema Diff:

对比两个模式之间对象的差异(ddl语句差异),不能对比数据,如下:

> 对比是否包含某张表:

create schema s1;

create schema s2;

create table s1.t_1(c1 int);

pg_dump 导出schema下的表_开发语言_09

> 无法对比表与表的数据:

create table s2.t_1(c1 int);

insert into s1.t_1 values (1);

insert into s1.t_1 values (2);

insert into s2.t_1 values (1);

pg_dump 导出schema下的表_数据库_10

> 对比是否包含某张表:

 create table s2.t_2(c1 int);

pg_dump 导出schema下的表_数据库_11

> 对比表中的字段:

 create table s1.t_3(c1 int, c2 int);

 create table s2.t_3(c1 int);

pg_dump 导出schema下的表_开发语言_12

> 对比视图DDL      

 create view s1.v1 as select * from s1.t_1 ;

 create view s2.v1 as select * from s2.t_3 ;

pg_dump 导出schema下的表_数据库_13

由此可以使用此功能对比两个模式下数据库对象的差异,可以生成同步脚本。要求:对比的两个数据库的主版本必须相同。

3)ERD Tool

实体关系图(ERD),随便创建两张表,如图:

pg_dump 导出schema下的表_开发语言_14

生成的SQL:

pg_dump 导出schema下的表_java_15

4)Restore/Backup

备份还原,需要配置二进制路径,不过还是建议在数据库服务器上去用命令去执行备份还原操作。

5)Import/Export Servers(只是针对pgAdmin工具的)

以json格式导入导出数据库连接信息,导出的文件保存在部署的服务器上,根据json文件的全称find –name查找保存路径,文件内容如下:

[root@localhost bin]# more /var/lib/pgadmin/storage/pga_user_86522_qq.com/1.json

{

    "Servers": {

        "1": {

            "Name": "192.168.17.44",

            "Group": "Servers",

            "Host": "192.168.17.44",

            "Port": 5432,

            "MaintenanceDB": "postgres",

            "Username": "postgres",

            "SSLMode": "prefer",

            "SSLCert": "<STORAGE_DIR>/.postgresql/postgresql.crt",

            "SSLKey": "<STORAGE_DIR>/.postgresql/postgresql.key",

            "SSLCompression": 0,

            "Timeout": 10,

            "UseSSHTunnel": 0,

            "TunnelPort": "22",

            "TunnelAuthentication": 0

        }

    }

}

6)sql执行计划

打开sql编辑器编写sql:

select *

from s2.t_1 t1

join s2.t_2 t2 on t1.c1 = t2.c1;

pg_dump 导出schema下的表_postgresql_16

点击以上两个图标(Explain/ Explain Analyze)

Explain:只生成执行计划,不实际执行。

Explain Analyze:生成执行计划并执行sql。

pg_dump 导出schema下的表_java_17

pg_dump 导出schema下的表_postgresql_18

通过执行计划对sql进行优化。

7)生成sql脚本

例如在创建的表t_1上右击,选择Scripts,可以看到有CREATE、DELETE、INSERT、SELECT、UPDATE脚本,点击后生成的脚本如下:

pg_dump 导出schema下的表_java_19

8)创建Extension

在Extensions上右击点击Create,弹出新建拓展的对话框,这里列出了所有的可以安装的拓展,选择自己需要的;

pg_dump 导出schema下的表_pg_dump 导出schema下的表_20

比如这里没有postgis的可用插件,从postgis官网下载并安装后,就可以看到postgis拓展,选择创建。

pg_dump 导出schema下的表_数据库_21

随便导入一个shp文件,默认在当前数据库的public下就可以看到导入的这张gis表。表上右击View/Edit Data -> All Rows,查看此表的所有数据。

pg_dump 导出schema下的表_pg_dump 导出schema下的表_22

点击查看此gis图形:

9)pgAdmin4 官方文档

地址:https://www.pgadmin.org/docs/pgadmin4/latest/index.html

文档列表:

Getting Started

  Connecting To A Server

  Managing Cluster Objects

  Managing Database Objects

  Creating or Modifying a Table

  Management Basics

  Backup and Restore

  Developer Tools

  pgAgent

  pgAdmin Project Contributions

  Release Notes

  Licence