<?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>Linux Oracle Java</title>
	<atom:link href="http://www.kadirsert.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kadirsert.com</link>
	<description>Anything that can go wrong, will go wrong</description>
	<lastBuildDate>Thu, 19 Aug 2010 10:51:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Querying Long Running Jobs</title>
		<link>http://www.kadirsert.com/2010/querying-long-running-jobs/</link>
		<comments>http://www.kadirsert.com/2010/querying-long-running-jobs/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 15:27:05 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[timed_statistics]]></category>
		<category><![CDATA[V$session_longops]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=244</guid>
		<description><![CDATA[Sometimes i want to see output details of a running datapump export job, but datapump’s job output shows only brief explanation and shows each process’s output after the process completed. In that case v$session_longops view helps us. This view displays status of jobs and some operations that run for longer than 6 seconds.TIMED_STATISTICS or SQL_TRACE parameters must be set to true before querying this view. It is possible to learn structure of the view by typing DESC V$SESSION_LONGOPS; SQL&#62;  set lines 300 pages 55 SQL&#62;  col opname format a30 SQL&#62;  col target format a30 SQL&#62;  select to_char(sofar/totalwork,&#8217;9.99&#8242;), sofar, totalwork,  username, opname, target, TIME_REMAINING from v$session_longops where sofar!=totalwork; No related posts.


<b>No related posts.</b>]]></description>
			<content:encoded><![CDATA[<p>Sometimes i want to see output details of a running datapump export job, but datapump’s job output shows only brief explanation and shows each process’s output after the process completed. In that case <strong>v$session_longops</strong> view helps us. This view displays status of jobs and some operations that run for longer than 6 seconds.<span id="more-244"></span><strong>TIMED_STATISTICS</strong> or <strong>SQL_TRACE</strong> parameters must be set to true before querying this view. It is possible to learn structure of the view by typing <strong>DESC V$SESSION_LONGOPS;</strong></p>
<p style="text-align: center;"><a href="http://www.kadirsert.com/wp-content/uploads/2010/08/longops.jpg"><img class="size-full wp-image-245 aligncenter" title="longops" src="http://www.kadirsert.com/wp-content/uploads/2010/08/longops.jpg" alt="" width="607" height="308" /></a></p>
<p style="text-align: center;">
<p><strong>SQL&gt;  set lines 300 pages 55</strong></p>
<p><strong>SQL&gt;  col opname format a30</strong></p>
<p><strong>SQL&gt;  col target format a30</strong></p>
<p><strong>SQL&gt;  select to_char(sofar/totalwork,&#8217;9.99&#8242;), sofar, totalwork,  username, opname, target, TIME_REMAINING from v$session_longops where sofar!=totalwork;</strong></p>
<div style='clear:both'></div>

<p><b>No related posts.</b></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/querying-long-running-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux üzerinde JBOSS AS 5 Kurulumu</title>
		<link>http://www.kadirsert.com/2010/linux-uzerinde-jboss-as-5-kurulumu/</link>
		<comments>http://www.kadirsert.com/2010/linux-uzerinde-jboss-as-5-kurulumu/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 14:55:24 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[jboss 5 kurulum]]></category>
		<category><![CDATA[jboss AS 5]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=237</guid>
		<description><![CDATA[Öncelikli olarak JDK, JBOSS sunucusu ve uygulamaların kurulabilmesi için yeterli boş disk alanının bulunması gerekir. Kuruluma başlamadan önce sunucu üzerinde çalışır durumda bir java kurulu olmalı. JBOSS tamamıyla java ile yazılmaya başlandığı için java desteği olan herhangi bir platform üzerinde çalışabilir. Java ortamını ayarlayalım: JBOSS 5 kurulumuna başlamadan önce sunucuda JDK 1.5 ya da JDK 1.6 çalışır durumda olmalı. SUN web sitesinde http://java.sun.com/javase/downloads linkinde javanın son dağıtımları bulunabilir. İstediğimiz sürüm burada yoksa (Daha eski bir JDK sürümünü tercih edebiliriz) sitedeki previous release linkinden eski sürümleri bulabiliriz. JDK Update &#60;x&#62; kısmında x güncelleme numarasını gösterir. 64Bit Linux sunucu üzerine kuracağımız için jdk-&#60;sürüm numarası&#62;&#60;güncelleme numarası&#62;-linux-x64.bin dosyasını indiriyorum. Daha sonra shell ile java kurulumunu yapıyoruz. # chmod a+x jdk-&#60;sürüm numarası&#62;&#60;güncelleme numarası&#62;-linux-x64.bin # ./jdk-&#60;sürüm numarası&#62;&#60;güncelleme numarası&#62;-linux-x64.bin Şimdi de java kurulum dizinini gösteren JAVA_HOME değişkenini tanımlayalım ve bunu PATH değişkenine ekleyelim. Bunları yaptığımızda komut satırında istediğmiz yerden java’yı çalıştırabileceğiz. Bunun için /etc/bashrc dosyasının içerisine aşağıdaki örneğe benzer olan ve kurduğumuz java sürümüne göre değiştireceğimiz satırları ekliyoruz. Örneğe dikkat ederseniz JDK sürüm numarası 1.6 güncelleme 7 kurulu olduğu için JAVA_HOME /usr/java/jdk1.6.0_07 olarak yazılmış. Biz bunu kendi java sürümümüze göre ayarlamalıyız. export JAVA_HOME=/usr/java/jdk1.6.0_07 export PATH=$PATH:$JAVA_HOME/bin Kurulumu doğrulamak için komut satırında # java -version Yazarak kurduğumuz javanın sürümünü [...]


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2009/jboss-uzerinde-sql-server-2000-baglantisi-nasil-yapilir/' rel='bookmark' title='Permanent Link: JBOSS üzerinde SQL Server 2000 bağlantısı nasıl yapılır?'>JBOSS üzerinde SQL Server 2000 bağlantısı nasıl yapılır?</a></li>
<li><a href='http://www.kadirsert.com/2009/jboss-uygulama-sunucusunu-baslatmak-ve-durdurmak/' rel='bookmark' title='Permanent Link: JBOSS Uygulama Sunucusunu başlatmak ve durdurmak'>JBOSS Uygulama Sunucusunu başlatmak ve durdurmak</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Öncelikli olarak JDK, JBOSS sunucusu ve uygulamaların kurulabilmesi için yeterli boş disk alanının bulunması gerekir. Kuruluma başlamadan önce sunucu üzerinde çalışır durumda bir java kurulu olmalı. JBOSS tamamıyla java ile yazılmaya başlandığı için java desteği olan herhangi bir platform üzerinde çalışabilir.<span id="more-237"></span></p>
<p style="text-align: justify;">
<h2>Java ortamını ayarlayalım:</h2>
<p style="text-align: justify;">
<p style="text-align: justify;">JBOSS 5 kurulumuna başlamadan önce sunucuda JDK 1.5 ya da JDK 1.6 çalışır durumda olmalı. SUN web sitesinde <a href="http://java.sun.com/javase/downloads/">http://java.sun.com/javase/downloads</a> linkinde javanın son dağıtımları bulunabilir. İstediğimiz sürüm burada yoksa (Daha eski bir JDK sürümünü tercih edebiliriz) sitedeki previous release linkinden eski sürümleri bulabiliriz. JDK Update &lt;x&gt; kısmında x güncelleme numarasını gösterir. 64Bit Linux sunucu üzerine kuracağımız için <strong>jdk-&lt;sürüm numarası&gt;&lt;güncelleme numarası&gt;-linux-x64.bin</strong> dosyasını indiriyorum. Daha sonra shell ile java kurulumunu yapıyoruz.</p>
<p style="text-align: justify;"><strong># chmod a+x jdk-&lt;sürüm numarası&gt;&lt;güncelleme numarası&gt;-linux-x64.bin</strong></p>
<p style="text-align: justify;"><strong># ./jdk-&lt;sürüm numarası&gt;&lt;güncelleme numarası&gt;-linux-x64.bin</strong></p>
<p style="text-align: justify;">Şimdi de java kurulum dizinini gösteren <strong>JAVA_HOME</strong> değişkenini tanımlayalım ve bunu <strong>PATH</strong> değişkenine ekleyelim. Bunları yaptığımızda komut satırında istediğmiz yerden java’yı çalıştırabileceğiz. Bunun için <strong>/etc/bashrc</strong> dosyasının içerisine aşağıdaki örneğe benzer olan ve kurduğumuz java sürümüne göre değiştireceğimiz satırları ekliyoruz. Örneğe dikkat ederseniz JDK sürüm numarası 1.6 güncelleme 7 kurulu olduğu için JAVA_HOME /usr/java/jdk1.6.0_07 olarak yazılmış. Biz bunu kendi java sürümümüze göre ayarlamalıyız.</p>
<p style="text-align: justify;"><strong>export JAVA_HOME=/usr/java/jdk1.6.0_07</strong></p>
<p style="text-align: justify;"><strong>export PATH=$PATH:$JAVA_HOME/bin</strong></p>
<p style="text-align: justify;">Kurulumu doğrulamak için komut satırında</p>
<p style="text-align: justify;"><strong># java -version </strong></p>
<p style="text-align: justify;">Yazarak kurduğumuz javanın sürümünü görebilir ve JAVA_HOME değişkenini doğru ayarlayıp ayarlayamadığımızı anlayabiliriz.</p>
<p style="text-align: justify;">
<h2 style="text-align: justify;">Şimdi JBOSS kurulumuna geçelim:</h2>
<p style="text-align: justify;"><a href="http://labs.jboss.com/jbossas/downloads/">http://labs.jboss.com/jbossas/downloads/</a> adresinden JBOSS sürümünün karşısındaki download linkine tıklıyoruz. Bu link bizi sourceforge sitesine yönlendirecektir. Burada JBOSS sürümüne ait dosyalar bulunuyor. JBOSS binary kurulum dosyası olan <strong>jboss-&lt;sürüm&gt;.zip</strong> dosyasını indirelim. Ardından jboss isminde bir dizin açarak sıkıştırılmış içeriği burada açalım.</p>
<p style="text-align: justify;">
<p style="text-align: justify;"><strong># cd /jboss</strong></p>
<p><strong># jar -xvf jboss-&lt;sürüm&gt;.zip</strong></p>
<p style="text-align: justify;">Artık jboss-&lt;sürüm&gt; isminde bir dizinimiz var ve JBOSS_HOME değişkenini ayarlamalıyız. Yine /etc/bashrc dosyasının içerisine (hemen JAVA_HOME değişkenini ayarladığımız satırların ardına olabilir) aşağıdaki örneğe benzeyen ve jboss sürümümüze göre ayarladığımız satırları ekliyoruz.</p>
<p><strong>export JBOSS_HOME=/jboss/jboss-&lt;sürüm&gt;</strong></p>
<p><strong>export PATH=$PATH:$JBOSS_HOME/bin</strong></p>
<p style="text-align: justify;">JBOSS kurulumunu tamamladık. Artık kurulumumuzu test edebiliriz.</p>
<p style="text-align: justify;">Jboss-&lt;sürüm&gt; dizininin içerisinde bin adında bir dizin olacaktır. Jboss’u bir linux sunucu üzerine kurduğumuz için burada bulunan run.sh scripti ile sunucumuzu çalıştıracağız. Çalıştırdığımızda ekrana aşağıdakine benzer satırlar çıkacak.</p>
<p><strong># ./run.sh </strong></p>
<p><strong>=========================================================================</strong></p>
<p><strong> JBoss Bootstrap Environment</strong></p>
<p><strong> JBOSS_HOME: /opt/jboss/jboss</strong></p>
<p><strong> JAVA: java</strong></p>
<p><strong> JAVA_OPTS: -Dprogram.name=run.sh -server -Xms128m -Xmx512m -XX:MaxPermSize=256m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true</strong></p>
<p><strong> CLASSPATH: /opt/jboss/jboss/bin/run.jar</strong></p>
<p><strong>=========================================================================</strong></p>
<p><strong>17:24:15,933 INFO  [ServerImpl] Starting JBoss (Microcontainer)&#8230;</strong></p>
<p><strong>17:24:15,943 INFO  [ServerImpl] Release ID: JBoss [The Oracle] 5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)</strong></p>
<p><strong>17:24:15,944 INFO  [ServerImpl] Bootstrap URL: null</strong></p>
<p><strong>17:24:15,944 INFO  [ServerImpl] Home Dir: /opt/jboss/jboss-5.1.0.GA</strong></p>
<p><strong>..</strong></p>
<p><strong>..</strong></p>
<p><strong>17:25:05,981 INFO  [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080</strong></p>
<p><strong>17:25:06,012 INFO  [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009</strong></p>
<p><strong>17:25:06,026 INFO  [ServerImpl] JBoss (Microcontainer) [5.1.0.GA (build: SVNTag=JBoss_5_1_0_GA date=200905221634)] Started in 50s:68ms</strong></p>
<p style="text-align: justify;">JBOSS sunucusu çalıştı. Şimdi sunucumuz üzerinde bir web browser açalım ve <strong>http://localhost:8080</strong> yazarak browser’dan test edelim. Aşağıdaki gibi bir sayfa açılacaktır.</p>
<p style="text-align: justify;"><a href="http://www.kadirsert.com/wp-content/uploads/2010/08/jboss_test.png"><img class="aligncenter size-full wp-image-241" title="jboss_test" src="http://www.kadirsert.com/wp-content/uploads/2010/08/jboss_test.png" alt="" width="650" height="486" /></a></p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2009/jboss-uzerinde-sql-server-2000-baglantisi-nasil-yapilir/' rel='bookmark' title='Permanent Link: JBOSS üzerinde SQL Server 2000 bağlantısı nasıl yapılır?'>JBOSS üzerinde SQL Server 2000 bağlantısı nasıl yapılır?</a></li>
<li><a href='http://www.kadirsert.com/2009/jboss-uygulama-sunucusunu-baslatmak-ve-durdurmak/' rel='bookmark' title='Permanent Link: JBOSS Uygulama Sunucusunu başlatmak ve durdurmak'>JBOSS Uygulama Sunucusunu başlatmak ve durdurmak</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/linux-uzerinde-jboss-as-5-kurulumu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is Sticky Bit?</title>
		<link>http://www.kadirsert.com/2010/what-is-sticky-bit/</link>
		<comments>http://www.kadirsert.com/2010/what-is-sticky-bit/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 15:46:14 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[linux advanced permissions]]></category>
		<category><![CDATA[sticky bit]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=216</guid>
		<description><![CDATA[Sticky bit is an extra permission option for files and folders in linux. There are two main reasons for using sticky bit. If it is applied to a regular file, the file’s image is kept in the memory so that if the file is required to be open it is loaded quickly.  The second reason for using sticky bit is about permissions. When sticky bit is set for a directory, owner of the directory will have permissions to delete all the files in that directory even if it has not ownership of a file. An example makes it clear: Say we have a directory named /sticky and two users named skipper and rico. # whoami root # mkdir /sticky # chown skipper:rico /sticky # chmod 775 /sticky # ls -la drwxrwxr-x   2   skipper   rico   4096   Jul 17 16:59   sticky # chmod +t /sticky # ls -la drwxrwxr-t   2   skipper   rico   4096   Jul 17 16:59   sticky # su &#8211; skipper $ cd /sticky $ touch skipper.file $ ls -la drwxrwxr-t   2     skipper   rico   4096   Jul 17 17:08   . drwxr-xr-x    39   [...]


<b>No related posts.</b>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Sticky bit is an extra permission option for files and folders in linux. There are two main reasons for using sticky bit.<span id="more-216"></span> If it is applied to a regular file, the file’s image is kept in the memory so that if the file is required to be open it is loaded quickly.  The second reason for using sticky bit is about permissions. When sticky bit is set for a directory, owner of the directory will have permissions to delete all the files in that directory even if it has not ownership of a file.</p>
<p style="text-align: justify;">An example makes it clear:</p>
<p style="text-align: justify;">Say we have a directory named /sticky and two users named skipper and rico.</p>
<p><strong># whoami</strong></p>
<p><strong>root</strong></p>
<p><strong># mkdir /sticky</strong></p>
<p><strong># chown skipper:rico /sticky</strong></p>
<p><strong># chmod 775 /sticky</strong></p>
<p><strong># ls -la</strong></p>
<p><strong>drwxrwxr-x   2   skipper   rico   4096   Jul 17 16:59   sticky</strong></p>
<p><strong># chmod +t /sticky</strong></p>
<p><strong># ls -la</strong></p>
<p><strong>drwxrwxr-t   2   skipper   rico   4096   Jul 17 16:59   sticky</strong></p>
<p><strong># su &#8211; skipper</strong></p>
<p><strong>$ cd /sticky</strong></p>
<p><strong>$ touch skipper.file</strong></p>
<p><strong>$ ls -la</strong></p>
<p><strong>drwxrwxr-t   2     skipper   rico   4096   Jul 17 17:08   .</strong></p>
<p><strong>drwxr-xr-x    39   root          root   4096  Jul 17 16:59    ..</strong></p>
<p><strong>-rw-rw-r&#8211;       1       skipper   skipper    0  Jul 17 17:08    skipper.file</strong></p>
<p><strong>$ exit</strong></p>
<p><strong># su &#8211; rico</strong></p>
<p><strong>$ cd /sticky</strong></p>
<p><strong>$ touch rico.file</strong></p>
<p><strong>$ ls -la</strong></p>
<p><strong>drwxrwxr-t   2     skipper   rico   4096    Jul 17 17:13     .</strong></p>
<p><strong>drwxr-xr-x    39  root           root   4096    Jul 17 16:59   ..</strong></p>
<p><strong>-rw-rw-r&#8211;       1      rico            rico             0   Jul 17 17:13    rico.file</strong></p>
<p><strong> -rw-rw-r&#8211;       1      skipper    skipper    0   Jul 17 17:08   skipper.file</strong></p>
<p>Now we can test permissions:</p>
<p><strong># whoami</strong></p>
<p><strong>root</strong></p>
<p><strong># su &#8211; rico</strong></p>
<p><strong>$ cd /sticky</strong></p>
<p><strong>$ ls -la</strong></p>
<p><strong>drwxrwxr-t    2     skipper   rico    4096   Jul 17 17:13    .</strong></p>
<p><strong>drwxr-xr-x     39   root          root    4096  Jul 17 16:59    ..</strong></p>
<p><strong>-rw-rw-r&#8211;        1       rico          rico              0  Jul 17 17:13     rico.file</strong></p>
<p><strong>-rw-rw-r&#8211;        1       skipper  skipper      0 Jul 17 17:08    skipper.file</strong></p>
<p><strong>$ rm -f skipper.file</strong></p>
<p><strong>rm: cannot remove &#8216;skipper.file&#8217;: Operation not permitted</strong></p>
<p><strong>$ exit</strong></p>
<p><strong># su &#8211; skipper</strong></p>
<p><strong>$ cd /sticky</strong></p>
<p><strong>$ ls -la</strong></p>
<p><strong>drwxrwxr-t    2      skipper   rico    4096    Jul 17 17:13    .</strong></p>
<p><strong>drwxr-xr-x     39   root           root    4096   Jul 17 16:59    ..</strong></p>
<p><strong>-rw-rw-r&#8211;        1       rico            rico              0  Jul 17 17:13     rico.file</strong></p>
<p><strong>-rw-rw-r&#8211;        1       skipper    skipper     0 Jul 17 17:08     skipper.file</strong></p>
<p><strong>$ rm -f rico.file</strong></p>
<p><strong>$ ls -la</strong></p>
<p><strong>drwxrwxr-t    2      skipper   rico     4096 Jul 17 17:25    .</strong></p>
<p><strong>drwxr-xr-x     39   root           root    4096 Jul 17 16:59    ..</strong></p>
<p><strong>-rw-rw-r&#8211;        1       skipper   skipper     0 Jul 17 17:08     skipper.file</strong></p>
<p><strong>$ rm -f skipper.file</strong></p>
<p><strong>$ ls -la</strong></p>
<p><strong>drwxrwxr-t    2     skipper   rico    4096 Jul 17 17:26     .</strong></p>
<p><strong>drwxr-xr-x     39   root          root    4096 Jul 17 16:59    ..</strong></p>
<p>now we proved that the skipper (owner of the /sticky directory) can delete all files.</p>
<div style='clear:both'></div>

<p><b>No related posts.</b></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/what-is-sticky-bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ftp Site Synchronization with wget</title>
		<link>http://www.kadirsert.com/2010/ftp-site-synchronization-with-wget/</link>
		<comments>http://www.kadirsert.com/2010/ftp-site-synchronization-with-wget/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 15:09:22 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[site synchronization]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=202</guid>
		<description><![CDATA[I have a task for synchronizing a remote ftp folder to a local folder. At the remote site, that day’s folder is placed in the form of year_month_day and the local folder placed inthe form of year/month/day . I have to copy the current day’s folder everyday because previous days folders are deleted regularly. In the case of a failure for copying files, the script must continue copying where it left off. So i decided to use wget command, wrote a script for that and put it into the crontab. I hope this helps you in such cases. Remote ftp site synchronization script: #!/bin/bash year=$(date +%Y) month=$(date +%m) day=$(date +%d) remote_folder=$year&#8217;_'$month&#8217;_'$day local_folder=&#60;ROOT FOLDER&#62;/$year/$month/$day/ user=&#60;USERNAME&#62; pass=&#60;PASSWORD&#62; address=&#60;FTP ADDRESS&#62; log_file=&#8217;&#60;LOG FOLDER&#62;&#8217;$remote_folder&#8217;.log&#8217; touch $log_file wget &#8211; -mirror -nH &#8211; -cut-dirs=1 -P $local_folder -o $log_file &#8216;ftp://&#8217;$user&#8217;:'$pass@$address&#8217;/'$remote_folder No related posts.


<b>No related posts.</b>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">I have a task for synchronizing a remote ftp folder to a local folder. At the remote site, that day’s folder is placed in the form of <strong>year_month_day</strong> and the local folder placed inthe form of <strong>year/month/day</strong> .<span id="more-202"></span> I have to copy the current day’s folder everyday because previous days folders are deleted regularly. In the case of a failure for copying files, the script must continue copying where it left off. So i decided to use wget command, wrote a script for that and put it into the crontab. I hope this helps you in such cases.</p>
<p style="text-align: justify;">Remote ftp site synchronization script:</p>
<p style="text-align: justify;"><strong>#!/bin/bash</strong></p>
<p style="text-align: justify;"><strong>year=$(date +%Y)</strong></p>
<p style="text-align: justify;"><strong>month=$(date +%m)</strong></p>
<p style="text-align: justify;"><strong>day=$(date +%d)</strong></p>
<p style="text-align: justify;"><strong>remote_folder=$year&#8217;_'$month&#8217;_'$day</strong></p>
<p style="text-align: justify;"><strong>local_folder=&lt;ROOT FOLDER&gt;/$year/$month/$day/</strong></p>
<p style="text-align: justify;"><strong>user=&lt;USERNAME&gt;</strong></p>
<p style="text-align: justify;"><strong>pass=&lt;PASSWORD&gt;</strong></p>
<p style="text-align: justify;"><strong>address=&lt;FTP ADDRESS&gt;</strong></p>
<p style="text-align: justify;"><strong>log_file=&#8217;&lt;LOG FOLDER&gt;&#8217;$remote_folder&#8217;.log&#8217;</strong></p>
<p style="text-align: justify;"><strong>touch $log_file</strong></p>
<p style="text-align: justify;"><strong> wget &#8211; -mirror -nH &#8211; -cut-dirs=1 -P $local_folder -o $log_file &#8216;ftp://&#8217;$user&#8217;:'$pass@$address&#8217;/'$remote_folder</strong></p>
<div style='clear:both'></div>

<p><b>No related posts.</b></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/ftp-site-synchronization-with-wget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Oracle Questions and Answers</title>
		<link>http://www.kadirsert.com/2010/some-oracle-questions-and-answers/</link>
		<comments>http://www.kadirsert.com/2010/some-oracle-questions-and-answers/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 08:20:20 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[oracle answers]]></category>
		<category><![CDATA[oracle questions]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=194</guid>
		<description><![CDATA[Where is datafiles? SELECT FILE_NAME, TABLESPACE_NAME, BYTES FROM DBA_DATA_FILES; Is database using pfile or spfile? SELECT DECODE(value, NULL, &#8216;PFILE&#8217;, &#8216;SPFILE&#8217;) &#8220;File Type&#8221; FROM V_$PARAMETER WHERE NAME = &#8216;spfile&#8217;; Is database in flashback mode or not? SELECT FLASHBACK_ON FROM V$DATABASE; Is database in archivelog mode or not? SELECT LOG_MODE FROM V$DATABASE; How can i flashback a table to 30 minutes earlier state? ALTER TABLE &#60;TABLE NAME&#62; ENABLE ROW MOVEMENT; FLASHBACK TABLE &#60;TABLE NAME&#62; TO TIMESTAMP (SYSTIMESTAMP &#8211; INTERVAL &#8217;30&#8242; minute); ALTER TABLE &#60;TABLE NAME&#62; DISABLE ROW MOVEMENT; How can i lock or unlock a user? ALTER USER &#60;USER NAME&#62; ACCOUNT LOCK; ALTER USER &#60;USER NAME&#62; ACCOUNT UNLOCK; Where is control files? SELECT VALUE FROM V$PARAMETER WHERE NAME LIKE &#8216;control_files%&#8217;; How can i rebuild an index? ALTER INDEX &#60;INDEX NAME&#62; REBUILD; How can i shrink a table? ALTER TABLE &#60;TABLE NAME&#62; SHRINK SPACE COMPACT; ALTER TABLE &#60;TABLE NAME&#62; SHRINK SPACE; Related posts:How to use Oracle Data Dictionary? Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I) Oracle archivelog modunda datafile recovery yapmak


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/' rel='bookmark' title='Permanent Link: How to use Oracle Data Dictionary?'>How to use Oracle Data Dictionary?</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</a></li>
<li><a href='http://www.kadirsert.com/2009/oracle-archivelog-modunda-datafile-recovery-yapmak/' rel='bookmark' title='Permanent Link: Oracle archivelog modunda datafile recovery yapmak'>Oracle archivelog modunda datafile recovery yapmak</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Where is datafiles?<span id="more-194"></span></p>
<p style="text-align: justify;"><strong>SELECT FILE_NAME, TABLESPACE_NAME, BYTES FROM DBA_D</strong><strong>ATA_FILES;</strong></p>
<p style="text-align: justify;">Is database using pfile or spfile?</p>
<p style="text-align: justify;"><strong>SELECT DECODE(value, NULL, &#8216;PFILE&#8217;, &#8216;SPFILE&#8217;) &#8220;File Type&#8221; FROM V_$PARAMETER WHERE NAME = &#8216;spfile&#8217;;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Is database in flashback mode or not?</p>
<p style="text-align: justify;"><strong>SELECT FLASHBACK_ON FROM V$DATABASE;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Is database in archivelog mode or not?</p>
<p style="text-align: justify;"><strong>SELECT LOG_MODE FROM V$DATABASE;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">How can i flashback a table to 30 minutes earlier state?</p>
<p style="text-align: justify;"><strong>ALTER TABLE &lt;TABLE NAME&gt; ENABLE ROW MOVEMENT;</strong></p>
<p style="text-align: justify;"><strong>FLASHBACK TABLE &lt;TABLE NAME&gt; TO TIMESTAMP (SYSTIMESTAMP &#8211; INTERVAL &#8217;30&#8242; minute);</strong></p>
<p style="text-align: justify;"><strong>ALTER TABLE &lt;TABLE NAME&gt; DISABLE ROW MOVEMENT;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">How can i lock or unlock a user?</p>
<p style="text-align: justify;"><strong>ALTER USER &lt;USER NAME&gt; ACCOUNT LOCK;</strong></p>
<p style="text-align: justify;"><strong>ALTER USER &lt;USER NAME&gt; ACCOUNT UNLOCK;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Where is control files?</p>
<p style="text-align: justify;"><strong>SELECT VALUE FROM V$PARAMETER WHERE NAME LIKE &#8216;control_files%&#8217;;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">How can i rebuild an index?</p>
<p style="text-align: justify;"><strong>ALTER INDEX &lt;INDEX NAME&gt; REBUILD;</strong></p>
<p style="text-align: justify;">
<p style="text-align: justify;">How can i shrink a table?</p>
<p style="text-align: justify;"><strong>ALTER TABLE &lt;TABLE NAME&gt; SHRINK SPACE COMPACT;</strong></p>
<p style="text-align: justify;"><strong>ALTER TABLE &lt;TABLE NAME&gt; SHRINK SPACE;</strong></p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/' rel='bookmark' title='Permanent Link: How to use Oracle Data Dictionary?'>How to use Oracle Data Dictionary?</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</a></li>
<li><a href='http://www.kadirsert.com/2009/oracle-archivelog-modunda-datafile-recovery-yapmak/' rel='bookmark' title='Permanent Link: Oracle archivelog modunda datafile recovery yapmak'>Oracle archivelog modunda datafile recovery yapmak</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/some-oracle-questions-and-answers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to use Oracle Data Dictionary?</title>
		<link>http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/</link>
		<comments>http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 07:49:55 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Data Dictionary examples]]></category>
		<category><![CDATA[Oracle Data Dictionary]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=191</guid>
		<description><![CDATA[Data Dictionary is the metadata of the oracle database. It contains all informations about the database objects. There are sets of views in the Data Dictionary. They are in the SYSTEM tablespace and have prefixes. Prefix Description USER User’s schema ALL User can access DBA Database Administators view Examples; Returns all objects and object states of your schema: SELECT object_name, object_type, status FROM USER_OBJECTS; Returns all objects and object states to which you have access: SELECT object_name, object_type, status FROM ALL_OBJECTS; Returns all objects and object states of the database per owner basis: SELECT owner, object_name, object_type, status FROM SYS.DBA_OBJECTS; There are also performance views in the Data Dictionary which prefixed V$. Following statement shows who is connected to the database: SELECT sid, serial#, username, osuser, machine from V$SESSION where username is not NULL; Static Data Dictionary Views can be listed along with comments in dict: SELECT * from DICT order by table_name; Related posts:Some Oracle Questions and Answers 10g üzerinde Data Pump araçlarının kullanımı


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/some-oracle-questions-and-answers/' rel='bookmark' title='Permanent Link: Some Oracle Questions and Answers'>Some Oracle Questions and Answers</a></li>
<li><a href='http://www.kadirsert.com/2009/10g-uzerinde-data-pump-araclarinin-kullanimi/' rel='bookmark' title='Permanent Link: 10g üzerinde Data Pump araçlarının kullanımı'>10g üzerinde Data Pump araçlarının kullanımı</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Data Dictionary is the metadata of the oracle database. It contains all informations about the database objects. <span id="more-191"></span>There are sets of views in the Data Dictionary. They are in the SYSTEM tablespace and have prefixes.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="111" valign="top"><strong>Prefix</strong></td>
<td width="198" valign="top"><strong>Description</strong></td>
</tr>
<tr>
<td width="111" valign="top">USER</td>
<td width="198" valign="top">User’s schema</td>
</tr>
<tr>
<td width="111" valign="top">ALL</td>
<td width="198" valign="top">User can access</td>
</tr>
<tr>
<td width="111" valign="top">DBA</td>
<td width="198" valign="top">Database Administators view</td>
</tr>
</tbody>
</table>
<p><strong>Examples;</strong></p>
<p>Returns all objects and object states of your schema:</p>
<p><strong>SELECT object_name, object_type, status FROM USER_OBJECTS;</strong></p>
<p><strong><br />
</strong></p>
<p>Returns all objects and object states to which you have access:</p>
<p><strong>SELECT object_name, object_type, status FROM ALL_OBJECTS;</strong></p>
<p><strong><br />
</strong></p>
<p>Returns all objects and object states of the database per owner basis:</p>
<p><strong>SELECT owner, object_name, object_type, status FROM SYS.DBA_OBJECTS;</strong></p>
<p>There are also performance views in the Data Dictionary which prefixed V$.</p>
<p>Following statement shows who is connected to the database:</p>
<p><strong>SELECT sid, serial#, username, osuser, machine from V$SESSION where username is not NULL;</strong></p>
<p><strong><br />
</strong></p>
<p>Static Data Dictionary Views can be listed along with comments in dict:</p>
<p><strong>SELECT * from DICT order by table_name;</strong></p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/some-oracle-questions-and-answers/' rel='bookmark' title='Permanent Link: Some Oracle Questions and Answers'>Some Oracle Questions and Answers</a></li>
<li><a href='http://www.kadirsert.com/2009/10g-uzerinde-data-pump-araclarinin-kullanimi/' rel='bookmark' title='Permanent Link: 10g üzerinde Data Pump araçlarının kullanımı'>10g üzerinde Data Pump araçlarının kullanımı</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)</title>
		<link>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/</link>
		<comments>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/#comments</comments>
		<pubDate>Tue, 04 May 2010 17:23:10 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[oracle 10g standby]]></category>
		<category><![CDATA[oracle logical standby]]></category>
		<category><![CDATA[oracle mantıksal standby]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=188</guid>
		<description><![CDATA[Fiziksel Standby Veritabanı Üzerinde Redo Apply İşlemini Durdurma Veritabanını fizikselden mantıksala çevirmeden önce redo apply işlemi durdurulur. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Primary Veritabanını Mantıksal Standby Veritabanını Destekleyecek Şekilde Hazırlama Primary veritabanı rol değişimleri için hazırlanır. Bunu yapabilmek için primary veritabanı üzerindeki başlangıç parametre dosyasına LOG_ARCHIVE_DEST_3 parametresi eklenir. Bu parametre sadece primary veritabanının rolü standby olarak değiştiğinde etkili olur. LOG_ARCHIVE_DEST_3= &#8216;LOCATION=/arch2/oradb1/ VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=oradb1&#8242; LOG_ARCHIVE_DEST_STATE_3=ENABLE Bu iki parametreyi veritabanı çalışıyorken değiştirmek için ALTER SYSTEM SET komutu kullanılır ayrıca SCOPE=BOTH eklenerek veritabanı kapanıp açıldığında yapılan değişikliklerin kaybolmaması sağlanır. Redo verisi için kullanılacak dictionary oluşturulur. LogMiner Multiversioned Data Dictionary sayesinde primary key ve unique-constraint/index sütunlarının redo loglarına eklenmesi sağlanır. Böylece her bir kayıt birbirinden ayrılabilir. Dictionary’yi oluşturmak için: EXECUTE DBMS_LOGSTDBY.BUILD; DBMS_LOGSTDBY.BUILD prosedürü varolan tüm transaction’ların tamamlanmasını bekleyecektir. Mantıksal standby veritabanına geçilir. Geçiş için: ALTER DATABASE RECOVER TO LOGICAL STANDBY db_ismi; db_ismi yerine yeni mantıksal veritabanı adı yazılır. Primary veritabanında dictionary oluşturma işlemi bitmemiş ise geçiş işlemi başarılı olmayacaktır. Böyle bir durumda yapılan işlemi iptal etmek için başka bir sql oturumu açılarak, ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL komutu çalıştırılır. Yeni bir şifre dosyası oluşturulur. Mantıksal veritabanına geçme işlemi veritabanı ismini değiştirdiği için şifre dosyası yeniden oluşturulmalıdır. Mantıksal standby veritabanı için [...]


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2>Fiziksel Standby Veritabanı Üzerinde Redo Apply İşlemini Durdurma</h2>
<p>Veritabanını fizikselden mantıksala çevirmeden önce redo apply işlemi durdurulur.<br />
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;<span id="more-188"></span></p>
<h2>Primary Veritabanını Mantıksal Standby Veritabanını Destekleyecek Şekilde Hazırlama</h2>
<p><strong>Primary veritabanı rol değişimleri için hazırlanır.</strong></p>
<p style="text-align: justify;">Bunu yapabilmek için primary veritabanı üzerindeki başlangıç parametre dosyasına LOG_ARCHIVE_DEST_3 parametresi eklenir. Bu parametre sadece primary veritabanının rolü standby olarak değiştiğinde etkili olur.</p>
<p style="text-align: justify;">LOG_ARCHIVE_DEST_3=</p>
<p style="text-align: justify; padding-left: 30px;">&#8216;LOCATION=/arch2/oradb1/</p>
<p style="text-align: justify; padding-left: 30px;">VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)</p>
<p style="text-align: justify; padding-left: 30px;">DB_UNIQUE_NAME=oradb1&#8242;</p>
<p style="text-align: justify;">LOG_ARCHIVE_DEST_STATE_3=ENABLE</p>
<p style="text-align: justify;">Bu iki parametreyi veritabanı çalışıyorken değiştirmek için ALTER SYSTEM SET komutu kullanılır ayrıca SCOPE=BOTH eklenerek veritabanı kapanıp açıldığında yapılan değişikliklerin kaybolmaması sağlanır.</p>
<p style="text-align: justify;"><strong>Redo verisi için kullanılacak dictionary oluşturulur.</strong></p>
<p style="text-align: justify;">LogMiner Multiversioned Data Dictionary sayesinde primary key ve unique-constraint/index sütunlarının redo loglarına eklenmesi sağlanır. Böylece her bir kayıt birbirinden ayrılabilir. Dictionary’yi oluşturmak için:</p>
<p style="text-align: justify;">EXECUTE DBMS_LOGSTDBY.BUILD;</p>
<p style="text-align: justify;">DBMS_LOGSTDBY.BUILD prosedürü varolan tüm transaction’ların tamamlanmasını bekleyecektir.</p>
<p style="text-align: justify;"><strong>Mantıksal standby veritabanına geçilir.</strong></p>
<ul>
<li>Geçiş için:</li>
</ul>
<p style="padding-left: 30px;">ALTER DATABASE RECOVER TO LOGICAL STANDBY <em>db_ismi</em>;</p>
<p style="text-align: justify; padding-left: 30px;">db_ismi yerine yeni mantıksal veritabanı adı yazılır. Primary veritabanında dictionary oluşturma işlemi bitmemiş ise geçiş işlemi başarılı olmayacaktır. Böyle bir durumda yapılan işlemi iptal etmek için başka bir sql oturumu açılarak, ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL komutu çalıştırılır.</p>
<ul>
<li>Yeni bir şifre dosyası oluşturulur. Mantıksal veritabanına geçme işlemi veritabanı ismini değiştirdiği için şifre dosyası yeniden oluşturulmalıdır.</li>
<li>Mantıksal standby veritabanı için başlangıç parametreleri belirlenir. Öncelikle veritabanı kapatılıp mount durumuna getirilir.</li>
</ul>
<p style="text-align: justify; padding-left: 30px;">SHUTDOWN;</p>
<p style="text-align: justify; padding-left: 30px;">STARTUP MOUNT;</p>
<p style="text-align: justify; padding-left: 30px;">Fiziksel standby veritabanlarının aksine mantıksal standby veritabanları sorguya açık olduklarından çoklu log dosyalarına sahiptirler. Bu sebeple LOG_ARCHIVE_DESTINATION_n parametresi belirlenmelidir.</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_1=LOCATION=/arch1/oradb2 olarak belirlenen hedef dizinde mantıksal standby tarafından üretilen redo loglarının arşivleri tutulmaktadır.</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_3=LOCATION=/arch2/oradb2 olarak belirlenen hedef dizinde ise primary veritabanından gelen redo log verisinin arşivi tutulmaktadır.</p>
<p style="text-align: justify; padding-left: 30px;">Mantıksal standby sunucusundaki başlangıç parametre dosyası aşağıdaki gibi düzenlenir.</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_1=</p>
<p style="text-align: justify; padding-left: 60px;">&#8216;LOCATION=/arch1/oradb2/</p>
<p style="text-align: justify; padding-left: 60px;">VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)</p>
<p style="text-align: justify; padding-left: 60px;">DB_UNIQUE_NAME=oradb2&#8242;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_2=</p>
<p style="text-align: justify; padding-left: 60px;">&#8216;SERVICE=oradb1 LGWR ASYNC</p>
<p style="text-align: justify; padding-left: 60px;">VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)</p>
<p style="text-align: justify; padding-left: 60px;">DB_UNIQUE_NAME=oradb1&#8242;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_3=</p>
<p style="text-align: justify; padding-left: 60px;">&#8216;LOCATION=/arch2/oradb2/</p>
<p style="text-align: justify; padding-left: 60px;">VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)</p>
<p style="text-align: justify; padding-left: 60px;">DB_UNIQUE_NAME=oradb2&#8242;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_STATE_1=ENABLE</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_STATE_2=ENABLE</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_STATE_3=ENABLE</p>
<p style="text-align: justify;"><strong>Mantıksal standby veritabanı açılır.</strong></p>
<p style="text-align: justify;">Burada veritabanı RESETLOGS ile açılmalıdır.</p>
<p style="text-align: justify;">ALTER DATABASE OPEN RESETLOGS;</p>
<p style="text-align: justify;">Daha sonra redo verilerinin uygulanması için aşağıdaki komut çalıştırılır.</p>
<p style="text-align: justify;">ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;</p>
<p style="text-align: justify;">Bundan sonra mantıksal standby veritabanımızın doğru çalışıp çalışmadığı kontrol edilir.</p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)</title>
		<link>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/</link>
		<comments>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/#comments</comments>
		<pubDate>Tue, 04 May 2010 16:33:12 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[oracle 10g standby]]></category>
		<category><![CDATA[oracle logical standby]]></category>
		<category><![CDATA[oracle mantıksal standby]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=177</guid>
		<description><![CDATA[Mantıksal Standby Veritabanını Oluşturma Kurulum dökümanında kullanılan isimler aşağıdaki tabloda gösterilmiştir. Database DB_UNIQUE_NAME Oracle Net Service Name Primary oradb1 oradb1 Physical standby oradb2 oradb2 Mantıksal Standby veritabanını oluşturmak için öncelikle Fiziksel Standby oluşturulup daha sonra mantıksal olarak değiştirmek gerekir. Bunu yapmak için Standby sunucusu üzerindeki Redo Apply işlemi durdurulur. Redo Apply işlemini durdurmak için aşağıdaki sorgu çalıştırılır. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; Fiziksel Standby Veritabanını Oluşturma Primary veritabanı FORCE LOGGING moduna alınır. ALTER DATABASE FORCE LOGGING Şifre dosyası oluşturulur. Dataguard konfigürasyonu içerisindeki tüm sunucular şifre dosyası kullanmak zorundadır. Ayrıca SYS kullanıcılarının şifresi aynı olmak zorundadır. Standby redo log oluşturulur. Yüksek koruma ve yüksek erişilebilirlik için standby redo logları gerekir. LGWR ASYNC metodu tavsiye edilmektedir. Aşağıdaki adımlar uygulanır. Primary ve standby sunucularındaki redo log dosyalarının boyutu aynı olmalıdır. Standby redo log dosya gruplarının sayısı belirlenir. Standby’daki grup sayısı primary’dekinden en az bir fazla olmalıdır. Bunun yanında standby’daki grup sayısı primary veritabanındaki thread sayısıyla yakından ilişkilidir.  (Her bir thread tarafından kullanılan en yüksek log dosyası sayısı + 1) * en yüksek thread sayısı MAXLOGFILES ve MAXLOGMEMBERS parametrelerinin, açılacak olan log grup sayısını kısıtlayıp kısıtlamadığı kontrol edilmelidir. Aksi takdirde Primary veritabanının ya da control dosyasının yeniden oluşturulması gerekebilir. Standby redo log [...]


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: left;">Mantıksal Standby Veritabanını Oluşturma</h2>
<p style="text-align: left;">Kurulum dökümanında kullanılan isimler aşağıdaki tabloda gösterilmiştir.<span id="more-177"></span></p>
<table style="text-align: left;" border="1" cellspacing="0" cellpadding="0" width="62%">
<thead>
<tr>
<td width="28%" valign="center"><strong>Database</strong></td>
<td width="32%" valign="center"><strong>DB_UNIQUE_NAME</strong></td>
<td width="38%" valign="center"><strong>Oracle Net Service Name</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td width="28%" valign="center">Primary</td>
<td width="32%" valign="center">oradb1</td>
<td width="38%" valign="center">oradb1</td>
</tr>
<tr>
<td width="28%" valign="center">Physical standby</td>
<td width="32%" valign="center">oradb2</td>
<td width="38%" valign="center">oradb2</td>
</tr>
</tbody>
</table>
<p style="text-align: justify;">Mantıksal Standby veritabanını oluşturmak için öncelikle Fiziksel Standby oluşturulup daha sonra mantıksal olarak değiştirmek gerekir. Bunu yapmak için Standby sunucusu üzerindeki Redo Apply işlemi durdurulur. Redo Apply işlemini durdurmak için aşağıdaki sorgu çalıştırılır.</p>
<p style="text-align: left;">ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;</p>
<h2 style="text-align: left;">Fiziksel Standby Veritabanını Oluşturma</h2>
<p style="text-align: left;"><strong>Primary veritabanı FORCE LOGGING moduna alınır.</strong></p>
<p style="text-align: left;">ALTER DATABASE FORCE LOGGING</p>
<p style="text-align: left;"><strong>Şifre dosyası oluşturulur.</strong></p>
<p style="text-align: justify;">Dataguard konfigürasyonu içerisindeki tüm sunucular şifre dosyası kullanmak zorundadır. Ayrıca SYS kullanıcılarının şifresi aynı olmak zorundadır.</p>
<p style="text-align: left;"><strong>Standby redo log oluşturulur.</strong></p>
<p style="text-align: justify;">Yüksek koruma ve yüksek erişilebilirlik için standby redo logları gerekir. LGWR ASYNC metodu tavsiye edilmektedir. Aşağıdaki adımlar uygulanır.</p>
<ul style="text-align: justify;">
<li>Primary ve standby sunucularındaki redo log dosyalarının boyutu aynı olmalıdır.</li>
<li>Standby redo log dosya gruplarının sayısı belirlenir. Standby’daki grup sayısı primary’dekinden en az bir fazla olmalıdır. Bunun yanında standby’daki grup sayısı primary veritabanındaki thread sayısıyla yakından ilişkilidir.  (Her bir thread tarafından kullanılan en yüksek log dosyası sayısı + 1) * en yüksek thread sayısı</li>
<li style="text-align: justify;">MAXLOGFILES ve MAXLOGMEMBERS parametrelerinin, açılacak olan log grup sayısını kısıtlayıp kısıtlamadığı kontrol edilmelidir. Aksi takdirde Primary veritabanının ya da control dosyasının yeniden oluşturulması gerekebilir.</li>
<li>Standby redo log dosya grupları oluşturulur.  Örnek vermek gerekirse:
<ul>
<li style="text-align: left;">ALTER DATABASE ADD STANDBY LOGFILE THREAD 5 (‘/app/oracle/oradata/oradb2/redo01.log’,’/app/oracle/oradata/oradb2/redo02.log’) SIZE 300M;</li>
<li style="text-align: left;">ALTER DATABASE ADD STANDBY LOGFILE GROUP 10 (‘/app/oracle/oradata/oradb2/redo01.log’,’/app/oracle/oradata/oradb2/redo02.log’) SIZE 300M;</li>
</ul>
</li>
<li>Standby redo loglarının oluşup oluşmadığı kontrol edilir. Bunun için primary veritabanında log switch işlemi yapıldıktan sonra standby tarafında V$STANDBY_LOG ya da V$LOGFILE view’leri sorgulanır.
<ul>
<li style="text-align: left;">SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;</li>
</ul>
</li>
</ul>
<p style="text-align: justify;"><strong>Primary veritabanında başlangıç parametreleri değiştirilir.</strong></p>
<ul style="text-align: justify;">
<li><strong>Primary Veritabanı:Primary rol başlangıç parametreleri</strong></li>
</ul>
<p style="text-align: justify; padding-left: 30px;">DB_NAME=oradb1</p>
<p style="text-align: justify; padding-left: 30px;">DB_UNIQUE_NAME=oradb1</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_CONFIG=&#8217;DG_CONFIG=(oradb1,oradb2)&#8217;</p>
<p style="text-align: justify; padding-left: 30px;">CONTROL_FILES=&#8217;/arch1/oradb1/control1.ctl&#8217;, &#8216;/arch2/oradb1/control2.ctl&#8217;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_1=</p>
<p style="text-align: justify; padding-left: 60px;">&#8216;LOCATION=/arch1/oradb1/</p>
<p style="text-align: justify; padding-left: 60px;">VALID_FOR=(ALL_LOGFILES,ALL_ROLES)</p>
<p style="text-align: justify; padding-left: 60px;">DB_UNIQUE_NAME=oradb1&#8242;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_2=</p>
<p style="text-align: justify; padding-left: 60px;">&#8216;SERVICE=oradb2 LGWR ASYNC</p>
<p style="text-align: justify; padding-left: 60px;">VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)</p>
<p style="text-align: justify; padding-left: 60px;">DB_UNIQUE_NAME=oradb2&#8242;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_STATE_1=ENABLE</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_DEST_STATE_2=ENABLE</p>
<p style="text-align: justify; padding-left: 30px;">REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_FORMAT=%t_%s_%r.arc</p>
<p style="text-align: justify; padding-left: 30px;">LOG_ARCHIVE_MAX_PROCESSES=30</p>
<ul style="text-align: justify;">
<li><strong>Primary Veritabanı:Standby rol başlangıç parametreleri</strong></li>
</ul>
<p style="text-align: justify; padding-left: 30px;">FAL_SERVER=oradb2</p>
<p style="text-align: justify; padding-left: 30px;">FAL_CLIENT=oradb1</p>
<p style="text-align: justify; padding-left: 30px;">DB_FILE_NAME_CONVERT=&#8217;oradb2&#8242;,&#8217;oradb1&#8242;</p>
<p style="text-align: justify; padding-left: 30px;">LOG_FILE_NAME_CONVERT=</p>
<p style="text-align: justify; padding-left: 60px;">&#8216;/arch1/oradb2/&#8217;,'/arch1/oradb1/&#8217;,'/arch2/oradb2/&#8217;,'/arch2/oradb1/&#8217;</p>
<p style="text-align: justify; padding-left: 30px;">STANDBY_FILE_MANAGEMENT=AUTO</p>
<p style="text-align: justify;"><strong>Primary veritabanında arşivleme etkinleştirilir.</strong></p>
<p style="text-align: justify;">SHUTDOWN IMMEDIATE;</p>
<p style="text-align: justify;">STARTUP MOUNT;</p>
<p style="text-align: justify;">ALTER DATABASE ARCHIVELOG;</p>
<p style="text-align: justify;">ALTER DATABASE OPEN;</p>
<p style="text-align: justify;"><strong>Primary veritabanı veri dosyalarının yedek kopyaları alınır.</strong></p>
<p style="text-align: justify;">Oracle bu işlem için RMAN kullanmayı tavsiye etmektedir.</p>
<p style="text-align: justify;"><strong>Standby veritabanı için control dosyası oluşturulur.</strong></p>
<p style="text-align: justify;">Primary veritabanı kapatıldıktan sonra üzerinde aşağıdaki komutlar koşturulur.</p>
<p style="text-align: justify;">STARTUP MOUNT;</p>
<p style="text-align: justify;">ALTER DATABASE CREATE STANDBY CONTROLFILE AS &#8216;/tmp/oradb2.ctl&#8217;;</p>
<p style="text-align: justify;">ALTER DATABASE OPEN;</p>
<p style="text-align: justify;"><strong>Standby veritabanı için başlangıç parametre dosyası oluşturulur.</strong></p>
<p style="text-align: justify;">Primary veritabanı üzerinde pfile başlangıç parametre dosyası oluşturulur.</p>
<p style="text-align: justify;">CREATE PFILE=&#8217;/tmp/initoradb2.ora&#8217; FROM SPFILE;</p>
<p style="text-align: justify;"><strong>Bu dosya üzerinde standby sunucu için gerekli değişiklikler yapılır.</strong></p>
<p style="text-align: justify;">DB_NAME=oradb1</p>
<p style="text-align: justify;">DB_UNIQUE_NAME=oradb2</p>
<p style="text-align: justify;">LOG_ARCHIVE_CONFIG=&#8217;DG_CONFIG=(oradb1,oradb2)&#8217;</p>
<p style="text-align: justify;">CONTROL_FILES=&#8217;/arch1/oradb2/control1.ctl&#8217;, &#8216;/arch2/oradb2/control2.ctl&#8217;</p>
<p style="text-align: justify;">DB_FILE_NAME_CONVERT=&#8217;oradb1&#8242;,&#8217;oradb2&#8242;</p>
<p style="text-align: justify;">LOG_FILE_NAME_CONVERT=</p>
<p style="padding-left: 30px; text-align: justify;">&#8216;/arch1/oradb1/&#8217;,'/arch1/oradb2/&#8217;,'/arch2/oradb1/&#8217;,'/arch2/oradb2/&#8217;</p>
<p style="text-align: justify;">LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc</p>
<p style="text-align: justify;">LOG_ARCHIVE_DEST_1=</p>
<p style="padding-left: 30px; text-align: justify;">&#8216;LOCATION=/arch1/oradb2/</p>
<p style="padding-left: 30px; text-align: justify;">VALID_FOR=(ALL_LOGFILES,ALL_ROLES)</p>
<p style="padding-left: 30px; text-align: justify;">DB_UNIQUE_NAME=oradb2&#8242;</p>
<p style="text-align: justify;">LOG_ARCHIVE_DEST_2=</p>
<p style="padding-left: 30px; text-align: justify;">&#8216;SERVICE=oradb1 LGWR ASYNC</p>
<p style="padding-left: 30px; text-align: justify;">VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)</p>
<p style="padding-left: 30px; text-align: justify;">DB_UNIQUE_NAME=oradb1&#8242;</p>
<p style="text-align: justify;">LOG_ARCHIVE_DEST_STATE_1=ENABLE</p>
<p style="text-align: justify;">LOG_ARCHIVE_DEST_STATE_2=ENABLE</p>
<p style="text-align: justify;">REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE</p>
<p style="text-align: justify;">STANDBY_FILE_MANAGEMENT=AUTO</p>
<p style="text-align: justify;">FAL_SERVER=oradb1</p>
<p style="text-align: justify;">FAL_CLIENT=oradb2</p>
<p style="text-align: justify;"><strong>Hazırlanan dosyalar primary sunucudan standby sunucuya kopyalanır.</strong></p>
<ul style="text-align: justify;">
<li>Veri dosyalarının yedekleri.</li>
<li>Oluşturulan standby kontrol dosyası.</li>
<li>Oluşturulan standby başlangıç dosyası.</li>
</ul>
<p style="text-align: justify;"><strong>Standby veritabanı desteği için gerekli ortam değişkenleri ayarlanır.</strong></p>
<ul style="text-align: justify;">
<li style="text-align: justify;">Şifre dosyası oluşturulur. Primary ve standby için sys kullanıcı şifresi aynı yapılır.</li>
<li style="text-align: justify;">Primary ve standby veritabanları için dinleyici hizmetleri düzenlenir. Oracle Net Manager ile dinleyici servisi düzenlenerek yeniden başlatılır.</li>
<li style="text-align: justify;">Her bir veritabanı üzerinde Oracle Net Manager ile redo transport servisi tarafından kullanılacak olan net service name oluşturulur.</li>
<li style="text-align: justify;">Standby veritabanı üzerinde daha önce parametreleri hazırlanan başlangıç dosyası kullanılarak spfile oluşturulur.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">CREATE SPFILE FROM PFILE=&#8217;initoradb2.ora&#8217;;</p>
<p style="text-align: justify;"><strong>Fiziksel standby veritabanı başlatılır.</strong></p>
<ul style="text-align: justify;">
<li>Veritabanı mount edilir.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">STARTUP MOUNT;</p>
<ul style="text-align: justify;">
<li>Redo apply başlatılır.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;</p>
<ul style="text-align: justify;">
<li>Log arşivleme işleminin çalışıp çalışmadığı kontrol edilir. Primary sunucu tarafında log dosyası değiştirlir.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">ALTER SYSTEM SWITCH LOGFILE;</p>
<p style="text-align: justify;"><strong>Fiziksel standby veritabanının doğru çalışıp çalışmadığı test edilir.</strong></p>
<ul style="text-align: justify;">
<li>Varolan arşiv logları belirlenir.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;</p>
<ul style="text-align: justify;">
<li>Online redo log dosyasının arşivlenmesi için primary veritabanı üzerinde log değiştirilir.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">ALTER SYSTEM SWITCH LOGFILE;</p>
<ul style="text-align: justify;">
<li>Standby sunucu üzerinde redo log’unun arşivlenip arşivlenmediği kontrol edilir.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;</p>
<ul style="text-align: justify;">
<li>Arşiv loglarının uygulanıp uygulanmadığı kontrol edilir.</li>
</ul>
<p style="padding-left: 30px; text-align: justify;">SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;</p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (I)</title>
		<link>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/</link>
		<comments>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/#comments</comments>
		<pubDate>Tue, 04 May 2010 15:43:40 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[logical standby database]]></category>
		<category><![CDATA[oracle 10g standby]]></category>
		<category><![CDATA[oracle logical standby]]></category>
		<category><![CDATA[oracle mantıksal standby]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=168</guid>
		<description><![CDATA[Primary Veritabanını Hazırlama Öncelikle desteklenen veri tiplerini bilmek gerekir. Desteklenen Veri Tipleri: BINARY_DOUBLE BINARY_FLOAT BLOB CHAR CLOB and NCLOB DATE INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND LONG LONG RAW NCHAR NUMBER NVARCHAR2 RAW TIMESTAMP TIMESTAMP WITH LOCAL TIMEZONE TIMESTAMP WITH TIMEZONE VARCHAR2 VARCHAR Desteklenmeyen Veri Tipleri: BFILE Collections (VARRAYS ve nested tablolar dahil) Encrypted columns Multimedia data tipleri (Spatial, Image ve Context dahil) ROWID, UROWID User-defined tipler XMLType Desteklenen Depolama Tipleri: Cluster tablolar (including index clusters and heap clusters) Index-organized tablolar (partitioned ve nonpartitioned, overflow segmentler dahil) Heap-organized tablolar (partitioned ve nonpartitioned) Desteklenmeyen Depolama Tipleri: Segment Compression Desteklenen PL/SQL Paketleri: Sistem metadatasını değiştirmeyen paketler. DBMS_OUTPUT, DBMS_RANDOM, DBMS_PIPE, DBMS_DESCRIBE, DBMS_OBFUSCATION_TOOLKIT, DBMS_TRACE ve DBMS_METADATA gibi paketler örnek olarak verilebilir. Sistem metadatasını değiştirmeyen fakat desteklenen veri tiplerini değiştirebilen paketler. DBMS_LOB, DBMS_SQL ve DBMS_TRANSACTION örnek olarak verilebilir. Desteklenmeyen PL/SQL Paketleri: Sistem metadatasını değiştiren paketler. DBMS_JAVA, DBMS_REGISTRY, DBMS_ALERT, DBMS_SPACE_ADMIN, DBMS_REFRESH, DBMS_REDEFINITION, DBMS_SCHEDULER ve DBMS_AQ örnek olarak verilebilir. Desteklenen Tablolar, Sequence’lar ve View’ler: Oracle veritabanı ile birlikte gelen şemalar SQL Apply tarafından es geçilecektir. Hangi şemaların es geçileceğini öğrenmek için aşağıdaki sorgu çalıştırılabilir. SELECT OWNER FROM DBA_LOGSTDBY_SKIP WHERE STATEMENT_OPT = &#8216;INTERNAL SCHEMA&#8217;; Primary veritabanının desteklenmeyen hangi nesneleri içerdiğini sorgulamak için DBA_LOGSTDBY_UNSUPPORTED view’ü kullanılabilir. Örneğin [...]


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)</a></li>
<li><a href='http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/' rel='bookmark' title='Permanent Link: How to use Oracle Data Dictionary?'>How to use Oracle Data Dictionary?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: justify;">Primary Veritabanını Hazırlama</h2>
<p style="text-align: justify;">Öncelikle desteklenen veri tiplerini bilmek gerekir.<span id="more-168"></span></p>
<p style="text-align: justify;"><strong><strong>Desteklenen Veri Tipleri:</strong></strong></p>
<p style="text-align: justify;">BINARY_DOUBLE<br />
BINARY_FLOAT<br />
BLOB<br />
CHAR<br />
CLOB and NCLOB<br />
DATE<br />
INTERVAL YEAR TO MONTH<br />
INTERVAL DAY TO SECOND<br />
LONG<br />
LONG RAW<br />
NCHAR<br />
NUMBER<br />
NVARCHAR2<br />
RAW<br />
TIMESTAMP<br />
TIMESTAMP WITH LOCAL TIMEZONE<br />
TIMESTAMP WITH TIMEZONE<br />
VARCHAR2</p>
<p style="text-align: justify;">VARCHAR</p>
<p style="text-align: justify;"><strong>Desteklenmeyen Veri Tipleri:</strong></p>
<p style="text-align: justify;">BFILE<br />
Collections (VARRAYS ve nested tablolar dahil)<br />
Encrypted columns<br />
Multimedia data tipleri (Spatial, Image ve Context dahil)<br />
ROWID, UROWID<br />
User-defined tipler<br />
XMLType</p>
<p style="text-align: justify;"><strong>Desteklenen Depolama Tipleri:</strong></p>
<p style="text-align: justify;">Cluster tablolar (including index clusters and heap clusters)<br />
Index-organized tablolar (partitioned ve nonpartitioned, overflow segmentler dahil)<br />
Heap-organized tablolar (partitioned ve nonpartitioned)</p>
<p style="text-align: justify;"><strong>Desteklenmeyen Depolama Tipleri:</strong></p>
<p style="text-align: justify;">Segment Compression</p>
<p style="text-align: justify;"><strong>Desteklenen PL/SQL Paketleri:</strong></p>
<p style="text-align: justify;">Sistem metadatasını değiştirmeyen paketler. DBMS_OUTPUT, DBMS_RANDOM, DBMS_PIPE, DBMS_DESCRIBE, DBMS_OBFUSCATION_TOOLKIT, DBMS_TRACE ve DBMS_METADATA gibi paketler örnek olarak verilebilir.</p>
<p style="text-align: justify;">Sistem metadatasını değiştirmeyen fakat desteklenen veri tiplerini değiştirebilen paketler. DBMS_LOB, DBMS_SQL ve DBMS_TRANSACTION örnek olarak verilebilir.</p>
<p style="text-align: justify;"><strong>Desteklenmeyen PL/SQL Paketleri:</strong></p>
<p style="text-align: justify;">Sistem metadatasını değiştiren paketler. DBMS_JAVA, DBMS_REGISTRY, DBMS_ALERT, DBMS_SPACE_ADMIN, DBMS_REFRESH, DBMS_REDEFINITION, DBMS_SCHEDULER ve DBMS_AQ örnek olarak verilebilir.</p>
<p style="text-align: justify;"><strong>Desteklenen Tablolar, Sequence’lar ve View’ler:</strong></p>
<p style="text-align: justify;">Oracle veritabanı ile birlikte gelen şemalar SQL Apply tarafından es geçilecektir. Hangi şemaların es geçileceğini öğrenmek için aşağıdaki sorgu çalıştırılabilir.</p>
<p style="text-align: justify;">SELECT OWNER FROM DBA_LOGSTDBY_SKIP WHERE STATEMENT_OPT = &#8216;INTERNAL SCHEMA&#8217;;</p>
<p style="text-align: justify;">Primary veritabanının desteklenmeyen hangi nesneleri içerdiğini sorgulamak için DBA_LOGSTDBY_UNSUPPORTED view’ü kullanılabilir. Örneğin hangi tabloların desteklenmediğini anlamak için şu sorgu çalıştırılır:</p>
<p style="text-align: justify;">SELECT DISTINCT OWNER,TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED ORDER BY OWNER,TABLE_NAME;</p>
<p style="text-align: justify;"><strong>Mantıksal Standby Üzerinde Es Geçilen SQL cümleleri:</strong></p>
<p style="text-align: justify;">ALTER DATABASE<br />
ALTER MATERIALIZED VIEW<br />
ALTER MATERIALIZED VIEW LOG<br />
ALTER SESSION<br />
ALTER SYSTEM<br />
CREATE CONTROL FILE<br />
CREATE DATABASE<br />
CREATE DATABASE LINK<br />
CREATE PFILE FROM SPFILE<br />
CREATE MATERIALIZED VIEW<br />
CREATE MATERIALIZED VIEW LOG<br />
CREATE SCHEMA AUTHORIZATION<br />
CREATE SPFILE FROM PFILE<br />
DROP DATABASE LINK<br />
DROP MATERIALIZED VIEW<br />
DROP MATERIALIZED VIEW LOG<br />
EXPLAIN<br />
LOCK TABLE<br />
SET CONSTRAINTS<br />
SET ROLE<br />
SET TRANSACTION</p>
<p style="text-align: justify;">Diğer tüm sql cümleleri mantıksal stanby veritabanı tarafından uygulanır.</p>
<p style="text-align: justify;"><strong>Primary Veritabanındaki Her Bir Satır Benzersiz Olmalı</strong></p>
<p style="text-align: justify;">Oracle tablolara primary key ya da null olmayan unique-constraint/index eklemeyi önermektedir. Veritabanı üzerinde benzersiz anahtara sahip olmayan tabloları görmek için:</p>
<p style="text-align: justify;">SELECT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_NOT_UNIQUE WHERE (OWNER, TABLE_NAME)</p>
<p style="text-align: justify;">NOT IN (SELECT DISTINCT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED) AND BAD_COLLUMN = &#8216;Y&#8217;</p>
<p style="text-align: justify;">Eğer  primary key yönetiminin yük getireceği düşünülüyorsa ihtiyaç duyulan tablo üzerinde etkinleştirilmemiş primary-key RELY constraint oluşturulabilir. Örnek olarak deneme tablosundaki id ve isim sütunları için oluşturalım:</p>
<p style="text-align: justify;">ALTER TABLE deneme ADD PRIMARY KEY (id, isim) RELY DISABLE;</p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-ii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (II)</a></li>
<li><a href='http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-iii/' rel='bookmark' title='Permanent Link: Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)'>Mantıksal Standby Veritabanı Nasıl Oluşturulur? (III)</a></li>
<li><a href='http://www.kadirsert.com/2010/how-to-use-oracle-data-dictionary/' rel='bookmark' title='Permanent Link: How to use Oracle Data Dictionary?'>How to use Oracle Data Dictionary?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/mantiksal-standby-veritabani-nasil-olusturulur-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redo Log nedir?</title>
		<link>http://www.kadirsert.com/2010/redo-log-nedir/</link>
		<comments>http://www.kadirsert.com/2010/redo-log-nedir/#comments</comments>
		<pubDate>Thu, 01 Apr 2010 12:06:11 +0000</pubDate>
		<dc:creator>glasshouse</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[DBWn]]></category>
		<category><![CDATA[LGWR]]></category>
		<category><![CDATA[Redo Log]]></category>

		<guid isPermaLink="false">http://www.kadirsert.com/?p=166</guid>
		<description><![CDATA[Oracle dökümantasyonunda bir redo kaydı şu şekilde tanımlanmaktadır(1): Bir redo kaydı, herbiri veritabanı içerisindeki bir blok üzerinde yapılan değişiklik bilgisini tutan değişim vektörlerinden oluşmaktadır. Örneğin, bir calisanlar tablosu içerisindeki maas bilgisi değiştirildiğinde bir redo kaydı oluşur. Bu redo kaydı, calisanlar tablosuna ait data segment bloğunda, undo segment bloğunda ve undo segmentlerinin transaction tablosunda yapılan  değişiklik bilgilerini içerir. Redo kayıtları, veritabanı üzerinde yapılan değişikliklerin gerektiğinde takrar yapılabilmesi için gerekli tüm bilgileri içermektedir. Verilerin kurtarılması gerektiğinde veritabanı, redo kayıtları içerisinde bulunan değişim vektörlerini okuyarak ilgili bloklardaki değişiklikleri gerçekleştirecektir. Redo kayıtları öncelikle System Global Area’nın(SGA) Redo Log Buffer alanlarında tutulur. Log Yazıcı(LGWR) işlemi Redo Log Buffer yönetiminden sorumlu arkaplan işlemidir. LGWR  redo kayıtlarını belirli zamanlarda redo log dosyası (ORL) denilen dosyalara yazar. Böylece Redo Log Buffer içerisinde yeni kayıtların yazılabileceği boş alanlar açılmış olur. LGWR her zaman en son yazdığı kayıttan itibaren Redo Log Buffer’a gelmiş redo bilgilerini ORL’ye yazar. LGWR kayıtları aşağıdaki durumlarda ORL’ye yazmaktadır: Bir transaction commit edildiğinde LGWR işlemi transaction’a ait redo bilgilerini Redo Log Buffer’dan alarak ORL’ye yazar ve her bir transaction’a karşılık gelen redo kayıtları için bir sistem değişim numarası (SCN) belirler. Kullanıcı işlemine commit’in tamamlanmış olduğu, sadece transaction’a ait redo loglarının tamamı ORL üzerine yazıldıktan sonra bildirilir. [...]


<b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2009/oracle-background-processleri/' rel='bookmark' title='Permanent Link: Oracle Background Process&#8217;leri'>Oracle Background Process&#8217;leri</a></li>
<li><a href='http://www.kadirsert.com/2009/system-global-area-sga-nedir/' rel='bookmark' title='Permanent Link: System Global Area (SGA) Nedir?'>System Global Area (SGA) Nedir?</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Oracle dökümantasyonunda bir redo kaydı şu şekilde tanımlanmaktadır(1):<span id="more-166"></span></p>
<p style="text-align: justify;">Bir redo kaydı, herbiri veritabanı içerisindeki bir blok üzerinde yapılan değişiklik bilgisini tutan değişim vektörlerinden oluşmaktadır. Örneğin, bir calisanlar tablosu içerisindeki maas bilgisi değiştirildiğinde bir redo kaydı oluşur. Bu redo kaydı, calisanlar tablosuna ait data segment bloğunda, undo segment bloğunda ve undo segmentlerinin transaction tablosunda yapılan  değişiklik bilgilerini içerir.</p>
<p style="text-align: justify;">Redo kayıtları, veritabanı üzerinde yapılan değişikliklerin gerektiğinde takrar yapılabilmesi için gerekli tüm bilgileri içermektedir. Verilerin kurtarılması gerektiğinde veritabanı, redo kayıtları içerisinde bulunan değişim vektörlerini okuyarak ilgili bloklardaki değişiklikleri gerçekleştirecektir.</p>
<p style="text-align: justify;">Redo kayıtları öncelikle System Global Area’nın(<strong>SGA</strong>) <strong>Redo Log Buffer</strong> alanlarında tutulur. Log Yazıcı(<strong>LGWR</strong>) işlemi Redo Log Buffer yönetiminden sorumlu arkaplan işlemidir. LGWR  redo kayıtlarını belirli zamanlarda redo log dosyası (<strong>ORL</strong>) denilen dosyalara yazar. Böylece Redo Log Buffer içerisinde yeni kayıtların yazılabileceği boş alanlar açılmış olur. LGWR her zaman en son yazdığı kayıttan itibaren Redo Log Buffer’a gelmiş redo bilgilerini ORL’ye yazar. LGWR kayıtları aşağıdaki durumlarda ORL’ye yazmaktadır:</p>
<ul style="text-align: justify;">
<li>Bir transaction commit edildiğinde LGWR işlemi transaction’a ait redo bilgilerini Redo Log Buffer’dan alarak ORL’ye yazar ve her bir transaction’a karşılık gelen redo kayıtları için bir sistem değişim numarası (<strong>SCN</strong>) belirler. Kullanıcı işlemine commit’in tamamlanmış olduğu, sadece transaction’a ait redo loglarının tamamı ORL üzerine yazıldıktan sonra bildirilir.</li>
<li>Redo log buffer’ın üçte biri dolduğunda ya da LGWR’ın ORL’ye yazmasının üzerinden üç saniye geçtiğinde log buffer içerisindeki tüm redo kayıtları alınarak ORL’ye yazılır. Bu, bir transaction’ın commit edilmeden ona karşılık gelen redo kayıtlarının ORL’ye yazılabileceği anlamına gelir. Dolayısıyla gerekli olduğunda media recovery sayesinde redo kaydının bir parçası olan undo bilgisi kullanılarak bu değişikliklerin eski haline alınması sağlanabilecektir. Ayrıca veritabanı yazıcı işlemi (<strong>DBWn</strong>) <strong>data buffer</strong>’ındaki değişen verileri diske yazarsa ve eğer LGWR bu değişen buffer’lar ile ilişkili olan redo kayıtlarını ORL’ye yazmamışsa LGWR yine tüm redo kayıtlarını ORL’ye yazacaktır.</li>
</ul>
<p style="text-align: justify;">İş yoğunluğunun yüksek olduğu durumlarda LGWR, commit edilen transactionları gruplar halinde ORL’ye yazabilir. Herhangi bir kullanıcının bir transaction commit ettiğini düşünelim. LGWR bu transaction’ı diske yazarken başka kullanıcılar da commit işlemi gerçekleştiriyor olabilirler. Bu durumda LGWR ilk transaction’ı diske yazdıktan sonra bekleyen transaction’ları da (commit edilmesini beklemeden) tek seferde diske yazabilir. Redo kayıtlarının tek tek yazmak yerine grup halinde yazmak daha az disk erişimi (<strong>I/O</strong>) gerektirecektir. LGWR her zaman sıralı (sequential) yazma işlemi yapar. Bu durumda ne kadar büyük parçalar halinde yazarsa o kadar verimli olacaktır. Eğer commit işlemleri yüksek seviyede gelmeye devam ederse LGWR’ın toplu yazma işlemleri devam edecektir. Bu durum veritabanı performansını etkileyen faktörlerden biri olan redo kayıt büyüklüğünün (<strong>redo-write size</strong>)  göz önünde bulundurulmasına sebep olacaktır.</p>
<p style="text-align: justify;">LGWR, görevi olan transaction’ların kurtarılabilir olması işine bir yandan devam ederken, DBWn uygun bir zaman gelene kadar veritabanındaki veri bloklarını (<strong>data blocks</strong>) değiştirmeyi erteleyecektir.</p>
<p style="text-align: justify;">Kısaltmalar:</p>
<p style="text-align: justify;">LGWR:  Log yazıcı işlemi</p>
<p style="text-align: justify;">ORL:      Redo log dosyası</p>
<p style="text-align: justify;">SCN:      Sistem değişim numarası</p>
<p style="text-align: justify;">DBWn:  Veritabanı yazıcı işlemi</p>
<p style="text-align: justify;">
<p style="text-align: justify;">(1)    Oracle Database Administrator’s Guide 11g Release 1 (11.1)</p>
<div style='clear:both'></div>

<p><b>Related posts:</b><ol><li><a href='http://www.kadirsert.com/2009/oracle-background-processleri/' rel='bookmark' title='Permanent Link: Oracle Background Process&#8217;leri'>Oracle Background Process&#8217;leri</a></li>
<li><a href='http://www.kadirsert.com/2009/system-global-area-sga-nedir/' rel='bookmark' title='Permanent Link: System Global Area (SGA) Nedir?'>System Global Area (SGA) Nedir?</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kadirsert.com/2010/redo-log-nedir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
