首页 > 数据库 >oracle常用后台进程及sql语句执行流程

oracle常用后台进程及sql语句执行流程

时间:2024-09-20 16:35:20浏览次数:1  
标签:语句 log buffer cache 写入 sql oracle 日志 数据文件

1.checkpoint 功能:减少崩溃恢复crash recovery时间。检查点可以确保在某个时间点之前的所有事务都写入磁盘,保证数据一致性 后台进程ckpt触发,ckpt通知dbwr进程将脏数据库dirty buffer 写出到数据文件上.更新数据文件头及控制文件上的检查点 触发条件:数据库一致性关闭、alter system checkpoint;、在线日志切换、alter database begin backup 2.dbwr(随机写) 功能:将缓冲区缓存buffer cache 中的脏数据块dirty blocks写入到数据文件。为了提高性能,oracle不会每次修改数据立即写入磁盘,而是先将修改的数据块保存在缓冲区缓存中,并标记为脏块.dbwr负责适当时候将脏块写入到磁盘 触发条件:固定时间间隔3s、检查点事件、缓存空间不足 3.lgwr (连续写) 功能:将重做日志缓冲区redo log buffer 中的重做日志条目写入到在线重做日志文件online redo log中。 触发条件:固定时间间隔3s、事务提交commit、缓存空间不足、在线日志切换也可以 4.arch 功能:将已经填满的在线重做日志文件复制到归档位置,用于数据库的备份和恢复操作。 触发条件:在线重做日志文件满、在线日志切换   流程: 1)buffer cache找到需要的数据块,如果没有,从数据文件读入到buffer cache中。     2)事务修改buffer cache的数据块,标记为脏数据,同时写入log buffer中(先log buffer后buffer cache)             3)事务提交commit,lgwr将条目从log buffer写入联机重做日志文件             4)执行checkpoint,同步数据库,更新数据文件头的信息,触发dbwr进程将buffer cache脏数据写入到磁盘

标签:语句,log,buffer,cache,写入,sql,oracle,日志,数据文件
From: https://www.cnblogs.com/sherq1989/p/18422749

相关文章

  • 04-Mysql索引优化实战一
    示例表CREATETABLE`employees`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(24)NOTNULLDEFAULT''COMMENT'姓名',`age`int(11)NOTNULLDEFAULT'0'COMMENT'年龄',`position`varchar(20)NOTNULLDEFAULT......
  • Pikachu靶场-SQL注入
    Pikachu靶场数字型注入这里使用的是POST型提交的所以要用抓包工具做(1)判断回显位置语法:id=1unionselect1,2---页面已经显示出有几列了所以没测试(2)判断库名语法:id=1unionselect1,database()---(3)判断表名语法:id=1unionselect1,group_concat(t......
  • 05-Mysql索引优化实战二
    分页查询优化1示例表:2CREATETABLE`employees`(3 `id`int(11)NOTNULLAUTO_INCREMENT,4 `name`varchar(24)NOTNULLDEFAULT''COMMENT'姓名',5 `age`int(11)NOTNULLDEFAULT'0'COMMENT'年龄',6 `position`varchar(20)NOTNUL......
  • docker 安装 mysql 详细教程
    1.打开docker目录cd/usr/local/mkdirdocker2.创建mysql文件夹/usr/local/dockermkdirmysql3.打开mysql文件夹cdmysql/4.创建配置文件目录mkdirconfig5.打开configcdconfig/6.编写配置文件vimmy.cnf[client]#端口号port=3306[mysql]no-be......
  • MyFlash MySQL数据恢复实战案例:将MySQL Docker容器误删除DELETE的数据进行闪回恢复
    创建MySQL容器mkdir-p{data,conf.d}cat>conf.d/log-bin.cnf<<-EOF[mysqld]log_bin=mysql-binlogserver_id=1EOFdockerrm-fmysqldockerrun-d--namemysql-eMYSQL_ROOT_PASSWORD=123456-p3306:3306-v/etc/localtime:/etc/localtime-v./data:......
  • MyFlash使用示例——美团点评的开源MySQL闪回工具安装及使用示例
    下载及安装我已经将二进制安装包上传至网盘,点击如下链接进行下载——链接:https://pan.baidu.com/s/1RzuHv6nDiAVMP7yk03bdNg?pwd=jtua提取码:jtua将如下两个二进制文件拷贝至Linux系统PATH路径下将mysqlbinlong20160408重命名为mysqlbinlog1.Howtousecdbinary......
  • 使用MyFlash的mysqlbinlog工具查看MySQL binlog的原始SQL语句
    要使用myflash的mysqlbinlog工具查看MySQLbinlog的原始SQL语句,你可以按照以下步骤操作:确保你的MySQL服务器已经开启了binlog,并且binlog格式设置为ROW。这可以通过设置binlog_format=row和binlog_row_image=full在MySQL配置文件中实现。安装myflash工具。你可以从GitH......
  • MySQL shell脚本案例:实现每隔一小时统计MySQL数据更新次数,并将结果记录到文件中
    要编写一个Shell脚本,每隔一小时统计MySQL中数据更新的次数,并将结果写入一个文本文件update-record.txt中,你可以按照以下步骤来实现:创建脚本文件:首先创建一个Shell脚本文件,比如命名为mysql_update_stats.sh。编写脚本内容:在脚本中编写执行SQL查询并将结果写入文件的逻辑。设......
  • Python if 语句优化技巧
    大家好!今天我们来聊聊Python中的if语句优化技巧。if语句是Python中最基本的控制结构之一,它用于根据条件执行不同的代码块。虽然if语句本身非常简单,但通过一些小技巧,可以让我们的代码更加高效、简洁。接下来,我们将逐步介绍这些技巧。1.使用逻辑运算符简化条件在if语句中,我们......
  • python关于pymysql 执行sql语句in的用法
    今天在执行python代码中发现一个有意思的事,直接看代码注意如下红色部分name='张三'ids=1,2,3sql="selectNAME,NUM,SEXfromTEMP_TWHERENAME=%sandidin(%s)"param=(name,ids)cursor.execute(sql,param) 发现实际执行的sql语句是:selectNAM......