<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oracle - Concepts et Exemples &#187; move</title>
	<atom:link href="https://blog.developpez.com/pachot/tag/move/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/pachot</link>
	<description>Les fonctionalités et concepts d&#039;Oracle à partir de traductions et de démos</description>
	<lastBuildDate>Sun, 03 Apr 2016 20:36:21 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>12c: déplacer un datafile online</title>
		<link>https://blog.developpez.com/pachot/12c_move_datafile/</link>
		<comments>https://blog.developpez.com/pachot/12c_move_datafile/#comments</comments>
		<pubDate>Fri, 05 Jul 2013 17:00:00 +0000</pubDate>
		<dc:creator><![CDATA[pachot]]></dc:creator>
				<category><![CDATA[12c]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[online]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/pachot/?p=351</guid>
		<description><![CDATA[Jusqu&#8217;en 11g pour déplacer un datafile (pour le mettre sur un autre filesystem) il fallait: mettre le tablespace offline copier le(s) fichier(s) à partir de l&#8217;OS faire ALTER DATABASE RENAME FILE &#8230; TO &#8230; Pour diminuer le downtime, il est &#8230; <a href="https://blog.developpez.com/pachot/12c_move_datafile/">Lire la suite <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Jusqu&rsquo;en 11g pour déplacer un datafile (pour le mettre sur un autre filesystem) il fallait:</p>
<ul>
<li>mettre le tablespace offline</li>
<li>copier le(s) fichier(s) à partir de l&rsquo;OS</li>
<li>faire ALTER DATABASE RENAME FILE &#8230; TO &#8230;</li>
</ul>
<p>Pour diminuer le downtime, il est aussi possible de faire la copie sans mettre le tablespace offline, seulement en BEGIN BACKUP. Puis il n&rsquo;y aura qu&rsquo;à le mettre offline que pendant le recovery.</p>
<p>En 12c, plus de problème. Il suffit de faire : ALTER DATABASE MOVE DATAFILE &#8230; TO &#8230;;</p>
<p>C&rsquo;est une opération totalement online, sans aucun verrou, et très peu d&rsquo;overhead: simplement pendant que Oracle fait la copie de fichier, les process qui veulent y accéder en écriture écriront à la fois dans l&rsquo;ancien fichier et le nouveau.<br />
Et ils liront uniquement l&rsquo;ancien jusqu&rsquo;à ce que la copie soit terminée.<br />
Une fois que la copie est terminée, ils liront uniquement le nouveau fichier. Et l&rsquo;ancien fichier sera supprimé sauf si on a précisé KEEP.</p>
<p><ins datetime="2013-06-26T19:34:14+00:00">La <a href="http://ora-demo.pachot.net/12c_move_datafile.html" title="demo" target="_blank">demo</a> montre les statistiques de session lors d&rsquo;une activité sur un tablespace en cours de move.</ins></p>
<p>On voit cette double écriture dans &lsquo;physical write total bytes&rsquo;. Par contre, on ne voit jamais les fichiers en double (et ils ont le même file_id), sauf si in regarde au niveau de l&rsquo;OS.<br />
L&rsquo;opération ne modifie que le controlfile, c&rsquo;est donc indépendant sur des bases en DataGuard, et ce n&rsquo;est pas concerné par flashback database.</p>
<p>Dans l&rsquo;alert.log on voit au début de l&rsquo;opération:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Moving datafile /tmp/TESTMOVE1.dbf (2) to /tmp/TESTMOVE2.dbf</div></div>
<p>A partir de ce moment la session crée le fichier secondaire et signale aux autres session qu&rsquo;elles doivent écrire en double vers ce fichier aussi.<br />
Puis la copie commence (&lsquo;db file sequential read&rsquo; et &lsquo;db file single write&rsquo; par i/o de 1MB)</p>
<p>puis lorsque tous les blocs sont copiés, on voit:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Move operation committed for file /tmp/TESTMOVE2.dbf</div></div>
<p>les session peuvent alors ne travailler que sur le deuxième fichier. Puis l&rsquo;ancien fichier est supprimé.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Completed: alter database move datafile '/tmp/TESTMOVE1.dbf' to '/tmp/TESTMOVE2.dbf'</div></div>
<p>Oracle a introduit ça pour pouvoir déplacer des partitions vers un storage moins cher au lieu de purger/archiver.<br />
Mais c&rsquo;est aussi une solution pour passer en ASM sans arrêt de la base, ou pour n&rsquo;importe quel changement de filesystem.<br />
En ASM, pas besoin de cela: on a l&rsquo;équivalent en rajoutant le nouveau disque et en supprimant l&rsquo;ancien.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
