<?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>CETURK &#187; Oracle</title>
	<atom:link href="http://www.ceturk.com/etiket/oracle/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Wed, 25 Jan 2012 10:19:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Oracle &amp; High Availability -2 [Video]</title>
		<link>http://www.ceturk.com/oracle-high-availability-2-video/</link>
		<comments>http://www.ceturk.com/oracle-high-availability-2-video/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 12:07:07 +0000</pubDate>
		<dc:creator>Mehmet ACA</dc:creator>
				<category><![CDATA[CETURK TV]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Seminerler]]></category>
		<category><![CDATA[Veri Tabanı]]></category>
		<category><![CDATA[Azerbaycan Oracle Konferansı]]></category>
		<category><![CDATA[Oracle High availability]]></category>
		<category><![CDATA[Oracle Video]]></category>
		<category><![CDATA[Teymur Hacıyev]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=8194</guid>
		<description><![CDATA[CETURK Azerbaycan Oracle Konferansı&#8216;nda Teymur Hacıyev&#8217;in &#8220;Oracle &#38; High Availability&#8221; konulu sunumunun 2. bölümü: Sunumun 1. bölümü için tıklayınız. Oracle &#38; High availability Oracle veritabanı yüksek kullanılabilirlik (High Availability) özelliklerini kapsamlı bir şekilde sunan, sektörde benzersiz bir üründür. Real Application Clusters (RAC), Data Guard, Automatic Storage Management (ASM), Flashback, Recovery Manager (RMAN), Online Reorganization, Edition-based [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ceturk.com/ceturk-azerbaycan-oracle-konferansi">CETURK Azerbaycan Oracle Konferansı</a>&#8216;nda Teymur Hacıyev&#8217;in &#8220;Oracle &amp; High Availability&#8221; konulu sunumunun 2. bölümü:<strong></strong></p>
<iframe src="http://player.vimeo.com/video/27849942" width="690" height="415" frameborder="0"></iframe>
<p>Sunumun 1. bölümü için <a href="http://www.ceturk.com/teymur-haciyev-oracle-high-availability-seminer-video">tıklayınız.</a></p>
<h3>Oracle &amp; High availability</h3>
<p><img class="size-full wp-image-8176 alignleft" title="teymur-haciyev" src="http://www.ceturk.com/images/teymur-haciyev.jpg" alt="" width="99" height="132" />Oracle veritabanı yüksek kullanılabilirlik (High Availability) özelliklerini kapsamlı bir şekilde sunan, sektörde benzersiz bir üründür. Real Application Clusters (RAC), Data Guard, Automatic Storage Management (ASM), Flashback, Recovery Manager (RMAN), Online Reorganization, Edition-based Redefinition gibi yüksek kullanılabilirlik özelliklerini barındırır. Bu özellikler ile entegre bir şekilde çalışabilen Oracle Secure Backup ve Oracle GoldenGate gibi tamamlayıcı ürünler, planlı ve plansız kesintileri azaltacak en iyi çözümü sunmaktadır. Bu seminerde yüksek kullanılabilirlik hakkında bilgi sahibi olacağız.</p>
<h3>Oracle &amp; High availability (Azerice)</h3>
<p>Oracle verilənlər bazası yüksək mövcudluq (High Availability) xüsusiyyətlərini əhatəli bir şəkildə təqdim edən, sektorda bənzərsiz bir məhsuldur. Real Application Clusters (Rac), Data Guard, Automatic Storage Management (ASM), Flashback, Recovery Manager (RMAN), Qonaqlar Reorganization, Edition-based Redefinition kimi yüksək mövcudluq xüsusiyyətlərini saxlayır. Bu xüsusiyyətlər ilə inteqrasiya bir şəkildə işləyə bilən Oracle Secure Backup və Oracle GoldenGate kimi tamamlayıcı məhsullar, planlı və plansız kəsilməyə azaldacaq ən yaxşı həlli təqdim etməkdədir. Bu seminarda yüksək mövcudluq haqqında məlumat sahibi olacağıq.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/oracle-high-availability-2-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/oracle_high_availability.jpg" length="42595" type="image/jpg" />	</item>
		<item>
		<title>Oracle &amp; High Availability -1 [Video]</title>
		<link>http://www.ceturk.com/teymur-haciyev-oracle-high-availability-seminer-video/</link>
		<comments>http://www.ceturk.com/teymur-haciyev-oracle-high-availability-seminer-video/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 10:23:13 +0000</pubDate>
		<dc:creator>Mehmet ACA</dc:creator>
				<category><![CDATA[CETURK TV]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Seminerler]]></category>
		<category><![CDATA[Azerbaycan Oracle Konferansı]]></category>
		<category><![CDATA[Oracle High availability]]></category>
		<category><![CDATA[Oracle Video]]></category>
		<category><![CDATA[Teymur Hacıyev]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=8175</guid>
		<description><![CDATA[CETURK Azerbaycan Oracle Konferansı&#8216;nda Teymur Hacıyev&#8217;in &#8220;Oracle &#38; High Availability&#8221; konulu sunumunun 1. bölümü: Oracle &#38; High availability Oracle veritabanı yüksek kullanılabilirlik (High Availability) özelliklerini kapsamlı bir şekilde sunan, sektörde benzersiz bir üründür. Real Application Clusters (RAC), Data Guard, Automatic Storage Management (ASM), Flashback, Recovery Manager (RMAN), Online Reorganization, Edition-based Redefinition gibi yüksek kullanılabilirlik özelliklerini [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ceturk.com/ceturk-azerbaycan-oracle-konferansi">CETURK Azerbaycan Oracle Konferansı</a>&#8216;nda Teymur Hacıyev&#8217;in &#8220;Oracle &amp; High Availability&#8221; konulu sunumunun 1. bölümü:<strong></strong></p>
<iframe src="http://player.vimeo.com/video/27846870" width="690" height="415" frameborder="0"></iframe>
<h3>Oracle &amp; High availability</h3>
<p><img class="size-full wp-image-8176 alignleft" title="teymur-haciyev" src="http://www.ceturk.com/images/teymur-haciyev.jpg" alt="" width="99" height="132" />Oracle veritabanı yüksek kullanılabilirlik (High Availability) özelliklerini kapsamlı bir şekilde sunan, sektörde benzersiz bir üründür. Real Application Clusters (RAC), Data Guard, Automatic Storage Management (ASM), Flashback, Recovery Manager (RMAN), Online Reorganization, Edition-based Redefinition gibi yüksek kullanılabilirlik özelliklerini barındırır. Bu özellikler ile entegre bir şekilde çalışabilen Oracle Secure Backup ve Oracle GoldenGate gibi tamamlayıcı ürünler, planlı ve plansız kesintileri azaltacak en iyi çözümü sunmaktadır. Bu seminerde yüksek kullanılabilirlik hakkında bilgi sahibi olacağız.</p>
<h3>Oracle &amp; High availability</h3>
<p>Oracle verilənlər bazası yüksək mövcudluq (High Availability) xüsusiyyətlərini əhatəli bir şəkildə təqdim edən, sektorda bənzərsiz bir məhsuldur. Real Application Clusters (Rac), Data Guard, Automatic Storage Management (ASM), Flashback, Recovery Manager (RMAN), Qonaqlar Reorganization, Edition-based Redefinition kimi yüksək mövcudluq xüsusiyyətlərini saxlayır. Bu xüsusiyyətlər ilə inteqrasiya bir şəkildə işləyə bilən Oracle Secure Backup və Oracle GoldenGate kimi tamamlayıcı məhsullar, planlı və plansız kəsilməyə azaldacaq ən yaxşı həlli təqdim etməkdədir. Bu seminarda yüksək mövcudluq haqqında məlumat sahibi olacağıq.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/teymur-haciyev-oracle-high-availability-seminer-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/oracle_high_availability.jpg" length="42595" type="image/jpg" />	</item>
		<item>
		<title>Ramin Orucov &#8211; Career path to become Oracle Developer Video</title>
		<link>http://www.ceturk.com/ramin-orucov-career-path-to-become-oracle-developer-video/</link>
		<comments>http://www.ceturk.com/ramin-orucov-career-path-to-become-oracle-developer-video/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 15:11:25 +0000</pubDate>
		<dc:creator>Mehmet ACA</dc:creator>
				<category><![CDATA[CETURK TV]]></category>
		<category><![CDATA[Etkinlikler]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Azerbaycan Oracle Konferansı]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Ramin Orucov]]></category>
		<category><![CDATA[Seminer]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=8036</guid>
		<description><![CDATA[1. Bölüm &#160; 2. Bölüm Oracle yazılımcı nasıl olunur? Oracle yazılımcının bilmesi gereken konular hangilerdir? Oracle SQL ve PL/SQL sertifikaları hangilerdir? Bu sertifikaları almak için neleri bilmek ve hangi sınavları geçmek lazım? Azerice : Oracle proqramçı necə olmaq olar? Oracle proqramçı nələri bilməlidir? Oracle SQL və PL/SQL sertifikatları hansılardır? Bu sertifikatları almaq üçün nələri bilmək [...]]]></description>
			<content:encoded><![CDATA[<p>1. Bölüm<br />
<object width="398" height="299"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=27194643&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed type="application/x-shockwave-flash" width="398" height="299" src="http://vimeo.com/moogaloop.swf?clip_id=27194643&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>&nbsp;</p>
<p>2. Bölüm</p>
<p><object width="398" height="299"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=27191549&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed type="application/x-shockwave-flash" width="398" height="299" src="http://vimeo.com/moogaloop.swf?clip_id=27191549&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>Oracle yazılımcı nasıl olunur? Oracle yazılımcının  bilmesi gereken konular hangilerdir? Oracle SQL ve PL/SQL sertifikaları  hangilerdir? Bu sertifikaları almak için neleri bilmek ve hangi sınavları  geçmek lazım?</p>
<p><strong>Azerice :</strong><br />
Oracle  proqramçı necə olmaq olar? Oracle proqramçı nələri bilməlidir? Oracle SQL və  PL/SQL sertifikatları hansılardır? Bu sertifikatları almaq üçün nələri bilmək və  hansı imtahanları keçmək lazımdır?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/ramin-orucov-career-path-to-become-oracle-developer-video/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Azerbaycan Oracle Konferansı Gerçekleştirildi</title>
		<link>http://www.ceturk.com/azerbaycan-oracle-konferansi-gerceklestirildi/</link>
		<comments>http://www.ceturk.com/azerbaycan-oracle-konferansi-gerceklestirildi/#comments</comments>
		<pubDate>Tue, 10 May 2011 08:29:29 +0000</pubDate>
		<dc:creator>Mehmet ACA</dc:creator>
				<category><![CDATA[Etkinlikler]]></category>
		<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Azerbaycan Oracle Konferansı]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[Kamran Agayev]]></category>
		<category><![CDATA[Mehmet Aca]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Oracle Career]]></category>
		<category><![CDATA[Oracle Database Architecture]]></category>
		<category><![CDATA[Oracle Disaster Recovery]]></category>
		<category><![CDATA[Oracle High availability]]></category>
		<category><![CDATA[Ramin Orucov]]></category>
		<category><![CDATA[Talip Hakan Öztürk]]></category>
		<category><![CDATA[Teymur Hacıyev]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7787</guid>
		<description><![CDATA[7 Mayıs 2011 tarihinde Azerbaycan Oracle Konferansı&#8217;nı Gəncliyə Yardım Fondu‘nda gerçekleştirdik. Bu konferans CETURK&#8217;un Yurt dışındaki organizasyonlarının ilkiydi. Konferansta Talip Hakan Öztürk &#8220;Oracle Database Architecture&#8221; ve &#8220;Oracle Disaster Recovery &#8221; sunumları, Ramin Orucov &#8220;Career path to become Oracle Developer&#8221; sunumu, Teymur Hacıyev &#8220;Oracle &#38; High availability&#8221; sunumu yaptı. Kamran Agayev rahatsızlığı nedeniyle planlanan &#8220;RMAN (Backup [...]]]></description>
			<content:encoded><![CDATA[<p>7 Mayıs 2011 tarihinde Azerbaycan Oracle Konferansı&#8217;nı Gəncliyə Yardım Fondu‘nda gerçekleştirdik. Bu konferans CETURK&#8217;un Yurt dışındaki organizasyonlarının ilkiydi.<br />
Konferansta Talip Hakan Öztürk &#8220;<strong>Oracle Database Architecture</strong>&#8221; ve<strong> &#8220;Oracle Disaster Recovery</strong> &#8221; sunumları, Ramin Orucov &#8220;<strong>Career path to become Oracle Developer</strong>&#8221; sunumu, Teymur Hacıyev &#8220;<strong>Oracle &amp; High availability</strong>&#8221; sunumu yaptı.<br />
Kamran Agayev rahatsızlığı nedeniyle planlanan &#8220;RMAN (Backup and Recovery)&#8221; sunumunu gerçekleştiremedi.</p>
<p><img class="alignnone" src="http://www.ceturk.com/images/azerbaycan_05_11.png" alt="" width="340" height="250" /></p>
<p>Koneransa çok sayıda Türk ve Azeri öğrenci ve sektörde çalışan kişi katıldı.</p>
<p>Konferansta bize ev sahipliği yapan  <strong>Gəncliyə Yardım Fondu</strong>&#8216;na, gönüllü konuşmacı olarak katılan T<strong>alip Hakan Öztürk, Ramin Orucov, Teymur Hacıyev ve Kamran Agayev&#8217;</strong>e, konferansın organizasyonunda çok büyük emeği olan <strong>Gökhan Uysal</strong>&#8216;a  ayrıca konferans boyunca bize yardımcı olan <strong>Onur Kayhan ve Mehmet Kılıç</strong>&#8216;a , ilgilenen ve etkinliğe katılan herkese çok teşekkür ederiz.<br />
<img class="alignleft size-full wp-image-7789" title="azerbaycan-oracle-konferansi-2011" src="http://www.ceturk.com/images/azerbaycan-oracle-konferansi-2011-2.jpg" alt="" width="720" height="540" /></p>
<p>Konferansta yaptığımız çekiliş ile aşağıda ismi verilen arkadaşlar kitap kazandı.</p>
<ul>
<li>Ensar Erdoğan</li>
<li>Gökhan Uysal</li>
<li>Hasan Pehlivanlar</li>
<li>Serhat Koca</li>
<li>Murad İmanbəyli</li>
<li>Selçuk Karabulut</li>
</ul>
<p>&nbsp;</p>
<p>Konferansı sitesinde duyurup bize destek olan aşağıda ismi- site ismi geçen tüm arkadaşlara da çok teşekkür ederiz. Bu arkadaşlardan yaptığımız çekiliş ile 10 kişi kitap kazandı. Kazanan arkadaşlar <strong><span style="color: #ff0000;">kırmızı renk</span></strong> ile belirtilmiştir.</p>
<p>&nbsp;</p>
<ol>
<li> <a href="http://bahruzqasimov.wordpress.com/2011/04/11/ceturk-%E2%80%93-azerbaycan-oracle-konferansi/" target="_blank">Bahruz Qasimov</a></li>
<li> <strong><a href="http://www.hazirnotlar.com/" target="_blank"><span style="color: #ff0000;">Hazır Notlar</span></a></strong></li>
<li> <strong><a href="http://www.mesutcan.net/gunluk/ceturk-azerbaycan-oracle-konferansi/" target="_blank"><span style="color: #ff0000;">Mesut Can</span></a></strong></li>
<li> <a href="http://alpamisce.blogspot.com/2011/04/ceturk-azerbaycan-oracle-konferans.html" target="_blank">Ünal Yürük</a></li>
<li> <a href="http://www.suleymanpasa.com/blog/?p=2701" target="_blank">Süleyman Paşa</a></li>
<li> <strong><a href="http://mturkergultepe.com/archives/1334" target="_blank"><span style="color: #ff0000;">Mustafa Türker Gültepe</span></a></strong></li>
<li> <a href="http://aba-ca.blogspot.com/2011/04/ceturk-azerbaycan-oracle-konferans.html" target="_blank">ABA CA</a></li>
<li> <strong><a href="http://www.mehmetdemircioglu.com/" target="_blank"><span style="color: #ff0000;">Mehmet Demircioğlu</span></a></strong></li>
<li> <strong><a href="http://www.atillabingol.com.tr/2011/04/20/azerbaycan-oracle-konferansi/" target="_blank"><span style="color: #ff0000;">Atilla Bingöl</span></a></strong></li>
<li> <a href="http://semihkirdinli.blogcu.com/ceturk-azerbaycan-oracle-konferansi/10234447" target="_blank">Semih Kirdinli</a></li>
<li> <strong><a href="http://serhat.altinevlek.com/2011/04/20/ceturk-azerbaycan-oracle-konferansi/" target="_blank"><span style="color: #ff0000;">Serhat Altınevlek</span></a></strong></li>
<li> <a href="http://www.cenkpurtas.tk/" target="_blank">Cenk Pürtaş</a></li>
<li> <strong><a href="http://blog.sakamali.com/2011/04/ceturk-azerbaycan-oracle-konferansi/" target="_blank"><span style="color: #ff0000;">Salih Kamalı</span></a></strong></li>
<li> <strong><a href="http://www.bilalpostaci.com/ceturk.html" target="_blank"><span style="color: #ff0000;">Bilal Postacı</span></a></strong></li>
<li> <strong><a href="http://fatihuzuner.tk/ceturk-azerbaycan-oracle-konferansi.html/" target="_blank"><span style="color: #ff0000;">Fatih Uzuner</span></a></strong></li>
<li> <a href="http://kayhan.akcay.ca/" target="_blank">Kayhan Akcay</a></li>
<li> <a href="http://weblog.ulutas.net/2011/04/ceturk-azerbeycan-oracle-konferansi/" target="_blank">Şaban Ulutaş</a></li>
<li><a href="http://codinglifestyle.blogspot.com/2011/04/ceturk-azerbaycan-oracle-konferans.html" target="_blank">Seyfi Aktay</a></li>
<li><a href="http://pcalemi.blogspot.com/2011/04/azerbaycan-oracle-konferans.html" target="_blank">Burak Benli</a></li>
<li><a href="http://blog.omersehap.com/ceturk-%E2%80%93-azerbaycan-oracle-konferansi/" target="_blank">Ömer Şehap</a></li>
<li><strong><a href="http://yasingultekin.com/index.php?option=com_content&amp;view=article&amp;id=142:aztu-oracle-konferans&amp;catid=38:makaleler&amp;Itemid=27" target="_blank"><span style="color: #ff0000;">Yasin Burak Gültekin</span></a></strong></li>
<li><a href="http://www.turkishh.com/programlama/ceturk-azerbaycanda/" target="_blank">Mehmet Kılıç</a></li>
</ol>
<p><img class="alignleft size-full wp-image-7789" title="azerbaycan-oracle-konferansi-2011" src="http://www.ceturk.com/images/azerbaycan-oracle-konferansi-2011-1.jpg" alt="" width="720" height="540" /><br />
CETURK olarak benzer organizasyonları yurt dışında yapmaya devam etmeyi hedefliyoruz. Bizi destekleyen herkese teşekkürler.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/azerbaycan-oracle-konferansi-gerceklestirildi/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<enclosure url="http://www.ceturk.com/images/azerbaycan-oracle-konferansi-2011-1.jpg" length="76216" type="image/jpg" />	</item>
		<item>
		<title>Türk Oracle Kullanıcıları TROUG Gününde Buluşuyor!</title>
		<link>http://www.ceturk.com/turk-oracle-kullanicilari-troug-gununde-bulusuyor/</link>
		<comments>http://www.ceturk.com/turk-oracle-kullanicilari-troug-gununde-bulusuyor/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 09:04:28 +0000</pubDate>
		<dc:creator>Mehmet Yüngül</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Bahçeşehir Üniversitesi]]></category>
		<category><![CDATA[Emre Baransel]]></category>
		<category><![CDATA[Enterprise Manager 11g Grid Control]]></category>
		<category><![CDATA[Exadata]]></category>
		<category><![CDATA[Gökhan Atıl]]></category>
		<category><![CDATA[H Tonguç Yılmaz]]></category>
		<category><![CDATA[Kamran Agayev]]></category>
		<category><![CDATA[O. Yasin Saygılı]]></category>
		<category><![CDATA[Oracle Dataguard]]></category>
		<category><![CDATA[Talip Hakan Öztürk]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7728</guid>
		<description><![CDATA[TROUG ( Türk Oracle Kullanıcıları Grubu)  21 Nisan’da Türk Oracle kullanıcılarını “TROUG Day” ‘de buluşturuyor. Katılımın ücretsiz olacağı bu etkinlikte, konusunun uzmanlarından teknik sunumlar ve katılımcıların sorularıyla yönlendireceği “TROUG Panel” oturumu yer alacak. Program 09:00-10:00 Açılış &#38; Thinking About Joins: Jonathan Lewis 10:00-10:50 20+ Soruda Exadata: Ferhat Şengönül &#38; Hüsnü Şensoy 10:50-11:00 Kahve Molası 11:00-12:00 [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-7738" href="http://www.ceturk.com/veri-tabani/oracle/turk-oracle-kullanicilari-troug-gununde-bulusuyor.html/attachment/troug"><img class="aligncenter size-full wp-image-7738" title="troug" src="http://www.ceturk.com/images/troug.jpg" alt="" width="250" height="97" /></a></p>
<p>TROUG ( Türk Oracle Kullanıcıları Grubu)  21 Nisan’da Türk Oracle kullanıcılarını “TROUG Day” ‘de buluşturuyor. Katılımın ücretsiz olacağı bu etkinlikte, konusunun uzmanlarından teknik sunumlar ve katılımcıların sorularıyla yönlendireceği “TROUG Panel” oturumu yer alacak.<br />
<strong></strong></p>
<p><strong>Program</strong><br />
09:00-10:00 Açılış &amp; Thinking About Joins: Jonathan Lewis<br />
10:00-10:50 20+ Soruda Exadata: Ferhat Şengönül &amp; Hüsnü Şensoy<br />
10:50-11:00 Kahve Molası<br />
11:00-12:00 Enterprise Manager 11g Grid Control: Gökhan Atıl<br />
12:00-13:00 Öğle Yemeği Molası<br />
13:00-14:00 Oracle Dataguard: Nasıl Daha Efektif Kullanırız? Emre Baransel &amp; Ogan Özdoğan<br />
14:00-14:50 ASM Best Practices: Orhan Bıyıklıoğlu<br />
14:50-15:00 Kahve Molası<br />
15:00-16:00 11g Backup &amp; RecoveryNew Features: Kamran Agayev &amp; Zekeriya Beşiroğlu<br />
16:00-16:50 PL/SQL ile Web 2.0: JavaScript ve Javacılar nasıl kıskançlıktan çatlatılır? Yalım K. Gerger<br />
16:50-17:00 Kahve Molası<br />
17:00-18:00 TROUG Panel: H.Tonguç Yılmaz, Kamran Agayev,O. Yasin Saygılı, Talip Hakan Öztürk, Gökhan Atıl, Emre Baransel</p>
<p><strong>Etkinlik Yer ve Zamanı</strong></p>
<p><strong>Tarih</strong>: 21 Nisan Perşembe<br />
<strong>Yer</strong>: Bahçeşehir Üniversitesi /Beşiktaş Kampüsü – İstanbul<br />
<strong></strong></p>
<p><strong>Detaylı Bilgi</strong> : <a href="http://www.troug.org/?p=406" target="_blank">http://www.troug.org/?p=406</a><br />
Ücretsiz kaydolmak için:<a href="http://apex.oracle.com/pls/apex/f?p=38448:2" target="_blank"> http://apex.oracle.com/pls/apex/f?p=38448:2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/turk-oracle-kullanicilari-troug-gununde-bulusuyor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/image008.gif" length="56706" type="image/jpg" />	</item>
		<item>
		<title>Rman Catalog Db Kullanarak Kartuşa Alınan Yedeği Farklı Bir Sunucuya Dönme</title>
		<link>http://www.ceturk.com/rman-catalog-db-kullanarak-kartusa-alinan-yedegi-farkli-bir-sunucuya-donme/</link>
		<comments>http://www.ceturk.com/rman-catalog-db-kullanarak-kartusa-alinan-yedegi-farkli-bir-sunucuya-donme/#comments</comments>
		<pubDate>Sat, 26 Mar 2011 08:00:08 +0000</pubDate>
		<dc:creator>kamil.turkyilmaz</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Kamil Türkyılmaz]]></category>
		<category><![CDATA[Oracle Yedekleme]]></category>
		<category><![CDATA[RMAN]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7334</guid>
		<description><![CDATA[Belli dönemlerde prod database’ lerinden alınan backupları farklı sunucular üzerine dönme testleri yapma zorunluluğumuz var. Bu testlerden birinde yaptığım işleme ait  detayları aşağıda anlatmaya çalıştım. Rman ile bir database’ i farklı bir sunucu üzerine taşımak başlıklı yazımda rman backup diske alındığında nasıl restore edileceğinden bahsetmiştik. Orada catalog database’ ini orada aslında kullanmamıştık çünkü alınan rman backupı, [...]]]></description>
			<content:encoded><![CDATA[<p>Belli dönemlerde prod database’ lerinden alınan backupları farklı sunucular üzerine dönme testleri yapma zorunluluğumuz var. Bu testlerden birinde yaptığım işleme ait  detayları aşağıda anlatmaya çalıştım.</p>
<p>Rman ile bir database’ i farklı bir sunucu üzerine taşımak başlıklı yazımda rman backup diske alındığında nasıl restore edileceğinden bahsetmiştik. Orada catalog database’ ini orada aslında kullanmamıştık çünkü alınan rman backupı, restore yapılacak sunucu üzerinde rman’ in istemiş olduğu path’lere kopyalamıştık dolayısıyla orada işimiz daha kolaydı.</p>
<p>Burada ise catalog database’ ini kullanarak (rutin işleyişe birebir örnek oluşturması açısından) kartuşa alınan bir backupı hiçbir kopyalama işlemi yapmadan nasıl başka bir ortama taşıyacağımızdan bahsetmek istiyorum. Yine burda da bir takım öngörülerimiz var. Öncelikle, pathlerimiz burda da farklı olarak kabul ediyoruz.  (eğer pathler restore yapılacak sunucu ile birebir aynı ise, aşağıdaki scriplerdeki )Sonrasında yapacağımız işlemlerle ilgili olarak adım adım anlatamaya çalışayım ;</p>
<ul>
<li><strong>Backupı dönülecek olan sunucu üzerinden rman catalog database’ i ile database’ in backupı kartuşa alınır.</strong></li>
</ul>
<pre class="brush: sql">run {

allocate channel 'dev_0' type 'sbt_tape'

parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=prdtest,OB2BARLIST=Betasetcms2_PRDTEST)';

allocate channel 'dev_1' type 'sbt_tape'

parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=prdtest,OB2BARLIST=Betasetcms2_PRDTEST)';

allocate channel 'dev_2' type 'sbt_tape'

parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=prdtest,OB2BARLIST=Betasetcms2_PRDTEST)';

allocate channel 'dev_3' type 'sbt_tape'

parms 'ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=prdtest,OB2BARLIST=Betasetcms2_PRDTEST)';

backup incremental level

format 'Betasetcms2_PRDTEST&lt;%t:%p&gt;.dbf'

restore database;

sql 'alter system archive log current';

backup

filesperset 1

format 'Betasetcms2_PRDTEST&lt;%t:%p&gt;.dbf'

archivelog like '/data2/arch/%';

}
</pre>
<p>Datafile’ leri farklı pathlere restore edeceğimiz için aşağıdaki bilgileri mutlaka biliyor olmamız gerekiyor. Sonrasında file# numarasına göre yeni path’ lere set edeceğiz.</p>
<p>Database’ deki datafile’ lerin listesinide alıyoruz.</p>
<pre>SQL&gt; select name from v$datafile;
</pre>
<p>FILE#   NAME</p>
<p>1            /data2/prdtest/system01.dbf</p>
<p>2            /data2/prdtest/undotbs01.dbf</p>
<p>3            /data2/prdtest/sysaux01.dbf</p>
<p>4            /data2/prdtest/users01.dbf</p>
<p>5            /data2/prdtest/example01.dbf</p>
<p>6            /data2/prdtest/kamil_deneme1_01.dbf</p>
<p>7            /data2/prdtest/kamil_deneme1_02.dbf</p>
<p>8            /data2/prdtest/kamil_deneme2_01.dbf</p>
<p>9            /data2/prdtest/kamil_deneme2_02.dbf</p>
<p>Redologlar hakkında aşağıdaki bilgileri alıyoruz.</p>
<pre>Select * from v$logfile;
</pre>
<p>GROUP#           STATUS    TYPE                                  MEMBER</p>
<p>3                     ONLINE    /data2/prdtest/redo03.log        NO</p>
<p>2                     ONLINE    /data2/prdtest/redo02.log        NO</p>
<p>1                     ONLINE    /data2/prdtest/redo01.log        NO</p>
<p>Ayrıca bu database’ e ait dbid bilgisinide öncesinde bilmemiz gerekiyor. Kullanmakta olduğunuz tüm database’ lerin dbid’ lerini saklamanızda fayda var. Bu değer sonradan değişmeyen ve her database için unique olan bir değerdir.</p>
<pre>SQL&gt; select dbid from v$database ;
</pre>
<p>DBID</p>
<p>&#8212;&#8212;&#8212;-</p>
<p>165917862</p>
<p>Bundan sonraki adımda aslında şunu düşünüyoruz, bu database herhangi bir problemden dolayı down oldu ve temin edilen farklı bir sunucuya data kaybı olmadan restore etmeniz gerekiyor. Şimdi almış olduğumuz backupı başka bir sunucu üzerine restore etmeye çalışalım.</p>
<ul>
<li><strong>Restore yapılacak server üzerine sadece oracle software kurulumu yapıyoruz.</strong></li>
</ul>
<ul>
<li><strong>Pfile, initfile, pwd, tns, sqlnet ora gibi (parametre) dosyaları yeni sunucumuz üzerine üzerine kopyalıyoruz. (veya elimizde backupları yoksa yenilerini create ediyoruz. Zaman zaman prod ortamlarından bu tarz kritik file’ lerin backupının alınması ciddi zaman kazançları sağlıyor)</strong></li>
</ul>
<p>Parametre dosyaları restore yapılacak olan servera kopyalandıkdan sonra içerisinde gerekli değişiklikleri yapmamız gerekiyor. Örneğin memory parametreleri yeni sunucuya göre set edilir veya backup alınan sunucu ile restore yapılacak olan sunucunun path’ leri farklı olabileceğinden buradaki controlfile parametresinin restore yapılacak olan sunucuda nerde olması gerekiyor ise ilgili path bilgisi buraya girilir.</p>
<p>Örneğin bizim örneğimizde backup alınan sunucudaki control file parametresi  ;</p>
<p>*.control_files=&#8217;/data2/prdtest/control01.ctl&#8217;,'/data2/prdtest/control02.ctl&#8217;,'/data2/prdtest/control03.ctl&#8217;</p>
<p>Restore yapılacak sunucudaki olması gereken path ise (burada böyle bir path olmadığından dolayı) ;</p>
<p>*.control_files=&#8217;/data/oracle/oradata/prdtest/control01.ctl&#8217;,'/data/oracle/oradata/prdtest/control02.ctl&#8217;,'/data/oracle/oradata/prdtest/control03.ctl&#8217;</p>
<ul>
<li><strong>Sonra yeni sunucumuzdaki database sys olarak bağlanıp nomount modda database’ i start ediyoruz.</strong></li>
</ul>
<p>oracle@betasetapp2:/data/oracle/product/10.1.0/db:&gt;sqlplus &#8220;/as sysdba&#8221;</p>
<p>SQL*Plus: Release 10.1.0.5.0 &#8211; Production on Mon Nov 29 09:22:50 2010</p>
<p>Copyright (c) 1982, 2005, Oracle.  All rights reserved.</p>
<p>Connected to:</p>
<p>Oracle Database 10g Enterprise Edition Release 10.1.0.5.0 &#8211; 64bit Production</p>
<p>With the Partitioning, OLAP and Data Mining options</p>
<pre>SQL&gt; startup nomount
</pre>
<p>ORACLE instance started.</p>
<p>Total System Global Area  419430400 bytes</p>
<p>Fixed Size                  1330696 bytes</p>
<p>Variable Size             122401272 bytes</p>
<p>Database Buffers          293601280 bytes</p>
<p>Redo Buffers                2097152 bytes</p>
<ul>
<li><strong>Database’ i nomount moda aldıkdan sonra yine bu sunucu üzerinden önce rman’e sonra catalog database’ ine bağlanıyoruz.</strong></li>
</ul>
<p>oracle@betasetapp2:/data/oracle:&gt;rman target /</p>
<p>Recovery Manager: Release 10.1.0.5.0 &#8211; 64bit Production</p>
<p>Copyright (c) 1995, 2004, Oracle.  All rights reserved.</p>
<p>connected to target database: prdtest (not mounted)</p>
<p>RMAN&gt; connect catalog RMAN_PRDTEST/r10011002@RMAN</p>
<p>connected to recovery catalog database</p>
<p>RMAN&gt;</p>
<p>Catalog database’ ine bağlanmak için kullandığımız user bizim backup aldığımız veritabanını catalog database’ ine register ederken kullanmış olduğumuz user’ ı ifade ediyor. @RMAN ise rman catalog database’ inin tns kaydıdır.</p>
<ul>
<li><strong>Rman ile restore işlemine artık başlıyabiliriz, öncelikle işlem yapacağımız database’ in dbid bilgisini set ediyoruz.</strong></li>
</ul>
<pre>RMAN&gt; set dbid=165917862
</pre>
<p>executing command: SET DBID</p>
<p>database name is &#8220;PRDTEST&#8221; and DBID is 165917862</p>
<ul>
<li><strong>İlk olarak controlfile’ i dönmemiz gerekiyor.</strong></li>
</ul>
<pre>RMAN&gt; run {

2&gt; allocate channel 'dev_0' type 'sbt_tape';

3&gt; allocate channel 'dev_1' type 'sbt_tape';

4&gt; allocate channel 'dev_2' type 'sbt_tape';

5&gt; allocate channel 'dev_3' type 'sbt_tape';

6&gt; restore controlfile;

7&gt; }
</pre>
<p>released channel: ORA_DISK_1</p>
<p>allocated channel: dev_0</p>
<p>channel dev_0: sid=159 devtype=SBT_TAPE</p>
<p>channel dev_0: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_1</p>
<p>channel dev_1: sid=157 devtype=SBT_TAPE</p>
<p>channel dev_1: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_2</p>
<p>channel dev_2: sid=160 devtype=SBT_TAPE</p>
<p>channel dev_2: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_3</p>
<p>channel dev_3: sid=161 devtype=SBT_TAPE</p>
<p>channel dev_3: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>Starting restore at 30-NOV-10</p>
<p>channel dev_0: starting datafile backupset restore</p>
<p>channel dev_0: restoring controlfile</p>
<p>[Normal] From: OB2BAR_Oracle8@betasetapp2 &#8220;PRDTEST&#8221;  Time: 11/30/10 10:47:22</p>
<p>Starting OB2BAR Restore: betasetcms2:c-165917862-20101125-02 &#8220;Oracle8&#8243;</p>
<p>[Normal] From: OB2BAR_Oracle8@betasetapp2 &#8220;PRDTEST&#8221;  Time: 11/30/10 10:47:24</p>
<p>Completed OB2BAR Restore: betasetcms2:c-165917862-20101125-02 &#8220;Oracle8&#8243;</p>
<p>channel dev_0: restored backup piece 1</p>
<p>piece handle=c-165917862-20101125-02 tag=TAG20101125T141314</p>
<p>channel dev_0: restore complete</p>
<p>output filename=/data/oracle/oradata/prdtest/control01.ctl</p>
<p>output filename=/data/oracle/oradata/prdtest/control02.ctl</p>
<p>output filename=/data/oracle/oradata/prdtest/control03.ctl</p>
<p>Finished restore at 30-NOV-10</p>
<p>released channel: dev_0</p>
<p>released channel: dev_1</p>
<p>released channel: dev_2</p>
<p>released channel: dev_3</p>
<p>RMAN&gt;</p>
<p>Ben testimde, channel allocate ederken,  rman’ in backup alırken allocate ettiği kadar channel’ lar allocate ettim, istenirse daha az veya daha fazla channel allocate edilebilir.</p>
<p>Örneğin;</p>
<pre>RMAN&gt; run {

2&gt; allocate channel 'dev_0' type 'sbt_tape';

3&gt; allocate channel 'dev_1' type 'sbt_tape';

4&gt; allocate channel 'dev_2' type 'sbt_tape';

5&gt; allocate channel 'dev_3' type 'sbt_tape';

6&gt; allocate channel 'dev_4' type 'sbt_tape';

7&gt; allocate channel 'dev_5' type 'sbt_tape';

8&gt; allocate channel 'dev_6' type 'sbt_tape';

9&gt; restore controlfile;

10&gt; }
</pre>
<p>allocated channel: dev_0</p>
<p>channel dev_0: sid=159 devtype=SBT_TAPE</p>
<p>channel dev_0: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_1</p>
<p>channel dev_1: sid=157 devtype=SBT_TAPE</p>
<p>channel dev_1: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_2</p>
<p>channel dev_2: sid=160 devtype=SBT_TAPE</p>
<p>channel dev_2: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_3</p>
<p>channel dev_3: sid=161 devtype=SBT_TAPE</p>
<p>channel dev_3: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_4</p>
<p>channel dev_4: sid=156 devtype=SBT_TAPE</p>
<p>channel dev_4: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_5</p>
<p>channel dev_5: sid=155 devtype=SBT_TAPE</p>
<p>channel dev_5: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_6</p>
<p>channel dev_6: sid=154 devtype=SBT_TAPE</p>
<p>channel dev_6: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>Starting restore at 30-NOV-10</p>
<p>…………………….</p>
<pre>RMAN&gt; run {
2&gt; allocate channel 'dev_0' type 'sbt_tape';
3&gt; restore controlfile;
4&gt; }
</pre>
<p>allocated channel: dev_0</p>
<p>channel dev_0: sid=159 devtype=SBT_TAPE</p>
<p>channel dev_0: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>Starting restore at 30-NOV-10</p>
<p>…………………….</p>
<ul>
<li><strong>Controlfile’ lerimizi döndükden sonra database’ imizi artık mound moda çekebiliriz.</strong></li>
</ul>
<pre>SQL&gt; alter database mount;
</pre>
<p>database mounted.</p>
<p>Rman Catalog Database’ i Kullanarak, Kartuşa Alınan Backupı Farklı bir Sunucuya Dönme -2 ile devam ediyoruz.</p>
<ul>
<li><strong>Sıra datafile’ leri restore/recover etmeye geldi ;</strong></li>
</ul>
<p>Pathler backupı alınan database’ deki pathler ile aynı olmadığından öncelikle bu değişikliği yapmamız gerekiyor.</p>
<p>Aşağıdaki script ile datafile’ leri bizim belirttiğimiz yeni lokasyonlarına restore ediyoruz.</p>
<p>Bundan sonraki kısım aslında iki aşamalı olarak düşünebiliriz, birinci aşamamız restore, sonraki aşamamız ise recover aşamasıdır.  Datafile’ ler restore edilirken farklı seuence numaralarına sahip olarak restore edilir, yani db içerisindeki tün datafile’ lerin sequence değerleri biririnden farklılık gösterecektir. Bu farklılığı ortadan kaldırıp max sequence değeri altında datafile’ lerin hepsini aynı noktaya çeken işlem ise recover aşamasıdır. Bu konuyla  ilgili olarak aşağıdaki iki script ve arasındaki fark aslında konuyu açıklamak için yeterli diye düşünüyorum.</p>
<p>Aşağıdaki scripti çalıştırdığımda restore işleminin en sonunda  <strong>“RMAN-06054: media recovery requesting unknown log: thread 1 seq 686 lowscn 2858652“</strong> böyle bir hata verdi. Almış olduğumuz backup full backupdı ve backuplanan son archive log numarası 684 idi. Recover işlemini hangi sequence değerine kadar yapılmasını belirtmediğim için aşağıdaki hatayı aldım.</p>
<pre>RMAN&gt; run {
2&gt; allocate channel 'dev_0' type 'sbt_tape';
3&gt; allocate channel 'dev_1' type 'sbt_tape';
4&gt; allocate channel 'dev_2' type 'sbt_tape';
5&gt; allocate channel 'dev_3' type 'sbt_tape';
6&gt; set NEWNAME for datafile 1 to '/data/oracle/oradata/prdtest/system01.dbf';
7&gt; set NEWNAME for datafile 2 to '/data/oracle/oradata/prdtest/undotbs01.dbf';
8&gt; set NEWNAME for datafile 3 to '/data/oracle/oradata/prdtest/sysaux01.dbf';
9&gt; set NEWNAME for datafile 4 to '/data/oracle/oradata/prdtest/users01.dbf';
10&gt; set NEWNAME for datafile 5 to '/data/oracle/oradata/prdtest/example01.dbf';
11&gt; set NEWNAME for datafile 6 to '/data/oracle/oradata/prdtest/kamil_deneme1_01.dbf';
12&gt; set NEWNAME for datafile 7 to '/data/oracle/oradata/prdtest/kamil_deneme1_02.dbf';
13&gt; set NEWNAME for datafile 8 to '/data/oracle/oradata/prdtest/kamil_deneme2_01.dbf';
14&gt; set NEWNAME for datafile 9 to '/data/oracle/oradata/prdtest/kamil_deneme2_02.dbf';
15&gt; restore database;
16&gt; switch datafile all;
17&gt; recover database;
18&gt; }
</pre>
<p>allocated channel: dev_0</p>
<p>channel dev_0: sid=161 devtype=SBT_TAPE</p>
<p>channel dev_0: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_1</p>
<p>channel dev_1: sid=160 devtype=SBT_TAPE</p>
<p>channel dev_1: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_2</p>
<p>channel dev_2: sid=159 devtype=SBT_TAPE</p>
<p>channel dev_2: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_3</p>
<p>channel dev_3: sid=156 devtype=SBT_TAPE</p>
<p>channel dev_3: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>Starting restore at 01-DEC-10</p>
<p>channel dev_0: starting datafile backupset restore</p>
<p>channel dev_0: specifying datafile(s) to restore from backup set</p>
<p>restoring datafile 00005 to /data/oracle/oradata/prdtest/example01.dbf</p>
<p>restoring datafile 00006 to /data/oracle/oradata/prdtest/kamil_deneme1_01.dbf</p>
<p>restoring datafile 00007 to /data/oracle/oradata/prdtest/kamil_deneme1_02.dbf</p>
<p>channel dev_1: starting datafile backupset restore</p>
<p>channel dev_1: specifying datafile(s) to restore from backup set</p>
<p>restoring datafile 00002 to /data/oracle/oradata/prdtest/undotbs01.dbf</p>
<p>restoring datafile 00003 to /data/oracle/oradata/prdtest/sysaux01.dbf</p>
<p>restoring datafile 00004 to /data/oracle/oradata/prdtest/users01.dbf</p>
<p>channel dev_2: starting datafile backupset restore</p>
<p>channel dev_2: specifying datafile(s) to restore from backup set</p>
<p>restoring datafile 00001 to /data/oracle/oradata/prdtest/system01.dbf</p>
<p>restoring datafile 00008 to /data/oracle/oradata/prdtest/kamil_deneme2_01.dbf</p>
<p>restoring datafile 00009 to /data/oracle/oradata/prdtest/kamil_deneme2_02.dbf</p>
<p>[Normal] From: OB2BAR_Oracle8@betasetapp2 &#8220;&#8221;  Time: 12/01/10 09:55:10</p>
<p>Starting OB2BAR Restore:</p>
<p>…</p>
<p>…</p>
<p>…</p>
<p>Finished restore at 01-DEC-10</p>
<p>Starting recover at 01-DEC-10</p>
<p>starting media recovery</p>
<p>channel dev_0: starting archive log restore to default destination</p>
<p>channel dev_0: restoring archive log</p>
<p>archive log thread=1 sequence=685</p>
<p>[Normal] From: OB2BAR_Oracle8@betasetapp2 &#8220;&#8221;  Time: 12/01/10 09:57:35</p>
<p>Starting OB2BAR Restore: …</p>
<p>…</p>
<p>…</p>
<p>channel dev_0: restore complete</p>
<p>archive log filename=/data/oracle/flash_recovery_area/PRDTEST/archivelog/2010_12_01/o1_mf_1_685_6hczzhn4_.arc thread=1 sequence=685</p>
<p>channel default: deleting archive log(s)</p>
<p>archive log filename=/data/oracle/flash_recovery_area/PRDTEST/archivelog/2010_12_01/o1_mf_1_685_6hczzhn4_.arc recid=681 stamp=736595856</p>
<p>unable to find archive log</p>
<p><strong>archive log thread=1 sequence=686</strong></p>
<p>released channel: dev_0</p>
<p>released channel: dev_1</p>
<p>released channel: dev_2</p>
<p>released channel: dev_3</p>
<p>RMAN-00571: ===========================================================</p>
<p>RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============</p>
<p>RMAN-00571: ===========================================================</p>
<p><strong>RMAN-03002: failure of recover command at 12/01/2010 09:57:43</strong></p>
<p><strong>RMAN-06054: media recovery requesting unknown log: thread 1 seq 686 lowscn 2858652</strong></p>
<p><strong>Until seq vererek çalıştırdığım zaman ;</strong></p>
<pre>RMAN&gt; run {

2&gt; allocate channel 'dev_0' type 'sbt_tape';

3&gt; allocate channel 'dev_1' type 'sbt_tape';

4&gt; allocate channel 'dev_2' type 'sbt_tape';

5&gt; allocate channel 'dev_3' type 'sbt_tape';

6&gt; set NEWNAME for datafile 1 to '/data/oracle/oradata/prdtest/system01.dbf';

7&gt; set NEWNAME for datafile 2 to '/data/oracle/oradata/prdtest/undotbs01.dbf';

8&gt; set NEWNAME for datafile 3 to '/data/oracle/oradata/prdtest/sysaux01.dbf';

9&gt; set NEWNAME for datafile 4 to '/data/oracle/oradata/prdtest/users01.dbf';

10&gt; set NEWNAME for datafile 5 to '/data/oracle/oradata/prdtest/example01.dbf';

11&gt; set NEWNAME for datafile 6 to '/data/oracle/oradata/prdtest/kamil_deneme1_01.dbf';

12&gt; set NEWNAME for datafile 7 to '/data/oracle/oradata/prdtest/kamil_deneme1_02.dbf';

13&gt; set NEWNAME for datafile 8 to '/data/oracle/oradata/prdtest/kamil_deneme2_01.dbf';

14&gt; set NEWNAME for datafile 9 to '/data/oracle/oradata/prdtest/kamil_deneme2_02.dbf';

15&gt; set until sequence 686 thread 1;

16&gt; restore database;

17&gt; switch datafile all;

18&gt; recover database;

19&gt; }
</pre>
<p>allocated channel: dev_0</p>
<p>channel dev_0: sid=161 devtype=SBT_TAPE</p>
<p>channel dev_0: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_1</p>
<p>channel dev_1: sid=160 devtype=SBT_TAPE</p>
<p>channel dev_1: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_2</p>
<p>channel dev_2: sid=159 devtype=SBT_TAPE</p>
<p>channel dev_2: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>allocated channel: dev_3</p>
<p>channel dev_3: sid=156 devtype=SBT_TAPE</p>
<p>channel dev_3: Data Protector A.06.00/PHSS_37147/PHSS_37148/DPSOL_00306/DPLNX_</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET NEWNAME</p>
<p>executing command: SET until clause</p>
<p>Starting restore at 01-DEC-10</p>
<p>channel dev_0: starting datafile backupset restore</p>
<p>channel dev_0: specifying datafile(s) to restore from backup set</p>
<p>restoring datafile 00005 to /data/oracle/oradata/prdtest/example01.dbf</p>
<p>restoring datafile 00006 to /data/oracle/oradata/prdtest/kamil_deneme1_01.dbf</p>
<p>restoring datafile 00007 to /data/oracle/oradata/prdtest/kamil_deneme1_02.dbf</p>
<p>channel dev_1: starting datafile backupset restore</p>
<p>channel dev_1: specifying datafile(s) to restore from backup set</p>
<p>restoring datafile 00002 to /data/oracle/oradata/prdtest/undotbs01.dbf</p>
<p>restoring datafile 00003 to /data/oracle/oradata/prdtest/sysaux01.dbf</p>
<p>restoring datafile 00004 to /data/oracle/oradata/prdtest/users01.dbf</p>
<p>channel dev_2: starting datafile backupset restore</p>
<p>channel dev_2: specifying datafile(s) to restore from backup set</p>
<p>restoring datafile 00001 to /data/oracle/oradata/prdtest/system01.dbf</p>
<p>restoring datafile 00008 to /data/oracle/oradata/prdtest/kamil_deneme2_01.dbf</p>
<p>restoring datafile 00009 to /data/oracle/oradata/prdtest/kamil_deneme2_02.dbf</p>
<p>[Normal] From: OB2BAR_Oracle8@betasetapp2 &#8220;&#8221;  Time: 12/01/10 10:06:54</p>
<p>Starting OB2BAR Restore: …</p>
<p>…</p>
<p>…</p>
<p>media recovery complete</p>
<p>Finished recover at 01-DEC-10</p>
<p>released channel: dev_0</p>
<p>released channel: dev_1</p>
<p>released channel: dev_2</p>
<p>released channel: dev_3</p>
<p>RMAN&gt;</p>
<ul>
<li><strong>Redologların path’ ini düzeltiyoruz.</strong></li>
</ul>
<p>Recover işlemi başarı ile bittikden redologların yeni pathlerini set etmemiz gerekiyor. Yeni pathleri vermeden açmaya çalışırsak aşağıdaki hatayı alırız.</p>
<pre>SQL&gt; alter database open resetlogs;
</pre>
<p>alter database open resetlogs</p>
<p>*</p>
<p>ERROR at line 1:</p>
<p>ORA-00344: unable to re-create online log &#8216;/data2/prdtest/redo01.log&#8217;</p>
<p>ORA-27040: file create error, unable to create file</p>
<p>IBM AIX RISC System/6000 Error: 2: No such file or directory</p>
<p>Redologların pathlerini düzeltmek için ;</p>
<pre>SQL&gt; alter database rename file '/data2/prdtest/redo03.log' to '/data/oracle/oradata/prdtest/redo03.log';
</pre>
<p>Database altered.</p>
<pre>SQL&gt; alter database rename file '/data2/prdtest/redo02.log' to '/data/oracle/oradata/prdtest/redo02.log';
</pre>
<p>Database altered.</p>
<pre>SQL&gt; alter database rename file '/data2/prdtest/redo01.log' to '/data/oracle/oradata/prdtest/redo01.log';
</pre>
<p>Database altered.</p>
<p>Kontol etmek için ;</p>
<pre>SQL&gt; select member from v$logfile ;
</pre>
<p>MEMBER</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>/data/oracle/oradata/prdtest/redo03.log</p>
<p>/data/oracle/oradata/prdtest/redo02.log</p>
<p>/data/oracle/oradata/prdtest/redo01.log</p>
<ul>
<li><strong>Sıra en son ve zevkli kısmına geldi , database’ i açıyoruz</strong></li>
</ul>
<pre>SQL&gt; alter database open resetlogs ;
</pre>
<p>Database altered.</p>
<p>Kartuşa alınan bir database’ in backupını, farklı bir sunucu üzerine farklı pathler de olacak şekilde restore etmiş olduk. Backup – restore testleri bir dba için oldukça önemli konular diye düşünüyorum. Zira esas önemli olan herhangi bir disaster durumunda paniklemeden soğukkanlılıkla ve benzer senaryoları daha önceden  test etmiş olmanın rahatlığı içerisinde soruna çözüm üretmekde yatıyor.  Umarım faydalı olur.</p>
<p>Kamil TÜRKYILMAZ</p>
<p><a href="http://www.kamilturkyilmaz.com/">www.kamilturkyilmaz.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/rman-catalog-db-kullanarak-kartusa-alinan-yedegi-farkli-bir-sunucuya-donme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle View Yaratmak ve Değiştirmek / Performans</title>
		<link>http://www.ceturk.com/oracle-view-yaratmak-ve-degistirmek-performans/</link>
		<comments>http://www.ceturk.com/oracle-view-yaratmak-ve-degistirmek-performans/#comments</comments>
		<pubDate>Fri, 25 Feb 2011 16:03:57 +0000</pubDate>
		<dc:creator>Ogan Ozdogan</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Create View]]></category>
		<category><![CDATA[Force View]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7112</guid>
		<description><![CDATA[Merhabalar, Öncelikle bir view (bundan böyle görüntü olarak adlandıralım) tanımını yapmakla başlayalım. Bir görüntü, tablo veya başka bir görüntüdeki verinin yeniden gösterilmesi ve düzenlenmesi anlamına gelen objedir. Bir görüntünün referans olduğu objenin adı ise baz tablodur. Görüntülerle ilgili bilinmesi gereken belki de en önemli nokta; görüntüler veri tutmamaktadır. Yalnız içeriğine ait olan sorgunun data dictionary&#8217;de [...]]]></description>
			<content:encoded><![CDATA[<p>Merhabalar,</p>
<p>Öncelikle bir view (bundan böyle görüntü olarak adlandıralım) tanımını yapmakla başlayalım. Bir görüntü, tablo veya başka bir görüntüdeki verinin yeniden gösterilmesi ve düzenlenmesi anlamına gelen objedir. Bir görüntünün referans olduğu objenin adı ise baz tablodur. Görüntülerle ilgili bilinmesi gereken belki de en önemli nokta; görüntüler veri tutmamaktadır. Yalnız içeriğine ait olan sorgunun data dictionary&#8217;de tutulmasıdır. Görüntüler, ana objelere refere olan bir işaretleyicidir. Herhangi bir boyutu bulunmamaktadır çünkü içerisinde veri tutmuyordur. Hazır yeri gelmişken, içerisinde veri barındırabilen ve sürekli olarak güncellenebilen görüntü türüne &#8220;materialized view&#8221; denmektedir. Görüntüler ayrıca bir veri görüntülenebilirliği koruması olarakta kullanabilirsiniz. Örnek; tabloda 10 tane sütun olduğunu düşünün. Bunlardan 2 tanesini tanımlayacağınız gruptaki insanların görmesini istemiyorsunuz. Yapmanız gereken bir görüntü hazırlamak ve kalan 8 sütunu bu görüntünün içeriği olarak işaretlemek.</p>
<p>Oracle komutları arasından &#8220;CREATE VIEW&#8221; komutu istenilen görüntünün oluşturulmasını sağlar. Yaratılacak olan bu görüntü birden fazla objeye refere ediyor olabilir. Bir örnekle devam edelim;</p>
<pre class="brush: sql">
SQL&gt; create table yonetim
2 (
3 isim varchar2(30) not null,
4 soyisim varchar2(60) not null,
5 kullanici_kodu number(5) not null
6 );

Table created.

SQL&gt; CREATE VIEW ogan_deneme AS
2 SELECT isim, soyisim, kullanici_kodu
3 FROM yonetim
4 WHERE kullanici_kodu IN (100,200,300);

View created.

SQL&gt; DESCRIBE ogan_deneme;
Name Null? Type
----------------------------------------- -------- ----------------------------
ISIM NOT NULL VARCHAR2(30)
SOYISIM NOT NULL VARCHAR2(60)
KULLANICI_KODU NOT NULL NUMBER(5)
</pre>
<p>Yukarıdaki komut basit bir görüntü yaratma komutudur ve yonetim isimli objeden, kullanici_kodu 100,200 ve 300 olanların; isim, soyisim ve kullanici_kodu bilgilerini almaktadır. Başka bir örnek;</p>
<pre class="brush: sql">
SQL&gt; DESCRIBE yonetim;
Name Null? Type
----------------------------------------- -------- ----------------------------
ISIM NOT NULL VARCHAR2(30)
SOYISIM NOT NULL VARCHAR2(60)
KULLANICI_KODU NOT NULL NUMBER(5)

SQL&gt; CREATE OR REPLACE VIEW ogan_deneme AS
2 SELECT isim||' '||soyisim "AD-SOYAD"
3 FROM yonetim
4 WHERE kullanici_kodu IN (100,200,300);

View created.

SQL&gt; DESCRIBE ogan_deneme;
Name Null? Type
----------------------------------------- -------- ----------------------------
AD-SOYAD VARCHAR2(91)
</pre>
<p>Yukarıdaki örnekte isim ve soyisim bilgilerini bir adet boşluk ile birleştirmek koşuluyla &#8220;AD-SOYAD&#8221; olarak tanımladık ve yine kullanici_kodu 100,200 ve 300 içerisinde olan kişileri istediğimizi belirttik. Burada dikkat edilmesi gereken husus Oracle&#8217;ın &#8220;AD-SOYAD&#8221; sütununu 91 byte olarak tanımlamasıdır. ISIM 30, SOYISIM 60 ve bir ara karaterle birlikte 91 olarak tanımlama gerçekleştirilmiştir. Bunu bir de NUMBER için nasıl yapıtığına bakalım;</p>
<pre class="brush: sql">
SQL&gt; ALTER TABLE yonetim ADD kimlik number(7,1);

Table altered.

SQL&gt; ALTER TABLE yonetim ADD departman_id number(3);

Table altered.

SQL&gt; DESCRIBE yonetim;
Name Null? Type
----------------------------------------- -------- ----------------------------
ISIM NOT NULL VARCHAR2(30)
SOYISIM NOT NULL VARCHAR2(60)
KULLANICI_KODU NOT NULL NUMBER(5)
KIMLIK NUMBER(7,1)
DEPARTMAN_ID NUMBER(3)

SQL&gt; CREATE OR REPLACE VIEW ogan_deneme AS
2 SELECT isim, soyisim, kullanici_kodu * departman_id "Calisan Kodu"
3 FROM yonetim;

View created.

SQL&gt; DESCRIBE ogan_deneme;
Name Null? Type
----------------------------------------- -------- ----------------------------
ISIM NOT NULL VARCHAR2(30)
SOYISIM NOT NULL VARCHAR2(60)
Calisan Kodu NUMBER
</pre>
<p>NUMBER bir alanı birleştirdiğimi zaman &#8220;precision&#8221; ve &#8220;scale&#8221; alanları birleştirildi ve yalnız NUMBER olarak gösterilmeye başlandı.</p>
<p>Bir görüntüyü &#8220;SELECT *&#8221; komutu ile yarattıktan sonra eğer tablo üzerinde yeni bir sütun eklediyseniz görüntüyüde yeniden yaratmanız veya içeriğini güncellemeniz gerekmektedir. Örnek;</p>
<pre class="brush: sql">
SQL&gt; CREATE OR REPLACE VIEW ogan_deneme AS
2 SELECT * FROM yonetim;

View created.

SQL&gt; ALTER TABLE yonetim ADD maas number(10);

Table altered.

SQL&gt; DESCRIBE ogan_deneme;
Name Null? Type
----------------------------------------- -------- ----------------------------
ISIM NOT NULL VARCHAR2(30)
SOYISIM NOT NULL VARCHAR2(60)
KULLANICI_KODU NOT NULL NUMBER(5)
KIMLIK NUMBER(7,1)
DEPARTMAN_ID NUMBER(3)

SQL&gt; SELECT dbms_metadata.get_ddl('VIEW','OGAN_DENEME','SYSTEM') OUTPUT
2 FROM DUAL;

OUTPUT
-------------------------------
CREATE OR REPLACE FORCE VIEW "SYSTEM"."OGAN_DENEME" ("ISIM", "SOYISIM", "KULLANICI_KODU", "KIMLIK", "DEPARTMAN_ID") AS
SELECT "ISIM","SOYISIM","KULLANICI_KODU","KIMLIK","DEPARTMAN_ID" FROM yonetim
</pre>
<p>yonetim tablosuna maas sütununu eklememe rağmen daha önceden tanımladığım görüntü değişmedi. Bir üstteki sorgundan da anlaşıldığı üzere &#8220;*&#8221; isteğimiz karşılanmış ancak data dictionary&#8217;de, o anki bütün sütunlar çözümlenerek yaratılmış. Buradaki sizi çelişkiye düşürebilecek nokta &#8220;select *&#8221; olarak tanımladım, neden sonradan yarattığım sütunları da görüntüde göremiyorum&#8221; olacaktır. İşte sebebi de budur.</p>
<p>Bir görüntüyü henüz veritabanında olmayan bir obje için yaratabilirsiniz. Bunu yapabilmek için kullanacağınız komut FORCE komutudur. Bir görüntü eğer hata alıyorsa bu o görüntünün yaratılamadığı anlamına gelmektedir. FORCE komutunun kullanımı için;</p>
<pre class="brush: sql">
SQL&gt; CREATE VIEW ogan_yeni AS
2 SELECT *
3 FROM olmayan_bir_tablo;
FROM olmayan_bir_tablo
*
ERROR at line 3:
ORA-00942: table or view does not exist

SQL&gt; CREATE FORCE VIEW ogan_yeni AS
2 SELECT *
3 FROM olmayan_bir_tablo;

Warning: View created with compilation errors.

SQL&gt; SHOW ERRORS VIEW ogan_yeni;
Errors for VIEW OGAN_YENI:

LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 ORA-00942: table or view does not exist

SQL&gt; SELECT *
2 FROM ogan_yeni;
FROM ogan_yeni
*
ERROR at line 2:
ORA-04063: view "SYSTEM.OGAN_YENI" has errors
</pre>
<p>Şimdi de ilgili tabloyu yaratalım;</p>
<pre class="brush: sql">
SQL&gt; CREATE TABLE olmayan_bir_tablo AS
2 SELECT *
3 FROM yonetim;

Table created.

SQL&gt; SELECT *
2 FROM ogan_yeni;

no rows selected
</pre>
<p>Az önce hata veren görüntü, şimdi sadece satır olmadığını gösteriyor. FORCE ile yarattığımız görüntüyü artık kullanabiliriz. Bir altsorgu (subquery) içerisinde FOR UPDATE kelimesini eğer view yaratırken kullanmaya kalkarsanız hata alırsınız.</p>
<p>Bir görüntüyü sadece okuma özelliği ile (read-only) de yaratabilirsiniz. Şu şekilde;</p>
<pre class="brush: sql">
SQL&gt; CREATE VIEW ogan_yeni
2 SELECT *
3 FROM yonetim
4 WITH READ ONLY;

View created.
</pre>
<p>Bu yaratılan görüntü üzerinden hiçbir DML operasyonu kabul edilmeyecektir.</p>
<p>BİR 11G ÖZELLİĞİ</p>
<p>Oracle 11g versiyonu görüntüler üzerinde constraint yaratabilmenizi sağlamaktadır. Görüntüler üzerindeki kısıtlar (constraint) uygulanmamaktadır veya zorlanmamaktadır. Bir kısıtı uygulamaya almak istiyorsanız baz tabloya gitmeniz gerekmektedir. Bu tipte kısıtlar yalnızca deklere edici tiptetir ve DISABLE NOVALIDATE olarak yaratılmak zorundadırlar. Bir görüntü üzerinde birincil, benzersiz ve referans anahtarları yaratabilirsiniz. Örnek;</p>
<pre class="brush: sql">
SQL&gt; CREATE VIEW ogan_kisit AS
2 (isim CONSTRAINT fk_isim REFERENCES kisiler DISABLE NOVALIDATE,
3 soyisim,
4 kullanici_kodu CONSTRAINT kullanici_kodu_benzer UNIQUE DISABLE NOVALIDATE,
5 AS
6 SELECT isim, soyisim, kullanici_kodu
7 FROM yonetim
8 WHERE kullanici_kod = 400;

View created.
</pre>
<p>OR REPLACE cümleciğini zaten varolan bir görüntünün içeriğini değiştirmekte veya olmayan bir görüntü yaratmakta kullanabiliyoruz. Bu komutu kullanarak görüntüyü düşürüp yeniden yaratmadan, yalnızca içeriğini değiştirerek ve görüntü üzerindeki bütün hakları da(grant) koruyarak göntüyü güncelleyebiliriz.</p>
<p>Bir tablo üzerinde yapısal bir değişiklik olduğu durumda (örneğin ALTER TABLE komutu ile bir sütunun tipini değiştirdiğimizi düşünün) görüntü geçersiz olacaktır. Eğer görüntüye erişim sağlanırsa görüntü yeniden düzenlecek (recompile) ve çalışır hale gecektir. Bu düzenleme işini biz de yapabiliyoruz;</p>
<pre class="brush: sql">
SQL&gt; ALTER VIEW ogan_deneme COMPILE;
</pre>
<p>Bir görütüyü kalıcı olarak veritabanından silmek isterseniz;</p>
<pre class="brush: sql">
SQL&gt; DROP VIEW ogan_deneme;
</pre>
<p>Bir görüntüyü sildiğimiz zaman data dictionary&#8217;den bütün bilgileri silinecek, üzerindeki bütün haklar kalkacak ve bu objeye bağlı olan diğer görüntüler de geçersiz kılınacaktır ve yeniden düzenlenmesi gerekecektir.</p>
<p>Bir görüntü kullanmanın bir diğer olumlu yanı ise görüntülerin arkasına kompleks birleşim koşullarını saklayabilmemiz. Bu şekilde görüntüyü kullanan kişinin ne derece kompleks bir erişim sağladığı size kalacaktır. Bununla birlikte size göre anlamlı fakat son kullanıcıya anlamsız gelen sütun isimlendirmelerini yeniden düzenleyebilir ve daha anlamlı isimlerle bir görüntü altnıda sunabilirsiniz.</p>
<p>Bir görüntü üzerinden DML uygulama şansına sahipsiniz ancak aşağıdaki koşulların görüntü için geçerli olmaması gerekmekte yani görüntünün içeriğinin içerisinde bulunmaması gerekmekte.</p>
<p>1) DISTINCT veya UNIQUE<br />
2) GROUP BY<br />
3) START WITH<br />
4) CONNECT BY<br />
5) ROWNUM<br />
6) Bütün SET operatörleri (UNION, UNION ALL, INTERSECT, MINUS)<br />
7) SELECT içerisinde bir altsorgunun varlığı</p>
<p>Bir görüntü üzerinden insert işlemi yaparken görüntü içerisindeki WHERE koşulları uygulanmadan insert işlemi yapılmaktadır. Örnek;</p>
<pre class="brush: sql">
SQL&gt; CREATE VIEW ogan_yeni AS
2 SELECT *
3 FROM yonetim
4 WHERE kullanici_kod &gt; 99;

View created.

SQL&gt; INSERT INTO ogan_yeni
2 VALUES('Ogan','Ozdogan',10);

1 row created.
</pre>
<p>Gördüğünüz gibi 10 numaralı bir kullanıcı kodunun girişine izin verildi. Bunun kontrol edilmesini istiyorsanız eğer WITH_CHECK_OPTION eklemeniz gerekiyor. Bu arada WITH_CHECK_OPTION ALL_CONSTRAINT görüntüsü içerisinde &#8220;V&#8221; tipinde gösterilmektedir. CHECK kısıtlarının da &#8220;C&#8221; olarak gösterildiğini hatırlayalım.</p>
<pre class="brush: sql">
SQL&gt; CREATE OR REPLACEVIEW ogan_yeni AS
2 SELECT *
3 FROM yonetim
4 WHERE kullanici_kod &gt; 99;
5 WITH CHECK OPTION;

View created.

SQL&gt; INSERT INTO ogan_yeni
2 VALUES('Ogan','Ozdogan',10);
INSERT INTO ogan_yeni
*
ERROR at line 1:
ORA-01402: view WITH CHECK OPTION where-clause violation

SQL&gt; SELECT constraint_name, table_name
2 FROM user_constraints
3 WHERE constraint_type = 'V';

CONSTRAINT_NAME TABLE_NAME
------------------------------------------------------------
SYS_B000234 ogan_yeni
</pre>
<p>Son olarak dokümante edilmeyen bir konuya değinmek istiyorum. Görüntülerin performansı arttığı gibi bir efsane var. Bakalım gerçekten öyle mi?</p>
<pre class="brush: sql">
SQL&gt; CREATE TABLE ogan_tablo AS
2 SELECT *
3 FROM all_users;

SQL&gt; select count(*)
2 from ogan_tablo;

COUNT(*)
----------
593

SQL&gt; CREATE OR REPLACE VIEW ogan_perf AS
2 SELECT *
3 FROM ogan_tablo;

View created.

SQL&gt; SELECT *
2 FROM OGAN_TABLO;

Execution Plan
----------------------------------------------------------
Plan hash value: 3842809937

--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 593 | 23127 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| OGAN_TABLO | 593 | 23127 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement

Statistics
----------------------------------------------------------
4 recursive calls
0 db block gets
49 consistent gets
0 physical reads
0 redo size
23128 bytes sent via SQL*Net to client
917 bytes received via SQL*Net from client
41 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
593 rows processed

SQL&gt; SELECT *
2 FROM OGAN_PERF;

Execution Plan
----------------------------------------------------------
Plan hash value: 3842809937

--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 593 | 23127 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| OGAN_TABLO | 593 | 23127 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement

Statistics
----------------------------------------------------------
11 recursive calls
0 db block gets
51 consistent gets
1 physical reads
0 redo size
23128 bytes sent via SQL*Net to client
917 bytes received via SQL*Net from client
41 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
593 rows processed
</pre>
<p>&#8220;Recursive calls&#8221; sayısı Oracle&#8217;ın içsel olarak yarattığı peşpeşe okumaları sembolize etmektedir ve bu okumalar hem kullanıcı hem de sistem seviyesinde olmaktadır.<br />
&#8220;Consistent gets&#8221; sayısı bir blok için kaç defa tutarlı okuma yapıldığını göstermektedir.<br />
&#8220;Physical reads&#8221; disk üzerindeki bloklardan yapılan fiziksel okuma sayısı.</p>
<p>Yukarıdaki örnekte görüntünün fiziksel okuma yaptığı ve birkaç rakam kadar daha fazla tutarlı okuma yaptığını gördük. Şimdi bu iki sorguyu arka arkaya çalıştıralım ve parse aşamasını geçmesini sağlayarak cache içerisine yazılmasını sağlayalım;</p>
<pre class="brush: sql">
SQL&gt; SELECT *
2 FROM OGAN_PERF;

Execution Plan
----------------------------------------------------------
Plan hash value: 3842809937

--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 593 | 23127 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| OGAN_TABLO | 593 | 23127 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement

Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
44 consistent gets
0 physical reads
0 redo size
23128 bytes sent via SQL*Net to client
917 bytes received via SQL*Net from client
41 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
593 rows processed

SQL&gt; SELECT *
2 FROM OGAN_TABLO;

Execution Plan
----------------------------------------------------------

Plan hash value: 3842809937

--------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
--------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 593 | 23127 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS FULL| OGAN_TABLO | 593 | 23127 | 2 (0)| 00:00:01 |
--------------------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement

Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
44 consistent gets
0 physical reads
0 redo size
23128 bytes sent via SQL*Net to client
917 bytes received via SQL*Net from client
41 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
593 rows processed
</pre>
<p>Gördüğünüz gibi görüntünün bana sağladığı bir getiri bulunmamakta ve ilk defa parse edildikleri zaman farklılıklar görülmekte ancak bu farklılığın görüntünün daha hızlı olduğunu açıklayan bir yanı bulunmamakta. Kısacası görüntülerin performansı arttırdığı tek nokta eğer başında nasıl sorgu yazmasını bilen bir geliştirici varsa, yani emin ellerdeyse evet, görüntüler performansı arttırabilir ama bunu arttıran görüntünün yani objenin kendisi değil, içerisinde bulundurduğu sorgudur.</p>
<p>İyi çalışmalar dilerim.</p>
<p>Ogan</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/oracle-view-yaratmak-ve-degistirmek-performans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Undo Tablespace Yönetimi ve Undo</title>
		<link>http://www.ceturk.com/undo-tablespace-yonetimi-ve-undo/</link>
		<comments>http://www.ceturk.com/undo-tablespace-yonetimi-ve-undo/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 09:24:11 +0000</pubDate>
		<dc:creator>Ogan Ozdogan</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[undo]]></category>
		<category><![CDATA[undo retention]]></category>
		<category><![CDATA[undo retention guarantee]]></category>
		<category><![CDATA[undo tablespace]]></category>
		<category><![CDATA[undo yönetimi]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7087</guid>
		<description><![CDATA[Merhaba, Bu yazımda, undo&#8217;nun ne olduğunu, nasıl yönetildiğini, undo tablespace&#8217;in amacını ve günlük kullanımdaki yerini ve boyutlandırmasını anlatmaya çalışacağım. Her bir Oracle veritabanının işlenen verinin bakımını yapabilmesi ve ihtiyaç anında ilgili bilgiyi geri alabilmesi için bir method kullanması gerekmektedir. Bahsettiğim bilgiyi henüz commit edilmemiş aktif transaction&#8217;lar olarak düşünürsek eğer aslında bu bilgi tiplerine undo Undo bilgileri [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba,</p>
<p>Bu yazımda, undo&#8217;nun ne olduğunu, nasıl yönetildiğini, undo tablespace&#8217;in amacını ve günlük kullanımdaki yerini ve boyutlandırmasını anlatmaya çalışacağım.</p>
<p>Her bir Oracle veritabanının işlenen verinin bakımını yapabilmesi ve ihtiyaç anında ilgili bilgiyi geri alabilmesi için bir method kullanması gerekmektedir. Bahsettiğim bilgiyi henüz commit edilmemiş aktif transaction&#8217;lar olarak düşünürsek eğer aslında bu bilgi tiplerine undo</p>
<p>Undo bilgileri aşağıdaki durumlarda;</p>
<p>1) Bir işlemi (transaction) rollback yapabilmek,<br />
2) Veritabanını kurtarmak (recover),<br />
3) Verinin okuma tutarlılığını sağlayabilmek,<br />
4) Flashback query ile önceden kullanılmış bir DML&#8217;i yeniden sorgulayabilmek,<br />
5) Oracle Flashback özellikleri ile kayıp veriye yeniden ulaşabilmek için undo kullanılabilir.</p>
<p>Henüz commit edilmemiş bir transaction rollback komutunu koşarsa undo bilgileri kullanılarak veriler geriye çevrilebilir. Veritabanının kurtarılması işleminde redo log&#8217;lar tarafından fiziksel datafile&#8217;lara yazılmış ancak henüz commit edilmemiş değişikliker için undo yine kullanılabilir.</p>
<p><strong>Otomatik Undo Yönetimi</strong></p>
<p>Undo bilgisini ve boyutlandırmasının yönetilmesini Oracle&#8217;a bırakabiliriz zira otomatik undo yönetimini devreye alarak bunu sağlayabilirsiniz. Bu şekilde undo tablespace yaratabilir ve aktif session&#8217;ların undo yönetimini otomatik olarak yaptırabilirsiniz. Bunu sağlayabilmek içinUNDO_MANAGEMENT parametresini AUTO konumuna getirmeniz yeterli olacaktır.</p>
<p>Bir veritabanı ilk defa yaratılırken undo tablespace&#8217;i de yaratılmaktadır. Yalnız bu noktada unutmamanız gereken birşey var ki; bir veritabanın iki datafile, iki tablespace, iki online redolog ve bir control dosyası ile yaratılması şarttır. Tablespace&#8217;lerden birisi system bir diğeri ise sysaux&#8217;tur ve iki datafile&#8217;da bu iki tablespace&#8217;e aittir. Yani bir undo tablespace&#8217;i veritabanı yaratılırken yaratmak zorunda değilsiniz. Undo tablespace sonradan elle de yaratılabilir.</p>
<p>Bu konunun önemli notlarından birisi ise bir veritabanı her açılışında undo tablespace&#8217;ini aramaktadır. Eğer tahsis edilmiş varsayılan bir undo tablespace&#8217;i bulunmuyorsa, undo bilgileri system tablespace&#8217;ini yazılır. Bu tavsiye edilen birşey kesinlikle değildir ve veritabanı açıldığı zaman undo tablespace&#8217;in yaratılmadığı ve undo bilgilerinin system tablespace&#8217;ine yazılacağını bildiren bir bilgi alert.log dosyasına işlenmektedir.</p>
<p>Bir veritabanında birden çok undo tablespace bulunabilir. Bunun bir sakıncası yoktur ancak bir tanesini varsayılan olarak atayabilirsiniz. Bunu sağlayan parametre ise UNDO_TABLESPACE parametresidir.</p>
<pre class="brush: sql">
UNDO_TABLESPACE = UNDOTBS_01
</pre>
<p>Eğer undo_tablespace parametresinin bir değeri varsa ancak ilgili undo tablespace veritabanında bulunmuyorsa STARTUP komutu hata alacaktır. UNDO_TABLESPACE parametresini RAC (Real Application Cluster) ortamlarında da kullanabilirsiniz. Eğer otomatik undo yönetimi aktive edilmişse elle yapılması için tanımlanmış undo parametreleri göz ardı edilecektir.</p>
<p>Yukarıdaki bilgileri aktarmışken, sırada undonun korunacağı (undo retention) periyotunu tanımlamak var. Veritabanındaki undo tablespace&#8217;inde tutulan ve aktif transaction&#8217;ların henüz commit edilmemiş bilgilerini içeren undo verileri sadece belirli bir süre undo tablespace&#8217;inde tutulmaktadır. Buna da &#8220;undo retention&#8221; süresi denilmektedir. Bir transaction commit edildikten sonra daha önceki undo bilgilerine gerek kalmamaktadır fakat tutarlı bir okuma sağlayabilmek için, uzun süre alan ve çalışan sorguların eski undo bilgileri und tablespace&#8217;inde tutulabilmektedir. Bunun sebebi ise flashback özelliğini kullabilmektir. Flashback özelliklerinin kullanabilmesi içinse undo retention süresini mümkün olduğunca uzun tutmak isteyebilirsiniz.</p>
<p>Eski ve commit edilmiş, undo retention parametresinden eski undo bilgileri &#8220;süresi dolmuş&#8221; olarak kabul edilmekte iken, eski ve commit edilmiş ancak undo retention parametresinden yeni olan undo bilgileri &#8220;süresi dolmamış&#8221; olarak kabul edilmektedir.</p>
<p>UNDO_RETENTION parametresini -ki saniye olarak atanmaktadır- değiştirebilirsiniz ancak Oracle bunu otomatik undo yönetiminde kendisi de yönetmektedir. Bunu sistem aktivitesine göre boyutlandırmaktadır. Eğer sizin undo tablespace için tanımladığınız alan, yine tanımladığınız undo_retention periyodunu aşmakta ise Oracle, undo tablespace içerisinde &#8220;süresi dolmuş&#8221; olarak işaretlenen undo bilgilerini silecektir. Bu da aslında otomatik undo yönetiminin bir parçasıdır.</p>
<p>Bir undo tablespace&#8217;ini AUTOEXTEND, yani otomatik genişleyecek şekilde tanımladıysanız eğer Oracle, undo tablespace&#8217;i büyütmek istediği zaman daha fazla yere ihtiyaç duyacak ve tablespace alanını AUTOEXTEND doğrultusunda arttıracaktır. Arttıramadığı durumlarda bir hata alacaksınız ve bu hatayı alert.log dosyasında göreceksiniz. İlgili hata nedeniyle çalışmakta olan transaction iptal edilecek ancak rollback yapabilmesi için önceki bilgileri undo tablespace&#8217;te tutulmaya devam edecektir. Bu noktada dokümante edilmemiş bir Oracle bilgi mesajından bahsetmek istiyorum. Diyelim bir transaction&#8217;ınız var ve çok uzun süren bir sorgu. Aradan 30 dakika geçti ve bağlantınız kötü bir biçimde sonlandırıldı. Alert.log dosyasında göreceğiniz mesaj şudur;</p>
<p><strong>SMON:</strong> Parallel transaction recovery tried.</p>
<p>Bu tamamen normal bir mesajtır ve undo bilgileri okunarak, transaction bir anlamda rollback yapılmaktadır. Yani SMON sadece startup seviyesinde çalışan bir arka plan görevi değildir.</p>
<p><strong>Retention Garantisi</strong></p>
<p>Veritabanında uzun süren sorguların undo&#8217;dan silinmemesini garanti altına alabilirsiniz. Flashback query için tutarlılığın sağlanmasında kullanılabilmektedir. Eğer retention garantisi aktif hale getirildi ise undo_retention parametresinin saniye değeri kadar olan bilgi undo tablespace&#8217;inde saklanacaktır. Tablespace dolsa bile bu bilgiler silinmeyecektir ve &#8220;süresi dolmamış&#8221; bilgilerin üzerine başka undo verileri girilmeyecektir. Bu opsiyonun varsayılanı kapalı konumdur ve bir komut ile aktif hale getirilir.</p>
<p>UNDO_RETENTION parametresini init parametre dosyasında (9i&#8217;den önce pfile veya 9i&#8217;den sonra spfile) ya da sistem çalışırken değiştirebilirsiniz;</p>
<pre class="brush: sql">
UNDO_RETENTION = 1800

ALTER SYSTEM SET UNDO_RETENTION = 2400;
</pre>
<p>Bir undo tablespace&#8217;inin sabit bir boyutu olabilir ya da otomatik olarak arttırılacak şekilde tasarlanabilir.</p>
<p>Yeni bir sistem kurmuşsanız ve uygulamanın ne kadar undo yaratacağını tahmin edemiyorsanız AUTOEXTEND özelliğini kullanarak undo tablespace&#8217;in boyutlarının nereye kadar gidebileceğini gözlemleyebilirsiniz.</p>
<p>Kararınızı sabit boyutlu bir undo tablespace kullanmaktan yana kullanırsanız da size yardımcı olabilecek bir çok özellik bulunmaktadır. Bunlardan bir tanesi DBMS_ADVISOR paketidir. Enterprise Manager&#8217;da kullanılan &#8220;undo advisor&#8221; AWR tarafından toplanan bilgilerle oluşturulmaktadır. Yeni veritabanı kurulduğu zaman tutarlı bir AWR raporu almak mümkün olmadığı için ilk başta otomatik undo yönetimi ve AUTOEXTEND özelliğinin açık olması önerilmektedir. Zamanlar AWR raporları daha da tutarlı veriler sağlamaya başladığı zaman AUTOEXTEND yerini sabit boyutlandırmalı undo tablespace&#8217;e bırakabilir.</p>
<p>Undo advisor&#8217;ın bir örnek script&#8217;ini vermem gerekirse;</p>
<pre class="brush: sql">
DECLARE

tid NUMBER;
tname VARCHAR2(30);
oid NUMBER;

BEGIN

DBMS_ADVISOR.CREATE_TASK('Undo Advisor', tid, tname, 'Undo Advisor Task');
DBMS_ADVISOR.CREATE_OBJECT(tname, 'UNDO_TBS', null, null, null, 'null', oid);
DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'TARGET_OBJECTS', oid);
DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'START_SNAPSHOT', 1);
DBMS_ADVISOR.SET_TASK_PARAMETER(tname, 'END_SNAPSHOT', 2);
DBMS_ADVISOR.SET_TASK_PARAMETER(name, 'INSTANCE', 1);
DBMS_ADVISOR.execute_task(tname);

END;
/
</pre>
<p>Advisor görevini başarıyla yarattıktan sonra Enterprise Manager&#8217;dan ADDM&#8217;e bakarak ilgili görevleri inceleyebilirsiniz.</p>
<p><strong>NOT:</strong> ADDM, AWR Enterprise Edition ile birlikte satın alınabilecek bir pakettir (Bkz. Diagnostic Pack). Bu paketi satın almadıysanız eğer statspack kullanabilirsiniz.</p>
<p><strong>UNDO TABLESPACE YÖNETİMİ</strong></p>
<p><strong>UNDO TABLESPACE OLUŞTURULMASI</strong></p>
<p>Bir undo tablaspace&#8217;i iki ayrı yönetim ile oluşturabilirsiniz. Bunlardan bir tanesi CREATE DATABASE komutudur. Instance otomatik undo yönetimi ile açılacak ve bir undo tablespace&#8217;iniz olacaktır. Diğer yönetim ise zaten açık olan ve undo yönetimini system tablespace&#8217;i devam ettiren bir veritabanında undo tablespace yaratmaktır. Bunu yapabilmenin komutu da CREATE UNDO TABLESPACE.</p>
<p>Önemli notlardan birisi, undo tablespace üzerinde hiçbir obje yaratamazsınız. Sıradan bir tablespace değildir ve obje yaratılması kabul edilmez. Sadece sistem &#8211; undo bilgileri içindir.</p>
<p>Aşağıda CREATE DATABASE komutu ile nasıl undo tablespace yaratabileceğiniz görebilirsiniz;</p>
<pre class="brush: sql">
CREATE DATABASE ORCL
CONTROLFILE REUSE
.
.
.
UNDO TABLESPACE undotbs_01 DATAFILE '/u01/oracle/rbdb1/undo0101.dbf';
</pre>
<p>Eğer CREATE DATABASE komutu koşarken undo tablespace düzgün bir şekilde yaratılamazsa bütün prosedür sonlanacaktır ve yapılan işlemler boşa gidecektir. Bütün veritabanı dosyalarını silmeniz, hatayı düzeltmeniz ve komutu yeniden koşmanız gerekmektedir.</p>
<p>Undo tablespace&#8217;in diğer oluşturulma komutu ise;</p>
<pre class="brush: sql">
CREATE UNDO TABLESPACE undotbs_02
DATAFILE '/u01/oracle/rbdb1/undo0201.dbf' SIZE 2M REUSE AUTOEXTEND ON;
</pre>
<p>Birden çok undo tablespace yaratabilirsiniz ancak bunlardan sadece bir tanesi aktif olarak çalışabilir.</p>
<p><strong>ALTER UNDO TABLESPACE</strong></p>
<p>Bir undo tablespace&#8217;inin özellikleri ALTER TABLESPACE komutu ile değiştirilebilir. Bu komut ile;</p>
<p>1) Yeni bir datafile eklenebilir.<br />
2) Varolan bir datafile yeniden adlandırılabilir.<br />
3) Varolan bir datafile offline ya da online yapılabilir (NOT: UNDO TABLESPACE TAMAMEN OFFLINE YAPILAMAZ).<br />
4) Undo garantisini açmak ya da kapamak için kullanılabilir.</p>
<p><strong>Örnek;</strong></p>
<pre class="brush: sql">
ALTER TABLESPACE undotbs_01
ADD DATAFILE '/u01/oracle/rbdb1/undo0102.dbf'
AUTOEXTEND ON NEXT 1M
MAXSIZE UNLIMITED;

DROP UNDO TABLESPACE
</pre>
<p>Bir undo tablespace&#8217;ini düşürebilirsiniz (drop etmek). Bunu yapabilmeniz için aşağıdaki komutu koşmanız gerekmektedir;</p>
<pre class="brush: sql">
DROP TABLESPACE undotbs_01;
</pre>
<p>Bir undo tablespace sadece ve sadece hiçbir instance tarafından kullanılmıyorken düşürülebilir. Eğer undo tablespace olağanüstü bir transaction içeriyorsa (ölmüş bir transaction ve henüz kurtarılmamış) o zaman drop işlemi çalışmayacaktır.</p>
<p>Bu konu ile ilgili önceki bir yazımı okumanızı tavsiye ederim. Undo tablespace&#8217;i düşürebilmek için dikkatli olmak gerekmektedir. İlgili yazı için &#8211;&gt; <a href="http://oganozdogan.blogspot.com/2010/07/aktif-rollback-segment-ora-01548.html">http://oganozdogan.blogspot.com/2010/07/aktif-rollback-segment-ora-01548.html</a></p>
<p><strong>UNDO TABLESPACE DEĞİŞTİRİLMESİ</strong></p>
<p>Varsayılan ve aktif olarak işlenecek undo tablespace&#8217;in hangisi olacağına dinamik olarak karar verebilirsiniz. Tabii bunu yapabilmek için spfile kullanmak gerekmektedir!</p>
<pre class="brush: sql">
ALTER SYSTEM SET UNDO_TABLESPACE = undotbs_02;
</pre>
<p>Bu komut ile birlikte bütün aktif transaction&#8217;lar artık yeni undo tablespace&#8217;i kullanacaklardır. Bunu sağlayabilmek için komutun başarılı olması gerekmektedir.</p>
<p>Aşağıdaki komut geçerli undo tablespace&#8217;i hiçbir undo tablespace&#8217;ine tanımlamamaktadır;</p>
<pre class="brush: sql">
ALTER SYSTEM SET UNDO_TABLESPACE = '';
</pre>
<p>Tabii yukarıdaki komut dikkatlice kullanılmalıdır zira bu komut ile geçerli undo tablespace yerini eski undo tablespace&#8217;e bırakacaktır. Eski bir undo tablespace yoksa eğer hata alınabilir.</p>
<p><strong>UNDO HAKKINDA BİLGİ GÖRÜNTÜLEMEK</strong></p>
<p>Undo hakkında bilgiye sahip olabilmek için aşağıdaki görüntüler sorgulanabilir;</p>
<pre class="brush: sql">
V$UNDOSTAT
V$ROLLSTAT
V$TRANSACTION
DBA_UNDO_EXTENTS
DBA_HIST_UNDO_STAT
</pre>
<p>V$UNDOSTAT görüntüsü içerisinde çok faydalı undo bilgileri bulunmaktadır. Bu görüntüde undo alan tüketimi, transaction tutarlılığı ve undo retention parametresinin ayarlanması gibi bilgiler bulunmaktadır. Aşağıdaki sorgu kullanılarak bir bilgiye sahip olabilirsiniz;</p>
<pre class="brush: sql">
SELECT TO_CHAR(BEGIN_TIME, 'MM/DD/YYYY HH24:MI:SS') BEGIN_TIME,
TO_CHAR(END_TIME, 'MM/DD/YYYY HH24:MI:SS') END_TIME,
UNDOTSN, UNDOBLKS, TXNCOUNT, MAXCONCURRENCY AS "MAXCON"
FROM v$UNDOSTAT WHERE rownum &lt;= 144;
</pre>
<p>İyi çalışmalar.</p>
<p>Ogan &#8211; http://oganozdogan.blogspot.com/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/undo-tablespace-yonetimi-ve-undo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Veritabanı Temel Kavramları ve ORACLE Veritabanına Genel Bakış Videosu</title>
		<link>http://www.ceturk.com/talip-hakan-ozturk-veritabani-temel-kavramlari-ve-oracle-veritabanina-genel-bakis-videosu/</link>
		<comments>http://www.ceturk.com/talip-hakan-ozturk-veritabani-temel-kavramlari-ve-oracle-veritabanina-genel-bakis-videosu/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 22:02:13 +0000</pubDate>
		<dc:creator>Mehmet ACA</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Seminerler]]></category>
		<category><![CDATA[CETURK Ege Üniversitesi Java Günü]]></category>
		<category><![CDATA[Ege Üniversitesi Bilgisayar Mühendisliği]]></category>
		<category><![CDATA[oracle seminer]]></category>
		<category><![CDATA[Oracle Video]]></category>
		<category><![CDATA[Talip Hakan Öztürk]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7190</guid>
		<description><![CDATA[6 Kasım 2010 tarihinde yapılan CETURK Ege Üniversitesi Java Günü etkinliğinde Talip Hakan Öztürk, &#8220;Veritabanı Temel Kavramları ve ORACLE Veritabanına Genel Bakış &#8221; konulu sunum yaptı. Aşağıdaki videolardan sunumu izleyebilirsiniz. 1. Bölüm 2. Bölüm]]></description>
			<content:encoded><![CDATA[<p>6 Kasım 2010 tarihinde yapılan <a href="../programlama/ceturk-ege-universitesi-java-gunu" target="_blank">CETURK Ege Üniversitesi Java Günü</a> etkinliğinde  Talip Hakan Öztürk, &#8220;Veritabanı Temel Kavramları ve ORACLE Veritabanına Genel Bakış &#8221; konulu sunum yaptı.<span id="more-7190"></span></p>
<p><img title="talip-hakan-ozturk-oracle-semineri-ege-2010" src="http://www.ceturk.com/images/talip-hakan-ozturk-oracle-semineri-ege-2010.jpg" alt="" width="200" height="100" /></p>
<p>Aşağıdaki videolardan sunumu izleyebilirsiniz.</p>
<p>1. Bölüm</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=19109044&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=19109044&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>2. Bölüm</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=19114620&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=19114620&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1&amp;autoplay=0&amp;loop=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/talip-hakan-ozturk-veritabani-temel-kavramlari-ve-oracle-veritabanina-genel-bakis-videosu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/talip-hakan-ozturk-oracle-semineri-ege-2010.jpg" length="11728" type="image/jpg" />	</item>
		<item>
		<title>ORA 600 Nedir?</title>
		<link>http://www.ceturk.com/ora-600-nedir/</link>
		<comments>http://www.ceturk.com/ora-600-nedir/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 19:16:14 +0000</pubDate>
		<dc:creator>Ogan Ozdogan</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[ORA-07445]]></category>
		<category><![CDATA[ORA-600]]></category>
		<category><![CDATA[Oracle Hataları]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7085</guid>
		<description><![CDATA[Merhaba, Birçoğunuz hiç karşılaşmamış olmanıza rağmen aslında hepimizin yakından takip ettiği ve bildiği ORA-00600 hataları kimi zaman veritabanı yöneticilerinin gerçek anlamda canını sıkmaktadır. Bir 600 hatası aldığınız zaman ilk ve mutlaka yapmanız gereken çözüm, metalink&#8217;i kontrol etmektir. Metalink üzerinde ORA-600 ve ORA-07445 ayrıcalıklı hataları için bir araç bulunmakta ve bu araca ilk argümanları girdiğinizde size [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba,</p>
<p>Birçoğunuz hiç karşılaşmamış olmanıza rağmen aslında hepimizin yakından takip ettiği ve bildiği ORA-00600 hataları kimi zaman veritabanı yöneticilerinin gerçek anlamda canını sıkmaktadır. Bir 600 hatası aldığınız zaman ilk ve mutlaka yapmanız gereken çözüm, metalink&#8217;i kontrol etmektir. Metalink üzerinde ORA-600 ve ORA-07445 ayrıcalıklı hataları için bir araç bulunmakta ve bu araca ilk argümanları girdiğinizde size yapılması gerekenleri özetleyen bir sonuç listesi vermekte. Onun için ORA 600 ve ORA 7445 hatalarını kendiniz düzeltmek için çok fazla vaktinizi harcamayın. Ayrıca üzerinizdeki baskı gittikçe artacağı için google&#8217;a hiç danışmamanızı tavsiye ederim zira bu yazıyı aslında google&#8217;da arama yaparak buldunuz, öyle değil mi? <img src='http://www.ceturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Bu hata, sıradan bir hata olmadığı için google size cevap veremeyecektir çünkü bu hatanın genel çözümü sadece metalink içerisindedir. Metalink içerisindeki bir bilgiyi de dışarıya çıkartmak veya başka bir site altında göstermek, kopyalamak kesinlikle yasaktır. Dolayısıyla önce metalink, eğer çözüm bulamadıysanız mecbur bir SR (Service Request) açacaksınız ve Oracle&#8217;dan cevap bekleyeceksiniz.</p>
<p>ORA-600 veya ORA-07445 hatalarının kaynağı kimi zaman bir bug veya içsel bir ayrıcalıklı hatadan kaynaklanmayabiliyor. Sizin geliştirdiğiniz bir uygulama veya yanlışlıkla ayarladığınız bir parametre yüzünden de bu hataları almanız mümkün. Benim size tavsiyem en kısa zamanda eğer yoksa bir metalink hesabı edinmeniz ve buradan gerekli kontrolleri yapmanız. Unutmayın, teknik olarak bu hatalar sizin çözebileceğiniz türde hatalar değildir. Çözüme kendiniz ulaştıysanız eğer yine sizden kaynaklanan bir hatadan olduğunu da eklemem gerekiyor. Tabii bunun bir bug olduğunu varsayarsak yapabileceğiniz hiçbir şey yok demektir.</p>
<p>Metalink adresi: <a href="http://metalink.oracle.com/" target="_blank">http://metalink.oracle.com/</a></p>
<p>İyi çalışmalar.</p>
<p>Ogan Özdoğan</p>
<p>http://oganozdogan.blogspot.com/</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/ora-600-nedir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/oracle-logo7.gif" length="5831" type="image/jpg" />	</item>
	</channel>
</rss>

