Fork me on GitHub

分类 postgres 中的文章

数据库免密码登陆

免密登陆 以下几种PG配置免密的方法。 方法一:设置pg_hab.conf 认证方式为trust #Type database user address method host all postgres 127.0.0.1/32 trust 该方式最不安全,导致通过指定IP连接数据库的连接都可以任意登录数据,毫无安全保障。禁止在生产环境使用。 方法二:设置PG环境变量PGPASSWORD PGPASSWORD是P……

阅读全文

vacuum 限流

限流目的 清理是在后台运行的维护任务,对用户查询的影响最小。不应该消耗太多的资源(CPU和磁盘I/O)。 清理成本计算 清理过程相当简单,它从数据文件中读取页面(8kB的数据块),并检查是否需要清理。如果没有dead tuples,页面将被简单地丢弃,而不进行任何更改。否则,它将被清理(……

阅读全文

查看数据信息常用sql整理

库内存命中率 SELECT 'index hit rate' AS name, (sum(idx_blks_hit)) / nullif(sum(idx_blks_hit + idx_blks_read),0) AS ratio FROM pg_statio_user_indexes UNION ALL SELECT 'table hit rate' AS name, sum(heap_blks_hit) / nullif(sum(heap_blks_hit) + sum(heap_blks_read),0) AS ratio FROM pg_statio_user_tables; 表内存命中率 SELECT relname AS relation, heap_blks_read AS heap_read, heap_blks_hit AS heap_hit, ((heap_blks_hit*100) / NULLIF((heap_blks_hit + heap_blks_read), 0)) AS ratio FROM pg_statio_user_tables order by ratio; 读IO内存占比 磁盘中读取和在内存中直接读取之间的数字和比 SELECT relname AS "relation", heap_blks_read AS heap_read, heap_blks_hit AS heap_hit, ( (heap_blks_hit*100) / NULLIF((heap_blks_hit + heap_blks_read), 0)) AS ratioFROM pg_statio_user_tables; 表中索引命中率 SELECT relname, CASE idx_scan WHEN 0 THEN NULL ELSE round(100.0 * idx_scan / (seq_scan + idx_scan), 5) END……

阅读全文

数据库实时运行信息查看

介绍 类似Linux top 命令 查看数据实时运行情况 https://github.com/dalibo/pg_activity 安装 测试环境centos7 postgresql10 查看已安装的PG版本 如果有9.2 版本,清理,如果没有postgresql10-devel 需要安装 yum list installed | grep postgres 设置环境变量 export PG_HOME=/usr/pgsql-10 export PATH=$PATH:$PG_HOME/bin/ 安装pg_activity python3 -m pip install pg_activity psycopg2-binary 使用 与psql 连接方式相同 pg_activity -U xxx -p xxx 更多……

阅读全文

数据库的json类型

json 与 jsonb json 保持原始格式, jsonb是解析输入后保存的二进制,在解析时会过滤掉不必要的空格和重复的健。 SELECT '{"name": "zhangsan", "age": 17, "sex":"m","age":17.5}'::json; json ------------------------------------------------------------ {"name": "zhangsan", "age": 17, "sex":"m","age":17.5} SELECT '{"name": "zhangsan", "age": 17, "sex":"m","age":17.5}'::jsonb; jsonb ----------------------------------------------- {"age": 17.5, "sex": "m", "name": "zhangsan"} json 插入可能会更快些,jsonb的读取更快 操作符 json ,jsonb 操作符 操作符 右操作数类型 描述 示例 结果 -> int 获取JSON数组元素(索引从0开始) select……

阅读全文

数据库日志分析

数据库日志分析 整体架构 filebeat -> logstash -> elasticseach -> kibana filebeat 收集日志 logstash 中转及日志规则匹配过滤 elasticsearch 日志存储检索库 kibana 查看界面 postgresql log_destination = 'csvlog' logging_collector = 'on' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_rotation_age = '1d' log_rotation_size = '100MB' log_min_messages = 'info' log_min_duration_statement = '1000' log_statement = 'ddl' filebeat filebeat.inputs: - type: log enabled: true paths: - /var/lib/pgsql/***/postgresql-*.csv fields: log_topics: postgresql multiline.pattern: '^[[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3} [A-Z]{3}' multiline.negate: true multiline.match: after filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 tags: ["postgesql"] setup.kibana: output.logstash: hosts: ["*.*.*.*:5044"] processors: - add_host_metadata: ~ - add_cloud_metadata: ~ logstash # # this config is use for version logstash 7.3.1 # input { beats { port => 5044 } #sdtin{ # #} } #……

阅读全文

客户端故障转移

多主机连接 PostgreSQL libpq 是数据库的一个连接驱动,支持多主机配置,同时支持target_session_attrs 主机角色判断配置。 当配置了多个主机时,会按顺序尝试连接,之道获取到成功的连接为止。 利用libpq的这个特性,结合数据库自动HA的一些软件,可以实现在不引入VIP以及中间路由节点的……

阅读全文

Django CONN_MAX_AGE 对数据连接的影响

Django的数据库连接 Django对数据库的链接处理是这样的,Django程序接受到请求之后,在第一访问数据库的时候会创建一个数据库连接,直到请求结束,关闭连接。下次请求也是如此。因此,这种情况下,随着访问的并发数越来越高,就会产生大量的数据库连接 使用CONN_MAX_AGE减……

阅读全文

PG高可用 repmgr 搭建

基于Repmgr实现数据库高可用 安装环境 软件环境 postgres 10 repmgr 5.3.2 centos7 网络环境 IP地址 运行软件 10.10.2.12/node1 repmgr,repmgrd,pg 10.10.2.13/node2 repmgr,repmgrd,pg 10.10.2.14/node3 repmgr,repmgrd,pg 前期准备 hosts 文件配置 vi /etc/hosts # 10.10.2.12 node1 10.10.2.13 node2 10.10.2.14 node3 安装PG10 $ yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm $ yum update -y $ yum install -y postgresql10-server postgresql10 postgresql10-contrib # 只有主库需要初始化 $ sudo su postgres -c "/usr/pgsql-10/bin/initdb --data-checksums -D /var/lib/pgsql/10/data" 安装repmgr $ yum install -y repmgr10.x86_64 提升postgres 用户具有部分sudo 执行……

阅读全文

Backgroud Writer 进程

主要作用 负责将shared buffer 中的内容刷写到磁盘中,9.1版之后部分内容交给checkpoint完成。 参数配置 # - Background Writer - #bgwriter_delay = 200ms # 10-10000ms between rounds #bgwriter_lru_maxpages = 100 # 0-1000 max buffers written/round #bgwriter_lru_multiplier = 2.0 # 0-10.0 multiplier on buffers scanned/round #bgwriter_flush_after = 512kB # measured in pages, 0 disables bgwriter_delay 两次写入任务之间的睡眠间隔时间 bgwriter_lru_maxpages 每次bgwriter任务写buffer的最大page数,一旦达……

阅读全文