自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个只求实际的程序猿

少说,多做。

  • 博客(74)
  • 收藏
  • 关注

原创 oracle IO性能分析

22-10月-22 03.00.49.801 下午 20536 <4ms 89464 26.39。22-10月-22 03.00.49.801 下午 20536 <8ms 89464 18.28。22-10月-22 03.00.49.801 下午 20536 <16ms 89464 13.16。

2024-08-02 00:50:16 484

原创 Oracle 19c Physical Standby Switchover 最佳实践(包含 Failover 步骤 )

如果主备库的数据文件和 redo 文件的路径不同则需要设置参数 db_file_name_convert 和 log_file_name_convert。-- 模拟"取消主备同步"成功的步骤:alter database failover to <standby db_unique_name>;-- 检查备库收到的主库最新的归档日志(RAC 显示每一个 thread 的结果 )-- 安装和配置检查:确认主备的数据库版本一致、确认 alert 日志无报错。--主库检查归档日志状态(备库是否存在 gap )

2024-08-02 00:46:29 427

原创 Switchover和Failover切换方案(实战)

-检查主库下switchover_status字段,如果值为"session active"或者"to standby", 则主数据库角色可以切换为备库角色。=======================检查=================================--两个节点各执行2次。2.--备库切换为主库(切换可在1节点执行,启停需所有集群节点都执行)3.--主库切换为备库(切换1节点执行,启停需所有集群节点都执行)4.--获取主、备库上的信息以及保护模式(主备库执行)

2024-08-02 00:43:13 845

原创 Oracle主备切换,ogg恢复方法(集成模式)

文章主要介绍Oracle数据库物理ADG主备在发生切换时(switchover,failover),在主库运行的ogg进程(集成模式)如何进行恢复。测试恢复场景,因为集成模式不能在备库配置,所以场景都是基于主库端:1.主备发生switchover切换,主库为ogg源端2.主备发生failover切换,主库为ogg源端3.主备发生switchover切换,主库为ogg目标端4.主备发生failover切换,主库为ogg目标端。

2024-08-02 00:38:21 430

原创 Oracle至今未解决的BUG

lag是复制进程处理最后一条记录的操作系统时间和此条记录在trail文件中记录的时间戳的差值,这里需要注意的是lag延迟只有在检查点更新时才会更新,所以这个值不是实时更新的,具有一定的离散性,实际上应该理解成最后一个检查点的最后一条记录与当前系统时间的时间差。最近业务频繁发生,主库在维护分区表的时候,触发以下BUG,官方的说法是维护分区表执行了错误的命令,但是主库发出的分区维护操作是正确的,类似这种主库命令操作错误导致OGG终端层出不穷。OGG的恢复进程总是以检查点作为起点。

2024-08-02 00:35:36 708

原创 Oracle、MySQL、达梦数据库锁阻塞问题对比和解决

可以正常执行,在提交或回滚前,事务ID=39944的update t1 set name='eeeee' where id=3;此时手动提交或回滚SESS_ID=127926984 ,TRX_ID=39948的会话既可以解决此问题;kill 161会话后,191会话的update不会被阻塞,如果不提交或回滚,将会继续阻塞224会话。行号 ID WAIT_FOR_ID WAIT_TIME THRD_ID。更新t1表id=3数据,被会话1锁阻塞,update语句卡住,不能执行完成。

2024-08-02 00:32:39 733

原创 lgwr超时如何判断存储还是cpu问题?(等待事件各种类型和说明及相关查询)

1.3 direct path read/write (直接路径读写), direct path read/write temp (直接路径读写临时数据文件)可以增大日志文件,增加日志组,移动归档文件到快速磁盘,调整 log_archive_max_processes 参数。lgwr 将日志从 log buffer 写出到日志文件时写出是并行的 (多个日志成员),全部完成后此操作才会完成。日志组循环写满以后,在需要覆盖先前日志时发现数据库没完成写出此日志所保护的脏数据。

2024-04-09 22:33:14 576

原创 用dbms_shared_pool.purge清除执行计划

以前在Oracle 10g数据库上,如果遇到绑定窥探导致执行计划慢的情况,想要清除某条SQL的执行计划,让它硬解析,找了很久都没有找到直接操作share pool的方法(总不能alter system flush shared_pool),只能通过对表ddl使SQL硬解析。现在终于找到了,使用。,在11g下可以直接使用,但在10g上需要。--内存中存在这条语句的执行计划。PL/SQL 过程已成功完成。PL/SQL 过程已成功完成。-----清除执行计划。

2024-04-09 22:06:35 955

原创 Oracle测试10046参数及打印结果

-常用的级别是12。--实例级别设置需要注意,会消耗大量的CPU。--默认是unlimited。

2024-04-09 22:04:08 615

原创 详解:Postgresql&Oracle&MySQL的ACID差异

2.事务提交后binlog一次性写入,redolog在事务进行中持续写入,默认是事务提交时刷盘,保证原子性和持久性(innodb_flush_log_at_trx_commit可改)。session2修改的数据,session1在事务里是看不到的,除非退出事务后,才能看到session2提交的数据。同上PG测试的一样,session2 update并提交,session1在事务里能查到session2提交的数据。3).意向锁(表级),间隙锁(防止幻读,保证一个事务中两次查询获得的数据一致)。

2024-03-03 18:08:33 1100

原创 Oracle自带的网络工具(计算传输redo需要的带宽,使用STATSPACK,计算redo压缩率,db_ultra_safe)

TYPICAL:Primary端设定DB_LOST_WRITE_PROTECT=TYPICAL时,在执行介质恢复时读取redo log中的read-write表空间到log buffer cache,检测写丢失.在物理standby中设定DB_LOST_WRITE_PROTECT=TYPIAL,DG的MRP进程将会持续检查出现在primary数据库read-write表空间的丢失写,检测到丢失写时,将立即阻止应用损坏的redo log块,也做不依赖于primary的丢失写保护检测.

2024-03-03 18:06:15 1067

原创 Oracle-11g-R2 RAC 环境下 GPnP Profile 文件

3).随后,集群软件将检查是否所有的 RAC 节点都更新了 GPnP Profile 信息,并且 RAC 各节点将依据 GPnP 的配置信息加入集群中。当节点被新加至集群时,GPnP agent 将通过组播协议(mDNS)定位到一个已存在于集群的节点的 GPnP agent,并且从该源端的 agent 上获取 GPnP profile。1).GPnP 守护进程(GPnPD)将在软件安装、系统启动或 Profile 更新时复制 Profile 的变化,以此实现所有节点 GPnP Profile 的同步更新。

2024-03-03 18:05:01 585

原创 Linux 服务器 CPU 详细信息查看、物理 CPU 以及逻辑 CPU

当两个线程都同时需要某一个资源时,其中一个要暂时停止,并让出资源,直到这些资源闲置后才能继续,因此超线程的性能并不等于两颗CPU的性能。超线程技术就是利用特殊的硬件指令,把两个逻辑内核模拟成两个物理芯片,让单个处理器都能使用线程级并行计算,进而兼容多线程操作系统和软件,查看CPU详细得知,服务器共有16个核心,物理CPU个数为 4,证明单个物理CPU上集成了4个核心处理器。日常我们所说的CPU核数指的是物理CPU上存在几个核心处理器或者核心处理单元总和(排除超线程技术)Linux内核支持关闭超线程技术。

2024-01-23 09:13:07 895

原创 linux创建软连接和-mtime +1和xargs -n

真正的JHMDB数据集保存在/home/datasets/JHMDB中,/home/MOC_detector/data/JHMDB 是 /home/datasets/JHMDB的软链接。linux创建软连接命令: ln -s [dir1] [dir2] ,dir1是真实的文件夹,dir2是dir1的软链接。软链接可以理解为,dir2是dir1的快捷方式,进入了dir2,就会自动进入dir1。所有的都删除:机制是500个一次500个删除。linux创建软连接。

2024-01-23 09:10:38 532

原创 批量kill mysql中运行时间长的sql

1、通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令。4、通过Maatkit工具集中提供的mk-kill命令进行。#如果你想先不杀,先看看有哪些sql运行超过60秒。杀掉指定用户运行的连接,这里为Mike。#如果你想杀掉,同时输出杀掉了哪些进程。2、杀掉当前所有的MySQL连接。#杀掉锁定的MySQL连接。3、通过SHEL脚本实现。#杀掉超过60秒的sql。5、查询session分布。

2024-01-19 17:38:58 520

原创 MySQL 性能优化的 21 个最佳实践

这会相当节约很多可观的内存,尤其是那些会产生大量结果的查询语句,并且不需要等到所有的结果都返回,只需要第一行数据返回的时候,就可以开始马上开始工作于查询结果了,然而,这会有一些限制。如果把表锁上一段时间,比如 30 秒钟,那么对于一个有很高访问量的站点来说,这 30 秒所积累的访问进程/线程,数据库链接,打开的文件数,可能不仅仅会让WEB 服务 Crash,还可能会让整台服务器马上掛了。ORM 的最重要的是"Lazy Loading",也就是说,只有在需要的去取值的时候才会去真正的去做。

2024-01-19 17:37:31 1205

原创 mysql 生成数据(批量造数)

-存储过程导入数据。

2024-01-18 17:32:01 894

原创 深入了解性能优化(web应用)

同步非阻塞在编程中可以抽象为一个轮询模式,你去了商店之后,发现衣服卖完了,这个时候不需要傻傻的等着,你可以去其他地方比如奶茶店,买杯水,但是你还是需要时不时的去商店问老板新衣服到了吗。同步阻塞基本也是编程中最常见的模型,打个比方你去商店买衣服,你去了之后发现衣服卖完了,那你就在店里面一直等,期间不做任何事(包括看手机),等着商家进货,直到有货为止,这个效率很低。尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择). 在此种情况下,年轻代收集发生的频率也是最小的.同时,减少到达年老代的对象.

2024-01-18 17:28:56 1227

原创 Oracle DBCA工具图形化方式检测不到ASM磁盘组(解决各种报错)

这里想要提醒大家,有些DBA有意无意中看到这样的目录权限,发现所属主是root,以为出了问题,理所应当地通过命令去更改,如果只更改该目录权限问题也不大,回退方法很简单,但一旦加上-R参数递归方式把子目录、子文件的权限一并更改,那故障就发生了。所以,大家在操作的时候不要盲目去做没有把握的事情,掌握每个操作后面的原理以及其带来的后果,以至于充分准备好回退方法.ORACLE_HOME不能直接赋予775的权限,查询grid和oracle $ORACLE_HOME/bin/oracle下的权限,都变成了775权限。

2024-01-12 09:14:02 1558

原创 ASM磁盘组配置共享存储:裸设备(60)_块设备(12)_(99)方式

直接编译以下修改后的内容到:vi /etc/udev/rules.d/99-oracle-asmdisks.rules。不读盘的话: cd /opt/DynamicLinkManager/bin 执行 ./dlmstart。修改/etc/udev/rules.d/12-dm-permissions.rules添加内容。直接编译以下修改后的内容到:vi /etc/udev/rules.d/60-raw.rules。20个1TB的LUN,/dev/mapper/mpath1--mpath20。

2024-01-12 09:09:32 518

原创 (实战)静默dbca安装创建数据库 --参数说明+举例

templatename = General_Purpose.dbc '推荐配置'--建库用的模板文件(安装时使用的模板文件),Oracle提供了2种安装模板,{Data_Warehouse.dbc、General_Purpose.dbc}。policyManaged= --数据库管理策略。-addInstance - Command to Add an instance to an admin managed cluster database. --为admin管理的集群数据库添加实例。

2024-01-10 15:16:38 1592

原创 (实战)oracle静默安装runInstaller数据库软件 --参数说明+举例

oracle.install.db.config.starterdb.password.ALL=oracle -- 设定所有数据库用户使用同一个密码。oracle.install.db.config.starterdb.memoryLimit=512 -- 自动管理内存的最小内存(M)oracle.install.db.config.starterdb.type=GENERAL_PURPOSE -- 数据库类型。oracle.install.db.DBA_GROUP=dba -- dba用户组。

2024-01-10 15:13:12 870

原创 ‘gc buffer busy acquire‘和‘gc buffer busy release‘原理及案例

是当session#1尝试请求访问远程实例(remote instance) buffer,但是在session#1之前已经有相同实例上另外一个session#2请求访问了相同的buffer,并且没有完成,那么session#1等待gc buffer busy acquire。如果应用程序可以实现,那么我们建议不同的应用功能/模块数据分布在不同的数据库实例上被访问,避免同一数据被多个实例交叉访问,可以减少buffer的争用,避免gc等待。gc buffer busy:--Gc缓冲区忙。

2024-01-09 17:39:47 1078

原创 MongoDB:count结果不准确的原因与解决方法

教训:MongoDB在分片后的集合上进行db.collection.count()操作时,出现结果不准确的现象,需要采用聚合的方法获取集合的count结果。c.存在孤立文档(因为不正常关机、块迁移失败等原因导致)b.shard分片正在做块迁移,导致有重复数据出现。a.操作的是分片的集合(前提);

2024-01-09 15:38:40 606

原创 MongDB集群部署和升级方案

rs.add({_id:3, host:"192.168.1.48:28111", priority:190,tags:{'use':'user-sale-rs1-3'}}) #添加完,该节点为primary。c. 启动 /usr/local/mongodb-3.4.24/bin/mongod -f /DATA/mongo_user_sale/etc/mongo_usersale.conf。db.system.users.find().pretty() 查询看一下是否授权成功。

2024-01-09 15:33:58 573

原创 增删改undo生成量??index是否写undo?Oracle DML语句(insert,update,delete) ‘回滚开销估算‘

假设表有2个索引,新增1000条记录,每个数据块大约可保存600条记录,新增第一个数据块保存了600条记录,同时变更了第1个索引30个索引块,第2个索引40个数据块,新增第2个数据块保存了400条记录,同时变更了第1个索引20个索引块,第2个索引60个数据块。2.从估算公式可以看出,索引对dml操作的影响非常大,当一个表有索引比没索引时做dml操作花费的undo开销非常具大,因为数据库要保证事务回滚的可行性,需要对索引做许多额外的事情,更新索引字段及批量insert操作尤其明显.

2024-01-05 09:54:45 757 3

原创 [应急]Oracle抓undo高的语句

v$undostat //undo虽然自动管理,但是原理还是v$undostat,历史是 dba_hist_undostat。2.@trans 看事务看undo使用块数 USED_UBLK、行数 USED_UREC 和开始时间 START_TIME。3.看 session 状态是否正常,是不是ap长时间没提交。1.@asql 看当时的语句 看是否有时间长的dml。1.@undousage --看undo使用率。0.active的undo看使用率。

2024-01-05 09:49:36 1260

原创 [理论]undo有关的4个参数:transactions_per_rollback_segment,undo_retention,_highthreshold_undoretention,_rollb

如果用户执行了commit命令,那么Rollback Segment里面的值就会标识为失效,数据的改变将永久化。2.如果一个select语句在读取一个表的同时另有一个事务也在修改这个表的值,那么select语句select出来的数据是在修改之前的值,因为修改之前的原数据存入到了Rollback Segment中。设置_HIGHTHRESHOLD_UNDORETENTION,虽然允许Oracle自动调整undo retention,但是为它设置一个天花板,不会过份地受MAXQUERYLEN的影响,

2024-01-04 17:23:48 890

原创 深入浅出XTTS:Oracle数据库迁移升级利器

来看一下这个XTTS整个的时间流程,准备阶段、初始化和N次增量备份恢复,这些都是迁移之前的,只需要考虑实际停业务的时间,这段时间做表空间只读,增量备份恢复,元数据导入,数据校验.知道表空间的只读和数据的校验,这两个时间是固定的,表空间只读速度很快,关键的时间点是增量的备份和恢复的时间,以及元数据的导入时间.

2024-01-04 17:18:34 1968

原创 为什么大家说mysql数据库单表最大两千万?依据是啥?

看下图黄色的箭头,向左最小id是1,向右最小id是7,那id=5的数据如果存在,那必定在左边箭头,于是顺着的record的页地址就到了6号数据页里,再判断id=5>4,所以肯定在右边的数据页里,于是加载105号数据页,在数据页里找到id=5的数据行,完成查询。,放入到一个新生成的一个数据页中,这个新数据页跟之前的页结构没啥区别,而且大小还是16k,但为了跟之前的数据页进行区分,数据页里加入了页层级(page level)的信息,从0开始往上算。于是页与页之间就有了上下层级的概念,就像下面这样。

2024-01-02 11:25:52 1178

原创 [技术分享]一招解决 MySQL 中 DDL 被阻塞的问题

该表是MySQL 5.7引入的,会显示MDL的相关信息,包括作用对象、锁的类型及锁的状态等。这个时候,我们需要对上述2n条记录进行过滤。所以,在MySQL 5.7中,如果我们要使用 sys.schema_table_lock_waits,必须首先开启MDL 相关的 instrument。sys.schema_table_lock_waits 是 MySQL 5.7 引入的,用来定位 DDL 被阻塞的问题。定位导致DDL被阻塞的会话,常用的方法如下:sys.schema_table_lock_waits。

2024-01-02 11:22:21 1202

原创 MySQL HeatWave Lakehouse

使用MySQL Autopilot,该过程是完全自动化和数据驱动的,消除了用户的猜测(如下所述)。客户使用标准的MySQL命令既可以查询MySQL数据库中的事务性数据,又可以查询对象存储中各种格式的数据,或者将两者结合进行查询,并能够做到查询数据库中的数据与查询对象存储中的数据速度一样快。IDC预测,保存在数据库之外的文件数据的将呈爆发式增长,产生的数据从2021年的79 ZB到2025年的180 ZB,数据增长将超过一倍,其中99.5%的数据都未被利用,因为没有能够有效处理这些数据的服务。

2023-12-29 09:22:04 1117

原创 分库分表后,id主键处理的几种方式:

可以看出,只要处于同一毫秒内,所有的雪花算法id的前42位的值都是一样的,因此在这一毫秒内,能产生的id数量就是2的10次方到2的12次方,大概400w,肯定是够用了,甚至有点多了。1).存在单点问题,如果mysql挂了,就没法生成ID了。依赖机器的时钟,如果服务器时钟回拨,会导致重复ID生成。再接下来的10位是指产生这些雪花算法的工作机器id。这样就可以让每个机器产生的id都具有相应的标识。1).每次生成的ID是无序的,无法保证趋势递增。3).因为是全局唯一的ID,所以迁移数据容易。

2023-12-29 09:15:47 660

原创 ORACLE 19C PDB FOR MYSQL 5.7 部署ogg

注意:SOURCECATALOG参数很重要要指定具体pdbname,--dynamicresolution我把这个参数注释了应该默认就是这个。--修改 streams_pool_size参数,需要分别修改各个实例,不能用sid='*'3、--创建manager参数文件(10.10.10.32)5、--创建抽取进程参数文件(10.10.10.32)2、--源端ogg操作(10.10.10.32)4、--创建goldengate 数据库。3、--创建manager 参数文件。

2023-10-17 10:46:01 423

原创 mysql 模式转化:gtid与传统复制模式相互转换

主从两边都设置set global set enforce_gtid_consistency=warn;主从两边都设置set global set enforce_gtid_consistency=on;主从两边都设置set global set gtid_mode=ON_PERMISSIVE;主从两边都设置set global set gtid_mode=ON_PERMISSIVE;主从两边都设置set global set gtid_mode=ON;主从两边都设置gtid_mode=off;

2023-10-17 10:44:10 209

原创 oracle 19c 创建物化视图并测试logminer进行日志挖掘

INSERT INTO person_info(person_no, NAME, create_date) VALUES('001', '瑶瑶', SYSDATE);INSERT INTO person_info(person_no, NAME, create_date) VALUES('002', '倩倩', SYSDATE);INSERT INTO person_info(person_no, NAME, create_date) VALUES('003', '美眉', SYSDATE);

2023-10-17 10:41:51 762

原创 Oracle闪回详解(闪回查询,闪回数据,回退数据,闪回表,闪回数据库,闪回快照,闪回主备库(恢复关系),闪回归档,注意事项,有关闪回常用查询命令)

即在备库进行,开启此模式时为了在备库进行一些测试操作,而又不行留存在数据库中,当备库切换回physical standby物理备库时,之前在snapshot standby模式进行的测试将会被丢弃。如果一块数据磁盘空间无法保存某个数据时(比如以前是1k,现在update到2k,而当前块的空闲空间不足1k),则会将新的数据保存到另外一个新的块里,然后在以前的块保存一个新位置的地址连接。允许用户查询过去某个时间点的数据,用以重构由于意外删除或更改的数据,数据不会变化。如果已经做了上述操作,从库可以选择重建。

2023-10-17 10:37:31 14500

原创 mysql、oracle 构建数据

-oracle构建数据。mysql 构建数据。--存储过程导入数据。

2023-10-17 10:28:09 233

原创 使用 ErrorStack 在出现报错 ORA-14402 时产生的日志量

限制:对于普通表( heap-organized )行迁移后 rowid 会发生变化,对于索引表( index-organized )rowid 虽然依然有效但是其实际对应的物理构成是错误的。测试结果:设置 ErrorStack 级别为 1 时产生 Trace 的日志量最小,大小为 308K,同时在 alert 日志中也存在记录。测试结果:设置 ErrorStack 级别为 1 时产生 Trace 的日志量为 308K,同时在 alert 日志中也存在记录。

2023-10-11 14:38:56 799

原创 oracle事物隔离级别(会话级(视图v$ses_optimizer_env),实例级(视图v$sys_optimizer_env),语句级(视图v$sql_optimizer_env))

-提供实例级别的环境执行的信息,Oracle优化器在为SQL语句生成执行计划时,会根据实例级别参数的值来确定,如 optimizer_mode用于确定优化器的模式,optimizer_index_cost_adj用于确定全表扫描与索引扫描之间成本开销的比值等。--影响SQL语句运行的执行环境受到实例级别以及会话级别之外,最后的优先级最高的级别即是语句级别.因此语句级别的设置直接影响最终SQL语句执行计划的产生,SQL语句级别的参数设置是通过提示来完成的.-->基于session级别修改参数。

2023-10-11 14:31:30 551

空空如也

空空如也

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

TA关注的人

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