自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

转载 Dealing with corrupted system indexes in PostgreSQL

原文链接:https://blog.dbi-services.com/dealing-with-corrupted-system-indexes-in-postgresql/This is something you do not want to see on an important PostgreSQL system:postgres@centos8pg:/home/postgres/ [pgdev] psqlpsql: error: could not connect to serv.

2021-04-13 15:45:52 474

原创 PostGIS 的软件依赖—— PostGIS‘s dependancies

PostGIS是PostgreSQL对象关系数据库的空间数据库扩展器。它添加了对地理对象的支持,允许在SQL中运行位置查询。除了基本的位置感知功能,PostGIS还提供了许多其他竞争空间数据库(如Oracle Locator/ spatial和SQL Server)很少有的功能。PostGIS 依赖了下面这些软件:PostgreSQLGEOSSFCGALGDALPROJprotobuf-cjson-cPostGIS 严格地要求所依赖软件的版本。如果你用源...

2021-01-14 14:30:41 1128 5

转载 How to get a md5 password for a user on PostgreSQL? 如何在PostgreSQL上为用户获取md5密码?

If you look through table pg_authid on PostgreSQL, you can find the values of columnrolpassword are hashed strings. For example, a string like"md58d11c0b8417d3947cb544f1174fd44ce".How to getrolpassword? The formula is:"md5" + md5(password + usernam...

2020-11-30 14:06:02 315

原创 pg_qualstats-1.0.x ‘s suggestions are not accurate, So use pg_qualstats-2.0.x

pg_qualstats-1.0.x 's suggestions are not accurate, So use pg_qualstats-2.0.xpg_qualstats is a PostgreSQL extension keeping statistics on predicates found inWHEREstatements andJOINclauses.This is useful if you want to be able to analyze what are...

2020-11-11 19:28:27 148

原创 Powershell 脚本-关闭所有残留的PostgreSQL 进程

在 Windows 上,有时PostgreSQL 会遇到这样一种异常:数据库无法正常访问,但从任务管理器中看,仍然有一些名为postgres.exe 在运行。而在任务管理器中,它的状态是“已停止”,但它却无法在任务管理器中启动。于是就陷入了一个死局。解决这个问题的方法是 关闭所有残留的 postgres.exe 进程。下面这个 powershell 脚本可以解决问题,读者只需要配置 参数 $PgServiceName,即数据库服务名即可:# set-ExecutionPolicy...

2020-11-02 20:06:44 566

原创 PostgreSQL 小工具——将一个数据库中所有表的设计整理为csv文件

工作中,需要将在PostgreSQL 数据库中的所有表的结构整理成表格。示例如下: person 人员表 字段名 字段类型 是否非空 约束 字段描述 id int Y primary key (id) 主键,id n..

2020-11-02 19:34:18 268

转载 使用 barman的备份和归档PostgreSQL

使用 barman的备份和归档PostgreSQL1 前言1.1 Barman简介barman(备份和恢复管理器)是用于PostgreSQL服务器进行灾难恢复的开源管理工具,是以Python编写的。它支持对多台服务器执行远程备份,以降低风险并帮助DBA进行数据库恢复。1.2 Barman的备份方式本文假定读者熟悉理论上的灾难恢复概念,并且具有在PostgreSQL物理备份和灾难恢复方面的基础知识。我们知道 PostgreSQL 的连续备份包含一个或多个基础备份和连续归档的WAL日志。

2020-10-16 19:59:55 694

原创 PostgreSQL——对一列做全表更新——update还是alter

在 PostgreSQL 上,如果我们想对一张表的一个列做全表更新,我们有两种方法可选择。一种方法是通过DML修改,即使用 update 语句;另一种方法是通过DDL 修改,即使用 alter语句。现在我们通过一个简单的例子,比较这两种方法的性能。我们分别创建了两张结构相同的表student1和 student2,并分别插入1百万条测试数据。CREATE table student1( id int, name varchar(32), gende...

2020-09-24 21:01:13 1882

原创 关于 Python 环境变量

多数情况下,只要 path 里配置了 python 的主目录,Python 就可以正常的运行并被其他程序使用了。1. 如果没有配置 PYTHONHOME, PYTHONPATH,操作系统默认会以 path 中 python.exe 所在的目录作为他们的值。2. 如果你配置了 PYTHONHOME, PYTHONPATH,就要保证它们是正确的。如果它们是不正确的,即使 path 中包含了正确的 python目录 ,也可能造成一些程序无法正常使用python。对于 postgresql 来说,PY.

2020-08-22 19:07:05 280

原创 在一个 plpython 函数中导入的包,在该函数被调用后,会被缓存起来

在一个调用过的 plpython 函数中所导入的包会被缓存起来我在 Window 7 操作系统上 安装了Python 3.3和 PostgreSQL 9.6,并在环境变量中配置好了PYTHONHOME 和 PYTHONPATH,然后将 Python33\DLLs中的python3.dll 移动到 postgresql安装目录的lib中,把它重命名为 python33。现在,我可以在 PostgreSQL 中使用 plpython 了。我在PostgreSQL中创建了下面的函数,...

2020-08-22 14:30:56 359 1

原创 Solution to github desktop login Error: failed to fetch 解决Github 桌面版登录的错误: failed to fetch

Today is my first day to use github Desktop. When I try to log in with my account, an error occurs: Failed to fetch. This is so depressing. WhileIwas searchingthat problem on Baidu, I found some other developers also met that problem, but I found no ans...

2020-07-26 00:31:57 3190 2

原创 在 Oracle 中重建分区表上的索引

在 oracle中,重建普通表上的索引很简单。要重建特定索引,只需执行如下sql命令:ALTER INDEX INDEX_NAME Rebuild;这里,INDEX_NAME代表索引的名字,下同。如果重建某个表上的全部索引,执行如下PL/SQL 代码:begin for c1 in (select t.index_name, t.partitioned from user_indexes t where table_name = 'TABLE_NAME') loop ...

2020-07-24 16:10:59 2496

原创 Windows 平台上使用 cwRsync做文件同步

前言1.1 概述本文介绍 Windows 平台上使用cwRsync 客户端实现本地文件实时同步和远程实时同步的方法。1.2 实验环境服务器和操作系统:两台Windows Server 2008 服务器,一台linux CentOS 7服务器。本地同步的环境信息:源文件夹:D:/data/目标文件夹:D:/backup/远程同步的环境信息:源Windows服务器IP地址:10.19.170.119源文件夹:D:/data/目标linux服...

2020-07-21 21:31:12 4637 2

原创 在 PostgreSQL 上的基于触发器的将时序表分区的方案和模板

1. 前言1.1 概述当关系型数据库中一些表中数据量过于庞大时,我们就需要对它进行分区,以提高查询的性能。在postgresql 9.6及其之前, 它没有提供原生的表分区方法,因此我们采用在数据库中通过触发器来分区的方法。而从postgresql 10 开始,数据库提供了原生的分区方法。2. 设计方案2.1 设计思想在基于触发器的分区方法中,我们需要实现下面两个目标:程序向主表中插入数据时,数据库拦截并将数据插入到对应的分表中。 在进行数据库查询,删除,更新操作时,数据库可以定

2020-07-21 20:59:21 459

原创 在windows 上 使用 powershell 统计 postgresql的CPU 使用率和私有内存

实际应用中,我们有时需要统计PostgreSQL 的CPU使用率和私有内存。本文介绍在Windows上使用powershell统计PostgreSQL的方法,并将相关步骤整理为一个脚本。 方案的原理: PostgreSQL 是多进程模型的数据库。它在运行时,会启动一个名为“pg_ctl”进程和若干个名为“postgres” 的进程。其中,进程pg_ctl是“祖先”进程,它表示数据库处于运行状态,占用的内存很少;其他所有工作进程的名称都是postgres。我们可以根据PostgreS...

2020-07-16 21:21:24 976

转载 PostgreSQL: How to update large tables

Updating a large table in PostgreSQL, an advanced open-source database management system, is not straightforward. If you have a table with hundreds of millions of rows you will find that simple operations, such as adding a column or changing a column type,

2020-07-16 19:32:17 228

原创 在 PostgreSQL 中,违反唯一约束的行也会被写入表中

在 PostgreSQL 中,违反唯一性的行也会被写入表中。这听起来很不可思议。实际上,这些行确实会被写入表中,只是不会显示在查询结果中。我们在PostgreSQL 10 上来验证这一点。首先,我们在创建表 man,代码如下。其中字段id 上有 主键约束。 CREATE TABLE man(id integer NOT NULL,name character varying(32),gender int,b...

2020-07-14 20:14:14 716

原创 PostgreSQL和Oracle中的JSON和数组的常用功能

1. 前言目前新版本的PostgreSQL 和 Oracle 都有很多 NO-SQL 特性,代表性的是对 json 和数组的支持。本文将对照列举PostgreSQL 和Oracle 的JSON 和数组的常用功能。2 JSON功能2.1 JSON 字段的类型PostgreSQL 有原生类型json和jsonb。它们接受相同的输入格式。它们实际的主要差别是效率。json 数据类型存储输入的文本内容,处理函数在处理时必须将它解析为JSON;而jsonb数据以分解的二进制格式存储,这使得它由于添加了

2020-07-03 15:17:51 1864

原创 使用lsync实现linux上的文件实时同步

1.前言1.1 概述本文介绍了使用lsync实现linux 上的本地实时同步,本地定时同步的方法。1.2 实验环境服务器两台操作系统: CentOS-7.4软件:lsyncd-release-2.1.6lua-5.1.4cmake-2.8.12本地同步环境信息:源目录: /root/data/目的目录: /root/backup/远程同步环境信息:源主机(即原始文件所在的服务器)的ip地址:10.40.239.234源目录: /r...

2020-06-30 15:25:25 1440

原创 PostgreSQL 中 min() 和 order by limit 1 的对比

在实际应用中,我们经常需要计算数据库中某张表的某个字段的的最小值/最大值,并用它来作为查询条件。使用SQL求数据库中表字段的最小值/最大值,通常由两种方法:一种是 使用聚集函数 min()/max(), 另一种是使用order BY + “字段” 子句,对该表排序之后,取第一条记录中该字段的值。本文在PostgreSQL 11.4上,对min() 和 order by … limit 1 以及它们的变体做一个全方位的对比。现在有一张表tb_person,它的定义如下:...

2020-06-30 15:08:09 2932

原创 PostgreSQL分区表升级-从基于触发器到声明式

1 前言当数据库中单表的数据量过大时,需要考虑分区来提高性能。对于PostgreSQL数据库的用户而言,如果想在PostgreSQL 9.x 或者更早的版本中使用分区表,你需要用触发器(Trigger)或者规则(Rule),加上检查约束(Check)和继承(Inheritance)机制去实现它。而PostgreSQL 在 10.0版本引入了声明式(declarative)分区。相比于基于“触发器+继承+检查约束” (以下简称基于触发器的方案)和基于“规则+继承+检查约束”的分区方案,声明式分区的在性能有

2020-06-29 16:31:11 893 2

原创 pgwatch2-1.7.0 在CentOS7上的安装和使用

1. 前言1.1 pgwatch2 介绍pgwatch2,是由CYBERTEC开发的PostgreSQL数据库的指标收集器和可视化解决方案。 这个灵活的,自包含的监控工具将PostgreSQL监控提高到一个新的水平。尽管有许多PostgreSQL监控解决方案,但其中大多数解决方案因太复杂而难以启动,并且因不灵活而无法自行扩展功能。 PGWatch试图通过提供以前无法提供的灵活性并仅专注于指标收集来改变这种状况,为演示方提供了可用的最好的仪表板工具。PGWatch充当远程度量收集后台程序,以正常用

2020-06-24 19:09:19 996 1

转载 Oracle中使用绑定变量的优点和缺点

绑定变量的优缺点及使用场合 优点: 可以在library cache中共享游标,避免硬解析以及与之相关的额外开销 在大批量数据操作时将呈数量级来减少闩锁的使用,避免闩锁的竞争 缺点: 绑定变量被使用时,查询优化器会忽略其具体值,因此其预估的准确性远不如使用字面量值真实,尤其是在表存在数据倾斜(表上的数据非均匀分布)的列上会提供错误的执行计划。从而使得非高效的执行计划被使用。 使用场合: OLTP...

2020-06-19 17:33:57 612

原创 Linux平台上文件同步——rsync+inotify之实时同步

1 前言1.1 概述本文介绍使用rsync和 inotify-tools,实现linux 上的本地实时同步和本地定时同步的方法。1.2 实验环境服务器两台操作系统: CentOS-7.4软件:rsync.x86_64 3.0.9-18.el7inotify-tools.x86_64 3.14-9.el7xinetd.x86_64 2:2.3.15-13.el7本地同步环境信息:...

2020-03-27 10:46:08 864 4

原创 Linux平台上文件同步——rsync+inotify之定时同步

1 前言1.1 概述本文介绍使用rsync和 inotify-tools,实现linux 上的本地实时同步,本地定时同步,远程实时同步和远程定时同步的方法1.2 实验环境服务器两台操作系统: CentOS-7.4软件:rsync.x86_64 3.0.9-18.el7inotify-tools.x86_64 3.14-9.el7xinetd.x86_64 2:2.3.15-13....

2020-03-26 21:03:54 702 1

原创 cwRsync 向远程同步文件失败: Error: dup() in/out/err failed 问题的解决方法

我在windows上 安装好了 cwRsync客户端,并将 bin的路径加入到了环境变量 path 中;在远程 linux 服务器上 安装并配置了 rsync。此时向远程服务器同步数据:.\rsync.exe -a "/cygdrive/d/a.bat" [email protected]:/root/结果失败,报错:Error: dup() in/out/err failedr...

2019-12-21 15:29:12 1984 2

原创 关于关系型数据库中使用json字段的建议

1. 前言1.1 概述当前,一些应用程序在数据库层使用 JSON格式的字段。JSON 有很好的灵活性,它可以自由地包含不同键。然后,关系型数据库对JSON的处理能力天生不足。因此,在关系型数据库中使用JSON时应当遵循一定的思想,从而既能受益于JSON的灵活性,又能发挥关系型数据库的强大功能。本文根据实际工作中的经验,结合一些国内外现有的资料,总结了一些在关系型数据库中使用JSON 的...

2019-10-23 11:40:55 4037

原创 浅探PostgreSQL中的bit类型

Bit,即比特,是二进制数字中的位。PostgreSQL 中提供了用于表示比特串数据类型bit。在PostgreSQL 中,bit 类型常见用法是bit(n),这里n表示bit串的长度。同时,也有不带(n)的bit和带双引号的”bit”。它们各自的含义是什么呢?又有什么联系和区别?简言之,不带“(n)”的bit表示bit(1),而带双引号的”bit”表示任意长度的位串。我们通过下面的SQ...

2019-07-31 17:17:39 9369 1

原创 Oracle中调用 to_char 函数,格式参数中有特殊字符,如何转义

Oracle 提供了格式化函数 to_char(),它的作用是将数据转为特定的格式。它的第一个参数表示数值,第二个参数表示格式。 例如,获得当日日期,可以执行: select to_char(current_timestamp,'YYYY-MM-DD') from dual;结果是:2019-07-26 将3.14159保留到小数点后2位,可以执行:sele...

2019-07-26 14:46:28 447

原创 浅探PostgreSQL的 char 类型

一般来说,在PostgreSQL中,char 类型是表示固定长度的字符串的类型。例如, char(n) 用来表示长度为N个字符的字符串。不过,PostgreSQL 自身的一些细小缺陷,使得上面的论断事实上并不是很严谨。何以见得?下面的这个探究char类型实验,会揭开问题的面纱。我们通过下面的SQL语句创建一张表:create table tb_char( quote...

2019-05-23 17:34:13 3159

原创 PostgreSQL的几种常见问题和解决方法

1. 前言1.1 概述本文介绍了postgresql的几种常见问题,并从现象出发,逐步排查问题,分析导致问题的原因并给出解决方案。本文介绍的问题分为两大类:一类是关于PostgreSQL无法启动的问题,另一类是PostgreSQL启动后,部分数据库对象无法访问的问题。1.2软件环境本文使用的 PostgreSQL 版本是 9.2。1.3一些约定术语PostgreSQ...

2019-04-30 15:40:57 71154 15

原创 PostgreSQL的btree和bloom索引以单列为查询条件时的性能比较

1. 实验环境硬件: 普通PC一台。内存 8G。磁盘总空间200G。操作系统:CentOS 6.9软件:PostgreSQL 10,默认配置。2. 准备工作登录PostgreSQL,首先创建表 testindex,它有四列:postgres=# create table testindexpostgres-# (postgres(#col_int int...

2018-12-13 11:57:24 487

原创 BenchmarkSQL的安装和使用指导书——一个JDBC 基准测试工具

1. 概述BenchmarkSQL 是一个易于使用的 JDBC 基准测试程序, 它与 OLTP 的TPC-C标准非常相似。它支持的数据库包括 PostgreSQL/EnterpriseDB、DB2,、Oracle、 SQL Server和 MySQL。BenchmarkSQL 是开源的, 采用的协议是 GNU 通用公共许可协议版本 2.0 (GPL v2),这意味着它不允许修改后的和衍生的...

2018-10-31 09:49:59 9758 7

原创 在Windows上安装Psycopg2

在Windows上安装Psycopg21. 什么是Psycopg2?Psycopg2 是用 Python 编写的中最受欢迎的 PostgreSQL 数据库适配器。它的主要功能是完整实现 Python DB API 2.0 规范和线程安全 (多个线程可以共享相同的连接)。它是为大量多线程应用程序设计的, 它创建和销毁大量游标, 并生成大量并发 "INSERT" 或 "UPDATE"。P...

2018-09-30 10:00:47 6007

原创 PostgreSQL的日志分析工具——Pgbadger的安装和使用

pgBagder 是 PostgreSQL 的新一代日志分析器, 由 Darold (也是 ora2pg 的作者, 强大的迁移工具) 创建的。pgBadger 是一种快速、简便的工具, 用于分析 SQL 通信量, 并使用动态图来创建 HTML5 报告。pgBadger 是了解 PostgreSQL 服务器的行为并确定需要优化哪些 SQL 查询的完美工具。pgBagder 是在linux操...

2018-09-27 15:18:53 3806

原创 Linux下PostgreSQL主备环境搭建和切换

1. 概念数据库热备:数据库热备是指为主数据库的创建、维护和监控一个或多个备用数据库,它们时刻处于开机状态,同主机保持同步。当主机失灵时,可以随时启用热备数据库来代替,以保护数据不受故障、灾难、错误和崩溃的影响。流复制(streaming replication):PostgreSQL提供的一种服务器间的数据复制方式。这种方式下,后备服务器连接到主服务器,主服务器则在 WAL 记录产生时即...

2018-09-13 16:24:42 3895

原创 在postgresql (Windows版)中使用plpython

PL/Python过程语言允许用Python 语言编写PostgreSQL函数。 我们需要安装python扩展程序。要注意Windows 版本PostgreSQL和Python的版本对应关系。经验证,PostgreSQL 11 支持Python 3.6-3.8;PostgreSQL 9.6只支持Python 3.3;Postgresql 9.2-9.5只支持Python 3.2。对于 P...

2018-09-13 16:00:42 2174 3

原创 Postgresql的三种备份方式

数据库的备份有多种分类方式。按照备份后的文件类型,可以分为物理备份(文件系统级别的备份)和逻辑备份(备份后的文件是sql文件或特定格式的导出文件);按照备份过程中是否停止数据库服务,可分为冷备份(备份过程中停止数据库服务)和热备份(备份过程中数据库服务开启并可供用户访问);按照备份是否是完整的数据库,可分为全量备份(备份是完整的数据库)和增量备份(备份是上一次全量备份后数据库改变的...

2018-09-13 15:52:04 55532 12

实验报告及程序 哈夫曼树的编码和译码

这是本人在《数据结构》课上的 “ 哈夫曼树的编码和译码” 的实验报告及程序。建议手动敲一遍加深印象。

2015-06-13

《离散数学(方世昌)》习题解答

《离散数学(方世昌)》习题解答。题目齐全,解释详细,对不会做题的学生很有帮助。

2015-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除