<?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; Veri Tabanı</title>
	<atom:link href="http://www.ceturk.com/kategori/veri-tabani/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ceturk.com</link>
	<description>Türkiye&#039;nin Bilişim Platformu</description>
	<lastBuildDate>Tue, 07 Feb 2012 18:02:52 +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>Fatih Üniversitesi Oracle Semineri</title>
		<link>http://www.ceturk.com/fatih-universitesi-oracle-semineri/</link>
		<comments>http://www.ceturk.com/fatih-universitesi-oracle-semineri/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 15:59:19 +0000</pubDate>
		<dc:creator>Talip Hakan Öztürk</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Fatih Üniversitesi Oracle Semineri]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=8582</guid>
		<description><![CDATA[6 Aralık  salı günü Fatih Üniversitesi Büyükçekmece Kampüsünde düzenlenecek Oracle seminerinde sizlerle olacağım. Oracle’a ilgi duyan, Oracle ile tanışmak isteyen, Neden Oracle diyen ve kariyer hedefim Oracle DBA diyen tüm öğrenci arkadaşlarımı beklerim. 6 Aralık  salı günü buluşmak üzere… Adres: Fatih Üniversitesi, 34500 Büyükçekmece, İstanbul]]></description>
			<content:encoded><![CDATA[<p>6 Aralık  salı günü Fatih Üniversitesi Büyükçekmece Kampüsünde düzenlenecek Oracle seminerinde sizlerle olacağım.</p>
<p>Oracle’a ilgi duyan, Oracle ile tanışmak isteyen, Neden Oracle diyen ve kariyer hedefim Oracle DBA diyen tüm öğrenci arkadaşlarımı beklerim.</p>
<p>6 Aralık  salı günü buluşmak üzere…</p>
<p>Adres: Fatih Üniversitesi, 34500 Büyükçekmece, İstanbul</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/fatih-universitesi-oracle-semineri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dumlupınar Üniversitesi Oracle Semineri</title>
		<link>http://www.ceturk.com/talip-hakan-ozturk-ile-oracle-veritabani-yonetim-sistemi-yer-dumlupinar-universitesi/</link>
		<comments>http://www.ceturk.com/talip-hakan-ozturk-ile-oracle-veritabani-yonetim-sistemi-yer-dumlupinar-universitesi/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 21:25:44 +0000</pubDate>
		<dc:creator>Talip Hakan Öztürk</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Dumlupınar Üniversitesi]]></category>
		<category><![CDATA[Dumlupınar Üniversitesi Oracle Seminer]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=8485</guid>
		<description><![CDATA[26 Kasım 2011 cumartesi günü Dumlupınar Üniversitesi Mühendislik Fakültesi konferans salonunda düzenlenecek Oracle seminerinde sizlerle olacağım. Veritabanı temel kavramlar, veritabanı olmazsa neler olur, Oracle veritabanı mimarisi ve veritabanı bileşenlerini küçük demolarla öğreneceğiz. İkinci bölümde Oracle veritabanı yöneticisi  olmak için kariyer basamaklarını nasıl çıkacağımız konusunda fikir sahibi olacağız. 26 Kasım cumartesi günü buluşmak üzere&#8230;]]></description>
			<content:encoded><![CDATA[<p>26 Kasım 2011 cumartesi günü Dumlupınar Üniversitesi Mühendislik Fakültesi konferans salonunda düzenlenecek Oracle seminerinde sizlerle olacağım.</p>
<p>Veritabanı temel kavramlar, veritabanı olmazsa neler olur, Oracle veritabanı mimarisi ve veritabanı bileşenlerini küçük demolarla öğreneceğiz. İkinci bölümde Oracle veritabanı yöneticisi  olmak için kariyer basamaklarını nasıl çıkacağımız konusunda fikir sahibi olacağız.</p>
<p>26 Kasım cumartesi günü buluşmak üzere&#8230;</p>
<p><a href="http://www.ceturk.com/talip-hakan-ozturk-ile-oracle-veritabani-yonetim-sistemi-yer-dumlupinar-universitesi/afis/" rel="attachment wp-att-8486"><img src="http://www.ceturk.com/images/afis.jpg" alt="" width="600" height="849" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/talip-hakan-ozturk-ile-oracle-veritabani-yonetim-sistemi-yer-dumlupinar-universitesi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/afis.jpg" length="134252" type="image/jpg" />	</item>
		<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>DATA GUARD Hakkında kısa kısa merak ettiklerimiz</title>
		<link>http://www.ceturk.com/data-guard-hakkinda-kisa-kisa-merak-ettiklerimiz/</link>
		<comments>http://www.ceturk.com/data-guard-hakkinda-kisa-kisa-merak-ettiklerimiz/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 13:25:00 +0000</pubDate>
		<dc:creator>Talip Hakan Öztürk</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Active Data Guard]]></category>
		<category><![CDATA[Data Guard]]></category>
		<category><![CDATA[Data Guard Protection Modları]]></category>
		<category><![CDATA[Delayed Apply]]></category>
		<category><![CDATA[Logical Standby]]></category>
		<category><![CDATA[Physical Standby]]></category>
		<category><![CDATA[Real-Time Apply]]></category>
		<category><![CDATA[Snapshot Standby]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7879</guid>
		<description><![CDATA[Merhaba Arkadaşlar, Bu makalemde Oracle ın felaket kurtarma (disaster recovery) çözümü olan Data Guard temel terminolojisi hakkında kısa kısa bilgi vereceğim. Öncelikle Felaket(Disaster) kelimesini anlamaya çalışalım. Televizyon, radio, gazete v.s. medya aracılığı ile dünyanın bir çok yerinde bazı felaketlerin meydana geldiğini hepimiz görmekteyiz. Endonezyadaki tsunami, Amerikadaki kasırga ve hortumlar, yakın geçmişte yaşadığımız 1999 depremi bunlardan [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba Arkadaşlar,</p>
<p>Bu makalemde Oracle ın felaket kurtarma<strong> (disaster recovery)</strong> çözümü olan Data Guard temel terminolojisi hakkında kısa kısa bilgi vereceğim.</p>
<p>Öncelikle <strong>Felaket(Disaster)</strong> kelimesini anlamaya çalışalım. Televizyon, radio, gazete v.s. medya aracılığı ile dünyanın bir çok yerinde bazı felaketlerin meydana geldiğini hepimiz görmekteyiz. Endonezyadaki tsunami, Amerikadaki kasırga ve hortumlar, yakın geçmişte yaşadığımız 1999 depremi bunlardan bazılarıdır. İşte bu gibi olaylara felaket (disaster), diğer bir söylemle afet diyoruz. Doğal afetler sonucu veri merkezimizi (datacenter) kaybedecek olursak, bunun bize olan bedeli eminim ki çok ağır olacaktır. Verilerimiz bizim için çok değerlidir hatta şirketimizin hazinesidir diyebiliriz. Sadece doğal afetler değil, anlık elektrik kesintisi, disk arızaları ve kullanıcı hataları gibi olaylarda verilerimizi kaybetmeye sebebiyet verebilmektedir.</p>
<p>Bizler veri yöneticileri olarak tüm bu felaketler oluşmadan gerekli aksiyonları almakla yükümlüyüz. Gerekli aksiyonları alırken de göz önünde bulundurmamız gereken önemli bileşenler vardır. Bu bileşenler;</p>
<p><strong>RPO (Recovery Point Objective) –</strong> Ne kadar veri kaybetmeyi göze alabilirsiniz?</p>
<p><strong>RTO (Recovery Time Objective) -</strong> Veri erişimi olmadan kaç dakika ayakta durabilirsiniz ?</p>
<p>Bu sorulara vereceğimiz mantıklık cevaplara göre hızlıca yedek sistemimizi kuruyor olmalıyız. Sistemimizi sadece kurmakla yetinmeyip, canlı verilerimizle yedek sistemimizi besmeli ve bu beslemeyide sıkı takip ediyor olmalıyız.</p>
<p>Şimdi ORACLE ın bu konudaki güzel çözümü Data Guard ı tanıyalım.</p>
<p>Data Guard ORACLE ın felaket kurtarma (disaster recovery) çözümüdür. Canlı (production) veritabanınızı felaketlerden korur, üzerindeki iş yükünü azaltır ve daha efektif kullanılmasını sağlar. Teknoloji,  ilk olarak Oracle 7 ile manuel standby veritabanı oluştururarak kullanılmaya başlandı. Oracle 8i ile Data Guard olarak karşımıza çıktı. Geçmişten günümüze Data Guard a gelen özellikeleri inceleyecek olursak;</p>
<p><strong> ORACLE 8i</strong></p>
<p>Read-Only Standby Veritabanı</p>
<p>Managed recovery</p>
<p>Redo Log dosyalarını Uzak(Remote) arşivlenmesi</p>
<p><strong> ORALCE 9i</strong></p>
<p>“Zero Data Loss” Entegrasyonu</p>
<p>Data Guard Broker ve Data Guard Manager GUI</p>
<p>Swithcover ve Failover işlemleri</p>
<p>Otomatik senkronizasyon</p>
<p>Logical Standby Veritabanı</p>
<p>Maximum Protection</p>
<p><strong> ORACLE 10g</strong></p>
<p>Real-Time Apply</p>
<p>RAC için güçlendirilmiş destek</p>
<p>Fast-Start Failover</p>
<p>Asenkron redo transferi</p>
<p>Data Guard switchover karşı Flashback Database</p>
<p><strong> ORACLE 11g</strong></p>
<p>Active Standby Veritabanı(Active Data Guard)</p>
<p>Snapshot Standby</p>
<p>Heterojen platform desteği (Production –Linux, Standby &#8211; Windows)</p>
<p>Özellikleri ile zaman içinde gelişerek bugünkü halini almıştır. Bugün 11g ile sağladığı özellikler bakımından DBA lerin vazgeçemediği bir sistemdir.</p>
<p><strong>DATA GUARD 11g PROCESS MİMARİSİ SENKRON REDO TRANSFERİ (SYNC)-SIFIR VERİ KAYBI (ZERO DATA LOSS)</strong></p>
<p style="text-align: center;"><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image001.jpg"><img class="size-full wp-image-401 aligncenter" title="image001" src="http://taliphakanozturk.files.wordpress.com/2011/05/image001.jpg" alt="" width="600" height="316" /></a></p>
<p>İşlem akışı kısaca;</p>
<p>1 – Kullanıcı bir transaction başlatır. Bu transaction redo buffer a yazılır. Kullanıcı transaction ı commit ettiğinde LGWR process Redo Log dosyaya yazar</p>
<p>2 &#8211;  LNS (LogWriter Network Service) commitlenmiş redoyu RFS (Remote File Service) bildirir. RFS standby redo log dosyaya yazar. Physical standby kullanıyorsak MRP (Managed Recovery Process) standby veritabanına apply eder. Logical Standby kullanıyorsak bu işlemi LSP (Logical Standby Process) yapar.</p>
<p>3 – RFS verinin başarılı işlendiği bilgisini LNS e gönderir. LNS bu bilgiyi LGWR a aktarır. Son olarak kullanıcıya başlatmış olduğu işlemin (transaction) commit edildiği bilgisi gönderilir.</p>
<p>Senkron redo transferi ile veri transferi garanti altına alınır. Ama bir dezavatajı vardır. canlı veritabanı (Primary) ile yedek veritabanı (Standby) arasında bir network kesintisi oluşursa veya bir şekilde Primary veritabanı standby veritabanına erişemezse, primary veritabanı standby veritabanı cevap verene kadar hang olur. Yani hizmet veremez duruma düşer. Böyle bir durum oluşmaması için “NET_TIMEOUT” parametresi kullanılması bence en mantıklı olanıdır. Bu parametre ile timeout süresi belirleyebiliriz. Kesinti durumunda primary timeout süresi kadar bekler ve bu süre dolduğunda hizmet vermeye devam eder. Data Guard 10g de bu parametre varsayılan 180 sn iken, Data Guard 11g de varsayılan 30 sndir.</p>
<p><strong>DATA GUARD 11g PROCESS MİMARİSİ ASENKRON REDO TRANSFERİ (ASYNC)</strong></p>
<p style="text-align: center;"><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image0021.jpg"><img class="size-full wp-image-402 aligncenter" title="image002" src="http://taliphakanozturk.files.wordpress.com/2011/05/image0021.jpg" alt="" width="600" height="312" /></a></p>
<p>Asenkron redo transferinde işlem akışı;</p>
<p>1 &#8211; Kullanıcı bir işlem (transaction) başlatır. Bu transaction redo buffer a yazılır. Kullanıcı transaction ı commit ettiğinde LGWR process Redo Log dosyaya yazar.</p>
<p>2 &#8211; LNS (LogWriter Network Service) commit edilmiş redoyu RFS (Remote File Service) bildirir. RFS standby redo log dosyaya yazar. Physical standby kullanıyorsak MRP (Managed Recovery Process) standby veritabanına apply eder. Logical Standby kullanıyorsak bu işlemi LSP (Logical Standby Process) yapar.</p>
<p>3 &#8211; Redo Buffer bir şekilde recycle edilirse LNS otomatik olarak redo log dosyalarını okur ve redoları buradan göndermeye başlar.</p>
<p>RFS verinin başarılı işlendiği (commit) hakkında LNS e geri bildirimde bulunmaz.</p>
<p>En çok kullanılan process mimarisidir. Asenkron redo transferi sıfır veri kaybını garanti altına almaz. Sistem en az veri kaybı ile kurtarılabilir durumdadır.</p>
<p><strong>DATA GUARD KORUMAN(PROTECTION) MODLARI</strong></p>
<p>3 koruma (protection) modu vardır. Aşağıdaki tablo ile özetleyebiliriz.</p>
<table border="0" cellspacing="0" cellpadding="0" width="586">
<tbody>
<tr>
<td width="105" valign="bottom"><strong>Mode</strong></td>
<td width="120" valign="bottom"><strong>Veri kaybı riski</strong></td>
<td width="60" valign="bottom"><strong>Transfer şekli</strong></td>
<td width="301" valign="bottom"><strong>Primary durumu</strong></td>
</tr>
<tr>
<td width="105" valign="bottom">Maximum Protection</td>
<td width="120" valign="bottom">Sıfır veri kaybı &#8211; İki taraflı koruma</td>
<td width="60" valign="bottom">SYNC</td>
<td width="301" valign="bottom">Verinin ulaştığı bilgisi beklenir,cevap gelmezse primary hang olur</td>
</tr>
<tr>
<td width="105" valign="bottom">Maximum Availability</td>
<td width="120" valign="bottom">Sıfır veri kaybı &#8211; Tek taraflı koruma</td>
<td width="60" valign="bottom">SYNC</td>
<td width="301" valign="bottom">Verinin ulaştığı bilgisi beklenir,cevap gelmezse primary timeout parametresi kadar bekler. (<em>NET_TIMEOUT</em>)</td>
</tr>
<tr>
<td width="105" valign="bottom">Maximum Performance</td>
<td width="120" valign="bottom">En az veri kaybı</td>
<td width="60" valign="bottom">ASYNC</td>
<td width="301" valign="bottom">primary hiçbirzaman verinin ulaştığına dair bilgi beklemez</td>
</tr>
</tbody>
</table>
<p><strong>PHYSICAL STANDBY &#8211; REDO APPLY</strong></p>
<p style="text-align: center;"><strong><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image003.jpg"><img class="size-full wp-image-403 aligncenter" title="image003" src="http://taliphakanozturk.files.wordpress.com/2011/05/image003.jpg" alt="" width="600" height="164" /></a></strong></p>
<p>Physical Standby Database, canlı (primary) veritabanının blok-blok  kopyasıdır. Değişiklikleri uygulamak için Veritabanı Kurtarma Fonksiyonunu kullanır. Redo Apply aktifken, raporlama ve sorgu için read-only modda açılabilir(Active Data Guard -11g ile gelen bir özellik). Canlı (Primary) veritabanına ekstra yük bindirmemek için backup işlemlerinde kullanılabilir. Read-Write modda açılabilmesi için veritabanını flashbacklog modu açık olmalıdır. Flashbacklog aktif edildikten sonra restore point oluşturularak read-write modda açılabilir. Ve tekrar restore pointe geri dönülerek standby olarak çalışması sağlanabilmektedir. Yukarıda açıklamış olduğum modlardan istenilen bir tanesi ile redo transferi yapılabilir.  Bir sonraki yazacağım makalede RMAN ile aktif veritabanı üzerinden physical standby veritabanı kurulumunu detaylı olarak sizlere anlatıyor olacağım.</p>
<p style="text-align: center;"><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image004.gif"><img class="size-full wp-image-404 aligncenter" title="image004" src="http://taliphakanozturk.files.wordpress.com/2011/05/image004.gif" alt="" width="535" height="149" /></a></p>
<p>İsteğe bağlı olarak primary veritabanından standby veritabanına taşınan redo kayıtları gecikmeli olarak stanby veritabanına uygulanabilir. Mesela standby veritabanımızın 2 saat arkadan gelmesini sağlayabiliriz. Böylelikle canlı (primary) veritabanımızda 2 saat içinde meydana gelebilecek kullanıcı hatalarını standby veritabanımızdan çok hızlı bir şekilde kurtarabiliriz. <strong>Gecikmeli apply</strong> aktif edildiğinde <strong>real-time apply</strong> doğal olarak devre dışı kalacaktır. Real-time apply aşağıdaki gibi aktif edilebilir.</p>
<pre class="brush: sql">SQL&gt;alter database recover managed standby database using current logfile disconnect;</pre>
<p><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image005.jpg"><img class="aligncenter size-full wp-image-420" title="image005" src="http://taliphakanozturk.files.wordpress.com/2011/05/image005.jpg" alt="" width="581" height="553" /></a></p>
<p>Redolar yukarıdaki şekilde olduğu gibi direk standby redo log dosyasından okunarak MRP veya LSP prosesine bildirilir. Gecikmeli apply ise aşağıdaki gibi aktif edilebilir. Ve redolar arşiv log dosyalarından okunarak MRP veya LSP prosesine bildirilir.</p>
<pre class="brush: sql">SQL&gt; alter database recover managed standby database delay 10;</pre>
<p><strong>SNAPSHOT STANDBY</strong><strong>(11g)</strong></p>
<p>Read-write modda açılabilen ve tekrar physical standby veritabanına dönüştürülebilinen standby veritabanıdır. 11g ile aramıza katılmıştır ve oldukça kulanışlıdır. Snapshot standby aktif edildiğinde redo apply durdurulur ve arşiv log olarak yedeklenir. Physical standby a geri dönüldüğünde apply kaldığı yerden arşiv log dosyalarını apply ederek devam eder. Read-write modda açılarak test, patch, v.s gibi işlemler test edilebilir.</p>
<p><strong>LOGICAL STANDBY &#8211; SQL APPLY</strong></p>
<p style="text-align: center;"><strong><span style="color: #000000;"><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image006.jpg"><img class="size-full wp-image-405 aligncenter" title="image006" src="http://taliphakanozturk.files.wordpress.com/2011/05/image006.jpg" alt="" width="600" height="146" /></a></span></strong></p>
<p>Logical Standby veritabanı  açık, aktif ve bağımsız olan bir veritabanıdır. Canlı (Primary) veritabanı ile aynı mantıksal bilgilere (row) sahiptir. Redo verileri SQL olarak apply edilirken raporlama amaçlıda kullanılabilir. Veritabanı read-write modda açık olabilir. Primary veritabanından replica olan tablolarda değişikliklere izin vermez. Logical standby veritabanının bazı kısıtlamaları vardır. LONG, LONG RAW, BFILE, ROWID, kullanıcı tanımlı tippler (user-defined types) veri tipli tablolar üzerinde yapılan işlemler apply edilememektedir. Desteklenmeyen tabloları görmek için aşağıdaki sorguları çalıştırabilirsiniz.</p>
<pre class="brush: sql"> select * from DBA_LOGSTDBY_UNSUPPORTED;

 select * from LOGSTDBY_UNSUPPORTED_TABLES;</pre>
<p><strong>ACTIVE DATA GUARD (11g)</strong></p>
<p style="text-align: center;"><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image007.jpg"><img class="size-full wp-image-406 aligncenter" title="image007" src="http://taliphakanozturk.files.wordpress.com/2011/05/image007.jpg" alt="" width="600" height="296" /></a></p>
<p>11g ile gelen bu özellik sayesinde redo apply edilirken standby veritabanı read-only modda açık olabilmektedir (Read-Only with Apply). Bundan dolayı <strong>Active Standby Veritabanı</strong> adı verilmiştir. Active data guard ın bize sağladığı avantajlar açısından bakacak olursak; Real-time raporlama (redo apply devam ederken), yedek alma gibi işlemlerimizi active standby veritabanı üzerinden yapabilir durumdayız. Böylelikle Canlı(production) veritabanımız üzerindeki raporlama,yedek alma gibi işlem yükünü azaltmış olacağız. Canlı veritabanımız müşterilerimize daha efektif olarak hizmet verecektir.</p>
<p style="text-align: center;"><a href="http://taliphakanozturk.files.wordpress.com/2011/05/image008.jpg"><img class="size-full wp-image-407 aligncenter" title="image008" src="http://taliphakanozturk.files.wordpress.com/2011/05/image008.jpg" alt="" width="539" height="403" /></a></p>
<p>11g R2 ile gelen diğer bir güzelliğide sizlerle paylaşmadan yapamayacağım <img src='http://www.ceturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  g R2 öncesine kadar canlı (primary) veritabanımızın aynı anda maksimum 9 standby veritabanı olabilmekteydi. Bu rakam 11g R2 ile 32 ye çıkarılmıştır. Yukarıdaki şeklimize göre canlı veritabanımız 4 standby veritabanına real-time redo apply edebilmekte ve aynı anda rapor kullanıcılarımız real-time raporlama yapabilmektedirler.</p>
<p><strong>SWITCHOVER </strong><strong> &amp; </strong><strong>FAILOVER</strong></p>
<p>Son olarak  Switchover ve Failover terimlerinden kısaca bahsetmek istiyorum. <strong>Switchover</strong>, planlı role değişimidir.  Yani canlı (primary) veritabanının standby olarak, standby veritabanının ise primary olarak hizmet vermesidir. Tekrar yeni bir veritabanı kurulumu gerektirmez. OS ve hardware bakımı, standby veritabanının çalışabilirliğini test etmek için kullanılabilir. <strong>Failover</strong> ise manuel olarak SQL ile veya basit bir GUI arayüzüyle (Data Guard Broker, Enterprise Manager) aktifleşebilen, canlı (Primary) veritabanının plansız bozulmasıdır. Böyle bir durumda standby veritabanının yeniden oluşturulması gerekir. <strong>Switchover için yapılması gereken işlem adımlarını ilerleyen makalelerimde sizlere anlatıyor olacağım.</strong></p>
<p>Resimler için kullandığım kaynaklar:</p>
<p><a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e17022/toc.htm">http://download.oracle.com/docs/cd/E11882_01/server.112/e17022/toc.htm</a></p>
<p>Oracle Data Guard 11g Handbook &#8211; Charles Kim</p>
<p><strong>Talip Hakan Öztürk</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/data-guard-hakkinda-kisa-kisa-merak-ettiklerimiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RMAN  Veri Kurtarma Yöntemleri</title>
		<link>http://www.ceturk.com/rman-veri-kurtarma-yontemleri/</link>
		<comments>http://www.ceturk.com/rman-veri-kurtarma-yontemleri/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 13:59:49 +0000</pubDate>
		<dc:creator>Talip Hakan Öztürk</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Block Recover]]></category>
		<category><![CDATA[Datafile Recover]]></category>
		<category><![CDATA[ORA-01110]]></category>
		<category><![CDATA[ORA-01578]]></category>
		<category><![CDATA[ORA-01589]]></category>
		<category><![CDATA[Tablespace Recover]]></category>
		<category><![CDATA[V$BACKUP_CORRUPTION]]></category>
		<category><![CDATA[V$COPY_CORRUPTION]]></category>
		<category><![CDATA[V$DATABASE_BLOCK_CORRUPTION]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7889</guid>
		<description><![CDATA[Merhaba, Bu yazımda RMAN ile alınan yedekten geri dönme yöntemlerimizi madde madde anlatacağım. 1- Bütün datafile lar kaybedildiğinde, tüm yedeğin geri dönülmesi için; SQL&#62; startup mount; RMAN&#62; restore database; RMAN&#62; recover database; SQL&#62; alter database open; 2- Bir tablespace kaybedildiğinde, kaybedilen tablespace in geri dönülmesi için; SQL&#62; alter tablespace users offline; RMAN&#62; restore tablespace users; [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="attachment wp-att-7893" href="http://www.ceturk.com/veri-tabani/oracle/rman-veri-kurtarma-yontemleri.html/attachment/rman"><img class="alignnone size-full wp-image-7893" title="rman" src="http://www.ceturk.com/images/rman.jpg" alt="" width="140" height="140" /></a></p>
<p><strong></strong>Merhaba,</p>
<p>Bu yazımda  RMAN ile alınan yedekten geri dönme yöntemlerimizi madde madde anlatacağım.</p>
<p><strong>1- </strong>Bütün datafile lar kaybedildiğinde, tüm yedeğin geri dönülmesi için;</p>
<pre class="brush: sql">SQL&gt; startup mount;
RMAN&gt; restore database;
RMAN&gt; recover database;
SQL&gt; alter database open;</pre>
<p><strong>2- </strong>Bir tablespace kaybedildiğinde, kaybedilen tablespace in geri dönülmesi için;</p>
<pre class="brush: sql"> SQL&gt; alter tablespace users offline;
RMAN&gt; restore tablespace users;
RMAN&gt; recover tablespace users;
SQL&gt; alter tablespace users online;</pre>
<p>Tablespace offline yapılamazsa aşağıdaki yol izlenmelidir.</p>
<pre class="brush: sql">$ sqlplus “/ as sysdba”
SQL&gt; shutdown abort;
SQL&gt; startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; restore tablespace users;
RMAN&gt; recover tablespace users;
SQL&gt; alter database open;</pre>
<p><strong>3- </strong>Bir datafile kaybedildiğinde, kaybedilen datafile ın geri dönülmesi için;</p>
<pre class="brush: sql">SQL&gt; alter database datafile '/oracle/oradata/users.dbf' offline;
RMAN&gt; restore datafile '/oracle/oradata/users.dbf'
RMAN&gt; recover datafile '/oracle/oradata/users.dbf'
SQL&gt; alter database datafile '/oracle/oradata/users.dbf' online;</pre>
<p>Datafile offline yapılamazsa aşağıdaki yol izlenmelidir.</p>
<pre class="brush: sql">$ sqlplus “/ as sysdba”
SQL&gt; shutdown abort;
SQL&gt; startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; restore datafile '/oracle/oradata/users.dbf';
RMAN&gt; recover datafile '/oracle/oradata/users.dbf';
SQL&gt; alter database open;</pre>
<p><strong>4- </strong>Controlfile lar kaybedildiğinde, kaybedilen controlfile ın geri dönülmesi için;</p>
<pre class="brush: sql">$ sqlplus “/ as sysdba”
SQL&gt; shutdown abort;
SQL&gt; startup nomount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; set dbid = 3970640872;
RMAN&gt; restore controlfile;
SQL&gt; alter database mount;
SQL&gt; alter database open;</pre>
<p>Controlfile yedekten geri dönüldükten sonra, veritabanının açılması esnasında aşağıdaki gibi ORA-01589 hatası ile karşılaşılabilir.</p>
<p>ORA-01589: must use RESETLOGS or NORESETLOGS option for database open</p>
<p>Bu durumda aşağıdaki işlemler yapılmalıdır.</p>
<pre class="brush: sql">SQL&gt; shutdown abort;
SQL&gt; startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; recover database;
SQL&gt; alter database open resetlogs;
RMAN&gt; reset database;</pre>
<p>Veritabanı “resetlogs” ile açıldığı için controlfile daki SCN numarası sıfırlanacaktır. Bu durumda önceki alınan yedekler geçersiz olacaktır. <strong>Yeniden full yedek alınması zorunludur.</strong></p>
<p><strong>5- </strong>Özel bir durum gerekebilir. Ve bizden belirli bir zamana dönmemiz istenebilir. Belirli bir zamana dönmek için 3 yöntem mevcuttur. Zamana göre, Arşiv sıra nosuna göre ve SCN (System Change Number) ye göre incomplete recovery (Belirli bir zamana dönme işlemi) yapabiliriz.</p>
<p><strong> A. </strong>Zamana göre (Time-Based) incomplete recovery;</p>
<pre class="brush: sql">$ sqlplus "/ as sysdba"
SQL&gt; shutdown abort;
SQL&gt; startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; restore database until time "to_date('06/05/11 12:0:00','DD/MM/YY HH24:MI:SS')";
RMAN&gt; recover database until time "to_date('06/05/11 12:0:00','DD/MM/YY HH24:MI:SS')";
SQL&gt; alter database open resetlogs;</pre>
<p><strong> B. </strong>Sistem değişiklik numarasına göre (SCN-Based) incomplete recovery;</p>
<pre class="brush: sql">$ sqlplus "/ as sysdba"
SQL&gt; shutdown abort;
SQL&gt; startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; restore database until scn 1000;
RMAN&gt; recover database until scn 1000;
SQL&gt; alter database open resetlogs;</pre>
<p><strong> C. </strong>Arşiv dosyası sequence numarasına göre incomplete recovery;</p>
<pre class="brush: sql">$ sqlplus "/ as sysdba"
SQL&gt; shutdown abort;
SQL&gt; startup mount;
$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; restore database until sequence 9923;
RMAN&gt; recover database until sequence 9923;
SQL&gt; alter database open resetlogs;</pre>
<p><strong>6- </strong>Alınan yedekte arşiv dosyaları varsa ve belirli arşiv dosyalarının geri dönülmesi gerekirse;</p>
<pre class="brush: sql">$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt; restore ARCHIVELOG FROM TIME 'SYSDATE-1' UNTIL TIME 'SYSDATE';</pre>
<p>Ya da</p>
<pre class="brush: sql">RMAN&gt; restore ARCHIVELOG FROM TIME "to_date('07/11/05 00:00:01','MM/DD/YY HH24:MI:SS')
UNTIL TIME 'SYSDATE';</pre>
<p><strong>7- </strong>Herhangi bir datafile ın bir bloğunda corruption oluşursa aşağıdaki gibi bir hata alınır ve ilgili datafile ın ilgili bloğu aşağıdaki gibi kurtarılır.</p>
<p><strong>Hata:</strong></p>
<p>ORA-01578: ORACLE data block corrupted (file # 8, block # 13)</p>
<p>ORA-01110: data file 8: &#8216;/oracle/oradata/users.dbf&#8217;</p>
<p><strong>Kurtarmak için:</strong></p>
<pre class="brush: sql">$ rman target / catalog_user/catalog_user_password@catalogdb
RMAN&gt;blockrecover datafile 8 block 13;</pre>
<p>Kurtarmak için özel bir backup set verebiliriz;</p>
<pre class="brush: sql"># backupset den kurtarma
RMAN&gt; BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19 FROM BACKUPSET;
# image copy den kurtarma
RMAN&gt; BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19
      FROM DATAFILECOPY;
# "FULL" taglı olan backupset den kurtarma
RMAN&gt; BLOCKRECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 199
       FROM TAG = FULL;</pre>
<p>Backup esnasında veya “Backup Validate” komutuyla RMAN bulduğu corrupted blokları V$DATABASE_BLOCK_CORRUPTION viewına yazar. Corrupt olan blok recover edildiğinde RMAN otomatik bu view ı günceller. Geçmişe yönelik tüm corruption listesi V$BACKUP_CORRUPTION ve V$COPY_CORRUPTION viewlarından bakılabilir. Aşağıdaki komut çalıştırıldığında RMAN,  V$DATABASE_BLOCK_CORRUPTION viewında bulunan tüm corrupted blokları recover eder.</p>
<pre class="brush: sql">RMAN&gt;BLOCKRECOVER CORRUPTION LIST
  RESTORE UNTIL TIME 'SYSDATE-10';</pre>
<p><strong>8- </strong>2. veri dosyamızda problem olduğunda, 2. veri dosyamızı “image copy” yedeğe switch etmek için;</p>
<pre class="brush: sql">RMAN&gt;sql ‘alter database datafile 2 offline’;
RMAN&gt;switch datafile 2 to copy;
RMAN&gt;recover datafile 2;
RMAN&gt;sql ‘alter database datafile 2 online’;</pre>
<p><strong>Sağlam yedekli, problemsiz veritabanlarınız olması dileğiyle <img src='http://www.ceturk.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  &#8230;</strong></p>
<p><strong>Talip Hakan Öztürk</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/rman-veri-kurtarma-yontemleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/rman.jpg" length="3175" type="image/jpg" />	</item>
		<item>
		<title>RMAN  Konfigürasyonları</title>
		<link>http://www.ceturk.com/rman-konfigurasyonlari/</link>
		<comments>http://www.ceturk.com/rman-konfigurasyonlari/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 13:47:12 +0000</pubDate>
		<dc:creator>Talip Hakan Öztürk</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[BACKUP OPTIMIZATION]]></category>
		<category><![CDATA[CONTROLFILE AUTOBACKUP]]></category>
		<category><![CDATA[MAXPIECESIZE]]></category>
		<category><![CDATA[MAXSETSIZE]]></category>
		<category><![CDATA[Recovery Window]]></category>
		<category><![CDATA[Redundancy]]></category>
		<category><![CDATA[RMAN konfigürasyon]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7887</guid>
		<description><![CDATA[Merhaba Arkadaşlar, Bu yazımda RMAN in önemli konfigürasyonlarını sizlere açıklıyor olacağım. Bu konfigürasyonları bir kere yapıp yedeklerimizi bu konfigürasyon ayarları ile alabileceğimiz gibi, yedek scriptimiz içinde de bu konfigürasyonları scriptimize özel set edebiliriz. CONFIGURE RETENTION POLICY 2 farklı seçenek ile kullanılır. Recovery Window veya Redundancy Redundancy: CONFIGURE RETENTION POLICY TO REDUNDANCY 1; Redundacy 1 set [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba Arkadaşlar,</p>
<p>Bu yazımda RMAN in önemli konfigürasyonlarını sizlere açıklıyor olacağım. Bu konfigürasyonları bir kere yapıp yedeklerimizi bu konfigürasyon ayarları  ile alabileceğimiz gibi, yedek scriptimiz içinde de bu konfigürasyonları scriptimize özel set edebiliriz.</p>
<p><strong>CONFIGURE RETENTION POLICY</strong></p>
<p>2 farklı seçenek ile kullanılır. Recovery Window veya Redundancy</p>
<p><strong>Redundancy: </strong>CONFIGURE RETENTION POLICY TO REDUNDANCY 1;</p>
<p>Redundacy 1 set edildiğinde, RMAN geçmişe yönelik 1 yedek saklar. 2. Yedek alındığında 1. Yedeği obsolete olarak işaretler. Şayet FRA da yer kalmazsa RMAN bunu otomatik algılar ve obsolete yedeği siler. Veya biz “delete obsolete” ile manuel silebiliriz.</p>
<p><strong>Recovery Windows: </strong>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;</p>
<p>Recovey windows 3 gün set edildiğinde 3 günden eski yedekler obsolete olarak işaretlenir.  Recovery window da özel bir durum vardır. RMAN 3 günlük geri dönmeyi garanti eder. Bunu bir örnekle açıklamak gerekirse;</p>
<p>Elimizde 4 yedeğimiz olsun. Ve yedek alınma tarihleri 16 mayıs, 18 mayıs, 21 mayıs ve 23 mayıs olsun. Recovery window 3 set edildiğinde normalde 16 mayıs ve 18 mayıs ın obsolete olması gerekir. (23-3=20 yani 20 mayıs ve öncekiler obsolete olmalı).Ama 20 mayıs a geri dönülmesi gerektiğinde 18 mayıs yedeğinin gerekli olmasını RMAN otomatik algılar ve 18 mayısı obsolete olarak set etmez.</p>
<p><strong>CONFIGURE DEFAULT DEVICE TYPE</strong></p>
<p>2 farklı lokasyona yedek alınabilir. Tape ve Disk</p>
<p><strong>Diske yedek: </strong>CONFIGURE DEFAULT DEVICE TYPE TO DISK;</p>
<p><strong>Tape kartuşa yedek: </strong>CONFIGURE DEFAULT DEVICE TYPE TO SBT;</p>
<p><strong>CONFIGURE CONTROLFILE AUTOBACKUP ON/OFF</strong></p>
<p>Controlfile ın her yedek almada otomatik yedeklenip yedeklenmeyeceği buradan set edilir. On ise otomatik yedek alınır, off ise yedek alınmaz.</p>
<p><strong>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO &#8216;%F&#8217;; </strong></p>
<p>Controlfile yedeği varsayılan FRA alanına unique bir isimde alınacağını bildirir. %f nin karşılığı <code><em>c-‘IIIIIIIIII-YYYYMMDD-QQ</em></code>’ şeklindedir . Burada ‘<code><em>IIIIIIIIII’ </em></code>DBID yi ‘<code><em>YYYYMMDD’ </em></code>tarihi ve<code><em> ‘QQ</em></code>’ ise hex decimal bir yedek idsidir. Biz istersek aşağıdaki gibi farklı yerlere alabiliriz.</p>
<p>CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO &#8216;ora_home/oradata/cf_%F&#8217;;</p>
<p> Ve aşağıdaki gibi konfigürasyonumuzu resetleyebiliriz.</p>
<p> CONFIGURE CONTROLFILE AUTOBACKUP FOR DEVICE TYPE DISK CLEAR;</p>
<p> Aşağıdaki gibi RUN scriptinin içerisinde yazıldığında varolan konfigürasyonu ezdirebiliriz</p>
<pre class="brush: sql">RMAN&gt; SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE sbt TO 'controlfile_%F';
RMAN&gt; BACKUP AS COPY DATABASE;
RMAN&gt; RUN {
       SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/tmp/%F.bck';
       BACKUP AS BACKUPSET DEVICE TYPE DISK DATABASE;
      }</pre>
<table width="100%" border="1" cellspacing="1" cellpadding="0">
<tbody>
<tr>
<td><strong>Format</strong></td>
<td><strong>Açıklaması</strong></td>
</tr>
<tr>
<td>%a</td>
<td>Varolan veritabanı aktivasyon idsi</td>
</tr>
<tr>
<td>%A</td>
<td>0 ile tamamlanmış aktivasyon idsi</td>
</tr>
<tr>
<td>%c</td>
<td>Maksimum değeri 256 olan backup piece kopya numarası</td>
</tr>
<tr>
<td>%d</td>
<td>Veritabanı adı</td>
</tr>
<tr>
<td>%D</td>
<td>DD formatında gün bilgisi</td>
</tr>
<tr>
<td>%e</td>
<td>Arşiv log dosyası sıra numarası</td>
</tr>
<tr>
<td>%f</td>
<td>Absolute dosya numarası</td>
</tr>
<tr>
<td valign="top">%F</td>
<td>DBID, gün ay, yıl ve benzersiz bir sıra numarası içerir.</td>
</tr>
<tr>
<td>%h</td>
<td>Arşiv redo log thread numarası</td>
</tr>
<tr>
<td>%I</td>
<td>DBID</td>
</tr>
<tr>
<td>%M</td>
<td>MM formatında ay bilgisi</td>
</tr>
<tr>
<td>%n</td>
<td>Veritabanı adı</td>
</tr>
<tr>
<td>%N</td>
<td>Tablespace adı. Veri dosyası ve image copy yedekle set edilebilir.</td>
</tr>
<tr>
<td valign="top">%p</td>
<td>Backup set içindeki backup piece numarasıdır</td>
</tr>
<tr>
<td>%r</td>
<td>Resetlogs ID</td>
</tr>
<tr>
<td valign="top">%s</td>
<td>Backup set numarası</td>
</tr>
<tr>
<td>%S</td>
<td>0 ile tamamlanmış sıra numarası</td>
</tr>
<tr>
<td valign="top">%t</td>
<td>Backup set zaman bilgisidir. Saniye bilgiside içeren 4 byte lık bir değerdir.</td>
</tr>
<tr>
<td>%T</td>
<td>Gregorian takviminde YYYYMMDD formatında olan yıl, ay ve gün bilgisidir</td>
</tr>
<tr>
<td>%u</td>
<td>Backup set veya image copy yedeğin numarası ve oluşturulma zamanını içeren 8 karakterlik bir bilgidir.</td>
</tr>
<tr>
<td valign="top">%U</td>
<td>Sistem tarafından üretilen benzersiz bir numaradır.</td>
</tr>
<tr>
<td>%Y</td>
<td>YYYY formatındaki yıl bilgisidir</td>
</tr>
</tbody>
</table>
<p><strong>CONFIGURE BACKUP OPTIMIZATION OFF/ON</strong></p>
<p>On olması halinde daha önce yedeği alınmış ve herhangi bir değişikliğe uğramamış objeler yedeklenmez. Bunun için aşağıdaki kriterleri göz önünde bulundurur</p>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom"><strong>Dosya tipi</strong></td>
<td valign="bottom"><strong>Aynı dosya olup olmadığını anlama kriteri</strong></td>
</tr>
<tr>
<td valign="top">Datafile</td>
<td valign="top">Aynı DBID, checkpoint SCN, ilk oluşturulma SCN,  resetlogs SCN ve zaman.</td>
</tr>
<tr>
<td valign="top">Arşiv redo log</td>
<td valign="top">Aynı thread, sıra (sequence) numarası, resetlogs SCN ve zaman.</td>
</tr>
<tr>
<td valign="top">Backup set</td>
<td valign="top">Same backup set recid and stamp. Aynı backup set recid si ve  izidir.</td>
</tr>
</tbody>
</table>
<p><strong>CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET</strong><br />
Alınan yedeklerin kaç paralel olarak kaç kanaldan yazılacağını belirlediğimiz konfigurasyondur. Device type oalrak disk veya sbt olduğunu belirtmeliyiz.</p>
<p><strong>CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 3</strong></p>
<p>Datafile yedeklerinin kopya adedi olarak kaç tane alınacağı bu konfigürasyonla belirlenir. Yukarıdaki örneğime göre 3 kopya alınacaktır. Mirror yedek olarak bilinir. FORMAT opsiyonu ile 3 farklı lokasyon verilebilir. 3 yedeğin id side aynı olacaktır.<br />
BACKUP DEVICE TYPE DISK COPIES 3 DATAFILE 7 FORMAT<br />
&#8216;/tmp/%U&#8217;,'?/oradata/%U&#8217;,'?/%U&#8217;;<br />
<strong> </strong><br />
<strong>CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1</strong><br />
<strong> </strong><br />
Arşiv dosya yedeklerinin kopya adedi olarak kaç tane alınacağı bu konfigürasyonla belirlenir. 2 ve daha çok kopya için ayrı ayrı lokasyon verilmelidir yoksa yedek hata alır.(Yukarıdaki gibi FORMAT opsiyonu ile)</p>
<p><strong>CONFIGURE MAXSETSIZE TO UNLIMITED</strong><br />
<strong> </strong><br />
Normal backup size maximum FRA alanı kadar olabilmektedir. İstenirse maxsetsize verilerek yedeğin bu boyutta olması sağlanabilir. Bu kiritik bir değerdir. Maxsetsize ım yedek aldığım data file ın size ından küçükse yedek hatalı sonuçlanmaktadır. Varsayılan ‘UNLIMITED’ olarak gelmektedir.</p>
<p><strong>CONFIGURE ENCRYPTION FOR DATABASE OFF/ON</strong><strong></strong></p>
<p>Encryption kullanılıp kullanılmayacağına karar verilir. Encryption kullanılacaksa hangi algoritmanın kullanılacağı ise aşağıdaki konfigürasyon ile belirtilir.</p>
<p><strong>CONFIGURE ENCRYPTION ALGORITHM &#8216;AES128&#8242;</strong></p>
<p>Encryption kullanılacaksa hangi algoritmanın kullanılacağı ise aşağıdaki konfigürasyon ile belirtilir.</p>
<p><strong>CONFIGURE COMPRESSION ALGORITHM &#8216;BASIC&#8217; AS OF RELEASE &#8216;DEFAULT&#8217; OPTIMIZE FOR LOAD TRUE</strong></p>
<p>11g ile gelen bir özelliktir. 2 Farklı zipleme metodu mevcuttur. ZLIB ve BZIP2. ZLIB daha az cpu tüketir ama sıkıştırma oranı düşüktür. BZIP2 ise cpu kullanımı fazladır ama sıkıştırma oranı yüksektir. Aşağıdaki gibi kullanılabilir.</p>
<p>CONFIGURE COMPRESSION ALGORITHM &#8216;ZLIB&#8217;;</p>
<p>CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;</p>
<p><strong>CONFIGURE ARCHIVELOG DELETION POLICY TO NONE</strong></p>
<p>Arşiv yedeği alındıktan sonra obsolete olup olmayacağı set edilir. Varsayılan None dur. “APPLIED ON STANDBY” set edilebilir.</p>
<p>10g de aşağıdaki gibi set edilebilir.</p>
<p>CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO {ARCHIVERETENTION};</p>
<p>11g de aşağıdaki gibi set edilebilir.</p>
<p>CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;</p>
<p><strong>CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE</strong></p>
<p><strong> </strong>Yedek dosyasının MAXPIECESIZE kadar parçalar halinde alınmasını sağlar. Örneğin aşağıdaki konfigürasyonla alınan yedek 2GB lık parçalar halinde alınır.</p>
<p>CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE = 2G;</p>
<p><strong>CONFIGURE SNAPSHOT CONTROLFILE NAME TO &#8216;/oracle/ora10g/dbs/snapcf_test10g.f&#8217;</strong></p>
<p>Controlfile ın snapshot ının lokasyonunun set edildiği konfigürasyondur. Controlfile ın kopyasıdır. RMAN özellikle catalog db ile kullanılırken resync için snapshot controlfile a ihtiyaç duyar.</p>
<p>Kaynak:<br />
<a href="http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/rcmconfb.htm#i1014902">http://download.oracle.com/docs/cd/E11882_01/backup.112/e10642/rcmconfb.htm#i1014902</a></p>
<p><strong>Talip Hakan ÖZTÜRK</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/rman-konfigurasyonlari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/rman.jpg" length="3175" type="image/jpg" />	</item>
		<item>
		<title>RMAN Teknik Referans</title>
		<link>http://www.ceturk.com/rman-teknik-referans/</link>
		<comments>http://www.ceturk.com/rman-teknik-referans/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 06:33:58 +0000</pubDate>
		<dc:creator>Talip Hakan Öztürk</dc:creator>
				<category><![CDATA[Manşet]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[backup compression]]></category>
		<category><![CDATA[backup crosscheck]]></category>
		<category><![CDATA[backup encryption]]></category>
		<category><![CDATA[backup validate]]></category>
		<category><![CDATA[expired backup]]></category>
		<category><![CDATA[obsolete backup]]></category>
		<category><![CDATA[RMAN Teknik Referans]]></category>

		<guid isPermaLink="false">http://www.ceturk.com/?p=7885</guid>
		<description><![CDATA[RMAN yedek alma, silme, raporlama, listeleme, sıkıştırma, şifreleme, doğrulama, crosschek kontrol gibi hızlı erişim amaçlı oluşturmuş olduğum teknik referans dökümanımı sizlerle paylaşmak istiyorum. Bu dökümanı ara ara güncelliyor olacağım. RMAN komutlarını sınıflandırarak genel başlıklar altında toparlamaya çalıştım. Faydalı olması dileğiyle. Yedek raporlama işlemleri Backup gerekiyor mu raporu: RMAN&#62;report need backup; Obsolete backup raporu: RMAN&#62;report obsolete; [...]]]></description>
			<content:encoded><![CDATA[<p>RMAN yedek alma, silme, raporlama, listeleme, sıkıştırma, şifreleme, doğrulama, crosschek kontrol gibi hızlı erişim amaçlı oluşturmuş olduğum teknik referans dökümanımı sizlerle paylaşmak istiyorum. Bu dökümanı ara ara güncelliyor olacağım. RMAN komutlarını sınıflandırarak genel başlıklar altında toparlamaya çalıştım. Faydalı olması dileğiyle.</p>
<p><strong>Yedek raporlama işlemleri</strong></p>
<p> <em>Backup gerekiyor mu raporu: </em></p>
<pre class="brush: sql">RMAN&gt;report need backup;</pre>
<p><em>Obsolete backup raporu:</em></p>
<pre class="brush: sql">RMAN&gt;report obsolete;</pre>
<p><strong>Yedek alma işlemleri</strong><br />
<em>Tüm veritabanının varsayılan konfigürasyona göre yedeğini almak:</em></p>
<pre class="brush: sql">RMAN&gt;backup database;
veya
RMAN&gt; backup incremental level 0 database;</pre>
<p><em>Tüm veritabanının arşiv loglar ile birlikte yedeğini almak:</em></p>
<pre class="brush: sql">RMAN&gt;backup database plus archivelog;</pre>
<p><em>Controlfile yedeğini almak:</em></p>
<pre class="brush: sql">RMAN&gt;backup as copy current controlfıle;</pre>
<p><em>Tüm veritabanının arşiv loglar ile birlikte yedeğini almak ve yedeği alınan arşiv logları silmek:</em></p>
<pre class="brush: sql">RMAN&gt;backup database plus archivelog delete input;</pre>
<p><em>Belirli bir tablespace i yedek almak:</em></p>
<pre class="brush: sql">RMAN&gt;backup as backupset
format '/backup/df_%d_%s.bck'
tablespace users;</pre>
<p><em>Belirli bir veri dosyasını yedek almak:</em></p>
<pre class="brush: sql">RMAN&gt;backup datafile 5;</pre>
<p><em>Hergün değişen blokları yedeklemek (Differential Incremental Backup):</em></p>
<pre class="brush: sql">RMAN&gt; backup incremental level 1 database;</pre>
<p><em>Son full yedekten sonra tüm blokları yedeklemek (Cumulative Incremental Backup):</em></p>
<pre class="brush: sql">RMAN&gt;backup incremental level 1 cumulative database;</pre>
<p><em>Image Copy yedek almak:</em></p>
<pre class="brush: sql">RMAN&gt;backup as copy database;</pre>
<p><strong>Yedek silme işlemleri</strong><br />
<em>Backup sıra nosuna göre silme:</em></p>
<pre class="brush: sql">RMAN&gt;delete backuppiece 101;</pre>
<p><em>Dosya adına göre silme:</em></p>
<pre class="brush: sql">RMAN&gt;DELETE CONTROLFILECOPY '/tmp/control01.ctl';</pre>
<p><em>Arşiv dosyalarını silme:</em></p>
<pre class="brush: sql">RMAN&gt;DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300;
RMAN&gt;DELETE NOPROMPT ARCHIVELOG ALL;</pre>
<p>Not:NOPROMPT, yedek silme esnasında Yes/No onay sorusunu sormaz.</p>
<p><em>Tag verilen yedeği tag adına göre silme:</em></p>
<pre class="brush: sql">RMAN&gt;DELETE BACKUP TAG='before_upgrade';</pre>
<p><em>Bütün yedekleri silme:</em></p>
<pre class="brush: sql">RMAN&gt;DELETE BACKUP;</pre>
<p><em>Tape kasete yedeği alınmış yedeklerin disk üzerinden silinmesi:</em></p>
<pre class="brush: sql">RMAN&gt;DELETE ARCHIVELOG ALL BACKED UP 3 TIMES TO sbt;</pre>
<p><em>Image copy yedeği silme:</em></p>
<pre class="brush: sql">RMAN&gt;DELETE COPY;</pre>
<p><strong>Obsolete yedek silme</strong><br />
RMAN kurtarma işlemi için gerekli olmayan yedekleri obsolete olarak işaretler. (redundancy veya recovery window set edilmiş ise)</p>
<p><em>Obsolete yedekleri silmek için:</em></p>
<pre class="brush: sql">RMAN&gt;delete obsolete;</pre>
<p><em>3 gün öncesi obsolete yedekleri silmek için:</em></p>
<pre class="brush: sql">RMAN&gt; delete obsolete recovery window of 3 days;</pre>
<p><strong>Expired yedek silme</strong></p>
<pre class="brush: sql">RMAN&gt;delete expired backup;</pre>
<p><strong>Crosscheck kontrolü</strong><br />
Crosscheck komutu, RMAN repository de bulunan yedeğin disk veya tape üzerinde fiziksel olup olmadığını kontrol eder. Eğer dosya disk veya tape üzerinde fiziksel olarak yoksa (işletim sistemi üzerinden silinmiş olabilir) RMAN repository de ilgili yedeği “EXPIRED” olarak işaretler. Sonrasında, <em>“DELETE EXPIRED”</em> komutuyla RMAN repository den yedek bilgileri silinebilir.</p>
<p><em>Arşiv dosyaları crosscheck ile kontrol etme:</em></p>
<pre class="brush: sql">RMAN&gt;crosscheck archivelog all;</pre>
<p><em>Alınan bütün yedeği crosscheck ile kontrol etme:</em></p>
<pre class="brush: sql">RMAN&gt;crosscheck backup;</pre>
<p><em>Image copy yedeği crosscheck ile kontrol etme:</em></p>
<pre class="brush: sql">RMAN&gt;crosscheck copy;</pre>
<p><em>Tag verilen yedeği crosscheck ile kontrol etme:</em></p>
<pre class="brush: sql">RMAN&gt;crosscheck backuppiece tag = 'nightly_backup';</pre>
<p><strong>Yedek listesini görmek</strong></p>
<pre class="brush: sql">RMAN&gt;list backupset of database;</pre>
<p>RMAN&gt;list backup;</p>
<p><em>Yedek önizlemesini görmek (İçerisinde hangi objeler olduğu listelenir):</em></p>
<pre class="brush: sql">RMAN&gt; restore database preview;

RMAN&gt; restore tablespace users preview;</pre>
<p><strong>Konfigürasyon işlemleri</strong></p>
<p><em>Konfigürasyon ayarlarını görmek:</em></p>
<pre class="brush: sql">RMAN&gt;show all;</pre>
<p><em>Varsayılan konfigürasyona dönmek:Sonuna “clear” ifadesi yazılır</em></p>
<pre class="brush: sql">RMAN&gt;configure backup optimization clear;</pre>
<p><em>Set edilmiş bir konfigürasyonu görmek:Başına “show” ifadesi yazılır</em></p>
<pre class="brush: sql">RMAN&gt;show controlfile autobackup format;</pre>
<p><em>Bir ayarı konfigüre etmek:Başına “configure” ifadesi yazılır</em></p>
<pre class="brush: sql">RMAN&gt;configure device type disk backup type to copy;

RMAN&gt;configure retention policy to recovery window of 7 days;

RMAN&gt;configure retention policy to redundancy 3;</pre>
<p><strong>Yedek ve Geri Dönme işlemlerini doğrulama (validate) </strong><br />
<em>Alınan tüm yedeği doğrulamak:</em></p>
<pre class="brush: sql">RMAN&gt;backup validate;</pre>
<p><em>Arşiv dosyaların yedeğini doğrulamak:</em></p>
<pre class="brush: sql">RMAN&gt;backup validate database archivelog all;</pre>
<p><em>Tüm veritabanı geri dönme işlemini doğrulama:</em></p>
<pre class="brush: sql">RMAN&gt;restore database validate;</pre>
<p><em>Controlfile geri dönme işlemini doğrulama:</em></p>
<pre class="brush: sql">RMAN&gt;restore controlfile validate;</pre>
<p><em>Spfile geri dönme işlemini doğrulama:</em></p>
<pre class="brush: sql">RMAN&gt;restore spfile validate;</pre>
<p><em>Belirli bir tablespace geri dönme işlemini doğrulama:</em></p>
<pre class="brush: sql">RMAN&gt;restore tablespace users validate;</pre>
<p><strong>Yedek sıkıştırma işlemleri (11g ile geldi)</strong><br />
<em>Backupseti sıkıştırma:</em></p>
<pre class="brush: sql">RMAN&gt;backup as compressed backupset database;</pre>
<p><strong>Yedek şifreleme işlemleri</strong><br />
<em>Encryption set etme:</em></p>
<pre class="brush: sql">RMAN&gt; Set  encryption identified by passwprd;</pre>
<p><em>Decryption set etme:</em></p>
<pre class="brush: sql">RMAN&gt; Set  decryption identified by passwprd;</pre>
<p><strong>Enable &amp; Disable Block change tracking</strong><br />
<em>Sadece değişen blokları takip etmek için bct aktif edilmesi:</em></p>
<pre class="brush: sql">SQL&gt;alter database enable block change tracking using file '/rman_bkups/change.log';</pre>
<p><em>Block change tracking iptal edilmesi:</em></p>
<pre class="brush: sql">SQL&gt;alter database disable block change tracking;</pre>
<p><strong>RMAn yedeğin debug edilmesi ve trace alınması</strong></p>
<pre class="brush: sql">$rman target=/ debug=all trace=rman.trc</pre>
<p><strong>Yedeğin Log dosyasını oluşturmak</strong></p>
<pre class="brush: sql">$export NLS_DATE_FORMAT=’dd.mm.yyyy hh24:mi:ss’;

$rman target=/ log=rman.log</pre>
<p><strong>Recovery area size bilgisini görmek</strong></p>
<pre class="brush: sql">select name
,        floor(space_limit / 1024 / 1024) "Size MB"
,        ceil(space_used  / 1024 / 1024) "Used MB"
from   v$recovery_file_dest
order by name
/</pre>
<p><strong>RMAN Catalog DB işlemleri</strong></p>
<ol>
<li>Catalog DB üzerinde kullanıcı oluşturulur.</li>
</ol>
<pre class="brush: sql">  CREATE USER rman IDENTIFIED BY rman
  TEMPORARY TABLESPACE temp
  DEFAULT TABLESPACE users
  QUOTA UNLIMITED ON users;</pre>
<ol>
<li>Recovery Catalog owner yetkisi verilir</li>
</ol>
<pre class="brush: sql">GRANT RECOVERY_CATALOG_OWNER TO rman;</pre>
<ol>
<li>Catalog veritabanına bağlanılıp catalog oluşturulur.</li>
</ol>
<pre class="brush: sql">rman CATALOG rman/rman@catalog</pre>
<p>RMAN&gt; create catalog;</p>
<ol>
<li>Yedeği alınacak target veritabanı register edilir.</li>
</ol>
<pre class="brush: sql">rman TARGET sys/oracle@test10g CATALOG rman/rman@catolog

RMAN&gt; register database;</pre>
<p><strong>RMAN de kanal açma ve objeleri manuel kanallara dağıtma</strong></p>
<p><strong>Örnek script:</strong></p>
<pre class="brush: sql">RUN
{
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server1)";
  ALLOCATE CHANNEL c2 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server2)";
  ALLOCATE CHANNEL c3 DEVICE TYPE sbt PARMS="ENV=(BACKUP_SERVER=tape_server3)";
  BACKUP
   (DATAFILE 1,2,3
    CHANNEL c1)
   (DATAFILECOPY '/tmp/system01.dbf', '/tmp/tools01.dbf'
     CHANNEL c2)
   (ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 102 THREAD 1
     CHANNEL c3);
}</pre>
<p><strong>Talip Hakan Öztürk</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ceturk.com/rman-teknik-referans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<enclosure url="http://www.ceturk.com/images/rman.jpg" length="3175" 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>
	</channel>
</rss>

