{"id":2347,"date":"2011-11-11T14:05:00","date_gmt":"2011-11-11T13:05:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/"},"modified":"2011-11-11T14:05:00","modified_gmt":"2011-11-11T13:05:00","slug":"block-corruption-oracle-10g-vs-oracle-11g","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/","title":{"rendered":"Block Corruption Oracle 10g vs Oracle 11g"},"content":{"rendered":"<p>Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption. Je vous livre dans ce post le r\u00e9sultat de mes tests.<br \/>\nOracle v\u00e9rifie l&#8217;int\u00e9grit\u00e9 des donn\u00e9es dans un bloc de base de donn\u00e9es avant qu&#8217;il soit \u00e9crit depuis le buffer cache sur le disque. Si une incoh\u00e9rence de bloc est d\u00e9tect\u00e9e, alors ce bloc est marqu\u00e9 comme corrompu.<\/p>\n<p>Les corruptions peuvent \u00eatre de deux types, logiques et physiques :<br \/>\nLes corruptions physiques de blocs peuvent \u00eatre caus\u00e9es par (liste non exhaustive):<\/p>\n<ul>\n<li>disques ou contr\u00f4leurs de disques en erreur<\/li>\n<li>m\u00e9moire d\u00e9fectueuse<\/li>\n<li>interface d&#8217;entr\u00e9es\/sorties d\u00e9fectueuses (par exemple contr\u00f4leur disque d\u00e9fectueux)<\/li>\n<li>entr\u00e9es\/sorties OS incompl\u00e8tes<\/li>\n<\/ul>\n<p>Dans le cas d&#8217;une corruption physique, la base de donn\u00e9es ne reconna\u00eet pas du tout le bloc : le checksum est invalide, le header et le footer du bloc ne correspondent pas.<br \/>\nDans le cas d&#8217;une corruption logique le contenu du bloc est logiquement inconsistant. Quand RMAN d\u00e9tecte une corruption logique, il laisse une trace dans le fichier alert.log.<br \/>\nPar d\u00e9faut RMAN ne v\u00e9rifie que la corruption physique lors du backup et non la corruption logique. Si l&#8217;on souhaite faire une v\u00e9rification de corruption logique on doit le sp\u00e9cifier en utilisant l&#8217;option CHECK LOGICAL.<br \/>\nSi on sp\u00e9cifie l&#8217;option CHECK LOGICAL dans la commande backup de RMAN, alors RMAN teste les donn\u00e9es ainsi que les indexes et laisse une trace dans le fichier alert.log en cas de corruption.<br \/>\nSur une base de donn\u00e9es Oracle 10g, on effectue les op\u00e9rations suivantes :<br \/>\nOn cr\u00e9e un tablespace:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create tablespace CORRUPT datafile '\/testdba\/db01\/corrupt01.dbf' size 100M;\u00a0\nTablespace created.<\/pre>\n<p>On cr\u00e9e un utilisateur hack avec des droits appropri\u00e9s, une table employe et on y ins\u00e8re des donn\u00e9es :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; create user hack identified by hack\n2 default tablespace corrupt\n3 temporary tablespace temp;\u00a0\nUser created.\u00a0\nSQL&gt; grant connect , resource ,dba to hack;\nGrant succeeded.\u00a0\nSQL&gt; connect hack\/hack\nConnected.\u00a0\nSQL&gt; create table employe (name varchar2(10));\nTable created.\u00a0\nSQL&gt; insert into employe values ('john');\n1 row created.\u00a0\nSQL&gt; insert into employe values ('bill');\n1 row created.\u00a0\nSQL&gt; insert into employe values ('brad');\n1 row created.\u00a0\nSQL&gt; insert into employe values ('joe');\n1 row created.\u00a0\nSQL&gt; commit;\u00a0\nCommit complete.<\/pre>\n<p>Les donn\u00e9es sont consistantes :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from employe;\u00a0\nNAME\n----------\njohn\nbill\nbrad\njoe<\/pre>\n<p>Puis on corrompt volontairement le fichier physique corrupt01.dbf avec la commande dd:<br \/>\n<code><a href=\"mailto:oracle@l113:~\/psi\/\">oracle@l113:~\/psi\/<\/a><\/code><\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>[TESTDBA] dd of=\/testdba\/db01\/corrupt01.dbf bs=8192 conv=notrunc seek=12 &lt;&lt; EOF\n&gt; blahblah blahblah blahblah blahblah blahblah blahblah blahblah blahblah&gt; blahblahiblahblah blahblah\n&gt; EOF\n0+1 records in\n0+1 records out\n101 bytes (101 B) copied, 8.8e-05 seconds, 1.1 MB\/s<\/pre>\n<p>La consultation des donn\u00e9es de la table employe nous r\u00e9v\u00e8le l&#8217;existence de blocs corrompus :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\"><samp><\/samp>SQL&gt; alter system flush buffer_cache;\n\u00a0System altered.\nSQL&gt; select * from employe;\nselect * from employe\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\nERROR at line 1:\nORA-01578: ORACLE data block corrupted (file # 7, block # 12)\nORA-01110: data file 7: '\/testdba\/db01\/corrupt01.dbf'<\/pre>\n<p>L&#8217;utilisation de RMAN avec l\u2019option \u00abcheck logical\u00bb valide \u00e9galement l&#8217;existence des blocs logiques corrompus. RMAN effectue ainsi \u00e0 la fois une v\u00e9rification des corruptions logiques et physiques. Par d\u00e9faut (sans l&#8217;option check logical) RMAN d\u00e9tecte uniquement la corruption physique.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>RMAN&gt; backup check logical tablespace corrupt;\n\u00a0\nallocated channel: ORA_DISK_1\n\u00a0\nchannel ORA_DISK_1: sid=179 devtype=DISK\n\u00a0\nchannel ORA_DISK_1: starting full datafile backupset\n\u00a0\nchannel ORA_DISK_1: specifying datafile(s) in backupset\n\u00a0\ninput datafile fno=00007 name=\/testdba\/db01\/corrupt01.dbf\n\u00a0\nchannel ORA_DISK_1: starting piece 1 at 23-SEP-11\n\u00a0\nRMAN-00571: ===========================================================\n\u00a0\nRMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============\n\u00a0\nRMAN-00571: ===========================================================\nRMAN-03009: failure of backup command on ORA_DISK_1 channel at 09\/23\/2011 15:39:00\nORA-19566: exceeded limit of 0 corrupt blocks for file \/testdba\/db01\/corrupt01.dbf<\/pre>\n<p>Par contre la vue v$database_block_corruption ne contient aucun enregistrement :<br \/>\n&nbsp;<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from v$database_block_corruption;\nno rows selected<\/pre>\n<p>Le fichier alert.log est lui aussi correctement renseign\u00e9 :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><code><\/code>Reread of blocknum=12, file=\/testdba\/db01\/corrupt01.dbf. found same corrupt data\nReread of blocknum=12, file=\/testdba\/db01\/corrupt01.dbf. found same corrupt data\nReread of blocknum=12, file=\/testdba\/db01\/corrupt01.dbf. found same corrupt data\nReread of blocknum=12, file=\/testdba\/db01\/corrupt01.dbf. found same corrupt data\nReread of blocknum=12, file=\/testdba\/db01\/corrupt01.dbf. found same corrupt data<\/pre>\n<p>Il est n\u00e9cessaire de lancer rman avec l&#8217;option \u00abvalidate check logical\u00bb pour que la vue v$database_block_corruption soit aliment\u00e9e (cf metalink note id ID 471716.1)<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">RMAN&gt; backup validate check logical tablespace corrupt;\n\u00a0\nallocated channel: ORA_DISK_1\n\u00a0\nchannel ORA_DISK_1: sid=186 devtype=DISK\n\u00a0\nchannel ORA_DISK_1: starting full datafile backupset\n\u00a0\nchannel ORA_DISK_1: specifying datafile(s) in backupset\n\u00a0\ninput datafile fno=00007 name=\/testdba\/db01\/corrupt01.dbf\n\u00a0\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01\n\u00a0\nFinished backup at 23-SEP-11\nStarting backup at 23-SEP-11\nSQL&gt; select * from v$database_block_corruption;\u00a0\nFILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION\n----- ------ ------ ------------------ ----------\n\u00a0\u00a0\u00a0 7\u00a0\u00a0\u00a0\u00a0\u00a0 12\u00a0\u00a0\u00a0\u00a0\u00a01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 CORRUPT<\/pre>\n<p>Nous utilisons la m\u00e9thode de block recovery pour r\u00e9parer les blocs corrompus. Il y a bien sur des restrictions pour l&#8217;utilisation de cette m\u00e9thode\u00a0:<\/p>\n<ul>\n<li>la base de donn\u00e9es doit \u00eatre mont\u00e9e ou ouverte<\/li>\n<li>on ne peut pas r\u00e9aliser de block recovery en mode noarchivelog<\/li>\n<li>si RMAN n&#8217;arrive pas \u00e0 acc\u00e9der \u00e0 une archive de fichier redo log particuli\u00e8re, il r\u00e9alise un restore failover , essayant d&#8217;autres backups disponibles. Si aucun backup n&#8217;est disponible, le processus de block recovry via RMAN termine en erreur<\/li>\n<li>En version 10g il est n\u00e9cessaire de poss\u00e9der un backup full du fichier contenant les blocs corrompus, la m\u00e9thode de block media recovery ne peut pas utiliser les backups incr\u00e9mentaux<\/li>\n<\/ul>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">RMAN&gt; run {\n2&gt; allocate channel ch1 type 'sbt_tape';\n3&gt; blockrecover corruption list;\n4&gt; }\u00a0allocated channel: ch1\nchannel ch1: sid=179 devtype=SBT_TAPE\nchannel ch1: Data Protection for Oracle: version 5.5.2.0\u00a0\nStarting blockrecover at 23-SEP-11\u00a0\nchannel ch1: restoring block(s)\nchannel ch1: specifying block(s) to restore from backup set\nrestoring blocks of datafile 00007\nchannel ch1: reading from backup piece df_TESTDBA_762622144_23\nchannel ch1: restored block(s) from backup piece 1\npiece handle=df_TESTDBA_762622144_23 tag=TAG20110923T152904\nchannel ch1: block restore complete, elapsed time: 00:00:16\u00a0\nstarting media recovery\nmedia recovery complete, elapsed time: 00:00:01\u00a0\nFinished blockrecover at 23-SEP-11released channel: ch1<\/pre>\n<p>Les blocs sont maintenant restaur\u00e9s :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from employe;\u00a0\nNAME\n----\njohn\nbill\nbrad\njoe<\/pre>\n<p>Mais la vue v$database_block_corruption contient toujours des donn\u00e9es indiquant qu&#8217;un bloc est corrompu:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from v$database_block_corruption;\u00a0\nFILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION\n----- ------ ------ ------------------ ----------\n\u00a0\u00a0\u00a0 7\u00a0\u00a0\u00a0\u00a0 12\u00a0\u00a0\u00a0\u00a0\u00a0\u00a01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0 CORRUPT<\/pre>\n<p>Il faut relancer un \u00abbackup validate check logical\u00bb pour que les donn\u00e9es de cette vue soient correctes :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">RMAN&gt; backup validate check logical tablespace corrupt;\nStarting backup at 23-SEP-11\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: sid=186 devtype=DISK\nchannel ORA_DISK_1: starting full datafile backupset\nchannel ORA_DISK_1: specifying datafile(s) in backupset\ninput datafile fno=00007 name=\/testdba\/db01\/corrupt01.dbf\nchannel ORA_DISK_1: backup set complete, elapsed time: 00:00:01\nFinished backup at 23-SEP-11\nSQL&gt; select * from v$database_block_corruption;\nno rows selected<\/pre>\n<p>Effectuons \u00e0 pr\u00e9sent les m\u00eames op\u00e9rations avec une bases de donn\u00e9es Oracle en version 11g.<br \/>\nLa commande dd est utilis\u00e9e pour corrompre les donn\u00e9es :<\/p>\n<p><samp style=\"margin-bottom: 0cm;\"><a href=\"mailto:oracle@l113:~\/psi\/\">oracle@l113:~\/psi\/<\/a>\u00a0<\/samp><\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><samp style=\"margin-bottom: 0cm;\"><\/samp>[DORBELV2] dd of=\/dorbelv2\/db01\/data\/corrupt01.dbf bs=8192 conv=notrunc seek=131 &lt;&lt; EOF\n&gt; blahblah blahblah blahblah blahblah blahblah blahblah blahblah blahblah blahblah\n&gt; EOF\n0+1 records in\n0+1 records out\n82 bytes (82 B) copied, 6.8e-05 seconds, 1.2 MB\/s\nSQL&gt; select * from employe;\nselect * from employe\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 *\nERROR at line 1:\nORA-01578: ORACLE data block corrupted (file # 6, block # 131)\nORA-01110: data file 6: '\/dorbelv2\/db01\/data\/corrupt01.dbf'<\/pre>\n<p>L&#8217;interrogation de la vue v$database_block_corruption montre que cette derni\u00e8re est d\u00e9j\u00e0 aliment\u00e9e , il n&#8217;y a plus lieu de lancer rman avec l&#8217;option \u00abvalidate check logical\u00bb:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from v$database_block_corruption;\u00a0\n\u00a0\nFILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTION\n----- ------ ------ ------------------ ----------\n\u00a0\u00a0\u00a0\u00a06\u00a0\u00a0\u00a0 131\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0 CORRUPT<\/pre>\n<p>En version 11g on utilise les nouvelles fonctionnalit\u00e9s RMAN pour r\u00e9parer les blocs corrompus. Il faut bien s\u00fbr avant toute op\u00e9ration de restauration analyser quel est le type de segment impact\u00e9. Si ce segment est de type index, on peut r\u00e9soudre le probl\u00e8me rapidement puisque toutes les donn\u00e9es n\u00e9cessaires \u00e0 la cr\u00e9ation de l&#8217;index sont disponibles. On peut ainsi d\u00e9truire puis recr\u00e9er l&#8217;index. Si la corruption affecte un tablespace temporaire (temporary tablespace), il est possible de supprimer le tablespace et d&#8217;en refaire un nouveau en allouant le nouveau tablespace aux utilisateurs concern\u00e9s (cf metalink note ID 28814.1)<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">RMAN&gt; list failure; \u00a0List of Database Failures ========================= \u00a0Failure ID Priority Status Time Detected Summary\n---------- -------- --------- ------------- -------\n1042 HIGH OPEN 23-SEP-11 Datafile 6: '\/dorbelv2\/db01\/data\/corrupt01.dbf' contains one or more corrupt blocks\nRMAN&gt; advise failure;\n\u00a0List of Database Failures\n=========================\u00a0\nFailure ID Priority Status Time Detected Summary\n---------- -------- ------ ------------- -------\n\u00a0\u00a0\u00a0\u00a0\u00a0 1042\u00a0\u00a0\u00a0\u00a0 HIGH\u00a0\u00a0 OPEN\u00a0\u00a0\u00a0\u00a0\u00a023-SEP-11 Datafile 6: '\/dorbelv2\/db01\/data\/corrupt01.dbf' contains one or more corrupt blocks\nanalyzing automatic repair options;\nthis may take some time\nallocated channel: ORA_DISK_1\nchannel ORA_DISK_1: SID=19 device type=DISK\nanalyzing automatic repair options complete\nMandatory Manual Actions\n========================\nno manual actions available\u00a0\nOptional Manual Actions\n=======================\nno manual actions available\nAutomated Repair Options\n========================\nOption Repair Description\n------ ------------------\n\u00a0Perform block media recovery of block 131 in file 6\nStrategy: The repair includes complete media recovery with no data loss\nRepair script: \/dorbelv2\/sys01\/dump\/diag\/rdbms\/dorbelv2\/DORBELV2\/hm\/reco_3548441823.hm\n\nRMAN&gt; repair failure; Strategy: The repair includes complete media recovery with no data loss Repair script: \/dorbelv2\/sys01\/dump\/diag\/rdbms\/dorbelv2\/DORBELV2\/hm\/reco_3548441823.hm\ncontents of repair script:\n# block media recovery\u00a0\nrecover datafile 6 block 131;\u00a0\nDo you really want to execute the above repair (enter YES or NO)?\nyes\nexecuting repair script\nStarting recover at 23-SEP-11\nusing channel ORA_DISK_1\u00a0channel ORA_DISK_1:\nrestoring block(s)channel ORA_DISK_1:\nspecifying block(s) to restore from backup set\nrestoring blocks of datafile 00006\nchannel ORA_DISK_1: reading from backup piece \/mnt\/oratmp\/df_DORBELV2_762623690_3\nchannel ORA_DISK_1: piece handle=\/mnt\/oratmp\/df_DORBELV2_762623690_3 tag=TAG20110923T155449channel ORA_DISK_1: restored block(s) from backup piece 1\nchannel ORA_DISK_1: block restore complete, elapsed time: 00:00:01\u00a0\nstarting media recovery\nmedia recovery complete, elapsed time: 00:00:01\nFinished recover at 23-SEP-11\nrepair failure complete<\/pre>\n<p>Les donn\u00e9es sont \u00e0 nouveau correctes :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from employe;\u00a0\nNAME\n----\njohn\nbill\nbrad\njoe<\/pre>\n<p>La vue v$database_block_corruption est correctement renseign\u00e9e sans avoir eu besoin de lancer un backup validate:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">SQL&gt; select * from v$database_block_corruption;\nno rows selected<\/pre>\n<p>Ainsi en version 11g, chaque fois qu&#8221;il y a une d\u00e9tection de blocs corrompus la vue v$database_block_corruption est aliment\u00e9e. Une r\u00e9paration des blocs corrompus entraine une suppression des m\u00e9ta donn\u00e9es de cette vue.<br \/>\nLes diff\u00e9rentes techniques de r\u00e9paration de blocs corrompus incluent les m\u00e9thodes de block recovery, de restauration de fichiers physiques ou de restauration via un backup incr\u00e9mental. Cependant bien que la m\u00e9thode de block recovery puisse r\u00e9parer les corruptions physiques elle ne peut r\u00e9parer les corruptions logiques (cf metalink note ID 391120.1)<\/p>\n<h3>Conclusion :<\/h3>\n<p>La version Oracle 11g a am\u00e9lior\u00e9 la gestion de la vue v$database_block_corruption ainsi que la d\u00e9tection des blocs corrompus. De plus l&#8217;utilisation des nouvelles fonctionnalit\u00e9s RMAN telles que list, advise ou repair failure permettent un diagnostic et une r\u00e9paration rapide et efficace.<br \/>\nJe recommanderais par ailleurs l&#8217;utilisation syst\u00e9matique de l&#8217;option check logical dans les ordres de backup RMAN,. Il y a certes un l\u00e9ger overhead au niveau des temps de sauvegarde, mais il est toujours pr\u00e9f\u00e9rable de d\u00e9tecter les blocs corrompus au plus t\u00f4t. Dans ce contexte il peut \u00eatre \u00e9galement int\u00e9ressant d&#8217;\u00e9valuer l&#8217;utilisation de l&#8217;option DB_BLOCK_CHECKING=YES dans le fichier init.ora ou spfile.ora (cf metalink note ID 32969.1). Bien \u00e9videmment avant d&#8217;impl\u00e9menter ces solutions en production il est n\u00e9cessaire de les tester.<br \/>\nDe plus en version 11g, la mise en place d&#8217;un script\/outil retournant la valeur des donn\u00e9es de v$database_block_corruption peut s&#8217;av\u00e9rer n\u00e9cessaire. En effet ajouter un check des blocs corrompus est int\u00e9ressant mais il convient d&#8217;en \u00eatre inform\u00e9 rapidement.<\/p>\n","protected":false},"excerpt":{"rendered":"<p lang=\"fr-FR\">Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption. Je vous livre dans ce post le r\u00e9sultat de mes tests.<\/p>\n","protected":false},"author":27,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[268,269,33,17,226,270],"type_dbi":[],"class_list":["post-2347","post","type-post","status-publish","format-standard","hentry","category-hardware-storage","tag-blockrecover","tag-corruption","tag-oracle-10g-to-8i","tag-oracle-11g","tag-recovery","tag-rman"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Block Corruption Oracle 10g vs Oracle 11g - dbi Blog<\/title>\n<meta name=\"description\" content=\"Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Block Corruption Oracle 10g vs Oracle 11g\" \/>\n<meta property=\"og:description\" content=\"Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2011-11-11T13:05:00+00:00\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Block Corruption Oracle 10g vs Oracle 11g\",\"datePublished\":\"2011-11-11T13:05:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\"},\"wordCount\":1140,\"commentCount\":0,\"keywords\":[\"Blockrecover\",\"Corruption\",\"Oracle 10g to 8i\",\"Oracle 11g\",\"Recovery\",\"RMAN\"],\"articleSection\":[\"Hardware &amp; Storage\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\",\"name\":\"Block Corruption Oracle 10g vs Oracle 11g - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"datePublished\":\"2011-11-11T13:05:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"description\":\"Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Block Corruption Oracle 10g vs Oracle 11g\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Block Corruption Oracle 10g vs Oracle 11g - dbi Blog","description":"Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/","og_locale":"en_US","og_type":"article","og_title":"Block Corruption Oracle 10g vs Oracle 11g","og_description":"Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption.","og_url":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/","og_site_name":"dbi Blog","article_published_time":"2011-11-11T13:05:00+00:00","author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Block Corruption Oracle 10g vs Oracle 11g","datePublished":"2011-11-11T13:05:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/"},"wordCount":1140,"commentCount":0,"keywords":["Blockrecover","Corruption","Oracle 10g to 8i","Oracle 11g","Recovery","RMAN"],"articleSection":["Hardware &amp; Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/","url":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/","name":"Block Corruption Oracle 10g vs Oracle 11g - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2011-11-11T13:05:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"description":"Ayant rencontr\u00e9 r\u00e9cemment des probl\u00e8mes de blocs corrompus sur des bases Oracle en version Oracle 10g et Oracle 11g, des diff\u00e9rences notables sont apparues notamment au niveau de la vue v$database_block_corruption.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/block-corruption-oracle-10g-vs-oracle-11g\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Block Corruption Oracle 10g vs Oracle 11g"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=2347"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2347\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=2347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=2347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=2347"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=2347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}