自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Postgre 调优工具pgBadger部署

pgbadger是为了提高速度而构建的,具有来自pg日志文件的完整报告,他是一个小型的Perl脚本(linux需要安装perl),性能优于任何其他pg日志分析器。pgBadger 可以自动检测日志文件格式( syslog、 stderr、 csvlog或 jsonlog)。它被设计用来解析巨大的日志文件和压缩文件。支持的压缩格式有gzip、bzip2、lz4、xz、zip和zstd。还可以使用命令行选项将 pg Badger限制为仅报告错误或删除报告(可以自定义)的任何部分。

2024-06-16 22:06:56 897

原创 PG 数据库常用参数调整

数据库中一个至关重要的参数,主要与参数 checkpoint_timeout(checkpoint_timeout配合使用,值越小意味着检查点要越快完成,要求写得要快。控制每次检査点发生时i/o的吞吐量,值越高,则/o占用的资源越少,数据库性能越好;值越低,则/o占用的资源越多,影响数据库性能,但是提高检査点完成速度。

2024-06-10 15:49:40 745

原创 PG sql调优案例学习

经过分析发现,如果连接方式能够走嵌套循环,那么其成本比其它连接方式都低,当然我们要提供条件让优化器自动选择成本最低的连接方式,只要有一张表的访问方式是索引扫描,那么连接方式一般会选择嵌套循环。Employees表的复合索引在执行计划中起到了作用,或者选择在连接条件列上( employee_id, department_id, manager_id)创建单列索引Departments和 locations表的记录比较少,即使创建了单列或者多列索引,都不会使用索引。连接顺序是L>D->EMP-MGR-J

2024-06-10 14:52:58 544

原创 PG 索引内部结构验证

他的标记变成0了,是一个枝块,属于第1层。索引结构由autovacuum维护。

2024-06-04 12:52:59 295

原创 Postgre pg_fdw(foreign data wrappers)部署 实现PG到PG之间数据同步

可以看到数据已经访问成功,令人惊讶的是,我尝试了客户端的外部表与服务器的源表不一致,竟仍能访问成功!

2024-06-03 23:24:12 339

原创 PG 窗口函数

窗口函数也叫分析函数,也叫OLAP函数,通过partition by分组,这里的窗口表示范围,,可以不指定PARATITION BY,会将这个表当成一个大窗口。

2024-05-31 17:41:09 741

原创 OceanBase 系统架构初探

如图,Oceanbase数据库的存储引擎基于LSM Tree(结构日志合并) 架构。从名字上来看,说明它是基于日志,有序存放的。动态增量数据(放在MemTable中),还有个名词时memstore,在租户中,包括memstore和KVcache。memtable可以理解为存放的时候是基于表的存放,是一种增量的数据如:DML操作,在OB中update 有自己的特点与PG有相同点。在PG中做update操作会先删除再插入,但数据不会真正删除,会标记为delete状态。

2024-05-29 23:39:19 742 1

原创 PG TOAST技术

Toast是超长字段在PG的一个存储方式,对于用户来说不用关注这一技术的实现,完全是透明的,它会将大字段值压缩或分散为多个物理行来存储,与Oracle的CLOB,BLOB类似。

2024-05-29 11:42:43 344

原创 PG缓冲区管理器以及锁的学习

PG缓冲区管理器为许多不同的目的使用许多锁。锁是缓冲区管理器同步机制的一部分;它们和任何SQL语句和SQL选型都不相关。在PG中,对象在内存中是并发被访问的(其实任何数据块都是),这个时候为了数据块不被破坏,就需要锁。

2024-05-17 23:14:52 313

原创 PG 行可见性规则与提高判断效率

当一个事务开始时,PG会给该事务分配一个唯一标识(循环使用,能记录42亿个事务)。使用完前21亿个事务进行冻结,分为惰性冻结和急切冻结。txid用来标识一个事务的先后顺序,该顺序决定了锁申请的优先权(类似于Oracle的scn号),以及访问一张表时对行可见性规则判断。

2024-05-17 17:58:55 1429

原创 PG TXID冻结

如图:如果块内的行1被事务98修改,行2被事务99修改,行3被101修改。则在事务100中,根据行可见性规则,只能看见事务98,99的修改。简而言之就是只能看见过去的,无法看见未来的。

2024-05-17 12:57:22 196

原创 PG Auto Vacuum 学习与性能调优

autovacuum 可以设置开启或关闭,默认是开启,生产环境建议开启。

2024-05-16 15:35:13 242

原创 PG Vacuum 空间管理工具与pg_freespacemap使用

之前说过PG块更新的特点:先删除后插入,但老元组并不会真正删除,只是把老元组标记为删除状态,这就导致了PG中会有大量的垃圾数据,update所造成的资源消耗非常高。Vacum用来整理垃圾的数据,释放垃圾数据。

2024-05-15 23:30:14 911

原创 PG pageinspect使用与块空间清理学习

在下图中第一个update命令让t_cid变化,标明这一行已经被删除了(0,1)->(0,2)->(0,3)。

2024-05-14 16:38:47 418

原创 PG数据文件和块管理与Oracle比较

update操作时,PG会先delete掉原来的行,再insert全新的行,也可以说把原来的行标记为删除状态,被删除的行空间不会立刻释放,vacuum操作时会释放。相关的三类文件在内部被称为每个关系的分叉(fork),数据文件的fork号为0,空闲文件fork号为1,可见性地图文件的fork号为2。有点像俄罗斯方块,插入一个操作就新建一个指针,这个指针指向所记录的元素。可以看到,表空间中的数据文件还有以_fsm和_vm的文件。(3)堆元素(记录数据本身)分为全表扫描(PG中叫顺序扫描),索引扫描。

2024-05-14 14:46:31 857

原创 PG 检查点管理与Oracle的比较

写入到磁盘这一步,在不同的数据库中有不同的进程来处理,oracle中有dbwr进程,在PG中有bg writer进程和ckpt(检查点进程)。

2024-05-11 16:17:42 964

原创 Oceanbase all-in-one单机版部署,通过MySQL客户端连接OB租户,DBEAVER 客户端连接MySQL租户。

进入解压目录 oceanbase-all-in-one,执行:./bin/install.sh 安装。这里observer密码为空 -p 为空就行。连接前需要先下载驱动。

2024-05-06 23:10:06 584 1

原创 PG 全页写

修改一个块的时候,把块读到内存中,commit后,WAL写进程会触发写,把修改的块写到WAL日志文件,如果再往这个块中插入一条数据,数据缓冲区里面的块有两条数据了,再次commit后,PG会把这个事务写到事务缓冲区,再把事务缓冲区的事务写到WAL 文件中。第一个commit就是全页写1.操作系统进行I/O操作时,总是以块为单位,比如512字节,1kb,4kb(xfs)。

2024-05-05 23:59:01 348

原创 使用obd白屏部署oceanbase 集群 最详细版

手里有两台主机,在其中一台创建一个虚拟机当做主中控机部署,另外一台创建三个虚拟机,用于部署observer1-3,同时observer都在一个机子上还有一个好处就是不用部署ntp 服务来同步时间。部署用户配置需要三个节点root用户密码相同,如果是admin用户,需要admin用户相同,如果配置了免密,则无需输入。由于是学习使用,没有创建用户与规划磁盘,如果是其他用途,需要创建admin用户并且规划磁盘,至此主控机无需更多操作。我这边选择的是在线部署,参考官网在主控机上安装all-in-one。

2024-05-05 10:37:02 924 1

原创 PG WAL日志理解

类似于oracle的redo log,用于数据库恢复,当一条SQL语句执行,PG会把对应的块放到缓冲区执行,,会写进WAL缓冲区会进行写操作,commit后,WAL writer进程进行写操作,把日志缓冲区WAL buffer里面的日志条目写到日志文件(类似Oracle中的LGWR)。在Oracle中 redo log日志采用循环写的形式,但在PG中的WAL日志不会循环写,当WAL日志写满了 会重新创建一个WAL文件。WAL写进程里面记录的是格式化之后的日志条目,并不是原始的sql语句。

2024-05-04 15:30:13 235

原创 PG控制文件的管理与重建

逻辑位置:pgpobal 表空间中物理位置:$PGDATA/global/pg_control --pg_global表空间的物理位置就在$PGDATA/global文件夹下物理大小:8K。

2024-05-03 22:03:19 342

原创 PG实例连接访问控制

类似于oracle中的oracle用户可以直接用sqlplus / as sysdba oracle中是因为oracle用户在dba组中。1.local:表示本地连接,只对unix/linux 操作系统有效。3.hostssl:表示主机连接需要SSL加密方式连接。3.replication:表示主备复制时的连接。4.file_name:表示文件中包含的用户列表。3.group_name:表示一组用户。2.host:表示主机连接。1.all:表示所有的数据库。1.all:表示所有的用户。

2024-05-03 15:09:26 316

原创 PG 的用户与模式

在PG中用户对象的集合叫做模式。比如 postgres下有t1,t2,t3表,还有视图,索引等等,这些对象的集合就叫做模式。postgres下所有对象的集合就叫做postgres模式。不同的schema下可以有相同名字的对象。在PG中一个用户可以拥有多个模式,一个模式只能属于一个用户。这与oracle不同,oracle中用户与模式是一一对应的。比如:创建一个用户u1使用u1登录数据库。

2024-05-02 23:23:01 352

原创 PG数据库结构与oracle比较

数据库集簇概念:一个大的数据库是由若干个小的数据库组成,实现数据的隔离存放,在概念上应该是与mysql一样的在mysql中可以用show database列出数据库PG中用\l数据库对象存放在数据库中:PG中的所有数据库对象都有各自的对象表示符oid在内部管理,包括视图,在oracle中的ocp考试中有一道题记得很清楚,说视图有没有自己的oid,答案是有的,视图虽然不占物理空间,依赖于基表,但它也有自己的对象号,在oracle中对象号也叫object_id 也就是oid。

2024-05-01 18:21:35 757

原创 PG后台进程个人解读和与oracle 的比较

无论是oracle还是PG 优化器能做出正确的执行计划依赖于正确的统计信息,statistics collector 进程 负责收集对象最新的统计信息, 便于优化器做出正确的执行计划,当然,Oracle 11g中也有自动收集统计信息的功能,但Oracle中没有一个单独的进程来做这件事。这一点与oracle 有些不同,oracle的检查点进程是给DBWR进程发信号,让DBWR进程去写,而PG的CKPT进程本身就有写脏块的能力。作用:把日志缓冲区WAL buffer里面的日志条目写到日志文件。

2024-05-01 15:39:02 1189 1

原创 PG修改端口号与error: could not connect to server: could not connect to server 问题解决

PG的连接方式类似于Oracle的专用连接,在PG中,每有一个会话连接到PG服务,就回启动一个后端进程Backend process。修改端口号:/usr/local/pgsql/data中的postgresql.conf中。刚开始学习PG修改端口号之后数据库端口号没变。

2024-04-26 11:11:23 289

原创 Oracle 使用OGG(Oracle GoldenGate) 实现19c PDB与MySQL5.7 数据同步

OGG 是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化。

2024-03-23 23:32:53 1043 5

原创 Oracle 19c 傻瓜式安装

8.上传压缩包,这里为了省事直接放到了根目录。3.关闭防火墙和selinux。5.设置oracle环境变量。2.给oracle设置密码。9.安装oracle数据库。

2024-03-15 09:03:02 661

原创 Oracle增量更新备份(更快的备份策略)

我们可以这样做,先做一个0级备份,之后每一天都做一次一级备份,再把这个一级备份所修改的内容,每天都应用于这个0级备份,这样这个0级备份每天都是全新的。注意0级全备 与 full 备份是有差异的,0级备份可以做为1级备份的参照,full备份不可以,但在备份内容上,0级备份与1级备份备份的内容相同。如果我们是累积增量备份,则只会找n-1级备份,没有n-1级备份再找n-2级备份。、第一次执行命令,会创建一个完整的备份(这个1级备份因为是第一次执行,前面没有0级备份,所以本次1级备份就是一次0级备份)。

2024-03-12 09:34:10 1077 1

原创 Oracle 如何提高空间使用率?

Oracle 如何提高空间使用率??

2024-02-20 13:43:21 836

原创 Oracle19c PDB的简介与创建

pdb 在未开启的时候始终处于mounted状态,这是由于pdb与cdb共享控制文件,而一旦控制文件被打开,数据库默认处于mounted状态。其中file_name_convert('pdbseed','pdb2'),前面相同的pdb路径可以省略。cdb_tablespace:包括cdb与pdb的所有表空间,pdb的表空间只有pdb打开的时候才能看见。切换容器:pdb容器与其它pdb容器以及root容器可以手动进行切换。cdb_pdbs:包括cdb与pdb的所有相关信息。1.查看pdbseed路径。

2024-02-16 22:09:11 592

原创 配置oracle连接管理器(cman)

Oracle Connection Manager是一个软件组件,可以在oracle客户端上指定安装这个组件,Oracle连接管理器代理发送给数据库服务器的请求,在连接管理器中,我们可以通过配置各种规则来控制会话访问。简而言之,不同于专用连接的1个client对应1个server进程,和共享连接的n个client进程 由dispatcher 向服务器多个共享server发起会话连接管理器将client向客户端发起的会话进行统一管理。

2024-02-16 15:11:54 2465

原创 ORA-06512: at “SYS.UTL_FILE“, line 536

今天在做数据库升级 迁移表空间的时候偶然遇到这个错误,网上的结论千篇一律都是权限有问题需要修改权限,直到在stack上找到了解决方案,记录一下。错误的解决方案:权限有问题,修改directory指定的路径为oracle:oinstall例如:如题,修改/path目录权限为 oracle:oinstall 前提是现有这个目录,没有先创建。

2024-02-06 01:15:35 588

原创 oracle RMAN备份恢复实操

首先,备份和恢复的时间较长,对于大型数据库来说可能会造成较长时间无法访问数据库的情况;其次,备份的容量较大,占用存储资源较多。因此,对于一些重要数据表的备份,我们可以考虑增量备份的方法。但在生产环境中,一般情况下数据库是不能随意进行关闭的,所以一般在安装好数据库之后直接就开启归档模式,更改归档需要在。增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。是恢复,数据级的恢复。逻辑上恢复,比如应用归档日志、重做日志,全部同步,保持一致。是还原,文件级的恢复。

2024-01-26 22:36:11 2054

原创 linux火焰图的使用与性能解析

太宽了不行,太高了也不行,从总体上讲,太宽了就代表占用cpu时间太长了,性能有问题,同样太高了也不行,高处的一个一个小个子代表一个个函数,调用栈的大小是有限的,如果栈空间被用尽,会导致栈溢出。分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那为什么 整个cpu进程中没有mysqld ,mongod等进程,而使用top命令可以看到这些进程占用cpu?,部署的是一个简单的springboot项目,对数据库请求太少了,火焰图监测不到。为什么swap分区这么大?

2024-01-21 00:45:12 661

原创 linux部署springboot程序出现no main manifest attribute,没有主要清属性解决方案。

打包好的jar包在服务器上运行首先排一下坑:打包好后 有一个MANIFEST.MF 文件 去里面写一个Main-Class指定启动类:还有说什么把pom里面的注释删掉,删掉注释有鸟用!修改pom文件既然找不到,就直接在pom里面指定mainclass。重新编译并打包,一定要编译。项目运行成功

2024-01-21 00:31:35 426

原创 centos 7 安装oracle12c

这里是一个极其漫长的等待,报错请重新执行这个语句。21,oracle用户下执行。将主机命名为c120。

2023-12-22 11:41:49 450

原创 使用Xshell 7 Xftp 7在虚拟机最小安装状态下安装Oracle数据库

mv /data/oracle/admin/orcl/pfile/ 里面的ora文件 /data/oracle/product/11.2.0/db_1/dbs/initorcl.ora。34.1.将orcl:/data/oracle/product/11.2.0/db_1:N修改为orcl:/data/oracle/product/11.2.0/db_1:Y。cd /data/oracle/product/11.2.0/db_1/dbs/ 首先看看自己文件夹里面是否有initorcl.ora这个文件,

2023-12-02 16:39:49 2069 3

原创 安装oracle遇到的一些问题

如果oracle安装后执行netca或dbca command not found 可能是环境变量设置问题查看这个配置文件vi .bash_profile是否正确像我的保证你的ORACL_HOME和自己的安装目录是一样的。

2023-12-01 10:27:14 681

原创 归并排序算法实现

【代码】归并排序算法实现。

2023-10-11 14:32:52 60

OceanBase企业版v3部署,其中总结了部署过程的各种问题

注意:测试环境单机部署服务器最低配置为 2 台 16 CPU 64G 内存 500G 存储,其中 1 台 OAT/OCP,1 台 OBServer。低于此配置部署或测试时将出现资源不⾜等问题,建议增加配置或考虑其他部署⽅案。 在最⼩化部署时,⼀般需要 4 台服务器,即 3 台 OBServer 服务器安装 OceanBase 集群和 1 台单独的服务器安装 OCP ⽤于管理 OceanBase 集群。 根据官⽹,服务器应满⾜的最低配置要求如下表所示: OCP 管控服务器,1台,32C,128 GB,1.5 TB 存储 (包含 OAT 与 ODC 所需资源) OceanBase 计算服务器,3台,16C,64 GB,1.2 TB 存储 以 1-1-1 OceanBase 集群为例。

2024-06-10

数据RAC11g 升级到 RAC 19c

首先在源数据库创建自己的用户(三个自己创建的用户)、表空间(三个自己创建的表空间),角色(role)(三个控制权限的角色,通过角色控制是否读写的权限),然后自己生成测试数据。特别要求:数据库内必须有一个表的数据量超过5千万,并有三个复合索引,一个表数据量超过1亿,并且是分区表,并包含三个全局索引。2、(重点)用一个或者多个并发的程序或者代码,不停的对数据库有DML操作,就是数据库的业务不能停,对所有人要求可以停1分钟;3、然后通过Rman恢复方式或者其他方式(具体方式由项目方案确定),仅仅一分钟,生产库由11g升级为19C;

2024-02-06

对于oracle11g 各种进程进行详解,进程与内存结构的关系,SGA的讲解

数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了Oracle的进程结构,内存区域和后台进程合称为一个Oracle实例。

2024-01-26

linux中对于springboot程序生成火焰图,并对火焰图进行解析

Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

2024-01-26

linux文件系统,inode,datablock,superblock,Filesystem Description等详解

每个块都可能含有superblock,但是我们也说一个文件系统应该仅有一个superblock 而已,那是怎么回事?事实上除了第一个块内会含有superblock 之外,后续的块不一定含有superblock,而若含有superblock则该superblock主要是做为第一个块内superblock的备份,这样可以进行superblock的救援

2024-01-21

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

TA关注的人

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