自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 VMware centos无法ping通网关问题解决

VMware centos无法ping通网关问题解决 前提 VMware使用的是VMnet0, 在ifcfg-ens33中配置的是静态IP, 网关也是手动设置. 问题 在配置未做任何变化的情况下, 突然发现VMware centos 的网关无法ping通. 原因 VMware 菜单 “编辑” -&...

2020-06-03 12:09:28 81 0

原创 《Oracle RAC 核心技术详解》 Question and Answer

《Oracle RAC 核心技术详解》 Question and Answer 第一部分 集群管理软件 集群技术简介 EVM, CRS, CSS Oracle10g版本, Oracle推出了自己的集群管理软件产品----CRS (Cluster Ready Service). 对于集群管理软件—C...

2020-06-02 14:23:45 112 0

原创 PG内核分析 Question and Answer

PG内核分析 Question and Answer PG系统概述 为什么说PG是一种先进的对象—关系数据库系统 因为PG它不仅支持关系数据库的各种功能, 而且还具备类, 继承等对象数据库的特征. 面向对象数据库技术可望成为继关系数据库技术之后的新一代数据管理技术。 它是一种以关系数据库和SQL为...

2020-06-02 14:09:46 155 0

原创 PostgreSQL嵌套事务提交流程研究

PostgreSQL嵌套事务提交流程研究 父事务最终提交代码流程图 事务提交调用流程 其中值得拿出来讲的,主要是TransactionIdSetTreeStatus这个方法。 这里涉及到一个概念,子事务。在PG这个地方,子事务的概念主要指:事务从开始到结束,期间可以 savepoint,之后ro...

2020-06-02 11:59:39 66 0

原创 mfence, lfence, sfence什么作用?

mfence, lfence, sfence什么作用? // src/backend/utils/rac/lock_free_queu.array_spsc_queue.c #define mb() asm volatile("mfence":::"memory&q...

2020-06-02 11:48:57 186 0

原创 postgresql共享行锁实现原理研究

postgresql共享行锁实现原理研究 背景 锁是数据库很重要的机制,postgresql支持表锁,行锁,了解postgresql行锁机制有助于我们在应用中分析和解决行锁的问题。 锁模式 当前postgresql支持4种行锁模式: FOR KEY SHARE, FOR SHARE, FOR NO...

2020-06-02 11:34:41 57 0

原创 PostgreSQL multixact日志管理器说明

PostgreSQL multixact日志管理器说明 MultiXactID日志是uxdb系统用来记录组合事务ID的一种日志。由于uxdb采用了多版本并发控制,因此同一个元组相关联的事务ID可能有多个,为了在加锁(行共享锁)的时候统一操作,uxdb将与该元组相关联的多个事务ID组合起来用一个Mu...

2020-06-02 11:26:32 60 0

原创 PostgreSQL中使用pstack打印fork子进程所有线程堆栈信息

PostgreSQL中使用pstack打印fork子进程所有线程堆栈信息 PostgreSQL数据库在并行查询中, 出现如下"stack depth limit exceeded"的错误, 因此想使用pstack来打印其堆栈信息, 依次来排查错误. void check_sta...

2020-06-02 11:13:09 107 0

原创 PostgreSQL查看各个数据库占用的物理空间大小

SELECT d.datname AS Name, pg_catalog.pg_get_userbyid(d.datdba) AS Owner, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT�...

2020-06-02 09:49:22 142 0

转载 postgresql shared_buffers 讲解

postgresql shared_buffers 讲解 什么是shred_buffer,我们为什么需要shared_buffers? 1.在数据库系统中,我们主要关注磁盘io,大多数oltp工作负载都是随机io,因此从磁盘获取非常慢。 2.为了解决这个问题,postgres将数据缓存在RAM中,...

2020-06-02 09:34:40 100 0

原创 PostgreSQL中的SpinLock

PostgreSQL中的SpinLock 1. What is SpinLock? SpinLock也就是我们常说的自旋锁,其显著的特点就是“死等”,需要获取SpinLock的线程会一直主动地check能否获取得到锁,直到获取到锁后线程才会继续执行下面的逻辑,这把锁会一直被这个线程持有,直到线程自...

2020-06-02 09:28:40 33 0

转载 PostgreSQL中的RegularLock

PostgreSQL中的RegularLock RegularLock又称为HeavyweightLock,在PostgreSQL中我们常说的表锁,指的其实就是这类锁。因为,对于用户来说,关心的是表,数据库,page等数据库的对象,而之前所介绍的SpinLock和LWLock保护对象的是数据库内部...

2020-06-02 09:27:29 35 0

转载 PostgreSQL中的LWLock

PostgreSQL中的LWLock 上一篇文章介绍了PostgreSQL中的SpinLock,本文将介绍的LWLock是基于SpinLock实现的一种轻量级锁( Lightweight Lock)。 1. What is LWLock? 从PG 10.5的注释来看,LWLock主要提供对共享内存...

2020-06-02 09:26:15 38 0

原创 base64, base64_encode, base64_decode

base64, base64_encode, base64_decode base64 Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。 Base64...

2020-06-02 09:24:20 26 0

原创 RSA和DES算法的优缺点、比较

RSA和DES算法的优缺点、比较 DES算法: 优点:密钥较短,加密处理简单,加解密速度快,适用于加密大量数据的场合。 缺点:密钥单一,不能由其中一个密钥推导出另一zd个密钥。 DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被...

2020-06-02 09:22:21 439 0

转载 postgresql shared_buffers 讲解

postgresql shared_buffers 讲解 什么是shred_buffer,我们为什么需要shared_buffers? 1.在数据库系统中,我们主要关注磁盘io,大多数oltp工作负载都是随机io,因此从磁盘获取非常慢。 2.为了解决这个问题,postgres将数据缓存在RAM中,...

2020-05-15 14:18:42 100 0

转载 PostgreSQL中的LWLock

PostgreSQL中的LWLock 上一篇文章介绍了PostgreSQL中的SpinLock,本文将介绍的LWLock是基于SpinLock实现的一种轻量级锁( Lightweight Lock)。 1. What is LWLock? 从PG 10.5的注释来看,LWLock主要提供对共享内存...

2020-05-14 10:04:28 113 0

转载 PostgreSQL中的RegularLock

PostgreSQL中的RegularLock RegularLock又称为HeavyweightLock,在PostgreSQL中我们常说的表锁,指的其实就是这类锁。因为,对于用户来说,关心的是表,数据库,page等数据库的对象,而之前所介绍的SpinLock和LWLock保护对象的是数据库内部...

2020-05-14 09:59:02 69 0

转载 PostgreSQL中的SpinLock

PostgreSQL中的SpinLock 1. What is SpinLock? SpinLock也就是我们常说的自旋锁,其显著的特点就是“死等”,需要获取SpinLock的线程会一直主动地check能否获取得到锁,直到获取到锁后线程才会继续执行下面的逻辑,这把锁会一直被这个线程持有,直到线程自...

2020-05-14 09:47:18 74 0

转载 Linux命令的全称说明

Linux常用命令的全称说明 基本命令 pwd = print working Directory 打印工作目录 ls = list 列出 bash = Bourne Again SHell bc = Basic (Better) Calculator 计算器 bg = BackGround 后台...

2020-05-14 09:38:55 112 0

原创 github操作出现Username for 'https://github.com':的验证问题

github操作出现Username for ‘https://github.com’:的验证问题 将本地库推送到github上, 输了好几次都不对, 最后发现这是个坑, 这里的Username其实填的是你的github的邮箱地址, 而非用户名. 特此记录. $ git push -u origi...

2020-03-16 10:02:30 665 0

原创 PostgreSQL 如何打印日志信息所在的源文件和行数

PostgreSQL 如何打印日志信息所在的源文件和行数 一直好奇在PG中, 当输出错误日志时, 如何能够附带错误信息所在的源代码文件名以及发生错误的代码行数. postgres.conf中, log信息冗余级别为"default(默认)", terse: 表示更加简单的日...

2020-03-02 09:46:11 266 0

原创 数据库三级封锁协议介绍及说明

数据库三级封锁协议介绍及说明 1级封锁协议 定义: 事务T在修改数据data之前必须先对其加X锁,直到事务结束才释放。 事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。 效果: 1级封锁协议可防止修改丢失,并保证事务T是可恢复的。 说明: 事务T的写操作加了"...

2020-02-21 20:19:07 322 0

原创 虚拟机centos NetworkManager导致网络不通解决

虚拟机centos NetworkManager导致网络不通解决 虚拟机网络手动配成了静态ip, 但每次重启虚拟机centos后, 发现网络全变成内网IP 127.0.0.1 解决: sudo systemctl stop NetworkManager sudo systemctl start n...

2020-02-20 21:30:14 846 0

转载 被面试官问“Mysql”,update 语句到底做了些什么?

被面试官问“Mysql”,update 语句到底做了些什么? 问题: 一条简单的update 的语句到底牵扯了多少的东西?你能完全说明白吗? 看看具体流程: 前提: student 只有id, 和name 两个字段,且只有id 一个主键,无其他索引。 update student set nam...

2020-02-20 21:06:49 334 0

转载 PostgreSQL事务处理机制问答

PostgreSQL事务处理机制问答 1、Q:PostgreSQL中DDL支不支持事务? A:支持。PostgreSQL中对DDL的处理方式和普通的DML类似,也是支持事务的。 2、 Q:PostgreSQL中对BLOB数据的处理支不支持事务? A:支持。对BLOB(bytea或large obj...

2020-02-20 15:42:35 117 0

转载 可串行性与“严格”可串行化区别

可串行性与“严格”可串行化区别 多年来,“可串行化/序列化”(serializability)被称为数据库隔离级别的“ 黄金标准 ”。它是绝大多数商业数据库系统中提供的最高隔离级别,一些高度广泛部署的系统甚至无法提供隔离级别与可序列化一样高。 在这篇文章中,我们展示了可序列化的可行性,并且说明它从...

2020-02-20 15:36:46 205 0

原创 PostgreSQL系统概述_PG数据库内核分析学习笔记

PostgreSQL系统概述_PG数据库内核分析学习笔记 PG简介和发展历程 PG以一种先进的对象-关系数据库管理系统(ORDBMS), 它不仅支持关系数据库的各种功能, 而且还具备类, 继承等对象数据库的特征. 它是目前功能最强大, 特性最丰富的和结构最复杂的开源数据库管理系统, 其中有些特性甚...

2020-02-20 14:16:25 175 0

原创 centos Job for network.service failed 解决

centos Job for network.service failed 解决 [uxdb@localhost ~]$ sudo systemctl restart network Job for network.service failed because the control proce...

2020-02-19 21:47:56 154 0

原创 PG MVCC 与 Oracle MVCC实现机制的背后思想差异

PG MVCC 与 Oracle MVCC实现机制的背后思想差异 在PG中执行DELETE时, 行不会立即从数据文件中删除, 而是仅通过在页头中设置为xmax字段将其标记为已删除. 同样对于UPDATE, 它可能在PG中被视为DELETE + INSERT. 这就因为PG MVCC背后的基本思想之...

2020-02-19 21:25:21 290 0

原创 buffer和cache区别的简单理解

buffer和cache区别的简单理解 什么是buffer, 什么是cache, 在有些情况下两者概念是混用的, 但在有些场合, 二者又有些区别. 从我经常使用的场景来"望文生义"理解, buffer就是"缓冲/缓存"的意思, cache经常和"命...

2020-02-18 23:11:13 49 0

原创 vscode中"无法查看c/c++源代码光标所在的函数名称"问题解决

vscode中"无法查看c/c++源代码光标所在的函数名称"问题解决 问题 图1 C/C++ IntelliSense"智能感知插件 在使用vscode中, 使用"C/C++ IntelliSense"智能感知插件(如上图1) , 来查看c\c+...

2020-02-18 22:24:11 313 0

原创 vim 常用技巧介绍

vim 常用技巧介绍 vim 指定范围内查找 参考: https://stackoverflow.com/questions/3264120/vim-search-only-between-specific-line-numbers 方法1 指定要搜索的起止行号, search为要搜索的patte...

2020-02-18 21:36:48 53 0

原创 global 常用技巧介绍

global 常用技巧介绍 global -c xx 查找以"xx"为前缀的所有函数, 如果没"xx"参数, 那么会列出所有的函数. global -c 不支持正则表达式, 如果需要模糊查找, 可以和grep搭配使用 global -c |grep xx ...

2020-02-18 21:35:39 251 0

原创 PG数据库内核分析学习笔记_MultiXact日志管理器

PG数据库内核分析学习笔记_MultiXact日志管理器 MultiXact日志是PG系统用来记录组合事务ID的一种日志. 由于PG采用了多版本并发控制, 因此同一个元组相关的事务ID可能有多个, 为了在加锁(行共享锁)的时候统一操作, PG将与该元组相关联的多个事务ID组合起来用一个MultiX...

2020-02-18 21:32:57 115 0

原创 postgresql psql explain选项使用示例介绍

postgresql psql explain选项使用示例介绍 explain postgres=# explain select count(*) from pgbench_accounts ; ...

2020-02-18 15:32:49 84 0

原创 PostgreSQL 10 基于日志的备份与还原

PostgreSQL 10 基于日志的备份与还原 wal,即预写式日志,是日志的标准实现方式,简单而言就是将对数据库的变动先记录到日志中,而后在将具体的新数据刷新到磁盘。PostgreSQL将该日志维护在数据文件夹下的子文件夹pg_wal中。当数据库崩溃后,可以通过“重放(replay)”日志中的...

2020-02-17 21:20:44 369 0

原创 PG数据库内核分析学习笔记_XLOG日志恢复策略

PG数据库内核分析学习笔记_XLOG日志恢复策略 在PostgreSQL中,系统在崩溃后重新启动时会调用StartupXlog入口函数. // xlog.c /* * This must be called ONCE during postmaster or standalone-backend...

2020-02-17 17:25:32 182 0

原创 为什么PG只是用REDO方法来进行数据库的恢复

为什么PG只是用REDO方法来进行数据库的恢复 在阅读<PG数据内核分析>一书中, 看到这样一句话: PG只是用REDO方法来进行数据库的恢复, 它不使用UNDO是因为其数据的多版本使得UNDO没有必要. 但从本质上来讲, PG日志并非是REDO日志, 而应该是UNDO/REDO日志...

2020-02-17 16:44:32 115 0

转载 Oracle RAC原理概要介绍

Oracle RAC原理概要介绍 单点数据库 vs RAC 单节点数据库,如果宕机了,如果一个业务链接在实例上面,那么这个业务就中断了。这个时候系统就不具有可用性了,那么这个时候单节点的可用性是很差的。 对于RAC来说,和单实例一样,还是一份数据文件,都是相同的存储上面放着oracle的文件,但...

2020-02-17 16:09:00 86 0

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