随笔分类 - 数据库
摘要:1、什么是MAA MAA即最高可用性架构(Maximum Availability Architecture ) Oracle最高可用性架构(MAA)为Oracle数据库提供了架构、配置和生命周期最佳实践 参考之前的文章: 1、 Oracle最高可用性架构(MAA)|青铜级(BRONZE) http
阅读全文
摘要:提到数据库高可用,Oracle作为先行者,其体系全面,值得参考和学习 1、什么是MAA 参考之前的文章: Oracle最高可用性架构(MAA)|青铜级(BRONZE) https://www.cnblogs.com/mingfan/p/16804556.html 2、白银级(SILVER)MAA 白
阅读全文
摘要:提到数据库高可用,Oracle作为先行者,其体系全面,值得参考和学习 1、什么是MAA 先下个定义 MAA即最高可用性架构(Maximum Availability Architecture ) Oracle最高可用性架构(MAA)为Oracle数据库提供了架构、配置和生命周期最佳实践 Oracle
阅读全文
摘要:wal PostgreSQL的第一个 WAL 段文件是 00000001 0000000 0000000 01。如果第一个已被写入 的XLOG 记录填满,则将提供第二个 00000001 00000000 000000 02。后继文件按升序顺序使用,00000001 00000000 000000
阅读全文
摘要:以阿里云CentOS7.6为例 1、环境准备: 解决:configure:error:readline library not found yum install readline-dev 解决:configure: error: zlib library not found yum install
阅读全文
摘要:报错示例: Performing Consistency Checks Checking cluster versions ok Checking database user is the install user ok Checking database connection settings o
阅读全文
摘要:1、查看表膨胀(对所有表进行膨胀率排序),取前10个 SELECT schemaname||'.'||relname as table_name, pg_size_pretty(pg_relation_size(schemaname||'.'||relname)) as table_size, n_
阅读全文
摘要:为什么会有表膨胀--多版本并发控制机制 多版本并发控制机制(MVCC)的原理在于,当它需要更改某块数据的时候,它不会直接去更改,而是会创建这份数据的新版本,在新版本进行更改,所以会存储多份版本,每个事务能看见哪一份版本的数据,由事务隔离级别控制。 MVCC引入了一个问题,如何消除老旧的、没有使用的无
阅读全文
摘要:PostgreSQL通过预写式日志(wal日志)来保证数据不丢失 没有WAL机制的场景 没有 WAL 的数据库容易受到系统故障的影响,如下图,如果操作系统或 PostgreSQL 服务器发生故障,则所有插入的数据都可能丢失。 (1) 发出第一条 INSERT 语句,PostgreSQL 将 TABL
阅读全文
摘要:设计一个高可用的数据库系统,首先需要明确的就是RPO和RTO 关于RPO RPO是业务连续性中的一个常用术语,称为恢复点目标。 在数据库系统中,它描述的是数据库在一次故障停机恢复后可能丢失的数据量。 在数据库系统架构设计中,这是需要优先考虑的,假定数据库每天会做1次全量数据备份,那么在最坏情况下,用
阅读全文
摘要:什么是数据损坏 存储故障通常是指读取或写入数据的存储介质出现的物理上的故障,存储故障通常会带来数据损坏甚至数据丢失的风险。 checksum PostgreSQL在9.3版本开始,引入了checksum,使用checksum可以检验数据块的损坏 页面有效性检验发生在离开共享缓冲区和进入共享缓冲区之前
阅读全文
摘要:根据不同的场景需求,Oracle Data Guard 提供三种数据保护模式(Data Protection Mode ):最大可用性、最大性能和最大保护。 Maximum Availability(最大可用性) 这种保护模式可提供最高级别的数据保护,而不会影响主数据库的可用性。最大可用性模式下,事
阅读全文
摘要:Ubuntu版本: Ubuntu 20.10(GNU/Linux 5.8.0-53-generic x86_64) PostgreSQL版本: 13.3 1、下载PostgreSQL源码 下载路径:https://www.postgresql.org/ftp/source/v13.3/ 2、Ubun
阅读全文
摘要:复习下前面的知识点: 1、缓冲区高速缓存(Buffer Cache)位于服务器的共享内存中,并且所有进程均可访问。在读取或更新数据时,进程将页面读入缓存。当页面位于缓存中时,我们在RAM中使用它并保存数据到磁盘。 2、当遇到掉电等故障场景,所有 RAM 内容丢失时,要在故障后恢复数据,pg必须维护一
阅读全文
摘要:PostgreSQL通过预写式日志(wal日志)来保证数据不丢失 wal日志记录哪些内容 数据库的哪些操作会被wal日志记录,哪些操作不会被wal日志记录,参考如下: the following operations are WAL-logged: Changes to pages in the b
阅读全文
摘要:简介 BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对PostgreSQL、Oracle以及Firebird等数据库进行测试.。 TPC-C 于 1992 年 7 月 23 日认可为新的基准测试。TPC(Transaction Processing Perfor
阅读全文
摘要:我们都知道,postgresql的base目录是存储整体数据的目录,而base 里面就是以数据库的OID为名字的目录,目录里面全是这个数据库里面的表及相关文件。 select datname ,oid from pg_database ; 我们查询某张表的存储位置 select pg_relatio
阅读全文
摘要:缓冲区高速缓存(Buffer Cache)位于服务器的共享内存中,并且所有进程均可访问。在读取或更新数据时,进程将页面读入缓存。当页面位于缓存中时,我们在RAM中使用它并保存数据到磁盘。 当一个进程需要读取一个页面时,它首先尝试通过哈希表在Buffer Cache中找到它,如果在Buffer Cac
阅读全文
摘要:PostgreSQL数据文件存储大小通过segment_size参数控制,默认为1G show segment_size ; 先看下官方的介绍: segment_size (integer) 报告一个文件段中可以存储的块(页)的数量。由编译服务器时的RELSEG_SIZE值决定。 一个段文件的最大尺
阅读全文
摘要:数据库集群故障转移的目的是在主机节点意外宕机后,自动提升一个备机节点作为主机,以达到继续对外提供服务的目的。 1、主机节点故障 常见的主机故障场景包括: 电源失效(掉电) 意外关机 系统意外重启 系统崩溃(kernel panic) 网络中断 服务进程故障 tips: 为了避免集群服务异常,主机需要
阅读全文