barriers / 阅读 / 详情

oracle redo 多大合适

2023-08-20 18:23:16
共4条回复
蓓蓓

以时间为单位,15-20分钟切换一次为宜。

在Oracle的官方资料中,对redo log的大小设置也是以切换频率而定的,要求调整到15-20分钟进行一次切换。调整的手段主要是增加日志组数量和调大日志成员文件大小。这样,都可以给dbwr和arc进程更多的时间在后台进行数据写入和归档。

wpBeta

redo online log 目前 一般推荐 512M或者1024M 或者 2048M

redo buffer 的话一般给个20M,实际上10g以后是不需要你去关心的。

coco
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!
需要根据实际情况,如果存在大量数据DML操作,为了防止频繁切换日志文件,建议设大点提高性能。但也不是越大越好,太大了反而没有什么用。一般建议调整到切换频率在10-15分钟一次,具体可参见这个博客
http://blog.i***.net/17203031/viewspace-731197
西柚不是西游

一般redo日志有三个,可以多加,每个500M就行;

相关推荐

浙商银行吉祥物叫啥

浙商银行吉祥物叫**小红人RedO**。小红人是以红色能量棒为原型设计的人物形象,喜欢创新技术、乐于体验新兴生活,追求财务自由。
2023-08-11 21:30:272

redo日志的作用是什么?

在Oracle数据库中,有一种日志文件叫做重做日志文件,他就是大家俗称的:redolog。在redolog中又分为两种:在线重做日志与归档日志。ONLINE Redo log在线重做日志(online redo log )主要用于:Oracle数据库所在服务器突然掉电、突然重启或者执行shutdown abort等命令使得在服务器重新启动之后,Oracle数据库没有办法正常的启动实例。此时,在线重做日志就派上了用场,Oracle会使用在线重做日志,把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来 。在Oracle数据库中,默认情况下,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。日志组不会自动增加,在一个写满之后,会自动去写下一个。在下一个被写满之后会又从第一个开始写起。Archive redo log归档日志(archive log)主要用于硬件级别的错误:磁盘的坏道导致无法读写、写入的失败、磁盘受损导致数据库数据丢失。这就要使用归档日志文件,通过归档日志文件,把数据库恢复到归档日志所在的时间点上然后再通过在线重做日志文件把数据库恢复到当前的时间点上。对于归档日志文件,可以理解为在线重做日志文件的备份。即当一个重做日志文件被填满了之后,归档日志文件就会把其备份保留一份。(因为上面说了,在线重做日志文件会自动的覆盖)所以,归档日志文件就是旧的在线日志文件的备份。
2023-08-11 21:30:383

在CAD中REDO命令在功能上有什么不同

REDO命令实质为,恢复命令U和undo执行的放弃操作,那CTRL+Z同样是返回上一步,redo同样可以将其恢复。u和 undo的区别是,后退一步和多步。“雅铺尚品”为您解答,供参考,谢谢!
2023-08-11 21:30:541

触发redo写的几个条件

1.超时(timeout) 当LGWR处于空闲状态时,它依赖于rdbms ipc message等待,处于休眠状态,直到3秒超时时间到。 如果LGWR发现有redo需要写出,那么LGWR将执行写出操作,log file parallel write等待事件将会出现。 启用10046事件,从LGWR跟踪日志中可以清楚的观察到这些事件:2.阈值达到 只要一个进程在log buffer中分配空间,已经使用的Log buffer的数量将被计算。如果使用的块的 数量大于或等于_log_io_size参数设置,那么将会触发LGWR写操作。 如果此时LGWR未处于活动状态,那么LGWR将被通知去执行后台写操作。 缺省的_log_io_size等于1/3 log buffer大小,上限值为1M,此参数在X$KSPPSV中显示的0值,意为缺省值。 也就是,LGWR将在Min(1M,1/3 log buffer size)时触发。注意此处的log buffer size是以log block来衡量的。 此值通常为512 bytes.获得Oracle的隐含参数,参考 如何获取Oracle的隐含参数 3.提交 当一个事物提交时,在redo stream中将记录一个提交标志。 在这些redo被写到磁盘上之前,这个事物是不可恢复的。所以,在事务返回成功标志给用户前,必须等待LGWR写完成。进程通知LGWR写,并且以log file sync事件开始休眠,超时时间为1秒。 Oracle的隐含参数_wait_for_sync参数可以设置为false避免redo file sync的等待,但是就将无法保证事务的恢复性。注意,在递归调用(recursive calls)中的提交(比如过程中的提交)不需要同步redo直到需要返回响应给用户。因此递归调用仅需要同步返回给用户调用之前的最后一次Commit操作的RBA。 存在一个SGA变量用以记录redo线程需要同步的log block number。 如果多个提交在唤醒LGWR之前发生,此变量记录最高的log block number,在此之前的所有redo都将被写入磁盘。 这有时候被称为组提交(group commit). 4.在DBWR写之前 如果DBWR将要写出的数据的高RBA超过LGWR的on-Disk RBA,DBWR将post LGWR去执行写出。 在Oracle8i之前,此时DBWR将等待log file sync事件。 从Oracle8i开始,DBWR把这些Block放入一个defer队列,同时通知LGWR执行redo写出,DBWR可以继续执行无需等待的数据写出。
2023-08-11 21:31:431

redo日志的作用是什么?

redo日志的作用是叫做重做日志文件。ONLINE Redo log重做日志(online redo log )。Oracle数据库所在服务器执行shutdown abort等命令使得在服务器重新启动之后,Oracle数据库正常的启动实例。Oracle会使用重做日志,把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来 。在Oracle数据库中,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。日志组不会自动增加,在一个写满之后,会自动去写下一个。在下一个被写满之后会又从第一个开始写起。Archive redo log归档日志(archive log)主要用于硬件级别的错误。这就要使用归档日志文件,通过归档日志文件。把数据库恢复到归档日志所在的时间点上,然后再通过在线重做日志文件把数据库恢复到当前的时间点上。
2023-08-11 21:31:501

银行redo先生几岁了

根据公开资料,暂时无法获知银行redo先生的年龄。
2023-08-11 21:31:582

Oracle]Data Guard 之 Redo传输详解

   Data Guard主要提供两个服务 )Redo传输服务 即把Primay端的Redo日志传输到一个或多个Standby目的地 )Redo应用服务 即在Standby端应用从Primay端传输过来的Redo日志 本文先讲讲其中的Redo传输服务    使用ARCn传输Redo日志 默认情况下采用ARCn传输redo日志 不过只有在最高性能模式下才可以使用ARCn(具体可参考 《 Oracle] Data Guard 之 三种保护模式介绍 》) 采用ARCH传输Redo日志的示意图如下 其大致过程如下 )Primay段ARC 一旦完成日志切换 ARC 就将新生成的归档日志传输到Standby端 )Standby 端由RFS进程接受日志 如果配置了standby redo log 记录至standby redo log 等standby redo log做log switch形成归档日志 再应用归档日志做恢复 如果没有配置standby redo log RFS进程接收到日志后 放到standby端归档目录下 standby再应用归档日志做恢复    使用LGWR传输Redo日志 使用LGWR进程和ARCn有很大的不一样 最明显的区别是它不需要等Primary完成日志切换后再传输 其示意图如下       其过程大致如下    )一旦Primary有Redo日志产生 LGWR将触发LNSn进程传输Redo只Standby redo log 注意 这里不能由LGWR直接传输 因为整个数据库实例只有一个LGWR 为了保证它的主要性能不受影响 不能由它直接传输)    )网络传输模式可以选择sync或async sync是指当Primary提交时 必须得等Redo传输至Standby成功后 才能返回 所以如果设置sync 建议同时设置NET_TIMEOUT参数 超时无响应 则返回错误 async是指Primary提交是否成功和日志是否传输成功没有关系 这样对Primary的性能影响最小 lishixinzhi/Article/program/Oracle/201311/19052
2023-08-11 21:32:051

Oracle数据库Redo故障恢复

  一 丢失inactive日志文件组的恢复   由于inactive日志文件组表示已经完成了检查点(dirty数据已经被写入数据文件) 数据库本身不会发生数据库丢失 如果在这个时候相应的redo丢失/损坏 可以通过clear重建日志文件组恢复   通过命令:   alter database clear logfile group n   如果数据库模式是archived的 则需要强制清除   alter database clear unarchived logfile group n   二 丢失active或current日志文件组的恢复   丢失情况分两种:   一个是正常关闭数据库(如shutdown immediate)   另一个是异常关闭数据库(如shutdown abort)    在损失当前日志时 数据库是正常关闭状态   由于shutdown immediate会执行全面的checkpoint 所以当前日志在实例恢复时可以不需要redo   在Oracle i中我们完全可以通过alter database clear logfile group n来进行恢复   但是在Oracle i中 则可能无法对current的redo日志进行clear 需要通过recover database until cancel恢复后(必须要做的)   用resetlogs选项打开   比如   alter database clear logfile group n   recover database until cancel;   alter database open resetlogs;    在损失当前日志时 数据库是异常关闭的   这种情况下 由于没有在执行全面检查点时 数据库就已经关闭了 那么Oracle在进行实例恢复的时候必须要求当前的日志 否则Oracle数据库将无法open   这样的情况下 我们通常需要从备份中恢复数据文件 通过应用归档日志进行向前推演 直到最后一个完好的日志文件 然后可以通过resetlogs启动数据库完成恢复 那么丢失的数据则是被损坏的日志文件中的数据 lishixinzhi/Article/program/Oracle/201311/18418
2023-08-11 21:32:121

惠普1005一体机 显示redo怎么解决

从新开始的意思。关机在开机
2023-08-11 21:32:341

redo和undo的区别是什么

undo 是取消做,比如写错了,取消上一步redo是重做,取消了后重做,即取消取消.
2023-08-11 21:32:472

ORACLE中,数据库的redo与undo分别是什么呀,两者是什么关系呢?

redo是重做的意思undo是撤销回滚
2023-08-11 21:33:082

redo音译歌词,要中文音译

仆が死のうと思ったのは作词 秋田ひろむ作曲 秋田ひろむ唱 中岛美嘉仆が死のうと思ったのはウミネコが桟桥で鸣いたからboku ga shino uto omotta noha umineko ga sanbashi de nai takara波の随意に浮かんで消える过去も啄ばんで飞んでいけnami no zui i ni uka nde kie ru kako mo taku bande ton deike仆が死のうと思ったのは诞生日に杏の花が咲いたからboku ga shino uto omotta noha tanjoubi ni anzu no hana ga sai takaraその木漏れ日でうたた寝したら虫の死骸と土になれるかなsono ki more nichi deutata neshi tara mushi no shigai to tsuchi ninarerukana薄荷饴渔港の灯台锖びたアーチ桥舍てた自転车hakka ame gyokou no tou 台 sabi ta a^chi hashi sha teta jitensha木造の駅のストーブの前でどこにも旅立てない心mokuzou no eki no suto^bu no mae dedokonimo tabidate nai kokoro今日はまるで昨日みたいだ明日を変えるなら今日を変えなきゃkonnichiha marude kinou mitaida ashita wo kae runara kyou wo kae nakya分かってる 分かってる けれどwaka tteru waka tteru keredo仆が死のうと思ったのは心が空っぽになったからboku ga shino uto omotta noha kokoro ga karappo ninattakara満たされないと泣いているのはきっと満たされたいと愿うからmita sarenaito nai teirunohakitto mita saretaito negau kara仆が死のうと思ったのは靴纽が解けたからboku ga shino uto omotta noha kutsuhimo ga toke takara结びなおすのは苦手なんだよ人との繋がりもまた然りmusubi naosunoha nigate nandayo nin tono tsunaga rimomata shikari仆が死のうと思ったのは少年が仆を见つめていたからboku ga shino uto omotta noha shounen ga boku wo mitsu meteitakaraベッドの上で土下座してるよあの日の仆にごめんなさいとbeddo no uede dogeza shiteruyoano nichi no boku nigomennasaitoパソコンの薄明かり上阶の部屋の生活音pasokon no haku akari joukai no heya no seikatsu otoインターフォンのチャイムの音耳を塞ぐ鸟かごの少年inta^fon no chaimu no oto mimi wo fusagu tori kagono shounen见えない敌と戦ってる六畳一间のドンキホーテmie nai teki to tatakatte ru roku tatami hitoma no donkiho^teゴールはどうせ丑いものさgo^ru hadouse minikui monosa仆が死のうと思ったのは冷たい人と言われたからboku ga shino uto omotta noha tsumeta i nin to iwa retakara爱されたいと泣いているのは人の温もりを知ってしまったからaisa retaito nai teirunoha nin no 温 moriwo shitte shimattakara仆が死のうと思ったのはあなたが绮丽に笑うからboku ga shino uto omotta nohaanataga kirei ni warau kara死ぬことばかり考えてしまうのはきっと生きる事に真面目すぎるからshinu kotobakari kangae teshimaunohakitto iki ru koto ni majime sugirukara仆が死のうと思ったのはまだあなたに出会ってなかったからboku ga shino uto omotta nohamadaanatani deatte nakattakaraあなたのような人が生まれた世界を少し好きになったよanatanoyouna nin ga umare ta sekai wo sukoshi suki ninattayoあなたのような人が生きてる世界に少し期待するよanatanoyouna nin ga iki teru sekai ni sukoshi kitaisu ruyo
2023-08-11 21:33:161

为什么系统故障恢复时先undo再redo操作,请举日志队列说明

<T1,start><T1,Update,A,600,60><T2,start><T2,Add,A,30><checkpoint L{T1,T2}><T2,COMMIT><break down>如果你先redo的话,A先变成90,然后再undo,A变回了600,但是实际上答案应该是630。
2023-08-11 21:33:262

数据库大神来看,事务回滚靠的是undo,还是redo?

redo
2023-08-11 21:33:402

Oracle的redo日志会自动清理吗

oracle的归档模式分为archivelog/noarchivelog如果是noarchivelog非归档模式,那么oracle会循环使用日志组,是以覆盖的方式向日志组里写日志的。如果是archivelog归档模式,当正在使用的redo日志组写满后,会关闭当前日志文件,arch进程把redo日志中的数据移到归档日志中。归档日志如果长时间不清理,可能会导致磁盘空间不足。可以写个操作系统脚本定时删除归档日志。也就是说,redo日志中的内容,要么覆盖,要么归档。不会出现满了不在记录的情况。
2023-08-11 21:33:481

redo的中文谐音歌词

看不懂``= =你是不是要罗马发音``春隣 歌手:熊木杏里 作词:熊木杏里 作曲:熊木杏里 会えなくて またひとつ さみしさからの风が吹いた 肩に手をのせるような 君のやさしさに似て 重なり合わないことが あたりまえならば もっとそばに歩みよっても 梦は终わらないでしょう 君とぼく ぼくと君 この地上で再び会えた ずっと前 ずっと前 君とぼくは春隣 冬を渡り 咲いてゆく いつか花となる ちがう道をゆくけれど 同じ気持ちだから ずっとそばに感じられると 君はいつか言ってたね ぼくの右 君の左 ふたりに帰れる日がくる 离れても 离れても 君とぼくは春隣 それぞれのままにいて ひとつ花になる いつまでも いつまでも 君にはぼくが春隣 流れてゆく月日さえ 爱しいと思える ずっと前 ずっと前 君とぼくは春隣 笑い泣いて共にゆく いつか花となる 罗马拼音 ae naku te mata hitotsu samishi sa kara no kaze ga fui ta kata ni te o noseru you na kimi no yasashi sa ni ni te kasanariawa nai koto ga atarimae nara ba motto soba ni ayumiyotte mo yume ha owara nai desho u kimi to boku boku to kimi kono chijou de futatabi ae ta zutto mae zutto mae kimi to boku ha haru tonari fuyu o watari sai te yuku itsuka hana to naru chigau michi o yuku keredo onaji kimochi da kara zutto soba ni kanji rareru to kimi ha itsuka itte ta ne boku no migi kun no hidari futari ni kaereru hi ga kuru hanare te mo hanare te mo kimi to boku ha haru tonari sorezore no mama ni i te hitotsu hana ni naru itsu made mo itsu made mo kimi ni ha boku ga haru tonari nagare te yuku tsukihi sae itoshii to omoeru zutto mae zutto mae kimi to boku ha haru tonari warai nai te tomoni yuku itsuka hana to naru
2023-08-11 21:33:561

编辑器的模式(1)—undo/redo

"我不能预见每个人的未来,我只能预见我自己的,而且只能预见两分钟"——尼古拉斯.凯奇《惊魂下一秒》2007 无论人写字,画画一样,我们常常有笔误不可避免, 回到过去的某个修改点,做出不同的修改,并继续, 在程序设计的概念里,这常常指版本管理,版本管理保存了每一次(所有)修改的历史,不同时间线,还有合并 而编辑器的,undo/redo, 则有几点简化, 这像是《惊魂下一秒》里的故事,修正有限历史,并让下一秒冲刷掉未来。 undo/redo模式,即为,维护一定长度的修改点队列,并在所有历史修改点里,进行版本切换. 以下我实现了一个简单的undo/redo,版本管理, 可以看到,这样简单的undo/redo已经足够工作。 实现更精巧的 redo/undo功能,你需要考虑以下问题: 而现实中,对于有些编辑器的实现来说,效率并不是一个严重的问题,简单则是更为重要的。
2023-08-11 21:34:141

oracle的dg为什么备库没有redo

  有时为了调优需要,我们需要增加onlline redo的组数,下面是操作流程一、查看主库online redo信息。  select a.members,a.status,a.bytes/1024/1024,b.type,b.member,b.group#from v$log a,v$logfile b  where a.group#=b.group#;  二、相看主库standby_log 信息  select a.member,a.status,b.bytes/1024/1024,b.group#,b.used/1024/1024,b.statusfrom v$logfile a,v$standby_log b  where a.group#=b.group#;  三、查看备库online redo信息  select a.members,a.status,b.type,b.member,b.group#from v$log a,v$logfile b  where a.group#=b.group#  四、查看备库standby_log 信息  select a.member,a.status,b.bytes/1024/1024,b.group#,b.used/1024/1024,b.statusfrom v$logfile a,v$standby_log b  where a.group#=b.group#;  以上信息无误后操作下面的步骤  五、在主库上增加online redo组。  alter database add logfile group 10 ("/u01/app/oradata/orcl/redo10a.log","/u01/app/oradata/orcl/redo10b.log") size 100m;六、在主库上增加standby log。  alter database add standby logfile group 15 ("/u01/app/oradata/orcl/stred15a.log ","/u01/app/oradata/orcl/stred15b.log ") size 100M;七,备库操作,增加onlie redo  7.1 alter database recover managed standby database cancel; ---取消主备传送7.2 alter system set standby_file_management=manual; ---改为备库文件改为手动模式7.3 增加备库onlie redo文件与主库一样在大小,位置一般是一样的,除非有主备环境不同alter database add logfile group 10 ("/u01/app/oradata/orcl/redo10a.log","/u01/app/oradata/orcl/redo10b.log") size 100m;八,备库操作,增加备库standby log  alter database add standby logfile group 15 ("/u01/app/oradata/orcl/stred15a.log ","/u01/app/oradata/orcl/stred15b.log ") size 100M;九, 备库操作,改写备库文件管理模式为自动,并启用实时应用alter system set standby_file_management=auto;alter database recover managed standby database using current logfile disconnect from session;十,观察同步是否时实。  我这里是ok的。
2023-08-11 21:34:231

如何把redo文件 从asm里复制出来

方法一: 如果是11g的ASM就简单了,asmcmd中有个命令cp,可以支持直接拷贝文件的操作系统中,具体操作如下: 首先进入asmcmd如要把redo01文件拷贝到系统中的/backup下面,操作如下: asmcmd>cp +DATA/orcl/redo01.log /backup/redo01.log方法很简单,但是前提必须是11g,但是我们现在使用得最多的是oracle10g,10g的asmcmd中暂时没有cp命令,所以就必须使用下面的方法拷贝。方法二:采用dbms_file_transfer包,从ASM中拷贝数据,方法是创建源和目标的directory,然后用dbms_file_transfer包,拷贝数据: create or replace directory ASM as "+DATA/orcl /";create or replace directory BACKUP as "/backup";BEGINdbms_file_transfer.copy_file(source_directory_object =>"ASM", source_file_name => "redo01.log",destination_directory_object => "BACKUP",destination_file_name => "redo01.log");END;
2023-08-11 21:34:311

Oracle里redo文件size小且数量少,切换频繁,会对数据库性能产生怎样影响?请讲的具体一些,谢谢你。

不那么明显的影响是, 由于频繁的io,会潜在的使数据库变慢。明显的影响是,比如说你只有2组redo。第一组写满了,写第二组。但这时第一组的状态仍然是active的,要等到第一组redo里面记录的操作全都提交了,才会变成inactive的。如果还有未提交的数据,那么第一组redo是不能被覆盖的。然后呢。。。 如果第二组日志这时也写满了,又不能去覆盖第一组,那么所有的数据库操作都会hang在那里。你的客户如果耐心不好,就要砸电脑了。夸张的影响是,如果你的数据库hang在那里的时候,发生了什么特殊的问题,导致系统进程出了故障,crash也不是不可能的。
2023-08-11 21:34:401

虚拟机目录下redo文件是怎么产生的文件很大

vmdk为虚拟硬盘文件,不能删除。vmem文件在虚拟机运行时产生,一般与虚拟机内存容量相等,关机后自动清除,如有残留试试手工删除。vmss是执行了挂起操作后产生的文件,容量一般不大。
2023-08-11 21:34:481

如何恢复redo01.log/redo02.log/redo03.log?

select*fromv$session_wait在结合如下语句,发现日志切换的频率非常之快select*fromv$log针对这个情况我就增加redo文件的大小的个数在线修改redo.log文件的大小1.查找日志文件的路径名和group#号sql>select*fromv$log;group#th...
2023-08-11 21:34:551

data guard怎样查看redo transport status

在OracleDataGuard中,RedoGap的产生是由于一些网络或者其他问题导致redo的传输中断。当故障消除后,这些没有传输过去的redo文件会由一些进程发现,并且将它们传输到备库。术语:ARC:归档进程MRP:MediaRecoveryProcess,在备库上负责应用redoRFS:RemoteFileServer,在备库上接收发送过来的redo文件FAL:FetchArchiveLog测试目的:由于网络问题发生了gap后,确定哪个进程负责处理gap。测试环境:Oracle11.2.0.2onLinux5.测试过程:1.确保当前主库和备库是同步的:Primary:MAX(SEQUENCE#)--------------86Standby:MAX(SEQUENCE#)--------------862.模拟网络中断,导致gap:在主库将网卡停掉:#ifconfigeth0down将主库执行数次switchlogfile:SQL>altersystemswitchlogfile;SQL>altersystemswitchlogfile;Primary:MAX(SEQUENCE#)--------------96这时主库alertlog报出了与备库连接不通的错误:TNS-00513:Destinationhostunreachablentsecondaryerrcode:101ntOSerrcode:0Error12543receivedloggingontothestandbyFAL[server,ARCp]:Error12543creatingremotearchivelogfile"STANDBY"FAL[server,ARCp]:FALarchivefailed,seetracefile.ARCH:FALarchivefailed.ArchivercontinuingORACLEInstanceorcl-ArchivalError.Archivercontinuing.3.将主库的这些归档临时换个目录,保证这些归档无法传到备库:mv*.arc../4.启动主库的网卡:#ifconfigeth0up5.这时,主库的ARC并没有把缺少的日志传到备库。最终备库的MRP发现了gap并把gapfetching.
2023-08-11 21:35:021

oracle 建表会不会在redo

会,虽然临时表是nologing类型的,但是还是会产生部分redo日志,只不过产生的比logging类型的表会少一下;
2023-08-11 21:35:101

如何调整Oracle Redo Logfile日志文件的大小

我认为只能先添加一个大的日志文件,然后删除小的日志文件。
2023-08-11 21:35:293

Altium designer 6.9 画PCB 的时候怎么没有 undo 和redo呢,别人电脑上却有,怎么回事呢,求帮忙...

你的电脑有问题
2023-08-11 21:35:373

如何诊断Oracle Redo Log引发的性能问题

  一、Rodo Log性能调整目标:  在能够影响Oracle性能的诸多因素中,Redo Log相关的因素从某种程度上可以说是最为重要同时也是最值得关注的。因为在一个OLTP系统中Oracle通过各种技术以及优良的设计,尽量做到将大部分操作在内存中完成,以便最大程度的提升性能。因此在Oracle的诸多后台进程以及用户进程的大部分操作都是内存操作,而且这些操作会通过延迟写入技术尽可能的将磁盘I/O操作滞后。但是在这些操作中却有某些例外,其中最明显的就是针对Redo Log的操作。  在Oracle中针对Redo Log的操作主要由LGWR进程完成,这个进程可以说是Oracle所有后台进程中最繁忙的进程,而且这个进程可能要频繁的进行I/O操作,这是因为Oracle出于数据安全的考虑必须保证联机在线重做日志可靠的写入日志文件,以便在发生崩溃时能够有效恢复数据,而真正的数据可能会等一些时间延迟写入数据文件。这种特点在Oracle的各个后台进程中显得有些独树一帜。另外LGWR全局唯一,即一个实例只能有一个活动的LGWR进程,由于要进行频繁的I/O操作可想而知是很容易造成LGWR进程竞争的。由于LGWR在Oracle实例结构设计中的特殊地位,一旦出现LGWR性能瓶颈,那么对整个系统的性能影响将会是极为严重的,同时对数据安全也是一个潜在的威胁。  因此作为Oracle日常的数据库管理,我们要给与这部分相当的关注,尽早发现问题,尽早作出调整。调整的目标就是要做到Log_Buffer大小适中(不要过大,也不能太小),要满足用户进程的使用需要,每当系统负载有一个明显的增加时,就应该考虑调整它的大小。比如因为业务拓展当前系统固定用户数量从1万人猛增到3万人,那么就应该对Log_Buffer大小给与关注。另外就是要做到日志文件的大小适中,日志组的日志文件数量合适,不能影响LGWR写日志文件的性能,不能造成日志文件间的写入竞争,不能在日志切换归档发生时引发磁盘竞争等等。  二、监控与问题排查:  在进行Redo Log问题监控时,主要关注两个方面:日志缓冲区空间使用的等待情况和日志缓冲区数据槽的分配情况。通过这两方面的监控并配合一些问题排查手段,通常可以发现大量问题。  (1)日志缓冲区空间使用的等待情况:  可以通过查询v$session_wait来监控日志缓冲区空间使用的等待情况,通过如下SQL语句进行查询:select sid,event,seconds_in_wait,statefrom v$session_waitwhere event="log buffer space%";   以上的查询中可以通过观察seconds_in_wait的数值来分析问题,这个数值可以显示如下问题:日志切换缓慢引发的等待、LGWR写入缓慢引发的等待、日志文件写入引起的磁盘竞争引发的等待。  这些等待的发生可能是由于如下问题引起的:  1、日志文件写入时存在磁盘竞争:  这种情况多见于日志切换发生时,由于日志文件组的规划不当,或者存放日志文件的磁盘写入速度缓慢,或者是因为磁盘RADI类型不当都会引发这个问题,如果怀疑村在这些情况,可以通过如下语句进行监控:select event,total_waits,time_waited,average_waitfrom v$system_eventwhere event like "log file switch completion%";   可以通过观察total_waits,time_waited,average_wait数值来分析问题,如果这些值过高(注意何谓“过高”,不同系统考量标准不一样,要具体分析),那么说明存在以上问题。此时可以通过如下措施解决:  ● 将同一日志文件组的各个成员分配到不同的磁盘上,进而减少日志写入以及日志切换和日志归档时引发的竞争;  ● 将日志文件尽可能存放在快速的磁盘上;  ● 要合理选择RADI类型对磁盘进行条带化,通常不要选择RADI5来作为日志文件磁盘的RADI类型,通常推荐使用RADI10;  ● 可以增加REDO LOG文件大小,来延缓日志切换,下面是一个增加日志文件大小的方法;  假如原来有3个小的redo log file,下面是UNIX环境下的一个例子:  第一步:往数据库添加三个大的redo logfileSVRMGRL>ALTER DATABASE ADD LOGFILE GROUP 4("/opt/oradata/app/redo04.log","/ora_bak/oradata2/redolog/redo04.log") size 16M reuse;SVRMGRL>ALTER DATABASE ADD LOGFILE GROUP 5("/opt/oradata/app/redo05.log","/ora_bak/oradata2/redolog/redo05.log") size 16M reuse;SVRMGRL>ALTER DATABASE ADD LOGFILE GROUP 6("/opt/oradata/app/redo06.log","/ora_bak/oradata2/redolog/redo06.log") size 16M reuse;  第二步: 手工地做log switch,使新建的redo logfile起作用SVRMGRL>alter system switch logfile;   此操作可以执行一到几次,使旧的redo logfile成invalid状态。
2023-08-11 21:35:461

Oracle里redo文件size小且数量少,切换频繁,会对数据库性能产生怎样影响?请讲的具体一些,谢谢你。

会造成等待,1 如果事务要使用空闲的redo 文件,发现会没有被释放会写日志的操作会hang住,导致事务也停止2 切换过于频繁,log file sync ,log file parallel write 等待。
2023-08-11 21:35:531

oracle redo日志切换时间怎么看

第步查看前志select a.group#,a.bytes/1024/1024||"M" log_size,a.status,b.member from v$log aleft join v$logfile b on A.GROUP#=b.group#第二步删除原志注意事项:a. 志前状态必须inactive才删除active状态说明志记录没同步数据文件需要等待定间才变inactive状态;current状态前写志能删除b. 志组数量能低于2组删除志命令:前group 2inactive所能删除group 2使用删除命令:alter database drop logfile group 2剩两组志志组能低于2组所能再删除能添加志组再删除c. 执行删除该志物理文件存删除作危险需要删除再行创建志文件原志文件名称相同增加志组(或者志组员)命令添加reuse选项第三步添加新志使用批量命令:alterdatabaseaddlogfile group4"/data/log/REDO_LOG04.log"size 500M,group5"/data/log/REDO_LOG05.log"size 500M,group6"/data/log/REDO_LOG06.log"size 500M;志状态active候我要改变删除我需要使用命令:altersystemswitchlogfile;改变current log改变currentlog变第2组志第1组志状态active再等待定间其状态变inactive候删除志组1状态间改变执行手检查点命令:altersystemcheckpoint
2023-08-11 21:36:011

oracle rac使用存储,存储上面有部分固态盘怎么分配最合理 例如 undo文件 redo文件 temp文件 数据文件

redo temp 放到固态盘,仅供参考。因为redo操作频繁,temp在查询和排序时用的多。归档、数据文件等其它文件放到别的盘。另外固态盘最好设置成系统内存,这样对sga的读取会快,这个还是最关键的。
2023-08-11 21:36:251

C#怎样实现撤销操作重复操作?可以是undo、redo或其他方式,怎样可以实现啊?谢谢,悬赏80分

一般控件才提供撤销操作,而自己写的方法或事件,一般需要自己写撤销操作。比如,你单击某按扭进行的操作,是不能撤销的,除非自己再写一个可以撤销的方法对事件就行可逆操作。但文本等控件是自带撤销和重复操作的,如:richTextBox1.Undo();richTextBox1.Redo();
2023-08-11 21:36:321

oracle的日志组为什么最少是两个或者是建议多个

首先我们来说一下Oracle redo的作用:Oracle通过Redo来保证数据库的事务可以被重演,从而使得在故障之后,数据可以被恢复。Redo对于Oracle数据库来说至关重要!至关重要!至关重要!(重要的事情说三遍!!!)问题一:为什么最少是两个。为了保障redo log 的冗余性,那么一个redo log group内,至少有两个成员文件,且这两个成员文件最好存放在不同的物理盘上。那么在oracle 日志条目过来的时候,会分别同时向两个文件写入。如果其中一个文件发生损坏,那么不必着急,咱们还有另一个一模一样的文件。这样就可以很好的保护redo log了。例如:主机上有两块硬盘/disk1 , /disk2 ,成员文件最好分别落在这两个盘上。问题二:或者是建议多个.这是一个平衡的问题,如果一个redo group存在多个成员文件,那么oracle 日志条目过来的时候,会分别同时向n个文件进行写入,这样固然更加的安全,但如果成员文件过多会导致磁盘I/O的压力,对数据库性能带来瓶颈。所以日志组内配置多少个冗余余文件需要权衡哦。但至少是两个,两个也基本是大多数数据库的配置方式了。
2023-08-11 21:36:401

在数据库中,REDO操作和UNDO操纵个表示什么含义?

redo是恢复操作,undo是撤销操作
2023-08-11 21:36:592

redo日志的作用是什么oracle

redo日志的作用是叫做重做日志文件。ONLINE Redo log重做日志(online redo log )。Oracle数据库所在服务器执行shutdown abort等命令使得在服务器重新启动之后,Oracle数据库正常的启动实例。Oracle会使用重做日志,把数据库恢复到服务器掉电前的那一个时刻,从而使得数据库能正常的启动起来 。在Oracle数据库中,至少会有两个重做日志组,而且每个组里面至少包含了一个重做日志文件。日志组不会自动增加,在一个写满之后,会自动去写下一个。在下一个被写满之后会又从第一个开始写起。Archive redo log归档日志(archive log)主要用于硬件级别的错误。这就要使用归档日志文件,通过归档日志文件。把数据库恢复到归档日志所在的时间点上,然后再通过在线重做日志文件把数据库恢复到当前的时间点上。
2023-08-11 21:37:062

insert 语句后是先UNDO,还是REDO

redo 是记录日志用的。 undo是记录数据的备份用的。 简单举个例子说明(实际过程比这要复杂的多): 1、当你发出一条update语句后,oracle先将更改前后信息写进redo(当满足一定条件后由日志写进程写入日志文件)
2023-08-11 21:37:291

oracle 如何增加redo

alter database add logfile group X ("/dev/***") size **M;
2023-08-11 21:37:372

#求助,MAC 下Redo和Undo的快捷键是啥

mac下的快捷键大致和windows相同,不过是把ctrl换为command也就是command+z
2023-08-11 21:37:461

查看Oracle的redo日志切换频率

  两个sql 原理是一样的 第二个用到了统计函数   时间单位 分钟   select * from v$log   where a THREAD# =   select b SEQUENCE# b FIRST_TIME   a SEQUENCE# a FIRST_TIME   round(((a FIRST_TIME b FIRST_TIME)* )* )   from v$log_history a v$log_history b   where a SEQUENCE# = b SEQUENCE#+   and b THREAD#=   order by a SEQUENCE# desc   select sequence# first_time nexttime round(((first_time nexttime)* )* ) diff   from (   select sequence# first_time lag(first_time) over(order by sequence#) nexttime   from v$log_history   where thread#= lishixinzhi/Article/program/Oracle/201311/18503
2023-08-11 21:37:531

为什么系统故障恢复时先undo再redo操作

淡淡的行啊的
2023-08-11 21:38:032

REDO大小通过ORACLE怎么查出来

select a.GROUP#,a.THREAD#,a.BYTES/1024/1024 M from v$log a
2023-08-11 21:38:101

oracle中误删除了redo文件怎么办

可以尝试使用PRM-DUL恢复无法打开的oracle数据库,也可以尝试如下手法来解决问题: 【Oracle数据恢复】Redo Log重做日志文件坏块Corruption的解决 ORA-16038 ORA-00354 ORA-00353 ORA-00367 ORA-01624 ORA-16038 log %s sequence# %s cannot be
2023-08-11 21:38:181

华硕笔记本REDOL14EA有多重?

华硕笔记本REDOL14EA整机重量约1.4kg。
2023-08-11 21:38:361

如何诊断Oracle Redo Log引发的性能问题

  在能够影响Oracle性能的诸多因素中,Redo Log相关的因素从某种程度上可以说是最为重要同时也是最值得关注的。因为在一个OLTP系统中Oracle通过各种技术以及优良的设计,尽量做到将大部分操作在内存中完成,以便最大程度的提升性能。因此在Oracle的诸多后台进程以及用户进程的大部分操作都是内存操作,而且这些操作会通过延迟写入技术尽可能的将磁盘I/O操作滞后。但是在这些操作中却有某些例外,其中最明显的就是针对Redo Log的操作。  在Oracle中针对Redo Log的操作主要由LGWR进程完成,这个进程可以说是Oracle所有后台进程中最繁忙的进程,而且这个进程可能要频繁的进行I/O操作,这是因为Oracle出于数据安全的考虑必须保证联机在线重做日志可靠的写入日志文件,以便在发生崩溃时能够有效恢复数据,而真正的数据可能会等一些时间延迟写入数据文件。这种特点在Oracle的各个后台进程中显得有些独树一帜。另外LGWR全局唯一,即一个实例只能有一个活动的LGWR进程,由于要进行频繁的I/O操作可想而知是很容易造成LGWR进程竞争的。由于LGWR在Oracle实例结构设计中的特殊地位,一旦出现LGWR性能瓶颈,那么对整个系统的性能影响将会是极为严重的,同时对数据安全也是一个潜在的威胁。  因此作为Oracle日常的数据库管理,我们要给与这部分相当的关注,尽早发现问题,尽早作出调整。调整的目标就是要做到Log_Buffer大小适中(不要过大,也不能太小),要满足用户进程的使用需要,每当系统负载有一个明显的增加时,就应该考虑调整它的大小。比如因为业务拓展当前系统固定用户数量从1万人猛增到3万人,那么就应该对Log_Buffer大小给与关注。另外就是要做到日志文件的大小适中,日志组的日志文件数量合适,不能影响LGWR写日志文件的性能,不能造成日志文件间的写入竞争,不能在日志切换归档发生时引发磁盘竞争等等。  二、监控与问题排查:  在进行Redo Log问题监控时,主要关注两个方面:日志缓冲区空间使用的等待情况和日志缓冲区数据槽的分配情况。通过这两方面的监控并配合一些问题排查手段,通常可以发现大量问题。  (1)日志缓冲区空间使用的等待情况:  可以通过查询v$session_wait来监控日志缓冲区空间使用的等待情况,通过如下SQL语句进行查询:  select sid,event,seconds_in_wait,state  from v$session_wait  where event="log buffer space%";  以上的查询中可以通过观察seconds_in_wait的数值来分析问题,这个数值可以显示如下问题:日志切换缓慢引发的等待、LGWR写入缓慢引发的等待、日志文件写入引起的磁盘竞争引发的等待。  这些等待的发生可能是由于如下问题引起的:  1、日志文件写入时存在磁盘竞争:  这种情况多见于日志切换发生时,由于日志文件组的规划不当,或者存放日志文件的磁盘写入速度缓慢,或者是因为磁盘RADI类型不当都会引发这个问题,如果怀疑村在这些情况,可以通过如下语句进行监控:  select event,total_waits,time_waited,average_wait  from v$system_event  where event like "log file switch completion%";  可以通过观察total_waits,time_waited,average_wait数值来分析问题,如果这些值过高(注意何谓“过高”,不同系统考量标准不一样,要具体分析),那么说明存在以上问题。此时可以通过如下措施解决:  ● 将同一日志文件组的各个成员分配到不同的磁盘上,进而减少日志写入以及日志切换和日志归档时引发的竞争;  ● 将日志文件尽可能存放在快速的磁盘上;  ● 要合理选择RADI类型对磁盘进行条带化,通常不要选择RADI5来作为日志文件磁盘的RADI类型,通常推荐使用RADI10;  ● 可以增加REDO LOG文件大小,来延缓日志切换,下面是一个增加日志文件大小的方法;  假如原来有3个小的redo log file,下面是UNIX环境下的一个例子:  第一步:往数据库添加三个大的redo logfile  SVRMGRL>ALTER DATABASE ADD LOGFILE GROUP 4  ("/opt/oradata/app/redo04.log",  "/ora_bak/oradata2/redolog/redo04.log") size 16M reuse;  SVRMGRL>ALTER DATABASE ADD LOGFILE GROUP 5  ("/opt/oradata/app/redo05.log",  "/ora_bak/oradata2/redolog/redo05.log") size 16M reuse;  SVRMGRL>ALTER DATABASE ADD LOGFILE GROUP 6  ("/opt/oradata/app/redo06.log",  "/ora_bak/oradata2/redolog/redo06.log") size 16M reuse;  第二步: 手工地做log switch,使新建的redo logfile起作用  SVRMGRL>alter system switch logfile;  此操作可以执行一到几次,使旧的redo logfile成invalid状态。
2023-08-11 21:38:441

online redo log 和undo各有什么作用

REDO记录transaction logs,分为online和archived。以恢复为目的。 比如,机器停电,那么在重起之后需要online redo logs去恢复系统到失败点。 比如,磁盘坏了,需要用archived redo logs和online redo logs区恢复数据。 比如,truncate一个表或其他的操作,想恢复到之前的状态,同样也需要。 REDO是为了重新实现你的操作,而UNDO相反,是为了撤销你做的操作,比如你得一个TRANSACTION执行失败了或你自己后悔了,则需要用ROLLBACK命令回退到操作之前。回滚是在逻辑层面实现而不是物理层面,因为在一个多用户系统中,数据结构,blocks等都在时时变化,比如我们INSERT一个数据,表的空间不够,扩展了一个新的EXTENT,我们的数据保存在这新的EXTENT里,其它用户随后也在这EXTENT里插入了数据,而此时我想ROLLBACK,那么显然物理上讲这EXTENT撤销是不可能的,因为这么做会影响其他用户的操作。所以,ROLLBACK是逻辑上回滚,比如对INSERT来说,那么ROLLBACK就是DELETE了。闪回恢复区是一个默认放置所有和备份恢复操作相关文件的地方。Oracle DBA可以使用Automatic Disk-Based Backup and Recovery,让数据库来管理备份存储的区域。
2023-08-11 21:38:512

物理DataGuard中哪个进程处理RedoGAP

物理Data Guard中哪个进程处理Redo GAP,在Oracle Data Guard中,Redo Gap的产生是由于一些网络或者其他问题导致redo的传输中断。在Oracle Data Guard中,Redo Gap的产生是由于一些网络或者其他问题导致redo的传输中断。当故障消除后,这些没有传输过去的redo文件会由一些进程发现,并且将它们传输到备库。术语:ARC:归档进程MRP:Media Recovery Process,,在备库上负责应用redoRFS:Remote File Server ,在备库上接收发送过来的redo文件FAL:Fetch Archive Log测试目的:由于网络问题发生了gap后,确定哪个进程负责处理gap。测试环境:Oracle 11.2.0.2 on Linux 5.测试过程:1.确保当前主库和备库是同步的:Primary:MAX(SEQUENCE#)-------------- 86Standby:MAX(SEQUENCE#)-------------- 862. 模拟网络中断,导致gap:在主库将网卡停掉: #ifconfig eth0 down将主库执行数次switch logfile:SQL>alter system switch logfile;SQL>alter system switch logfile;...Primary:MAX(SEQUENCE#)-------------- 96这时主库alert log报出了与备库连接不通的错误:TNS-00513: Destination host unreachable nt secondary err code: 101 nt OS err code: 0Error 12543 received logging on to the standbyFAL[server, ARCp]: Error 12543 creating remote archivelog file "STANDBY"FAL[server, ARCp]: FAL archive failed, see trace file.ARCH: FAL archive failed. Archiver continuingORACLE Instance orcl - Archival Error. Archiver continuing.3.将主库的这些归档临时换个目录,保证这些归档无法传到备库:mv *.arc ../4. 启动主库的网卡:#ifconfig eth0 up5.这时,主库的ARC并没有把缺少的日志传到备库。最终备库的MRP发现了gap并把gap fetching.备库alert log:Thu Mar 29 19:58:49 2012Media Recovery Waiting for thread 1 sequence 87 (in transit)
2023-08-11 21:38:591

如何调整Oracle Redo Logfile日志文件的大小

1.查看当前日志组成员SQL> select member from v$logfile; MEMBER--------------------------------------------------------------------------------/u01/oracle/oradata/orcl/redo03.log/u01/oracle/oradata/orcl/redo02.log/u01/oracle/oradata/orcl/redo01.log2. 查看当前日志组状态:SQL> select group#,members,bytes/1024/1024,status from v$log; GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 1 1 50 ACTIVE 2 1 50 CURRENT 3 1 50 INACTIVE现在有三个日志成员,大小为50M,欲更改为100M增加日志组SQL>alter database add logfile group 4 ("/u01/oracle/oradata/orcl/redo04.log") size 100M;SQL>alter database add logfile group 5 ("/u01/oracle/oradata/orcl/redo05.log") size 100M;SQL>alter database add logfile group 6 ("/u01/oracle/oradata/orcl/redo06.log") size 100M;3.切换到新增的日志组上SQL> alter system switch logfile;System altered.SQL> alter system switch logfile;System altered.SQL> select group#,members,bytes/1024/1024,status from v$log GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 1 1 50 INACTIVE 2 1 50 INACTIVE 3 1 50 ACTIVE 4 1 100 CURRENT 5 1 100 UNUSED 6 1 100 UNUSEDa. CURRENT指当前的日志文件,在进行实例恢复时是必须的;b. ACTIVE是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着,Checkpoint尚未完成,因此该日志文件不能被覆盖。c. INACTIVE是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。d. UNUSED表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。4.删除旧的日志组SQL> alter database drop logfile group 1; Database altered.SQL> alter database drop logfile group 2 2 /Database altered.SQL> alter database drop logfile group 3;alter database drop logfile group 3*ERROR at line 1:ORA-01624: log 3 needed for crash recovery of instance dbserver (thread 1)ORA-00312: online log 3 thread 1: "/u01/oracle/oradata/orcl/redo03.log"由于log 3 日志成员还出去active 状态,所以不能drop掉的,再次执行 alter system switch logfile; SQL> select group#,members,bytes/1024/1024,status from v$log;GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 3 1 50 INACTIVE 4 1 100 ACTIVE 5 1 100 CURRENT 6 1 100 UNUSEDSQL> alter database drop logfile group 3;Database altered.SQL> select group#,members,bytes/1024/1024,status from v$log;GROUP# MEMBERS BYTES/1024/1024 STATUS---------- ---------- --------------- ---------------- 4 1 100 ACTIVE 5 1 100 ACTIVE 6 1 100 CURRENT在操作系统下删除掉redolog 日志文件mv /u01/oracle/oradata/orcl/redo0[1-3].log /tmp
2023-08-11 21:39:072

oracle redo undo 什么时候生成

在sql解析完毕生成执行计划之后,并且在buffer cache实际修改buffer之前生成undo和redo。
2023-08-11 21:39:141

mysql如何保证redolog和binlog的一致性,安全性,效率。

* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!mysql如何保证redolog和binlog的一致性,安全性,效率。和数据安转相关的参数sync_binlog:控制binlog的刷新方式(写入到磁盘)innodb_flush_log_at_trx_commit:在innodb下控制着redo的写入方式innodb_support_xa:外部事务,用来保证binlog和redo一致性的,俗称两段式提交binlog_order_commits:按照binlog的写入顺序提交事务,保证redo和binlog的已执行binlog_max_flush_queue_time: leader线程搜集binlog的超时时间2pc提交(官方支持)(redo日志在prepare阶段就已经sync),绝大部分都比较支持这种说法http://dev.m***.com/doc/refman/5.6/en/binary-log.htmlhttp://blog.i***.net/15480802/viewspace-1411356http://www.l******.com/Linux/2015-11/124942.htmhttp://www.2**.com/database/201306/221413.html2pc流程:(sync_binlog = 1,innodb_flush_log_at_trx_commit = 1 )1.prepare阶段:sync redo 日志(未sync的redo存放于innodb_log_buffer_size中),系统自动完成获取prepare_commit_mutex(一个全局锁,一次只能被一个事务获取)2.生成binlog,将binlog写入文件系统(未提交之前binlog存放在binlog_cache_size中),sync binlog,这一步受sync_binlog控制3.提交commit 将commit标志sync ,释放prepare_commit_mutex(这一步应该受innodb_flush_log_at_trx_commit的控制)违背了这个参数的定义:innodb_flush_log_at_trx_commit观点二:redo日志在最后的commit的时候才synchttp://blog.i***.net/28218939/viewspace-19758092pc流程:(官方没有明显的支持这种说法)1.prepare阶段:获取prepare_commit_mutex2.生成binlog,将binlog写入文件系统(未提交之前binlog存放在binlog_cache_size中),sync binlog3.提交commit 将redo log sync ,释放prepare_commit_mutex这种方式会造成binlog的日志记录多余redo日志记录,在恢复的时候是如何恢复? 难道是以binlog为准,不管这个事务的redo有没有提交 ,只要写binlog就认为该事务以提交(现阶段还没有找到有关该说法).innodb数据恢复流程1.查找未提交的redo日志(找xid)2.用xid去binlog查找对应的日志记录3.如果有就认为这个事务是提交的,并补充commit。如果没有就认为是没有提交的,在恢复的时候就rollback事务###################################################################################################以上2pc日志写入方式是在 mysql5.6之前的方式,当sync_binlog=1的时候 系统的性能非常糟糕。从5.6 之后就开始采用BLGC方式写2pc日志,来提升性能BLGC具体流程如下:(每一个阶段只有一个活跃的线程)flush stage:搜集多个线程产生的binlog,依次放入flush队列的末尾,sync stage:flush队列超时(binlog_max_flush_queue_time)或者没有线程产生binlog了 ,flush队列开始sync队列,将binlog写入磁盘(合并io) commit stage:队列进入提交阶段(这里只做提交操作,redo日志的写入已经在prepare写入)个人理解:flush stage:队列中的第一个线程为leader线程,后面的线程为follower线程,leader线程主要负责收集待提交binlog的线程,并且放入flush 队列的末尾,直到没有找到需要提交binog的线程,或者超时(binlog_max_flush_queue_time),才进入sync stagesync stage:如果flush stage队列为空,则之前leader线程依然为leader线程,负责binlog的sync,否则变成follower线程(合并执行sync)commit stage:sync完binlog的线程被放入commit队列的末尾,等待提交5.7 的组提交:Step1. InnoDB Prepare,记录当前的LSN到thd中。Step2. 进入 Group Commit 的flush stage;Leader搜集队列,同时算出队列中最大的LSN。Step3. 将InnoDB的redo log write/fsync到指定的LSN Step4. 写Binlog并进行随后的工作(sync Binlog, InnoDB commit也就是将 redo log的write/sync延迟到了 binlog group commit的 flush stage 之后,sync binlog之前。通过延迟写redo log的方式,显式的为redo log做了一次组写入(redo log group write),并减少了(redo log) log_sys->mutex的竞争。组提交http://www.t*****.com/articles/rEZr2qhttp://m********.com/?p=581http://www.c**.net/article/2015-01-16/2823591(淘宝内部mysql交流)innodb数据丢失的问题:http://www.3****.com/content/14/1019/00/12904276_418041635.shtml组提交的理解:http://www.b****.com/pdb/mysql/201407/226226.html本文出自 “SQLServer MySQL” 博客,请务必保留此出处http://dwchaoyue.blog.5***.com/2826417/1784509mysql如何保证redolog和binlog的一致性,安全性,效率。标签:mysql 原理
2023-08-11 21:39:211

华硕笔记本REDOL14EA屏幕是多大的?

华硕笔记本REDOL14EA屏幕是14英寸的。
2023-08-11 21:39:281

华硕笔记本REDOL14EA键盘支持背光功能吗?

华硕笔记本REDOL14EA键盘不支持背光功能。
2023-08-11 21:39:361