导航:首页 > 数据分析 > ckpt如何更新数据文件

ckpt如何更新数据文件

发布时间:2023-05-31 06:01:38

1. 谁能介绍一下 oracle 中检查点 及SCN的用法。

有一家叫甲骨文的粮店,老板很严谨,为了防止仓库的粮食在买入卖出的时候发生银辩问题,他制订一套流程,首先进出仓库的每一旦粮食都要求有一个编号(SCN),而且出入库之前必须先放到一个平台上(buffer cache),他命令仓库叫大头的伙计(datafile head)来首先记录这个编号,然后每隔一定的时间(log_checkpoint_timeout)或者库房平台上的粮食堆放到一定的数量或者仓库伙计换班(log swtich)的时候,一个叫“点点”(CKPT)的后院家奴就会把仓库伙计记录的信息拿给帐房先生同时还会催促码放在仓库平台的粮食入仓或者出仓(DBWn),帐房先生根据“点点”拿来的帐页记录到自己的帐本上。这样一来每天老板要和账房先生、仓库伙计进行账务的核对,一旦发现仓库伙计记录了而帐房先生没记录的情况就要求帐房先生把伙计记录的信息誊写到自己的帐本上,而如果发现帐房先生有记录了而仓库伙计这里却没有,那就麻烦大了,这说明仓库伙计有可能把之前的记录帐页给丢掉了,也就意味着粮食有丢失的危险,不过也不用过分担心,老板手下还有一个给力干将肢盯叫“SMON”, 是的,之所以给力就是因为是个洋和尚,外来的和尚会念经嘛。这个"SMON"的洋和尚会想办法去找这些编号的粮食,一旦找到就会让仓库伙计按照帐房先生的记录来重新同步自己的帐本,这事就算是完了,可一旦连“SMON”都锋饥缺搞不定,那么老板就头大了,生意就得关张,意味着有粮食可能会丢失。这时候要么从其他地方找来一摸一样的粮食充数,还要让帐房先生和仓库伙计的帐本都清空从0开始重新记录,以免又出现不同的情况。

不知道够不够白。。。。。

2. 针对oracle的commit操作

这一块复 你要了解“脏缓冲区”的制概念
脏缓冲区(不一致的数据),一般DML操作:如update后且没有commit操作时,新数据与旧数据同存脏缓冲区,后:旧数据被写到回滚段,新数据存于数据缓冲区,
在commit后 LGWR进程会将redo缓冲区的记录写入redo.log文件
已经commit后的数据直接通过DBWR进程将数据写入到了.dbf文件中了

有异议可追问,先把悬赏分给我 我会补充的更详细点!

3. 如何区分Oracle的数据库,实例,服务名,SID

Oracle的数据库:
一系列物理文件的集合
包括控制文件、数据文件、联机日志文件、参数文件、密码文件等
即:Oracle Database = Controlfile + datafile + logfiel + spfile +..
1.控制文件(controlfile)
数据库的名字,检查点信息,数据库创建的时间戳
所有的数据文件,联机日志文件,归档日志文件信息
备份信息等
2.数据文件(datafile)
包含了用户和应用程序的所有数据
--查看数据文件信息
3.联机日志文件

记录了用户对数据库的所有操作,一个数据库中至少要有两个日志组文件,每个日志组中至少有一个日志成员
日志组中的多个日志成员是互为镜相关系
4.归档日志文件
Oracle可以运行在两种模式之中,归档模式和非归档模式。在归档模式中,为了保存用户的所有修改,
在联机日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件。
用户恢复意外情况出现的数据丢失、异常等。
5.参数文件(pfile和spfile)
initSID.ora或init.ora文件,通常位于:$ORACLE_BASE/admin/<SID>/pfile
初始化文件记载了许多数据库的启动参数,如内存,控制文件,进程数等,在数据库启动的时候加载(Nomount时加载)
6.其他文件
密码文件:用于Oracle 的具有sysdba权限用户的认证.
告警日志文件:报警日志文件(alert.log或alrt.ora),记录数据库启动,关闭和一些重要的出错信息
查看路径:select value from v$PARAMETER where name =‘background_mp_dest’;
7.数据库逻辑组织结构
表空间、段、区、块
一个数据库由一个或多个表空间组成,一个表空间只能属于一个数据库
一个表空间由一个或多个多个数据文件组成,一个数据文件只能属于一个表空间
一个数据文件由一个或多个操作系统块组成,每一个操作系统块只能数以一个数据文件
一个表空间可以包含一个或多个段,一个段只能属于一个表空间
一个段由一个或多个区组成,每一个区只能属于一个段
一个区由一个或多个Oracle 块组成,每一个Oracle块只能属于一个区
一个区只能属于一个数据文件,数据文件的空间可以分配到一个或多个区
一个Oracle 块由一个或多个操作系统块组成,一个操作系统块是一个Oracle块的一部分
oracle实例:
一个Oracle Server由一个Oracle实例和一个Oracle数据库组成。
即:Oracle Server = Oracle Instance + Oracle Database
Oracle实例
包括了内存结构(SGA)和一系列后台进程(Background Process),两者合起来称为一个Oracle实例
即:Oracle Instance = SGA + Background Process
Oracle内存结构
包含系统全局区(SGA)和程序全局区(PGA)
即Oracle Memory Structures = SGA + PGA
SGA由服务器和后台进程共享
PGA包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反,PGA是
只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。即由服务器进程产生。

1.SGA
系统全局区SGA,SGA = 数据缓冲区+ 重做日志缓冲区+ 共享池+ 大池+ Java 池+ 流池
系统全局区是动态的,由参数SGA_MAX_SIZE决定。
查看当前系统的SGA大小:show parameter sga_max_size;
要修改:alter system set sga_max_size=1200m scope=spfile;
因为实例内存的分配是在数据库启动时进行的,所以要让修改生效,要重启数据库。

ORACLE 10G 引入了ASMM(自动共享内存管理),DBA只需设置SGA_TARGET,ORACLE就会
自动的对共享池、JAVA池、大池、数据缓冲区、流池进行自动调配。取消自动调配就是
sga_target设为。

数据缓冲区(Database buffer cache):存储从数据文件中获得的数据块的镜像
大小由db_cache_size 决定
查看:show parameter db_cache_size;
设置:alter system set db_cache_size=800M;

重做日志缓冲区(Redo log buffer):对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将
它写入磁盘,大小由LOG_BUFFER决定

共享池(Shared pool):是SGA中最关键的内存片段,共享池主要由库缓存(共享SQL区和PL/SQL区)和数据
字典缓存组成,它的作用是存放频繁使用的sql,在有限的容量下,数据库系统根据一定的算法决
定何时释放共享池中的sql。
库缓存大小由shared_pool_size 决定
查看:show parameter shared_pool_size
修改:alter system set shared_pool_size=120m;

数据字典缓存:
存储数据库中数据文件、表、索引、列、用户和其它数据对象的定义和权限信息
大小由shared_pool_size 决定,不能单独指定

大池(Large pool):是一个可选的区域,用于一些大型的进程如Oracle的备份恢复操作、IO服务器进程等

Java 池:该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小

流池(Stream pool):被Oracle流所使用

2.PGA
是为每个用户进程连接ORACLE数据库保留的内存
进程创建时分配,进程结束时释放,只能被一个进程使用
PGA包括了以下几个结构:
()排序区
()游标状态区
()会话信息区
()堆栈区
由参数:pga_aggregate_target 决定

3.几类进程:用户进程,服务器进程,后台进程,其它可选进程
用户进程
在用户连接数据库产生,请求oracle服务器连接,必须要先建立一个连接,不会直接和oracle服务器连接
服务器进程
当连接实例并建立用户会话时产生,独立服务器或者提供共享服务器都能产生
后台进程
维持物理和内存之间的联系,用来管理数据库的读写,恢复和监视等工作。
Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。
在Unix机器上,Oracle后台进程相对于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作
系统进程。
在Windows机器上,Oracle后台进程相对于操作系统线程,打开任务管理器,我们只能看到一个
ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。

必须要有的后台进程
DBWn -->数据库写进程
PMON -->程序监控进程
SMON -->系统监控进程
LGWr -->日志写进程
CKPT -->检查点进程

可选进程:
ARCN 归档进程
RECO
Snnn
pnnn

DBWn(数据库写进程)
负责将修改过的数据块从数据库缓冲区高速缓存写入磁盘上的数据文件中
写入条件:
发生检查点
脏缓存达到限制
没有自由的缓存
超时发生
表空间离线
表空间只读
表被删除或者截断
开始备份表空间
可以修改数据写进程的数量
alter system set db_writer_processes=3 scope=spfile;

PMON(程序监控进程)
清除失效的用户进程,释放用户进程所用的资源。
如PMON将回滚未提交的工作,释放锁,释放分配给失败进程的SGA资源。
清除失败的进程
回滚事务
释放锁
释放其他资源

SMON(系统监控进程)
检查数据库的一致性,当启动失败时完成灾难恢复等
实列恢复时,前滚所有重做日志中的文件,打开数据库为了用户能访问,回滚未提交的事务,释放临时表空间
清除临时空间,聚结空闲空间,从不可用的文件中恢复事务的活动,OPS中失败节点的实例恢复
清除OBJ$表
缩减回滚段
使回滚段脱机

LGWr(日志写进程)
将重做日志缓冲区中的更改写入在线重做日志文件
条件:
提交的时候(commit)
redo log buffer达到1/3满
每隔3秒
有大于1MB 重做日志缓冲区未被写入磁盘
DBWR需要写入的数据的SCN号大于LGWR 记录的SCN号,DBWR 触发LGWR写入
超时
在dbwr进程些之前写日志

CKPT(检查点进程)
DBWR/LGWR的工作原理,造成了数据文件,日志文件,控制文件的不一致,CKPT进程负责同步数据文件,
日志文件和控制文件
CKPT会更新数据文件/控制文件的头信息
条件:
在日志切换的时候
数据库用immediate ,transaction ,normal选项shutdown数据库的时候
根据初始话文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET 的设置的数值来确定
用户触发

ARCN(归档进程)
在每次日志切换时把已满的日志组进行备份或归档
条件:
数据库以归档方式运行的时候

RECO
负责解决分布事物中的故障。Oracle可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。
RECO进程试图建立与远程服务器的通信,当故障消除后,RECO进程自动解决所有悬而未决的会话。

Server Process(服务进程)
分为专用服务进程(Dedicated Server Process)和共享服务进程(MultiTreaded Server Process)
专用服务进程:一个服务进程对应多个用户进程,轮流为用户进程服务。

用户进程(User Process)、服务进程(Server Process)、后台进程(Background Processes)的启动
用户进程: 数据库用户请求Oralce server会话时被启动
服务进程:当用户会话启动后,连接到Oracle实例时该进程被启动
后台进程:当Oracle实例被启动时,启动相关的后台进程

4. checkpoint是什么意思啊拜托各位大神

CheckPoint 1. Check Point 软件技术有限公司 Check Point 软件技术有限公司成立时间于 1993 年,美国总部在加利福尼亚州红木城,国际总部在以色列莱莫干市,员工人数: 1180 多人。 是全球首屈一指的 Internet 安全解决方案供应商,在全球企业防火墙、个人防火墙及虚拟专用网络( VPN )市场上居于领导地位。 Check Point 软件技术有限公司的安全虚拟网络( SVN )体系结构可提供支持安全、可靠的因特网通信的基础设施。通过因特网、 Intranet 和 Extranet , SVN 可确保网络、系统、应用和用户之间的安全通信。在公司的 “Next Generation” 产品系列中发布的 SVN 解决方案,进一步加强了公司网络、远程员工、办事处以及合作伙伴外部网的业务通信和资源的安全。 Check Point 公司的安全性开放式平台( OPSEC )可提供一个先进的框架, 它使得 Check Point 的解决方案能够与 350 多家领先企业的卓越解决方案集成及协同工作。此外, Check Point 通过遍布 88 个国家及地区的 2,200 多家合作伙伴销售及集成其解决方案,同时提供相关服务。 企业级防火墙 /VPN 网关 – VPN-1 Pro Check Point VPN-1 Pro 是紧密集成的防火墙和 VPN 网关,为企业应用程序和网络资源提供全面的安全和远程连接。 VPN-1 Pro 将市场领先的FireWall-1 安全套件与久经考验的 VPN 技术结合在一起,通过提供到企业网络、远程用户和移动用户、分支机构、业务合作伙伴的安全连接,满足了互联网、内联网和外联网 VPNs 的严格需求。它具有行业最智能的安全检测技术、 Stateful Inspection 和 Application IntelligenceTM,为阻止网络层和应用层攻击提供了预先的防御机制。 VPN-1 Pro 解决方案可用在业界最广泛的开放式平台和安全设备之上,可以满足任何规模企业的性价比需求。 虚拟防火墙– VPN-1 VSX VPN-1 VSXT是一种为诸如数据中心和园区网等大型企业环境设计的高速、多策略虚拟安全解决方案。基于经过实践证明的安全解决方案, VPN-1 Pro , VSX 可以为复杂基础架构中的多个网络提供综合全面的保护,帮助它们安全的连接到互联网和 DMZ 等共享的资源,并且实现了在提供集中管理的同时允许它们之间进行安全互动。 VSX 网关利用一台硬件设备就可以帮助各单位创建一个包括路由器、交换机和 VPN-1 网关的复杂、虚拟的网络。这种解决方案替换和改造负责安全保护和联网的物理设备,减少了为整个网络提供安全保障所需的硬件投入。目前,只有 VSX 提供的平台才实现了高可扩展性、虚拟化网络,以及可以被轻松部署和管理的安全服务。 集中管理– SmartCenter 和 SmartCenter Pro SmartCenter 是基于目前业界最一致、最强大的管理架构,安全管理架构( SMART )的基础之上。它支持企业集中定义边界、内部和 Web 的安全策略;关联和优化安全事件;实施高级的监视和报告功能——这一切都通过一个控制台来实现。在所有网关分配安全策略升级变得很简单,从而确保一致的策略实施并提高运营效率。这样,企业能保护对业务关键的资产并实现它们在安全方面投资的最大化。 SmartCenter 解决方案提供了功能强大的软件工具来集中配置、管理和监视多个 Check Point 网关和执行点。它们包括一个类似仪表盘的界面来集中定义 VPN 、防火墙和服务质量( quality-of-service )的策略以及一台管理服务器来存储这些策略。 终端安全 – Integrity Integrity 可以确保您的企业网络免受恶意代码或者目标攻击的入侵。在为每个网络终端提供主动防御的同时,它还提供了集中式策略管理和实施。 Integrity 使您可以为每台接入网络的电脑轻松开发、管理和实施无与伦比的安全方案,从而提供全面的接入保护。在保持 IT 部门和终端用户生产能力的同时, Integrity 的保护功能可以恢复企业数据和关键系统的保密性、完整性和有效性。 Integrity 客户端和服务器软件通过集中管理的主动保护以及策略实施的一致性检查确保所有联网计算机的安全。 官方网址: http://www.checkpoint.com.cn/ SQL SEVER中 CHECKPOINT 语法如下: CHECKPOINT CHECKPOINT 命令用于将当前工作的数据库中被更改过的数据页data page 或日志页(log page)从数据缓冲器(data buffer cache)中强制写入硬盘。 2. ORACLE 中的 checkpoint checkpoint是什么? checkpoint是的一个内部事件,这个事件激活以后会触发数据库写进程(DBWR)将数据缓冲( DATA BUFFER CACHE)中的脏数据块写出到数据文件中。 在数据库系统中,写日志和写数据文件是数据库中IO消耗最大的两种操作,在这两种操作中写数据文件属于分散写,写日志文件是顺序写,因此为了保证数据库的性能,通常数据库都是保证在提交(commit)完成之前要先保证日志都被写入到日志文件中,而脏数据块着保存在数据缓存(buffer cache)中再不定期的分批写入到数据文件中。也就是说日志写入和提交操作是同步的,而数据写入和提交操作是不同步的。这样就存在一个问题,当一个数据库崩溃的时候并不能保证缓存里面的脏数据全部写入到数据文件中,这样在实例启动的时候就要使用日志文件进行恢复操作,将数据库恢复到崩溃之前的状态,保证数据的一致性。检查点是这个过程中的重要机制,通过它来确定,恢复时哪些重做日志应该被扫描并应用于恢复。 一般所说的checkpoint是一个数据库事件(event),checkpoint事件由checkpoint进程(LGWR/CKPT进程)发出,当checkpoint事件发生时DBWn会将脏块写入到磁盘中,同时数据文件和控制文件的文件头也会被更新以记录checkpoint信息。 checkpoint的作用 checkpoint主要2个作用: 保证数据库的一致性,这是指将脏数据写入到硬盘,保证内存和硬盘上的数据是一样的; 缩短实例恢复的时间,实例恢复要把实例异常关闭前没有写出到硬盘的脏数据通过日志进行恢复。如果脏块过多,实例恢复的时间也会很长,检查点的发生可以减少脏块的数量,从而提高实例恢复的时间。 通俗的说checkpoint就像word的自动保存一样。 检查点分类 完全检查点(Normal checkpoint) 增量检查点(Incremental checkpoint) checkpoint相关概念术语 在说明checkpoint工作原理之前我们先了解一些相关的术语。 完全检查点工作过程 一个checkpoint操作可以分成三个不同的阶段: 第一阶段,checkpoint进程开始一个checkpoint事件,并记录下checkpoint RBA,这个通常是当前的RBA。 第二阶段,checkpoint进程通知DBWn进程将所有checkpoint RBA之前的buffer cache里面的脏块写入磁盘。 确定脏块都被写入磁盘以后进入到第三阶段,checkpoint进程将checkpoint信息(SCN)写入/更新数据文件和控制文件中。 更新SCN的操作由CKPT进程完成,在Oracle 8.0之后CKPT进程默认是被启用的,如果CKPT进程没有启用的话那相应的操作将由LGWR进程完成。 什么时候发生normal checkpoint 下面这些操作将会触发checkpoint事件: 日志切换,通过ALTER SYSTEM SWITCH LOGFILE。 DBA发出checkpoint命令,通过ALTER SYSTEM checkpoint。 对数据文件进行热备时,针对该数据文件的checkpoint也会进行,ALTER TABLESPACE TS_NAME BEGIN BACKUP/END BACKUP。 当运行ALTER TABLESPACE/DATAFILE READ ONLY的时候。 SHUTDOWN命令发出时。 特别注意: 日志切换会导致checkpoint事件发生,但是checkpoint发生却不会导致日志切换。 日志切换触发的是normal checkpoint,而不是大家所说的增量checkpoint,只不过log switch checkpoint的优先级非常低,当一个log switch checkpoint发生的时候它并不会立即的通知DBWn进程去写数据文件,但是当有其它原因导致checkpoint或者是写入数据文件的RBA超过log switch checkpoint的checkpoint RBA的时候,这次的log switch checkpoint将会被标记成完成状态,同时更新控制文件和数据文件头。我们随后可以做个实验验证这个说法。 在Oracle中SCN相当于它的时钟,在现实生活中我们用时钟来记录和衡量我们的时间,而Oracle就是用SCN来记录和衡量整个Oracle系统的更改。 Oracle中checkpoint是在一个特定的“时间点”发生的,衡量这个“时间点”用的就是SCN,因此当一个checkpoint发生时SCN会被写入文件头中以记录这个checkpoint。 增量checkpoint 增量checkpoint工作过程 因为每次完全的checkpoint都需要把buffer cache所有的脏块都写入到数据文件中,这样就是产生一个很大的IO消耗,频繁的完全checkpoint操作很对系统的性能有很大的影响,为此Oracle引入的增量checkpoint的概念,buffer cache中的脏块将会按照BCQ队列的顺序持续不断的被写入到磁盘当中,同时CKPT进程将会每3秒中检查DBWn的写入进度并将相应的RBA信息记录到控制文件中。 有了增量checkpoint之后在进行实例恢复的时候就不需要再从崩溃前的那个完全checkpoint开始应用重做日志了,只需要从控制文件中记录的RBA开始进行恢复操作,这样能节省恢复的时间。 发生增量checkpoint的先决条件 恢复需求设定 (FAST_START_IO_TARGET/FAST_START_MTTR_TARGET) LOG_checkpoint_INTERVAL参数值 LOG_checkpoint_TIMEOUT参数值 最小的日志文件大小 buffer cache中的脏块的数量 增量checkpoint的特点 增量checkpoint是一个持续活动的checkpoint。 没有checkpoint RBA,因为这个checkpoint是一直都在进行的,所以不存在normal checkpoint里面涉及的checkpoint RBA的概念。 checkpoint advanced in memory only 增量checkpoint所完成的RBA信息被记录在控制文件中。 增量checkpoint可以减少实例恢复时间。 增量checkpoint相关参数设置 log_checkpoint_interval 设定两次checkpoint之间重做日志块(重做日志块和系统数据块是一样的)数,当重做日志块数量达到设定值的时候将触发checkpoint。 log_checkpoint_timeout 设定两次checkpoint之间的间隔时间,当超时值达到时增量checkpoint将被触发。Oracle建议不用这个参数来控制,因为事务(transaction)大小不是按时间等量分布的。将此值设置成0时将禁用此项设置。 fast_start_io_target 因为log_checkpoint_interval主要看的时候重做日志块的数量,并不能反应buffer cache中脏数据块的修改,因此Oracle又引入了这个参数来实现当脏数据块达到一定数量的时候触发checkpoint,不过此参数实际上控制的是恢复时所需IO的数量。 fast_start_mttr_target 此参数是在9i中引入用来代替前面的三个参数的,它定义了数据块崩溃后所需要的实例恢复的时间,Oracle在实际上内在的解释成两个参数:fast_start_io_target和log_checkpoint_interval.如果这两个参数没有显式的指定,计算值将生效.。 fast_start_mttr_target可以设定的最大值是3600,即一个小时。它的最小值没有设限,但是并不是说可以设置一个任意小的值,这个值会受最小dirty buffer(最小为1000)的限制,同时还会受初始化时间以及文件打开时间的限制。 在设置此参数的时候要综合考虑系统的IO,容量以及CPU等信息,要在系统性能和故障恢复时间之间做好平衡。 将此参数设置成0时将禁用 fast-start checkpointing,这样能见效系统负载但同时会增加系统的恢复时间。 如果fast_start_io_target or log_checkpoint_interval被指定,他们会自动覆盖由fast_start_mttr_target参数计算出来的值。
麻烦采纳,谢谢!

阅读全文

与ckpt如何更新数据文件相关的资料

热点内容
手机2个微信 浏览:914
常用手机下载的文件在哪里 浏览:669
phpmemcache所有版本 浏览:738
ps自动排版文件名去 浏览:4
java网络爬虫入门到精通 浏览:481
最火直播app 浏览:44
苹果6ssim卡应用程序 浏览:889
qq浮动窗口代码 浏览:232
备件管理有哪些好用的手机app 浏览:847
小米网络音箱如何关机 浏览:916
usb数据线哪个是火线 浏览:164
win10提示重新激活windows10 浏览:13
手机自装app如何卸载 浏览:689
win10任务栏标签变小 浏览:728
qq输入法兼容win10吗 浏览:855
分盘数据删除怎么恢复 浏览:132
iphone备份路由器设置密码 浏览:175
自学考研学习网站哪个好 浏览:977
压缩exl文件中的图片 浏览:412
广州白云机场无线网络 浏览:968

友情链接