自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (2)
  • 收藏
  • 关注

原创 RMS恢复-鲜为人知的坑

当前数据库版本为12.2,rms等待事件为 SGA: allocation forcing component growth并且阻塞会话event为latch:shared pool ,确定触发bug31700234。原因是:前一天数据库重启过,重启完成之后rms进程用来恢复集群,而在此工作中阻塞了session,造成系统故障。)操作,突然收到告警session飙升一千多,同时收到告警数据库断开,正值两会,精神一下绷起来了。事情说在前面,故障发生在3月8日20:17-20:22。

2023-03-15 11:22:42 676

原创 bbed-truncate表恢复

bbed恢复truncate表truncate操作实际上就是修改表段的段头信息,回收高水位线的操作。根据这个思路,我们也可以通过改回segment header和基表信息,修改高水位线来恢复数据。表一旦被误truncate,一定要第一时间将表空间read only,防止二次破坏。下面创建一组测试表[oracle@renCAP ~]$ sqlplus bbed_user/oracle@renpdb SQL*Plus: Release 12.2.0.1.0 Production on

2022-02-14 18:05:20 904 1

原创 追根溯源-数据库deadlock重启

每周日必出故障系列,似乎是看不惯我周末休息,老美的圣诞节也没镇住老美的数据库。数据库在圣诞节最后一刻宕机了!!!!当然按照重启法则似乎能解决一切,但是这里并不适用,重启之后故障重现,给了我足够的取证和分析时间。Oracle database version 19.5 no CDB下面看一组alert2021-12-25T23:28:05.264842+08:00ARC0 (PID:12469): Archived Log entry 452730 added for T-2.S-2567

2021-12-28 11:44:52 1467

原创 MySQL系列-undo

之前讨论过redo的作用,那么与之对应的便是undo了,undo记录了事务的行为,实现了MySQL的回滚和MVCC。当update、delete或者insert一条数据,都会对应的在undo中生成一个前镜像信息,这个前镜像是以逻辑方式存储的(即反向更改的SQL语句,delete对应insert,insert对应delete),当需要rollback时,通过undo记录信息进行rollback,同Oracle undo一样,MySQL undo也是通过segment管理具体事务的,但是存储在共享表空间中(ib

2021-12-17 10:24:35 3148

原创 MySQL系列-redo

InnoDB redoredo 是实现事务持久性的重要组成部分,innodb存储引擎中的redo文件在数据目录下,名字为ib_logfile0和ib_logfile1的文件,它以每次io为512字节为最小io写入redo文件中,redo文件在物理磁盘中顺序写入(这里我们大致可以认为是顺序的,其实不然,后续会详细展开讨论),其大小最大为512G,两个文件循环使用。其中使用最小io512字节也是为了迎合物理磁盘一次物理io512字节,这样redo写入就无需使用DBW就能保证写入成功。当数据发生变更都先变

2021-12-10 16:31:59 1387

原创 MySQL系列-binlog

MySQL binlog是MySQL数据库的DDL 和DML (除了数据查询语句select、show等)操作的逻辑重放,他像Oracle redo 但不同于Oracle redo,MySQL binlog记录的不光是逻辑日志,还是数据库层的逻辑操作,众所周知,由于MySQL架构设计问题,MySQL作为一个支持多种存储引擎的开放式数据库,那么他就会有不同于存储引擎的日志记录,它就是binlog,不同于innodb 的redo。Binlog 的日志格式记录在二进制日志中的事件的格式取决于二进制记录

2021-12-02 10:20:05 849

原创 被坑的第N天-暴雷case

21:10分收到告警,数据库会话500多个,一下来精神了,开机干活,告警有些延迟。登陆数据库已是21:15,检查会话都已正常,难道是告警故意搞事?保险起见开始仔细看看吧select to_char(sample_time,'YYYY-MM-DD hh24:mi:ss') mtime,count(*) c from ash_11_30 where sample_time > to_date('2021-11-30 21:02:00','YYYY-MM-DD hh24:mi:ss')

2021-12-01 11:32:42 649

原创 MySQL系列-innodb doublewrite

DBW(double write)double wirte是innodb存储引擎为了保证数据页的安全性而引入的一项技术,那么数据库安全性从何说起呢?就从数据磁盘的一次io是4KB说起,一项简单的命令来证实。[root@hostname ~]# getconf PAGESIZE4096众所周知mysql数据页(page)大小为16KB,那么就会出现一个现象就是innodb一次IO,OS往往需要4次IO才能处理完,这就会引入一个问题,如果在第2次或者第3次IO的时候数据库crash或者服

2021-11-30 17:00:45 1992

原创 ORA-01450: maximum key length (3215) exceeded问题处理

近日生产出现性能告警,经过一番排查发现一条SQL没有使用索引,对其创建索引时报ora-01450ERROR at line 1:ORA-00604: error occurred at recursive SQL level 1ORA-01450: maximum key length (3215) exceeded于是查看表结构发现一个十分恼火的问题,所有字段全是varchcar2(4000)...

2021-11-26 11:21:32 1628

原创 drop table 引出的问题之 ORA-21700: object does not exist or is marked for delete

应客户要求对确认不用的表drop掉,释放存储。看到这个要求首先想到的是风险,没有想到接下来遇到的棘手问题。经过一系列查询之后还是对表进行删除。SQL> truncate table GIS.ALL_STRUCT_L_1;ORA-04063: table "GIS.ALL_STRUCT_L_1" has errorSQL> drop table GIS.ALL_STRUCT_L_1;ORA-21700: object does not exist or is marked f

2021-11-22 15:30:51 1147

原创 linux DNS部署

1.安装依赖包yum -y install bind*2.配置主配置文件[root@dns142 named]# cat /etc/named.conf//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS resolver only)./..

2021-08-19 10:17:39 89

原创 SYSAUX表空间清理之WRH$_ACTIVE_SESSION_HISTORY

查看sysaux表空间使用率高,对于sysaux表空间之前有文章讨论过,本次直入正题。1.检查sysaux表空间占用空间较大的segments。SQL> select * from (select owner, segment_name, segment_type, sum(bytes) / 1024 / 1024 / 1024 GB from dba_segments where tablespace_name='SYSAUX' grou

2021-04-15 14:26:48 3882

原创 exadata的紧张一刻-ORA-27626: Exadata error: 2201 (IO cancelled due to slow/hung disk)

生产环境alert日志持续报错,顿时一惊-IO报错?赶集看下数据库没crash,进行一轮番检查,当前数据库运行正常,长出一口气,分析一下报错。Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_ora_2422.trc:ORA-27603: Cell storage I/O error, I/O failed on disk o/192.168.10.1;192.168.10.2/RECOC1_CD_10_xxxx03 a

2021-03-30 10:32:27 451

原创 bbed-修改数据文件scn

bbed修改数据文件scn分为两种,online数据文件和offline数据文件,当然都是修改scnbase 和rbaseq,offline下还要多修改rbabno和kcvcptim。一、bbed修改offine数据文件scn1、准备环境[oracle@renCAP ~]$ sqlplus / as sysdbaSQL*Plus: Release 12.2.0.1.0 Production on Wed Jun 19 19:09:21 2019Copyright (c) 1982, 2

2021-03-24 17:52:04 1282 1

原创 bbed-delete数据恢复

一、准备环境[oracle@renCAP ~]$ sqlplus bbed_user/oracle@renpdbSQL*Plus: Release 12.2.0.1.0 Production on Wed Jun 19 23:24:49 2019Copyright (c) 1982, 2016, Oracle. All rights reserved.Last Successful login time: Wed Jun 19 2019 23:18:23 +08:00Connect

2021-03-23 17:47:44 176

原创 bbed-修改表数据

关于bbed这里不做介绍,起功能很强大,直接进行修改数据一、安装bbed10g以前版本不用上传库文件,更高版本需要上传库文件上传ssbbded.o和sbbdpt.o 到$ORACLE_HOME/rdbms/lib下[oracle@renCAP lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed[oracle@renCAP lib]$ cp bbed ../../bin/[oracle@renCAP lib]$ ./bbe

2021-03-23 17:42:38 165

原创 crontab的坑

或许大家都是直接用Linux/Unix的crontab而没有研究过,又或许大家有过我一样的困扰和经历。早晨发现我的定时任务没有执行,这个定时任务是放在crontab下的,登陆crontab一脸惊讶[root@XXX ~]# crontab -u oracle -lAuthentication token is no longer valid; new one requiredYou (oracle) are not allowed to access to (crontab) because

2021-03-19 10:59:45 504 1

原创 SYSAUX表空间清理之SM/OPTSTAT

sysaux是system的辅助表空间,主要存放AWR基表和审计信息,一般情况下sysaux的使用率都是正常的,看到sysaux表空间使用过高就有点怀疑了,首先查看下表空间。SQL> select * from (select owner,segment_name,segment_type,sum(bytes)/1024/1024/1024 GB from dba_segments where tablespace_name='SYSAUX'group by owner,segment_n

2021-03-15 14:52:32 1459 1

原创 一个BUG引发的灾难:ORA-00600 [kjmchkiseq:!seq]

对于打工人可能最痛苦的就是被告知的故障,数据库有监控、告警、每天巡检,自己做了一系列数据库的“安保”工作,本以为可以万无一失,中午在安心的睡觉中,被人告知数据库crash了。当时的我一脸懵逼,不可能,没有告警,半小时前我还登进去查信息呢,怎么可能crash了呢,结果登陆系统被现实一幕啪啪打脸,数据库1节点crash了,2节点正常,监控和告警突然也有问题了,当然今天重点不在这。立马启动数据库~咦~数据库真的起来了,那么怎么宕的呢,需要研究alert日志了。###alert.logArch...

2021-02-01 14:32:31 636

原创 一起Oracle回收站过大引发的insert逻辑读过高故障

某客户CPU暴增,且居高不下,通过gv$session发现一条insert造成大量的阻塞和等待,产生大量row chache lock、gc buffer busy acquire、read by other session等待。通过row cache lock 等待的p1参数发现了大量的内存字典争用,问题点一定在这条SQL。SQL> select parameter,gets,getmisses,MODIFICATIONS from v$rowcache where cache#=8 2

2021-01-27 17:03:32 742

原创 MySQL系列-备份恢复

MySQL备份恢复备份恢复对于DBA是一个比较关注的点,在ORACLE中有很强大的RMAN和EXPDP,拥有很强大的功能,使数据库有备无患,在MySQL中就没有那么省心了,在MySQL中备份主要用mysqldump和precona公司开发的xtrabackup工具来实现。一、mysqldumpmysqldump是一个逻辑备份的工具,它将数据被分成insert语句,然后恢复的时候在应用语句进行恢复。其功能类似于Oracle的exp/imp。1.参数详解--all-databases , -

2021-01-26 17:11:16 251

原创 MySQL系列-InnoDB概述

InnoDB概述InnoDB是MySQL默认也是一款比较优秀的存储引擎,他的优秀在于很多特有的特性以及优秀的事务处理能力,与其说是存储引擎倒不如说他是一个数据库实例,我说的是功能上的丰富,实际上在MySQL世界里没有明显的数据库(database)和实例(instance)的区分,如果严格的按照Oracle方式来区分MySQL数据库和实例的话那么MySQL就只是一个数据库,它提供的是一个或多个存储引擎的载体,为SQL提供一个基于成本的优化器,但又不同的是它包含优化器这又区别Oracle中实例和数据库的区

2021-01-04 16:42:21 273

原创 ORA-00600 [4194] 处理

在某客户现场遇到一个看着很唬人的报错 ORA 600 ,遇到此报错很多人心里一慌,此次故障ORA-00600 [4194]根本原因是数据库断电down机后undo损坏了,导致数据库不能open。接下来看alert报错Tue Dec 15 10:45:27 2020Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_6032.trc (incident=166522):ORA-00603: ORACLE s

2020-12-15 20:20:28 2689

原创 MySQL系列-MySQL体系结构

简介MySQL数据库是由MySQL AB 公司开发一款开源分布式数据库,MySQL本身结构相对商业数据库来说结构简单,在最开始几个版本没有造成数据库行业太大的波动,由于其开源吸引了大批开发者参与其中也深受互联网公司青睐,具有更强的生命力,发展迅速。直到Oracle公司收购了sun公司之后MySQL的迭代速度大幅增快,分为社区版和商业版,直至今日MySQL在市场上的占有份额以达到与Oracle分庭抗礼的地步。所谓分布式是区别传统Oracle、DB2来说的,MySQL的分布式架构是需要开源工具实现的,这

2020-12-05 16:13:22 159

原创 MySQL系列-mysql8.0数据目录文件解释

很多人都使用过mysql,随着版本的不断迭代,也伴随着新特性的不断完善在data目录下产生了一些列新的文件,跟很多人讨论过这些文件的作用,大家也都没有太注意,这里作此讨论。数据目录文件解释-rw-r-----. 1 mysql mysql 56 11月 16 16:56 auto.cnf-rw-r-----. 1 mysql mysql 0 11月 16 17:00 binlog.index-rw-------. 1 mysql mysql 1680 1

2020-12-03 21:53:15 1758

原创 MySQL系列-8.0安装

一、创建相关用户和目录[root@MySQL8-SmallA ~]# groupadd -g 500 mysql[root@MySQL8-SmallA ~]# useradd -u 501 -g mysql -d /home/mysql mysql[root@MySQL8-SmallA ~]# mdkir -p /soft /data/mysql /data/log /log[root@MySQL8-SmallA ~]# chown mysql.mysql -R /soft[roo.

2020-12-03 21:39:46 581

原创 来自灵魂的拷问:之迁移之后SQL执行变慢了

来自灵魂的拷问,为什么迁移到性能更好的服务器上之后SQL会变得更慢了呢,执行效率远不如从前。这大概是每一位DBA最不愿意又必须是要经历的浩劫。开发反馈 一系列SQL执行都很慢,平均时间都在10多分钟,这个时间是不能接受的,要求从数据库层面优化SQL。直接上SQL:select count(1) from table_A a left join table_B b on A.id = B.id left join table_C c on A.code = C.reg...

2020-11-19 10:51:04 474 2

原创 记录OGG-01028  Incompatible record (101) 故障一则

近日搭建ogg目标端replicat应用数据时出现报错:OGG-01028 Incompatible record (101) in ./dirdat/li000344, rba 2706945 (getting header).查询MOS1507462.1给出如下解决方式 How to Recover from an OGG-01028 Incompatible Record If the Trail Is Not Corrupt (Doc ID 1507462.1) AP...

2020-08-20 14:10:59 1014

原创 ORACLE OGG同步到KAFKA

ORACLE OGG同步到KAFKA一、介绍Kafka是一种高效的消息队列实现,通过订阅kafka的消息队列,下游系统可以实时获取在线Oracle系统的数据变更情况,实现业务系统ogg同步全量数据方式:①通过数据泵方式基于SCN导出并导入到目标端,此方式用于Oracle 到Oracle的ogg同步环境中。②通过ogg本身的初始化方式,初始化全量数据到目标端,此方式通用于所有环境,但是速度相对较慢。二、ogg环境搭建ogg环境搭建并没太大变化,同oracle中相似1.源端Or

2020-05-23 15:51:06 2923

原创 浅析Oracle等待事件

oracle 等待事件一、简述Oracle等待事件是在Oracle 7.0.12中引入的,当时等待事件大致有100多个;在Oracle 8.0中Oracle等待事件数目增加到150多个,在Oracle 8i中有大约220个等待事件;而在Oracle 9i中大约有400多个等待事件;在Oracle 10g中有约916个等待事件,在oracle 11g中有约1367个等待事件。Oracle...

2020-04-19 14:27:00 3370

原创 浅析oracle执行计划

Oracle 执行计划一、什么是执行计划Oracle执行计划是Oracle为了执行某些SQL而生成的执行步骤的组合。这些执行计划是由Oracle优化器通过具体参数配合和被访问对象统计信息等内容来生成的一系列具体的执行步骤,然后优化器选择一个最优的执行步骤作为这一条语句的执行计划。正如之前讨论所述执行计划是优化器通过划分CPU和内存在Oracle中生成的一个执行步骤,这种执行计划通常是以pl...

2020-03-26 10:51:03 543

原创 Oracle绑定执行计划

Oracle 执行计划一、什么是执行计划Oracle执行计划是Oracle为了执行某些SQL而生成的执行步骤的组合。这些执行计划是由Oracle优化器通过具体参数配合和被访问对象统计信息等内容来生成的一系列具体的执行步骤,然后优化器选择一个最优的执行步骤作为这一条语句的执行计划。正如之前讨论所述执行计划是优化器通过划分CPU和内存在Oracle中生成的一个执行步骤,这种执行计划通常是以pl...

2020-03-19 19:19:55 3427

原创 Oracle查询转换和SQL连接方式

Oracle查询转换和SQL连接方式一、表连接方法:在Oracle数据库中,几个表甚至十几个表相互关联的语句随处可见,这就需要Oracle提供一整套的表连接方案来支持这种类型的SQL,实际上不管多少个表的连接,Oracle都只能先处理两个表的连接,Oracle会通过优化器依据统计信息选出驱动表和被驱动表,然后完成第一次两表关联,依此类推直至完成整条SQL的表连接。关于Oracle提供...

2020-01-21 18:06:03 1335

原创 Oracle进程解析

近期对Oracle 10g和11g单机环境下的主要进程做了一个整理,对比较模糊的进程做了解析,以供查阅:---------------------10g[oracle@renCAP admin]$ ps -ef | grep ora_*oracle 63440 1 0 03:49 ? 00:00:00 ora_smon_CAPoracle 63428 1 0 03:49 ? ...

2020-01-12 16:27:55 585

原创 Oracle恢复手册

一、前言常言道-“有备无患”,备份对于一套数据库来说十分重要,当遇到天灾人祸的时候有效的备份是数据库最后的希望,也是DBA从业人员自救的最后手段。一款不错的备份软件,一个适用的备份策略,对于数据保护来说是十分必要的,对于数据库系统要定时做有效的全备,以便随时恢复到任意时间点。在不同环境下有多种恢复环境,不同环境也会使用不同的方式来恢复,有时候方式不止一种。总之,有效的备份和不同环境下的恢复手段...

2020-01-11 10:53:02 498 1

原创 rman备份原理

RMAN备份一、RMAN备份原理1、简介RMAN备份是ORACLE数据库自带的在线热备工具,使用RMAN不需要安装,可会数据块进行压缩和检测,可备份数据块的变化量,是数据块级别的备份解决方案。缺点:若数据库中出现坏块,RMAN会自动检测坏块并跳过坏块,造成一定数据的丢失,建议,采用expdp/impdp、ACTIVE DATAGUARD、ORACLE GOLDENGATE等在...

2019-12-14 15:54:27 3310

原创 Oracle游标和绑定变量

初探Oracle里的Cursor游标(Cursor)谈起游标首先要谈的就是sga和pga了,先简单讨论一下sga和pga:SGA:在SGA中有一个块固定区域Fixed Size ,它包含几千个变量和一些小的数据结构,如 Latch或地址指针等,这部分内存分配和特定的数据库版本以及平台有关,不受用户控制,而且这些信息对于数据库来说非常重要,但是通常我们用户不需要关心。固定部分只...

2019-09-08 14:58:55 868

原创 浅析Oracle统计信息

oracle优化器(Optimizer)优化器对于每一位从业人士都不陌生,它是oracle数据库内置的核心子系统,是数据库的核心,可以说优化器是数据库的一个灵魂,它在一定程度上决定了数据库的效率。在oracle数据库中有一个参数OPTIMIZER_MODE控制着该数据库的优化器模式,我们可以选择不同方式的优化器。①RULE此模式是RBO优化器。②CHOOSEoracl...

2019-08-17 12:57:35 1168

原创 unix&linux截取时间脚本

本人在工作中Unix环境想要截取2天前的日期,无奈Unix没有date -d命令,无法截取时间,只能按时区截取yesterday的日期,经和同事沟通有了新的思路,抽时间整理一个脚本,主要用来Unix中历史日期抽取(linux 有date -d,不太需要此脚本)具体脚本内容如下,测试环境linux HP-UX#!/bin/bash### this shell cu...

2019-06-15 17:11:56 267

原创 Solaris x86 磁盘分区&安装oracle

devfsadm--刷新磁盘设备# formatSearching for disks...Inquiry failed for this logical diskInquiry failed for this logical diskdoneAVAILABLE DISK SELECTIONS: 0. c0d0 <趚濑@ cyl 1302 alt 2 hd 2...

2019-06-09 13:39:24 374

Oracle bbed工具

Oracle bbed工具是一个很强大的编辑攻击,Oracle11g以后就不在提供了,可用于当前Oracle版本

2021-03-26

XTTS软件+文档.rar

最近整理Oracle异构迁移工具,把软件和官方文档拿出来跟大家分享,当时在MOS中搜了很长时间,其中包括xttsconvert 2.0 v3 ver4.3和对应的官方文档,希望可以对行里玩Oracle的大牛们有所帮助。

2020-04-06

空空如也

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

TA关注的人

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