摘要:我们都喜欢错误消息具有描述性,并且可以清楚地了解正在发生的事情。但是,在某些情况下,由于多种可能的原因而导致出现一条错误消息。其中之一就是“ MySQL server has gone away”。发生错误的大多数情况在MySQL文档中都有所描述,但可能会有些棘手。本文我想谈谈这个“棘手”的问题。 阅读全文
PostgreSQL安装的后续工作
2020-10-14 09:02 by abce, 271 阅读, 0 推荐, 收藏, 编辑
摘要:你已经在机器上安装了postgres,并且想要开始使用它。怎么使用呢? 要理解的关键点是,安装后期要做什么是有依赖的: ·依赖于操作系统。比如,windows或linux ·依赖于操作系统的分支。比如,debian或redhat ·依赖于是由软件包还是源码安装 让我们从所有安装都通用的最基本步骤开始 阅读全文
进程在Linux上实际需要多少内存
2020-10-13 14:03 by abce, 1448 阅读, 0 推荐, 收藏, 编辑
摘要:你经常会在基于Linux的系统上面临的问题之一是管理内存预算。如果程序使用的内存多于可用内存,则可能会发生交换,这常常会对性能造成严重影响,或者激活了内存溢出(OOM),从而完全杀死了进程。 在调整内存使用之前,通过配置优化或者负载管理,有助于了解给定程序实际使用多少内存。 如果你的系统本质上运行单 阅读全文
PostgreSQL的大对象以及空间使用 (3)
2020-10-12 08:58 by abce, 568 阅读, 1 推荐, 收藏, 编辑
摘要:如果没有关于vacuumlo的最后一篇文章,本系列将是不完整的。 在上一篇文章中,我们已经看到大对象被分成每个元组,每个元组包含2048个字节,每个chunk的行为与常规元组非常相似。 注意:在PostgreSQL中,借助TOAST技术,可以将大量数据与表一起存储。 大对象没有插入应用表中,但是以不 阅读全文
PostgreSQL的大对象以及空间使用 (2)
2020-10-11 10:22 by abce, 467 阅读, 1 推荐, 收藏, 编辑
摘要:在上一篇文章中,展示了插入大对象后,pg_largeobject表中有多少大对象使用空间。 让我们再深入研究一下: 该表有2个大对象(总共1024个记录): lob_test=# select pg_relation_size('pg_largeobject'); pg_relation_size 阅读全文
PostgreSQL的大对象以及空间使用 (1)
2020-10-10 09:34 by abce, 1515 阅读, 1 推荐, 收藏, 编辑
摘要:PostgreSQL对大列使用了一种很好的,非标准的TOAST机制,可以将其与Oracle中的扩展数据类型进行比较(顺便说一下,TOAST行可能更大)。 不过,传统的大对象,仍然被许多客户使用。 如果你不熟悉PostgreSQL中的大对象,请阅读此处(https://www.postgresql.o 阅读全文
PostgreSQL的WAL(4)--WAL创建和调优
2020-09-21 21:43 by abce, 4003 阅读, 0 推荐, 收藏, 编辑
摘要:我们熟悉了buffer cache的结构,在此情况下得出的结论是,如果所有RAM内容由于故障而丢失,则需要恢复预写日志(WAL)。由于不时地执行检查点,因此所需的WAL文件的大小和恢复时间受到限制。 在前面的文章中,我们已经回顾了许多与WAL相关的重要设置。在本文(本系列的最后一篇)中,我们将讨论尚 阅读全文
PostgreSQL的WAL(3)--Checkpoint
2020-09-19 11:26 by abce, 1438 阅读, 0 推荐, 收藏, 编辑
摘要:我们已经熟悉了buffer cache的结构(共享内存的主要对象之一),并得出结论,要在所有RAM内容丢失后发生故障后恢复,必须保留预写日志(WAL)。 我们上次中断的地方尚未解决的问题是,我们不知道在恢复期间从哪里开始播放WAL记录。从头开始,这是不可行的:不可能从服务器启动时保留所有WAL记录- 阅读全文
PostgreSQL的WAL(2)--Write-Ahead Log
2020-09-19 11:21 by abce, 627 阅读, 0 推荐, 收藏, 编辑
摘要:丢失RAM中的数据的风险是我们需要在故障后恢复数据的技术的主要原因。现在我们来讨论这些技术。 日志 为了避免RAM中数据丢失,必须将所有必需的东西妥善保存到磁盘(或其他非易失性介质)中。为此,做了以下的操作。在更改数据时,还维护了这些更改的日志。当我们更改buffer cache中页面上的某些内容时 阅读全文
PostgreSQL的WAL(1)--Buffer Cache
2020-09-17 12:05 by abce, 950 阅读, 0 推荐, 收藏, 编辑
摘要:为什么需要提前写日志 DBMS处理的数据部分存储在RAM中,并异步写入磁盘(或其他非易失性存储)中。即写延迟了一段时间。这种情况发生的频率越低,输入/输出越少,系统运行越快。 但是,如果发生故障(例如断电或DBMS或操作系统的代码错误),会发生什么? RAM的所有内容都会丢失,只有写入磁盘的数据才能 阅读全文