zoukankan      html  css  js  c++  java
  • PostgreSQL源代码中插件的使用

    如果编译数据库时使用了gmake world和gmake install-world, 所有的插件都会被安装, 那么就不需要再次安装了.

    插件目录

    contrib

    进入要安装的插件目录, 例如

    cd contrib/pg_freespacemap

    把pg_config命令加入到默认路径中

    export PATH=/opt/pgsql/bin:$PATH

    gmake clean

    gmake

    gmake install -- 这一步会将生成的动态库文件拷贝到pgsql的lib目录, 同时拷贝生成的扩展文件到

    $PGHOME/share/extension中.

    安装完后, 到数据库中以超级用户执行create extension

    create extension pg_freespacemap;

    根据第三方插件提供的安装说明进行安装

    通用的安装方法

    1. 把第三方插件的源码目录拷贝到contrib目录中

    2. 把pg_config加入到PATH中

    3. gmake clean; gmake; gmake install

    4. create extension xxx; 对于一些老版本的插件, 可能没有改成扩展插件的安装模式. 那么需要到对应的库中直接执行SQL.

    第三方插件的安装和使用

    可到git.postgresql.org下载第三方插件源码

    PostgreSQL 特性的测试可以参照PostgreSQL源码中提供的测试脚本进行测试

    src/test/regress/sql

    auto_explain插件的使用

    auto_explain的目的是给数据库中执行的SQL语句一个执行时间阈值, 超过阈值的话, 记录下当时这个SQL的执行计划到日志中, 便于未来查看这个SQL执行计划有没有问题.

     export PAHT=/home/pg93/pgsql/bin:$PATH

    which pg_config

    cd /opt/soft_bak/postgresql-9.3.4/contrib/auto_explain/

    gmake clean

    gmake

    gmake install

    1. 修改配置文件postgresql.conf:

    shared_preload_libraries = 'auto_explain'

    新增如下配置:

    auto_explain.log_min_duration = 0 # 为了方便查看,这里把时间设置为0,所有SQL都会被auto_explain捕获输出.实际使用的时候适当调大。如 100ms

    auto_explain.log_analyze = true

    # 以下可选

    auto_explain.log_verbose = true

    auto_explain.log_buffers = true

    auto_explain.log_nested_statements = true

    重新启动PostgreSQL数据库

    pg_stat_statements 安装

    在postgreSQL数据库安装完之后

    编辑postgresql.conf

    shared_preload_libraries=‘pg_stat_statements,auto_explain’;

    pg_stat_statements.max = 1000

    pg_stat_statements.tarck =all

    auto_explain.log_min_duration = ‘10s’

    auto_explain.log_analyze = false

    auto_explain.log_verbose = false

    auto_explain.log_nested_statements = true

    (for auto_explain;cd conttrib make ;make install)

    cd /contrib/pg_stat_statemetns

    make

    make install

    重新启动数据库

    Pg_ctl –D ../data start

    链接数据库

    ./psql

    create extension pg_stat_statements;

    select pg_stat_statements_reset();

    然后是SQL操作

    d pg_stat_statements

    select query,total_time,calls,from pg_stat_statements order by 3 desc limit 2;

    即出现SQL语句的执行时间和执行次数;

    (auto_explain的结果可以通过日志查看)

  • 相关阅读:
    saltstack笔记
    saltstack学习篇
    tomcat学习篇
    memcache笔记
    sed、awk学习篇
    javascript function call
    jvm性能调优工具
    spring boot 单元测试
    activemq 分布式事务
    sringboot 集成dobbo2.5.3
  • 原文地址:https://www.cnblogs.com/songyuejie/p/4571023.html
Copyright © 2011-2022 走看看