<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: IOUG Collaborate 07: Oracle Block Change Tracking Internals</title>
	<atom:link href="http://www.pythian.com/news/467/ioug-collaborate-07-oracle-block-change-tracking-internals/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pythian.com/news/467/ioug-collaborate-07-oracle-block-change-tracking-internals/</link>
	<description>News and views from Pythian DBAs</description>
	<lastBuildDate>Fri, 10 Feb 2012 13:01:25 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
	<item>
		<title>By: Alex Gorbachev</title>
		<link>http://www.pythian.com/news/467/ioug-collaborate-07-oracle-block-change-tracking-internals/#comment-373544</link>
		<dc:creator>Alex Gorbachev</dc:creator>
		<pubDate>Sat, 05 Sep 2009 03:10:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/467/ioug-collaborate-07-oracle-block-change-tracking-internals#comment-373544</guid>
		<description>Some of the block change tracking flows are asynchronous so the you might not have exact block counts in both cases (actually, those are chunk counts as it tracks dirty chunks of 32K so if you are 8K blocks - it&#039;s 4 block per chunk).

I have also never used DBMS_BACKUP_RESTORE.BCTSWITCH procedure but did incremental backup of the tablespace/datafile I&#039;m working with. Maybe you wanna do that.

Also, how do you detect mismatches during the restore?</description>
		<content:encoded><![CDATA[<p>Some of the block change tracking flows are asynchronous so the you might not have exact block counts in both cases (actually, those are chunk counts as it tracks dirty chunks of 32K so if you are 8K blocks &#8211; it&#8217;s 4 block per chunk).</p>
<p>I have also never used DBMS_BACKUP_RESTORE.BCTSWITCH procedure but did incremental backup of the tablespace/datafile I&#8217;m working with. Maybe you wanna do that.</p>
<p>Also, how do you detect mismatches during the restore?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup</title>
		<link>http://www.pythian.com/news/467/ioug-collaborate-07-oracle-block-change-tracking-internals/#comment-373391</link>
		<dc:creator>Anup</dc:creator>
		<pubDate>Fri, 04 Sep 2009 04:48:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/467/ioug-collaborate-07-oracle-block-change-tracking-internals#comment-373391</guid>
		<description>Hi Alex,

Thanks for your reply. I am doing some tests with BCT on Linux platform. Database is 11.1.0. 

I am referring X$KRCBIT view and using DBMS_BACKUP_RESTORE.BCTSWITCH(fileId) procedure. 

Total rows in a table:

SQL&gt;select count(*) from qa.tbs10;

COUNT(*)
--------------------
6148862


Scenario 1:
1] Bitmap version for datafile #8 is 1.
2] update qa.tbs10 set L_ORDERKEY=1000;
3] Dont switch the bitmap version during update.
4] After update is done, query X$KRCBIT view.

SQL&gt;select count(*) from x$krcbit where fno=8 and vercnt=1;

COUNT(*)
--------------------
50102

Scenario 2:
1] Switch the bitmap version for datafile #8, so that current version is 2.
2] update qa.tbs10 set L_ORDERKEY=200;
3] Before update completes, switch the bitmap version again. The current version is 3 now.
4] After update query the X$KRCBIT view for bitmap version 2 and 3. 
SQL&gt;select count(*) from x$krcbit where fno=8 and vercnt=2;

COUNT(*)
--------------------
6495

SQL&gt;select count(*) from x$krcbit where fno=8 and vercnt=3;

COUNT(*)
--------------------
43585

==&gt; Total : 50080

5] The total count should be 50102, but it is 50080. There is a loss of 22 blocks. 

It seems that datafile blocks which are updated during bitmap version switch are not there in any bitmap version.

During recovery I could see some partial data mismatch. It is not consistent though. I have also raised a TAR with Oracle for this.

Have you ever come across such a scenario?

Thanks
Anup</description>
		<content:encoded><![CDATA[<p>Hi Alex,</p>
<p>Thanks for your reply. I am doing some tests with BCT on Linux platform. Database is 11.1.0. </p>
<p>I am referring X$KRCBIT view and using DBMS_BACKUP_RESTORE.BCTSWITCH(fileId) procedure. </p>
<p>Total rows in a table:</p>
<p>SQL&gt;select count(*) from qa.tbs10;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
6148862</p>
<p>Scenario 1:<br />
1] Bitmap version for datafile #8 is 1.<br />
2] update qa.tbs10 set L_ORDERKEY=1000;<br />
3] Dont switch the bitmap version during update.<br />
4] After update is done, query X$KRCBIT view.</p>
<p>SQL&gt;select count(*) from x$krcbit where fno=8 and vercnt=1;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
50102</p>
<p>Scenario 2:<br />
1] Switch the bitmap version for datafile #8, so that current version is 2.<br />
2] update qa.tbs10 set L_ORDERKEY=200;<br />
3] Before update completes, switch the bitmap version again. The current version is 3 now.<br />
4] After update query the X$KRCBIT view for bitmap version 2 and 3.<br />
SQL&gt;select count(*) from x$krcbit where fno=8 and vercnt=2;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
6495</p>
<p>SQL&gt;select count(*) from x$krcbit where fno=8 and vercnt=3;</p>
<p>COUNT(*)<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
43585</p>
<p>==&gt; Total : 50080</p>
<p>5] The total count should be 50102, but it is 50080. There is a loss of 22 blocks. </p>
<p>It seems that datafile blocks which are updated during bitmap version switch are not there in any bitmap version.</p>
<p>During recovery I could see some partial data mismatch. It is not consistent though. I have also raised a TAR with Oracle for this.</p>
<p>Have you ever come across such a scenario?</p>
<p>Thanks<br />
Anup</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex Gorbachev</title>
		<link>http://www.pythian.com/news/467/ioug-collaborate-07-oracle-block-change-tracking-internals/#comment-373167</link>
		<dc:creator>Alex Gorbachev</dc:creator>
		<pubDate>Thu, 03 Sep 2009 12:45:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/467/ioug-collaborate-07-oracle-block-change-tracking-internals#comment-373167</guid>
		<description>I&#039;m writing this by memory so...

When incremental backup starts - there is incremental backup checkpoint SCN - that&#039;s what used. Block with SCN below that - previous bitmal. All others - the following bitmap.

Also, CKPT process is synchronized with incremental backup SCN&#039;s and that&#039;s the process that processes info on the way from processes actually updating the blocks and the bitmap itself.

Alex</description>
		<content:encoded><![CDATA[<p>I&#8217;m writing this by memory so&#8230;</p>
<p>When incremental backup starts &#8211; there is incremental backup checkpoint SCN &#8211; that&#8217;s what used. Block with SCN below that &#8211; previous bitmal. All others &#8211; the following bitmap.</p>
<p>Also, CKPT process is synchronized with incremental backup SCN&#8217;s and that&#8217;s the process that processes info on the way from processes actually updating the blocks and the bitmap itself.</p>
<p>Alex</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anup</title>
		<link>http://www.pythian.com/news/467/ioug-collaborate-07-oracle-block-change-tracking-internals/#comment-373128</link>
		<dc:creator>Anup</dc:creator>
		<pubDate>Thu, 03 Sep 2009 10:51:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.pythian.com/blogs/467/ioug-collaborate-07-oracle-block-change-tracking-internals#comment-373128</guid>
		<description>Hi,

As per my understanding, RMAN switches the bitmap version of the datafiles at the starting of incremental backups.

If some of the datafile blocks get updated at the time of switching the bitmap version, how does Oracle keep track of those blocks.

In this scenario, these changed blocks will not be there in the current (new) bitmap version as well as previous bitmap version.

How does Oracle make sure that these blocks are backed up during next incremental backups.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>As per my understanding, RMAN switches the bitmap version of the datafiles at the starting of incremental backups.</p>
<p>If some of the datafile blocks get updated at the time of switching the bitmap version, how does Oracle keep track of those blocks.</p>
<p>In this scenario, these changed blocks will not be there in the current (new) bitmap version as well as previous bitmap version.</p>
<p>How does Oracle make sure that these blocks are backed up during next incremental backups.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

