<?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>Kamran Agayev&#039;s Oracle Blog</title>
	<atom:link href="http://kamranagayev.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kamranagayev.com</link>
	<description>Kamran Agayev&#039;s Oracle Blog</description>
	<lastBuildDate>Mon, 23 Jan 2012 06:01:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Finding the folder that consumes more space in Linux OS</title>
		<link>http://kamranagayev.com/2012/01/23/finding-the-folder-that-consumes-more-space-in-linux-os/</link>
		<comments>http://kamranagayev.com/2012/01/23/finding-the-folder-that-consumes-more-space-in-linux-os/#comments</comments>
		<pubDate>Mon, 23 Jan 2012 06:01:21 +0000</pubDate>
		<dc:creator>Kamran Agayev A.</dc:creator>
				<category><![CDATA[Administration]]></category>
		<category><![CDATA[Oracle on Linux]]></category>

		<guid isPermaLink="false">http://kamranagayev.com/?p=1625</guid>
		<description><![CDATA[Sometimes we got some folders filled with unknown files either due to any bug where Oracle creates 100 files in a second or due to the OS bugs. And in some cases we&#8217;re not able to find in which folder files were created. For that, you can use the simplest command in Linux to get [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes we got some folders filled with unknown files either due to any bug where Oracle creates 100 files in a second <img src='http://kamranagayev.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  or due to the OS bugs. And in some cases we&#8217;re not able to find in which folder files were created. For that, you can use the simplest command in Linux to get the output for the folders with its size sorted. Here&#8217;s the command:</p>
<pre class="brush: php; title: ; notranslate">du -s /u01/* | sort -n -r

.......

28G     /u01/oracle/product/10.2.0/db_1/flash_recovery_area

........</pre>
<p>&nbsp;</p>
<p>From the output you will get the folder which consumes more space</p>
]]></content:encoded>
			<wfw:commentRss>http://kamranagayev.com/2012/01/23/finding-the-folder-that-consumes-more-space-in-linux-os/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My presentation at Oracle OpenWorld 2011 &#8211; San Francisco</title>
		<link>http://kamranagayev.com/2012/01/12/kamran-agayev-presentation-oow2011/</link>
		<comments>http://kamranagayev.com/2012/01/12/kamran-agayev-presentation-oow2011/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 09:52:53 +0000</pubDate>
		<dc:creator>Kamran Agayev A.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kamranagayev.com/?p=1614</guid>
		<description><![CDATA[I&#8217;m getting a lot of emails from readers asking me to share my OpenWorld 2011 presentation files. So I decided to share it with you. Here, you can download the presentation with necessary video tutorials that I&#8217;ve shown at OpenWorld 2011. Download the .zip file and extract it under the folder C:\ and make sure [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m getting a lot of emails from readers asking me to share my OpenWorld 2011 presentation files. So I decided to share it with you. Here, you can download the presentation with necessary video tutorials that I&#8217;ve shown at OpenWorld 2011. Download the .zip file and extract it under the folder C:\ and make sure you run the presentation from the following folder -<strong>c:\OOW 2011 &#8211; Kamran Agayev A\</strong></p>
<p style="text-align: center;"><a href="http://kamranagayev.com/wp-content/plugins/download-monitor/download.php?id=2"><img class="aligncenter size-full wp-image-1617" title="PPT" src="http://kamranagayev.com/wp-content/uploads/2012/01/PPT.jpg" alt="" width="66" height="73" /></a></p>
<p style="text-align: center;">Downloaded 220 times</p>
<p style="text-align: left;">I&#8217;ve also uploaded a part of my speech to youtube, you can watch it online:</p>
<p style="text-align: center;">
<p><a href="http://www.youtube.com/watch?v=5RPUxotUk9A">http://www.youtube.com/watch?v=5RPUxotUk9A</a></p></p>
]]></content:encoded>
			<wfw:commentRss>http://kamranagayev.com/2012/01/12/kamran-agayev-presentation-oow2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Flashback Technologies &#8211; VIDEO Tutorial</title>
		<link>http://kamranagayev.com/2012/01/06/oracle-flashback-technologies-video-tutorial/</link>
		<comments>http://kamranagayev.com/2012/01/06/oracle-flashback-technologies-video-tutorial/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 06:48:29 +0000</pubDate>
		<dc:creator>Kamran Agayev A.</dc:creator>
				<category><![CDATA[Administration]]></category>

		<guid isPermaLink="false">http://kamranagayev.com/?p=1604</guid>
		<description><![CDATA[In this video tutorial I show practical demonstrations on all Flashback Technologies that are avaiable in Oracle &#160; To download the .mp4 format of the video tutorial, use the following link: http://www.kamranagayev.com/Video_Tutorials/Flashback_Technologies.mp4]]></description>
			<content:encoded><![CDATA[<p>In this video tutorial I show practical demonstrations on all Flashback Technologies that are avaiable in Oracle</p>
<p><a href="http://vimeo.com/34610943"><img class="aligncenter" title="Flashback_technologies" src="http://kamranagayev.com/wp-content/uploads/2012/01/Flashback_technologies-300x224.jpg" alt="" width="300" height="224" /></a></p>
<p>&nbsp;</p>
<p>To download the .mp4 format of the video tutorial, use the following link:</p>
<p><a href="http://www.kamranagayev.com/Video_Tutorials/Flashback_Technologies.mp4 ">http://www.kamranagayev.com/Video_Tutorials/Flashback_Technologies.mp4 </a></p>
]]></content:encoded>
			<wfw:commentRss>http://kamranagayev.com/2012/01/06/oracle-flashback-technologies-video-tutorial/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.kamranagayev.com/Video_Tutorials/Flashback_Technologies.mp4" length="14165699" type="video/mp4" />
		</item>
		<item>
		<title>Dumping an Oracle data block, reading the output and doing some math</title>
		<link>http://kamranagayev.com/2011/10/31/dumping-an-oracle-data-block-reading-the-output-and-doing-some-math/</link>
		<comments>http://kamranagayev.com/2011/10/31/dumping-an-oracle-data-block-reading-the-output-and-doing-some-math/#comments</comments>
		<pubDate>Mon, 31 Oct 2011 06:25:21 +0000</pubDate>
		<dc:creator>Kamran Agayev A.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kamranagayev.com/?p=1564</guid>
		<description><![CDATA[In this post I&#8217;d like to show you how to dump a smallest logical structure of an Oracle Database &#8211; Data Block. Have you ever interested what&#8217;s actually stored in the data block and if it&#8217;s possible to get any information by &#8220;dumping&#8221; it? Sure you have. You can dump a single data block of [...]]]></description>
			<content:encoded><![CDATA[<p>In this post I&#8217;d like to show you how to dump a smallest logical structure of an Oracle Database &#8211; Data Block. Have you ever interested what&#8217;s actually stored in the data block and if it&#8217;s possible to get any  information by &#8220;dumping&#8221; it? Sure you have. You can dump a single data block of the datafile. Let me show you how it&#8217;s done </p>
<p>First of all let&#8217;s create a new tablespace and a table: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; create tablespace my_tbs datafile '/u01/oracle/oradata/repdb/my_tbs.dbf' size 100m;

Tablespace created.

SQL&gt; create table my_tab tablespace my_tbs as select * from dba_objects;

Table created.</pre>
<p>Now let&#8217;s get more information about this table from DBA_SEGMENTS view: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; select header_file, header_block, bytes, blocks, extents from dba_segments where segment_name='MY_TAB';

HEADER_FILE HEADER_BLOCK      BYTES     BLOCKS    EXTENTS
----------- ------------ ---------- ---------- ----------
          7            9    7340032        896         22 

SQL&gt; </pre>
<p>From the output we can say that the header block of the table is stored in the datafile 7, block 9. The size of the table 7340032 bytes (7.3 Mb) and it contains 896 blocks and 22 extents. After getting block size of the database, let&#8217;s do some math: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; show parameter db_block_size

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_block_size                        integer     8192
SQL&gt;
</pre>
<p><strong>BLOCKS (dba_segments)  *  DB_BLOCK_SIZE (parameter file)  =  BYTES (dba_segments)</p>
<p>896*8192=7340032</strong></p>
<p>Now let&#8217;s query DBA_EXTENTS view to get some information on extents and data blocks of this table: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; col segment_name format a10
SQL&gt; set pagesize 100
SQL&gt; select segment_name, extent_id, block_id,  blocks, bytes from dba_extents where segment_name='MY_TAB';

SEGMENT_NA  EXTENT_ID   BLOCK_ID     BLOCKS      BYTES
---------- ---------- ---------- ---------- ----------
MY_TAB              0          9          8      65536
MY_TAB              1         17          8      65536
MY_TAB              2         25          8      65536
MY_TAB              3         33          8      65536
MY_TAB              4         41          8      65536
MY_TAB              5         49          8      65536
MY_TAB              6         57          8      65536
MY_TAB              7         65          8      65536
MY_TAB              8         73          8      65536
MY_TAB              9         81          8      65536
MY_TAB             10         89          8      65536
MY_TAB             11         97          8      65536
MY_TAB             12        105          8      65536
MY_TAB             13        113          8      65536
MY_TAB             14        121          8      65536
MY_TAB             15        129          8      65536
MY_TAB             16        137        128    1048576
MY_TAB             17        265        128    1048576
MY_TAB             18        393        128    1048576
MY_TAB             19        521        128    1048576
MY_TAB             20        649        128    1048576
MY_TAB             21        777        128    1048576
</pre>
<p>Using DBA_EXTENTS view we can get BLOCK_ID range and number of data blocks in each extent. Look at the following output: </p>
<pre class="brush: php; title: ; notranslate">MY_TAB              0          9          8      65536
MY_TAB              1         17          8      65536</pre>
<p><strong>Here it&#8217;s seen that the first extent (0) contains 8 blocks which id range between 9 and 17<br />
9 (block_id) + 8 (number of blocks) = 17 (block_id of the next extent) </strong></p>
<p>Ok, now let&#8217;s start dumping the header block of the table. For this we need data file and header block number. It can be taken from the DBA_SEGMENTS </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; select header_file, header_block from dba_segments where segment_name='MY_TAB';

HEADER_FILE HEADER_BLOCK
----------- ------------
          7            9 

SQL&gt; </pre>
<p>The dump file will be stored in UDUMP directory (user_dump_dest). We can use TRACEFILE_IDENTIFIER to specify part of the trace file name and find it quickly under the UDUMP directory. </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; alter session set tracefile_identifier = db_block_dump;

Session altered.</pre>
<p>Now, dump the data block 9 of the datafile 7:</p>
<pre class="brush: php; title: ; notranslate">SQL&gt; alter system dump datafile 7 block 9;    

System altered.

SQL&gt; </pre>
<p>Ok, now open the second session (in new terminal) and open the trace file. You will see the following output: </p>
<pre class="brush: php; title: ; notranslate">tail -f repdb_ora_18308_DB_BLOCK_DUMP.trc

*** 2011-10-28 17:05:21.015
Start dump data blocks tsn: 7 file#: 7 minblk 9 maxblk 9
buffer tsn: 7 rdba: 0x01c00009 (7/9)
scn: 0x0000.02eeaf02 seq: 0x01 flg: 0x04 tail: 0xaf021001
frmt: 0x02 chkval: 0x1a9f type: 0x10=DATA SEGMENT HEADER - UNLIMITED
  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0      spare2: 0      #extents: 22     #blocks: 895
                  last map  0x00000000  #maps: 0      offset: 4128
      Highwater::  0x01c0037a  ext#: 21     blk#: 113    ext size: 128
  #blocks in seg. hdr's freelists: 0
  #blocks below: 880
  mapblk  0x00000000  offset: 21
                   Unlocked
     Map Header:: next  0x00000000  #extents: 22   obj#: 130752 flag: 0x40000000
  Extent Map
</pre>
<p>Let&#8217;s try to read the above output : </p>
<p>* <strong>Start dump data blocks tsn: 7 file#: 7 minblk 9 maxblk 9</strong><br />
This means that the following lines is the output of datafile 7, block 9. Range of blocks can be given to dump: </p>
<pre class="brush: php; title: ; notranslate">alter system dump datafile 1 block min 29081 block max 30539 </pre>
<p>* <strong>rdba is the Data Block Address which is internal representation of the block address</strong>. The first 10 bits contains file number, and the rest 22 bits contains block id. So here if we convert 0x01c00009 to decimal, we would get 7/9 which is shown between brackets. Moreover, DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE and DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK can be used to get the file and block number based on RDA value. But before using these functions, rda should be converted to the decimal value.<br />
So here, we convert the rda value (0x01c00009) to decimal and got &#8211; 29360137. Then pass this value to the above mentioned functions: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; select DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(29360137) from dual;

DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(29360137)
----------------------------------------------
                                             7

SQL&gt; select DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(29360137) from dual;

DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK(29360137)
-----------------------------------------------
                                              9

SQL&gt; </pre>
<p>In order to convert hexadecimal value to the decimal online, you can use the following link:<br />
<a href="http://www.statman.info/conversions/hexadecimal.html">http://www.statman.info/conversions/hexadecimal.html</a></p>
<p>By using DBMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS function and passing file and block value, we can get RDA value: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; select DBMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS(7,9) from dual;

DBMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS(7,9)
-----------------------------------------
                                 29360137

SQL&gt;
</pre>
<p>* <strong>scn &#8211; is the SCN value of the block which defines when it was last modified</strong>. We can compare it with each transaction SCN value inside the dump file. The SCN value of the data block is 0&#215;0000.02eeaf02. If second part of this value (02eeaf02) is converted to the decimal, then we got &#8211; 49196802. If we query the current_scn value we got: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; select current_scn from v$database;

CURRENT_SCN
-----------
   49249322

SQL&gt; </pre>
<p>* <strong>tail </strong>is used to keep track of consistency information between the beginning and end of the block against the possibility of distribution of oracle blocks over multiple OS blocks</p>
<p>* <strong>frmt &#8211; is the block format which tells whether it&#8217;s Oracle 7 or Oracle 8 and higher block</strong>. 0&#215;02 represents that it&#8217;s Oracle 8 and higher block. (0&#215;01 represents that it&#8217;s Oracle 7 block) </p>
<p>* <strong>chkval</strong> &#8211; which is checksum written to the blocks when it is set and used by Oracle in part to check the consistency and validity of the block </p>
<p>* <strong>type : Type defines which type of block it is</strong>. In this example it is &#8220;Data Segment Header&#8221; </p>
<pre class="brush: php; title: ; notranslate">  Extent Header:: spare1: 0      spare2: 0      #extents: 22     #blocks: 895   </pre>
<p>Then in the Extent Control Header part we can get information about extents. So it has 22 extents and 895 blocks. </p>
<pre class="brush: php; title: ; notranslate">      Highwater::  0x01c0037a  ext#: 21     blk#: 113    ext size: 128
  #blocks in seg. hdr's freelists: 0
  #blocks below: 880   </pre>
<p>Highwater mark is at extent 21, block 113. This extent has 128 blocks. And there&#8217;re 880 data block below it. Let&#8217;s do some math:</p>
<p><strong>As it has 880 blocks below and the number of block is 895 (dump file didn&#8217;t count the header block), then there&#8217;re 895-880=15 data blocks free (and above the hightwater mark)<br />
Moreover, as the highwater mark is at block 113 and the extent has 128 data blocks, then 128-113=15 data blocks are free<br />
So this means that there&#8217;s 15*8192=122880 bytes (122Kb) free space </strong></p>
<pre class="brush: php; title: ; notranslate">     Map Header:: next  0x00000000  #extents: 22   obj#: 130752 flag: 0x40000000</pre>
<p>Next, we got object id. To find more details on that object, query sys.obj# view: </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; col name format a10
SQL&gt; select obj#, owner#, name, status, ctime, type# from sys.obj$ where obj#=130752;

      OBJ#     OWNER# NAME           STATUS CTIME          TYPE#
---------- ---------- ---------- ---------- --------- ----------
    130752          0 MY_TAB              1 28-OCT-11          2

SQL&gt; </pre>
<p>So the owner id is 0 (which is SYS user) and type is 2 (which means table) </p>
<pre class="brush: php; title: ; notranslate">SQL&gt; select username from dba_users where user_id=0;

USERNAME
------------------------------
SYS

SQL&gt; </pre>
<p>and to get information about types, use the following query: </p>
<pre class="brush: php; title: ; notranslate">select USERNAME,

count(decode(o.TYPE#, 2,o.OBJ#,'')) Tabs,

count(decode(o.TYPE#, 1,o.OBJ#,'')) Inds,

count(decode(o.TYPE#, 5,o.OBJ#,'')) Syns,

count(decode(o.TYPE#, 4,o.OBJ#,'')) Views,

count(decode(o.TYPE#, 6,o.OBJ#,'')) Seqs,

count(decode(o.TYPE#, 7,o.OBJ#,'')) Procs,

count(decode(o.TYPE#, 8,o.OBJ#,'')) Funcs,

count(decode(o.TYPE#, 9,o.OBJ#,'')) Pkgs,

count(decode(o.TYPE#,12,o.OBJ#,'')) Trigs,

count(decode(o.TYPE#,10,o.OBJ#,'')) Deps

from obj$ o,

dba_users u

where u.USER_ID = o.OWNER# (+)

group by USERNAME

order by USERNAME
</pre>
<p>In order to show the free space, we can use DBMS_SPACE.UNUSED_SPACE procedure. Let&#8217;s create a procedure :</p>
<pre class="brush: php; title: ; notranslate">SQL&gt; create or replace
  2  procedure show_space
  3  ( p_segname in varchar2,
  4    p_owner   in varchar2 default user,
  5    p_type    in varchar2 default 'TABLE',
  6    p_partition in varchar2 default NULL )
  7  authid current_user
  8  as
  9      l_free_blks                 number;
 10      l_total_blocks              number;
 11      l_total_bytes               number;
 12      l_unused_blocks             number;
 13      l_unused_bytes              number;
 14      l_LastUsedExtFileId         number;
 15      l_LastUsedExtBlockId        number;
 16      l_LAST_USED_BLOCK           number;
 17
 18   procedure p( p_label in varchar2, p_num in number )
 19      is
 20      begin
 21          dbms_output.put_line( rpad(p_label,40,'.') ||
 22                                p_num );
 23      end;
 24
 25  begin
 26      dbms_space.unused_space
 27      ( segment_owner     =&gt; p_owner,
 28        segment_name      =&gt; p_segname,
 29        segment_type      =&gt; p_type,
 30            partition_name    =&gt; p_partition,
 31        total_blocks      =&gt; l_total_blocks,
 32        total_bytes       =&gt; l_total_bytes,
 33        unused_blocks     =&gt; l_unused_blocks,
 34        unused_bytes      =&gt; l_unused_bytes,
 35        LAST_USED_EXTENT_FILE_ID =&gt; l_LastUsedExtFileId,
 36        LAST_USED_EXTENT_BLOCK_ID =&gt; l_LastUsedExtBlockId,
 37        LAST_USED_BLOCK =&gt; l_LAST_USED_BLOCK );
 38
 39      p( 'Total Blocks', l_total_blocks );
 40      p( 'Total Bytes', l_total_bytes );
 41      p( 'Total MBytes', trunc(l_total_bytes/1024/1024) );
 42      p( 'Unused Blocks', l_unused_blocks );
 43      p( 'Unused Bytes', l_unused_bytes );
 44      p( 'Last Used Ext FileId', l_LastUsedExtFileId );
 45      p( 'Last Used Ext BlockId', l_LastUsedExtBlockId );
 46      p( 'Last Used Block', l_LAST_USED_BLOCK );
 47  end;
 48
 49  /

Procedure created.

SQL&gt; set serveroutput on
SQL&gt; exec show_space('MY_TAB','SYS');
Total Blocks............................896
Total Bytes.............................7340032
Total MBytes............................7
Unused Blocks...........................15
Unused Bytes............................122880
Last Used Ext FileId....................7
Last Used Ext BlockId...................777
Last Used Block.........................113

PL/SQL procedure successfully completed.

SQL&gt; </pre>
<p>Now I copy/paste the math I&#8217;ve done above again to compare both results. </p>
<p><strong>As it has 880 blocks below and the number of block is 895 (dump file didn&#8217;t count the header block), then there&#8217;re 895-880=15 data blocks free (and above the hightwater mark)<br />
Moreover, as the highwater mark is at block 113 and the extent has 128 data blocks, then 128-113=15 data blocks are free<br />
So this means that there&#8217;s 15*8192=122880 bytes (122Kb) free space </strong></p>
<p>As you see comparison of both values led us to the same results</p>
<p>So in this post you&#8217;ve learned how to dump a header block of the segment and how to read it. In the next post I&#8217;ll try to go more deep and dump a data block that contains data, make some transactional changes on the data and see what happens in the background in the block level! </p>
]]></content:encoded>
			<wfw:commentRss>http://kamranagayev.com/2011/10/31/dumping-an-oracle-data-block-reading-the-output-and-doing-some-math/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Step by Step Oracle installation All in One e-book</title>
		<link>http://kamranagayev.com/2011/10/19/step-by-step-oracle-installation-all-in-one-e-book/</link>
		<comments>http://kamranagayev.com/2011/10/19/step-by-step-oracle-installation-all-in-one-e-book/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 12:55:14 +0000</pubDate>
		<dc:creator>Kamran Agayev A.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://kamranagayev.com/?p=1505</guid>
		<description><![CDATA[I&#8217;ve decided to create an e-book based on all &#8220;Step by Step Installation Guides&#8221; that I have in my blog. This e-book contains the following step-by-step guides: 1. Step by Step Installing Oracle Database 10gR2 on Linux 2. Step by Step Installing Oracle Database 10gR2 on Oracle Solaris 10 3. Step by Step installing Oracle [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve decided to create an e-book based on all &#8220;Step by Step Installation Guides&#8221; that I have in my blog. This e-book contains the following step-by-step guides: </p>
<p>1.  <a href="http://kamranagayev.com/2009/05/01/step-by-step-installing-oracle-database-10g-release-2-on-linux-centos-and-automate-the-installation-using-linux-shell-script/">Step by Step Installing Oracle Database 10gR2 on Linux </a></p>
<p>2.  <a href="http://kamranagayev.com/2010/11/03/step-by-step-installing-oracle10gr2-on-oracle-solaris/">Step by Step Installing Oracle Database 10gR2 on Oracle Solaris 10</a></p>
<p>3.  <a href="http://kamranagayev.com/2011/03/21/step-by-step-installing-oracle11g-on-linux/">Step by Step installing Oracle 11g R2 on OEL 5.5</a></p>
<p>4.  <a href="http://kamranagayev.com/2011/03/27/step-by-step-installing-oracle-11gr2-on-oracle-solaris-10/">Step by Step installing Oracle 11g R2 on Oracle Solaris 10</a></p>
<p>It consists of 200 pages and contains 188 screenshots! You can download it &#8220;for free&#8221; from the following link: <b><br /><center><br />
<a href="http://kamranagayev.com/wp-content/plugins/download-monitor/download.php?id=1"><img src="http://kamranagayev.com/wp-content/uploads/2011/10/2-285x300.png" alt="" title="Step by Step installation Guide" width="285" height="300" class="alignnone size-medium wp-image-1509" /></a></center></p>
<p><center>Downloaded 1086 times</center></p>
]]></content:encoded>
			<wfw:commentRss>http://kamranagayev.com/2011/10/19/step-by-step-oracle-installation-all-in-one-e-book/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Oracle NoSQL is now available at OTN</title>
		<link>http://kamranagayev.com/2011/10/19/oracle-nosql-is-now-available-at-otn/</link>
		<comments>http://kamranagayev.com/2011/10/19/oracle-nosql-is-now-available-at-otn/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 08:35:50 +0000</pubDate>
		<dc:creator>Kamran Agayev A.</dc:creator>
				<category><![CDATA[Administration]]></category>

		<guid isPermaLink="false">http://kamranagayev.com/?p=1502</guid>
		<description><![CDATA[Oracle NoSQL is now available at OTN. Check the following link for more information, download and documentation: http://www.oracle.com/technetwork/database/nosqldb/overview/index.html]]></description>
			<content:encoded><![CDATA[<p>Oracle NoSQL is now available at OTN. Check the following link for more information, download and documentation:<br />
<a href="http://www.oracle.com/technetwork/database/nosqldb/overview/index.html">http://www.oracle.com/technetwork/database/nosqldb/overview/index.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://kamranagayev.com/2011/10/19/oracle-nosql-is-now-available-at-otn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

