<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-1355878775771929508</atom:id><lastBuildDate>Tue, 24 Nov 2009 09:03:00 +0000</lastBuildDate><title>Left Brainy</title><description>The secret of a long and happy life is to do everything you do with love in your heart...</description><link>http://leftbrainnie.blogspot.com/</link><managingEditor>noreply@blogger.com (Phevoux)</managingEditor><generator>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-7319865527351563632</guid><pubDate>Mon, 16 Nov 2009 15:31:00 +0000</pubDate><atom:updated>2009-11-16T23:39:53.464+08:00</atom:updated><title>What to throw, Checked or Unchecked Exceptions?</title><description>&lt;span style="font-size:100%;"&gt;If you throw a checked exception (and don't catch it), you will need to declare the exception in your method's throws clause. Client programmers who wish to call your method will then need to either catch and handle the exception within the body of their methods, or declare the exception in the throws clause of their methods. Making an exception checked forces client programmers to deal with the possibility that the exception will be thrown.&lt;br /&gt;&lt;br /&gt;If you throw an unchecked exception, client programmers can decide whether to catch or disregard the exception, just as with checked exceptions. With an unchecked exception, however, the compiler doesn't force client programmers either to catch the exception or declare it in a throws clause. In fact, client programmers may not even know that the exception could be thrown. Either way, client programmers are less likely to think about what they should do in the event of an unchecked exception than they are in the case of an checked exception.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The simple guideline is:&lt;/span&gt;&lt;br /&gt;If you are throwing an exception for an abnormal condition that you feel client programmers should consciously decide how to handle, throw a checked exception.&lt;br /&gt;&lt;br /&gt;Note that when String.charAt(int index) receives a bad input, it doesn't throw RuntimeException or even IllegalArgumentException. It throws StringIndexOutOfBoundsException. The type name indicates that the problem was a string index, and the program can query the object to find out what the bad index was.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Here is a collection of the exception guidelines put forth by an article:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;If your method encounters an abnormal condition that it can't handle, it should throw an exception.&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;Avoid using exceptions to indicate conditions that can reasonably be expected as part of the normal functioning of the method.&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;If your method discovers that the client has breached its contractual obligations (for example, by passing in bad input data), throw an unchecked exception.&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;If your method is unable to fulfill its contract, throw either a checked or unchecked exception.&lt;/span&gt;&lt;/li&gt;&lt;li style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;If you are throwing an exception for an abnormal condition that you feel client programmers should consciously decide how to handle, throw a checked exception.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Define or choose an already existing exception class for each kind of abnormal condition that may cause your method to throw an exception.&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Here's a summary of the mechanical aspects of exceptions:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Runtime exceptions&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A method signature does not need to declare runtime exceptions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A caller to a method that throws a runtime exception is not forced to catch the runtime exception&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Runtime exceptions extend from RuntimeException or Error&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;    &lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Checked exceptions&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A method must declare each checked exception it throws&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;A caller to a method that throws a checked exception must either catch the exception or throw the exception itself&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Checked exceptions extend from Exception&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-7319865527351563632?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2009/11/what-to-throw-checked-or-unchecked.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-5640496259218387493</guid><pubDate>Mon, 16 Nov 2009 15:14:00 +0000</pubDate><atom:updated>2009-11-24T17:03:00.699+08:00</atom:updated><title>Java Checked vs Unchecked Exception</title><description>&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Some guidelines about check and uncheck exception:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Only exceptions that will cause a method to complete abruptly should appear in its throws clause.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;There are two kinds of exceptions in Java, checked and unchecked, and only checked exceptions need appear in throws clauses. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Any checked exceptions that may be thrown in a method must either be caught or declared in the method's throws clause. &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Whether or not an exception is "checked" is determined by its position in the hierarchy of throwable classes.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;To create a new checked exception, you simply extend another checked exception. All throwables that are subclasses of Exception, but not subclasses of RuntimeException are checked exceptions.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Most unchecked throwables declared in java.lang (subclasses of Error and RuntimeException) are problems that would be detected by the Java virtual machine.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Errors usually signal abnormal conditions that you wouldn't want a program to handle.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;If you are throwing an exception to indicate an improper use of your class, you are signalling a software bug. The class of exception you throw probably should descend from RuntimeException, which will make it unchecked. Otherwise, if you are throwing an exception to indicate not a software bug but an abnormal condition that client programmers should deal with every time they use your method, your exception should be checked.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;At least one clause, either catch or finally, must be associated with each try block. If you have both catch clauses and a finally clause with the same try block, you must put the finally clause after all the catch clauses&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-5640496259218387493?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2009/11/checked-vs-unchecked-exception.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-5819502802445619250</guid><pubDate>Mon, 31 Aug 2009 06:00:00 +0000</pubDate><atom:updated>2009-11-16T23:27:07.450+08:00</atom:updated><title>Why set download header to x-download?</title><description>&lt;span style="font-size:100%;"&gt;It’s important to set the Content-Type header to a non-standard value such as application/x-download because, although the HTTP specification provides a mechanism for file downloads, many browsers second-guess the server's directives and do what they think is best rather than what they're told.&lt;br /&gt;&lt;br /&gt;These browsers--including Microsoft Internet Explorer and Opera--look at the file extension and "sniff" the incoming content. If they see HTML or image content, they inline-display the file contents instead of offering a Save As dialog. Turns out there are no 100% reliable ways to download a file across all browsers.&lt;br /&gt;&lt;br /&gt;According to a reference site, the HTTP specification recommends setting the Content-Type to application/octet-stream. Unfortunately, this causes problems with Opera 6 on Windows (which will display the raw bytes for any file whose extension it doesn't recognize) and on Internet Explorer 5.1 on the Mac (which will display inline content that would be downloaded if sent with an unrecognized type). So, the best way to cater for max scenario case coverage will be to set to application/x-download.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-5819502802445619250?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2009/08/why-set-download-header-to-x-download.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-1992851821466615115</guid><pubDate>Mon, 31 Aug 2009 05:49:00 +0000</pubDate><atom:updated>2009-11-16T23:27:41.284+08:00</atom:updated><title>Some Java String &amp; Collections API notes</title><description>&lt;span style="font-size:100%;"&gt;Some summary of String and Collections API usage to remind myself :)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Criteria to choose among String, StringBuffer and StringBuilder:&lt;/span&gt;&lt;br /&gt;1. If your text is not going to change use a string Class because a String object is immutable.&lt;br /&gt;&lt;br /&gt;2. If your text can change and will only be accessed from a single thread, use a StringBuilder because StringBuilder is unsynchronized.&lt;br /&gt;&lt;br /&gt;3. If your text can changes, and will be accessed from multiple threads, use a StringBuffer because StringBuffer is synchronous.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Collections API:&lt;/span&gt;&lt;br /&gt;1. Vectors and Hashtable classes are available from the initial JDK 1.0. But, ArrayList and HashMap are added as a part of new Collections API since JDK 1.2.&lt;br /&gt;&lt;br /&gt;2. Vectors and Hashtable are synchronized where as ArrayList and HashMap are unsynchronized.&lt;br /&gt;&lt;br /&gt;3. Use Vector if there are multiple threads and ArrayList if there is only a single thread.&lt;br /&gt;&lt;br /&gt;4. Use Hashtable if there are multiple threads and HashMap if there is only a single thread.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-1992851821466615115?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2009/08/some-string-collections-api-notes.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-1203854164270777081</guid><pubDate>Tue, 06 Jan 2009 03:01:00 +0000</pubDate><atom:updated>2009-01-06T11:40:11.280+08:00</atom:updated><title>Merge log files and sort the records in Linux</title><description>&lt;span style="" face="arial" size="2"&gt;Recently I need to do merging of log files and sort the records according to timestamp. This is what I did, use the bulk replace file extension way to change the log files to .txt files, then applied the following command through Shell script.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;#!/bin/sh&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;export MFILE=merge_file.txt&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;export SFILE=complete_file.txt&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;for file in `ls *.txt`&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;do&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  cat $file &gt;&gt; $MFILE&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;done&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;sort -k4,4 $MFILE &gt; $SFILE&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;rm $MFILE&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;Log files are expected to have same format, otherwise the sorting will not be possible.&lt;br /&gt;&lt;/br&gt;&lt;br /&gt;-k, --key = POS1[,POS2], means sorting by start a key at POS1, end it at POS2 (which is where the timestamp position in my log files)&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-1203854164270777081?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2009/01/merge-log-files-and-sort-records-in.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-8688844533896882902</guid><pubDate>Sat, 28 Jun 2008 17:21:00 +0000</pubDate><atom:updated>2008-06-29T03:14:47.580+08:00</atom:updated><title>Bulk replace file extension in Linux</title><description>&lt;span style="" face="arial" size="2"&gt;Recently need to do a mass rename of files extension to another in Linux environment. I rename them one by one using "mv" command, which is super slow if talking about 200 over files. Thanks to Sunny who provide me the following solution:&lt;br /&gt;&lt;br /&gt;Replace all '.txt' file extension to '.log' extension and display "rename" command in console:&lt;br /&gt;ls *.txt |awk ' {s=substr($1, 1, length($1) - 4); print "mv " s ".txt " s ".log"}'&lt;br /&gt;&lt;br /&gt;Executable mode of bulk replace file extension from '.txt' to '.log':&lt;br /&gt;ls *.txt |awk ' {s=substr($0, 1, length($0) - 4); system("mv " s ".txt " s ".log")}'&lt;br /&gt;&lt;br /&gt;This save me lots of time, probably yours too. :)&lt;br /&gt;&lt;br /&gt;Thanks again, Sunny!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-8688844533896882902?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2008/06/bulk-replace-file-extension-in-linux.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-6223719811560245465</guid><pubDate>Sat, 28 Jun 2008 17:19:00 +0000</pubDate><atom:updated>2008-06-29T03:14:59.557+08:00</atom:updated><title>Wicket training over the weekend in UK</title><description>&lt;span style="" face="arial" size="2"&gt;Never thought would have a chance to attend any training while in an oversea trip. First time ever to travel 6500 miles, and had the opportunity to take part in a &lt;a style="font-weight: bold;" href="http://jweekend.co.uk/"&gt;JWeekend&lt;/a&gt; Wicket 2 days course. The course was held by Al Maw and Cemal on Fri &amp;amp; Sat, 21st to 22nd March in London.&lt;br /&gt;&lt;br /&gt;Normally when I attend trainings back in Malaysia, I experienced lots of "theory" poet reader, which nicely shutdown people's attention, or "here's-the-point-and-i'll-read-it-to-you" type of training. This time, I had lots of practical in the training which firmly sets the experience of using wicket in real. This really helps a lot for an entry level user like me.&lt;br /&gt;&lt;br /&gt;The training pace is just nice for me to catch up though on the second day find it a little difficult to digest after the nice Thai lunch! Thanks to Al and Cemal's patience, slowly guide me through all the exercises, make me excited to continue explore the wicket feature.&lt;br /&gt;&lt;br /&gt;The training breakdown into modules which easy for me to know what are the topics to be covered. To understand all in a day or 2 is definitely not easy, however, again, emphasized on the experience that Al had, able to explain something in different angle should he finds me not able to understand it. Thanks to his patience to guide me through until I get it!&lt;br /&gt;&lt;br /&gt;I'm really grateful to Cemal as well who's willing to setup a laptop for my hand's on lab session. I couldn't bring mine due to my shoulder's injury and was a last minute decision which I did not inform JWeekend prior to the training. This really shows their commitment to take care of their students. So, thanks again, Cemal!&lt;br /&gt;&lt;br /&gt;All in all, I enjoyed the training, moreover, I've gained the knowledge that could help me get started in using wicket. Definitely something that you might want to go for if you're looking for a wicket training.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-6223719811560245465?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2008/06/wicket-training-over-weekend-in-uk.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-8788879189177549198</guid><pubDate>Sat, 28 Jun 2008 17:18:00 +0000</pubDate><atom:updated>2008-06-29T03:31:00.517+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Oracle</category><title>Create/Drop DB in Oracle</title><description>&lt;span style="" font="arial" size="2"&gt;&lt;span style="font-weight: bold;"&gt;Create DB &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1) Create file init[dbname].ora to the directory /u01/app/oracle/xxx/xxx/dbs folder (change db_name=[dbname])&lt;br /&gt;&lt;br /&gt;2) Create directory /u01/app/oracle/admin/[dbname]&lt;br /&gt;&lt;br /&gt;3) Create the directories bdump, cdump and udump in the /u01/app/oracle/admin/[dbname] directory&lt;br /&gt;&lt;br /&gt;4) Do a chmod 777 on the /u01/app/oracle/admin/[dbname] directory and sub directories.&lt;br /&gt;&lt;br /&gt;5) Prepared the createdb.sql script. Sample script as follow:&lt;br /&gt;&lt;br /&gt;CREATE DATABASE dbx&lt;br /&gt;   USER SYS IDENTIFIED BY sys&lt;br /&gt;     USER SYSTEM IDENTIFIED BY system&lt;br /&gt;     LOGFILE GROUP 1 ('/u01/app/oracle/oradata/dbx/redo01.log') SIZE 100M,&lt;br /&gt;   GROUP 2 ('/u01/app/oracle/oradata/dbx/redo02.log') SIZE 100M,&lt;br /&gt;   GROUP 3 ('/u01/app/oracle/oradata/dbx/redo03.log') SIZE 100M&lt;br /&gt;   MAXLOGFILES 5&lt;br /&gt;   MAXLOGMEMBERS 5&lt;br /&gt;   MAXLOGHISTORY 1&lt;br /&gt;   MAXDATAFILES 100&lt;br /&gt;   MAXINSTANCES 1&lt;br /&gt;   CHARACTER SET WE8ISO8859P15&lt;br /&gt;   DATAFILE '/u01/app/oracle/oradata/dbx/system01.dbf' SIZE 325M REUSE&lt;br /&gt;   EXTENT MANAGEMENT LOCAL&lt;br /&gt;   SYSAUX DATAFILE '/u01/app/oracle/oradata/dbx/sysaux01.dbf' SIZE 325M REUSE&lt;br /&gt;   DEFAULT TEMPORARY TABLESPACE tempts1 TEMPFILE '/u01/app/oracle/oradata/dbx/temp01.dbf' SIZE 20M REUSE&lt;br /&gt;   UNDO TABLESPACE undotbs01 DATAFILE '/u01/app/oracle/oradata/dbx/undotbs01.dbf' SIZE 200M;&lt;br /&gt;&lt;br /&gt;6) Make these files executable (chmod 755 createdb.sql)&lt;br /&gt;&lt;br /&gt;7) Switch to user oracle su – oracle&lt;br /&gt;&lt;br /&gt;8) Type export ORACLE_SID=[dbname]&lt;br /&gt;&lt;br /&gt;9) Type sqlplus /nolog&lt;br /&gt;&lt;br /&gt;10) Connect as sysdba&lt;br /&gt;&lt;br /&gt;11) get SQL&gt;Connected to an idle instance.&lt;br /&gt;&lt;br /&gt;12) Type startup pfile=init[dbname].ora nomount&lt;br /&gt;&lt;br /&gt;Should get ORACLE instance started with output as following:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Total System Global Area  707335948 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Fixed Size                   452364 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Variable Size             134217728 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Database Buffers          570425344 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Redo Buffers                2240512 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;13)  Execute the script @/oracle/createdb.sql&lt;br /&gt;&lt;br /&gt;14)  Run @/u01/app/oracle/product/xxx/rdbms/admin/catalog.sql&lt;br /&gt;&lt;br /&gt;Before run the following script, make sure to check the SYSTEM tablespace size whether it is sufficient or not. If not, add datafiles to it, alter the datafile to be auto extend, to resize the tablespace.&lt;br /&gt;&lt;br /&gt;15)  Run @/u01/app/oracle/product/xxx/rdbms/admin/catproc.sql&lt;br /&gt;&lt;br /&gt;After 15) step, check if there's any invalid objects with the following sql (should returns no rows):&lt;br /&gt;SELECT owner, object_name, object_type FROM dba_objects WHERE status='INVALID' ORDER BY owner, object_type, object_name;&lt;br /&gt;&lt;br /&gt;16) Connect as user System (sqlplus system/system_password)&lt;br /&gt;&lt;br /&gt;17) Run @/u01/app/oracle/product/xxx/sqlplus/admin/pupbld.sql&lt;br /&gt;&lt;br /&gt;18) Create Tablespace needed for the database&lt;br /&gt;&lt;br /&gt;19) Create User + grantprovide necessary privilege&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Drop DB &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;$ sqlplus /nolog&lt;br /&gt;&lt;br /&gt;SQL*Plus: Release 10.1.0.3.0 - Production on Fri Feb 18 20:15:26 2005&lt;br /&gt;&lt;br /&gt;Copyright (c) 1982, 2004, Oracle.  All rights reserved.&lt;br /&gt;&lt;br /&gt;SQL&gt; connect / as sysdba&lt;br /&gt;Connected to an idle instance.&lt;br /&gt;&lt;br /&gt;SQL&gt; shutdown abort;&lt;br /&gt;ORACLE instance shut down.&lt;br /&gt;&lt;br /&gt;SQL&gt; startup nomount;&lt;br /&gt;ORACLE instance started.&lt;br /&gt;&lt;br /&gt;Total System Global Area  612368384 bytes&lt;br /&gt;Fixed Size                   790352 bytes&lt;br /&gt;Variable Size             174321840 bytes&lt;br /&gt;Database Buffers          436207616 bytes&lt;br /&gt;Redo Buffers                1048576 bytes&lt;br /&gt;&lt;br /&gt;SQL&gt; alter database mount exclusive;&lt;br /&gt;&lt;br /&gt;Database altered.&lt;br /&gt;&lt;br /&gt;SQL&gt; alter system enable restricted session;&lt;br /&gt;&lt;br /&gt;System altered.&lt;br /&gt;&lt;br /&gt;SQL&gt; drop database;&lt;br /&gt;&lt;br /&gt;Database dropped.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-8788879189177549198?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2008/06/createdrop-db-in-oracle.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-1830750740118023213</guid><pubDate>Sat, 28 Jun 2008 17:12:00 +0000</pubDate><atom:updated>2008-06-29T02:59:21.206+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Oracle</category><title>Oracle EE Installation Part II</title><description>&lt;span style="" face="arial" size="2"&gt;Let's continue with the second and third section of the Oracle EE Installation.&lt;br /&gt;&lt;br /&gt;After all the pre-installation preparation, you can start install Oracle EE by issuing the following command:&lt;br /&gt;&lt;br /&gt;$ /directory_path/runInstaller [-silent] [-noconfig] -responseFile responsefilename&lt;br /&gt;&lt;br /&gt;For example,&lt;br /&gt;./runInstaller -silent -responseFile /home/oracle/source/database/response/enterprise.rsp&lt;br /&gt;&lt;br /&gt;You should be able to see the similar result during the installation:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-size: 90%;"&gt;oracle@linux:~/source/database&gt; ./runInstaller -silent -responseFile /home/oracle/source/database/response/enterprise.rsp&lt;br /&gt;Starting Oracle Universal Installer...&lt;br /&gt;Checking installer requirements...&lt;br /&gt;&lt;br /&gt;Checking operating system version:&lt;br /&gt;must be redhat-3, SuSE-9, redhat-4, UnitedLinux-1.0, asianux-1 or asianux-2 Passed&lt;br /&gt;All installer requirements met.&lt;br /&gt;&lt;br /&gt;Checking Temp space: must be greater than 80 MB.   Actual 337313 MB    Passed&lt;br /&gt;Checking swap space: must be greater than 150 MB.   Actual 1027 MB    Passed&lt;br /&gt;Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-01-16_11-09-35AM. Please wait ...oracle@raja:~/source/database&gt; Oracle Universal Installer, Version 10.2.0.1.0 Production&lt;br /&gt;Copyright (C) 1999, 2005, Oracle. All rights reserved.&lt;br /&gt;&lt;br /&gt;You can find a log of this install session at:&lt;br /&gt;/u01/app/oracle/oraInventory/logs/installActions2007-01-16_11-09-35AM.log&lt;br /&gt;.................................................................................................... 100% Done.&lt;br /&gt;Loading Product Information&lt;br /&gt;................................................................................................................... 100% Done.&lt;br /&gt;Analyzing dependencies&lt;br /&gt;.........................................................................&lt;br /&gt;Starting execution of Prerequisites...&lt;br /&gt;Total No of checks: 11&lt;br /&gt;Performing check for CertifiedVersions&lt;br /&gt;Checking operating system requirements ...&lt;br /&gt;Expected result: One of redhat-3,redhat-4,SuSE-9,asianux-1,asianux-2&lt;br /&gt;Actual Result: SuSE-9&lt;br /&gt;Check complete. The overall result of this check is: Passed&lt;br /&gt;Check complete: Passed&lt;br /&gt;=======================================================================&lt;br /&gt;Performing check for Packages&lt;br /&gt;Checking operating system package requirements ...&lt;br /&gt;Checking for make-3.79; found make-3.80-184.1.  Passed&lt;br /&gt;Checking for binutils-2.14; found binutils-2.15.90.0.1.1-32.5.  Passed&lt;br /&gt;Checking for gcc-3.2; found Not found. Failed &lt;&lt;&lt;&lt; semmsl="250;" semmsl="250." semmns="32000;" semmns="32000." semopm="100;" semopm="100." semmni="128;" semmni="128." shmmax="536870912;" shmmax="536870912." shmmni="4096;" shmmni="4096." shmall="2097152;" shmall="2097152." max="65536;" max="209689." version="2.6.5-7.97;" version="2.6.5-7.97-smp." ip_local_port_range="1024" ip_local_port_range="1024" rmem_default="262144;" rmem_default="262144." rmem_max="262144;" rmem_max="262144." wmem_default="262144;" wmem_default="262144." wmem_max="262144;" wmem_max="262144." passed ==================================================== atleast="2.3.3-98.28"&lt;br /&gt;passed ====================================================&lt;br /&gt;passed ====================================================&lt;br /&gt;passed ====================================================&lt;br /&gt;passed ====================================================&lt;br /&gt;passed ====================================================&lt;br /&gt;passed ====================================================&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="" face="arial" size="2"&gt;&lt;span style="font-weight: bold;"&gt;Post Installation&lt;/span&gt;&lt;br /&gt;After the installation, below are the steps you need to do for post installation:&lt;br /&gt;&lt;br /&gt;Make sure ORACLE_HOME environment variable is set&lt;br /&gt;&lt;br /&gt;Run the following configuration scripts:&lt;br /&gt;a) Execute as root, /u01/app/oracle/product/xxx/xxx/root.sh&lt;br /&gt;&lt;br /&gt;b) Goto sqlplus and login as SYSTEM&lt;br /&gt;# sqlplus /nolog&lt;br /&gt;SQL&gt;connect as sysdba&lt;br /&gt;SQL&gt;system/system&lt;br /&gt;SQL&gt;@/u01/app/oracle/product/10.2.0/rdbms/admin/utlrp.sql&lt;br /&gt;&lt;br /&gt;c) At command prompt, run the following script&lt;br /&gt;$ $ORACLE_HOME/bin/genclntst&lt;br /&gt;&lt;br /&gt;Phew.. that's all for Silent Mode Oracle EE Installation. There are other places to look into as well, but will save it for other days. ^_^&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-1830750740118023213?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2008/06/oracle-ee-installation-part-ii.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-7303553959032527205</guid><pubDate>Sat, 28 Jun 2008 17:10:00 +0000</pubDate><atom:updated>2008-06-29T02:20:44.063+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Oracle</category><title>Oracle EE Installation Part I</title><description>&lt;span style="" face="arial" size="2"&gt;Man, compared to previous try to install Oracle XE, Oracle EE (Enterprise Edition) is MUCH MUCH more difficult to configure and to install. Due to the installation is perform from a Windows machine to a Linux server, "ssh -X" command cannot be used, hence, have to adopt manual installation. It took me 3 days to test and find out what minimum steps are needed, and took me another 3 days to install it and create 2 new databases. Most of the time is resource digging on the configuration part and I have forgotten how many installation guides I have gone through. It is just too much information around.&lt;br /&gt;&lt;br /&gt;Let me share how it is installed.&lt;br /&gt;&lt;br /&gt;Basically to install Oracle EE involve 3 sections:&lt;br /&gt;1) Pre-installation&lt;br /&gt;2) Installation&lt;br /&gt;3) Post-installation&lt;br /&gt;&lt;br /&gt;Today, I'm going to share the first section, Pre-Installation.&lt;br /&gt;&lt;br /&gt;Before I share the steps, this installation is performed on a Suse 9 Linux platform, with Oracle Database 10g Release 2 (10.2.0.1.0) for Linux x86 version. You can download the installer from &lt;a href="http://www.oracle.com/technology/software/products/database/oracle10g/index.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Now, again, due to I can't use 'ssh -X' command on a Windows machine, I'll have to go for the Silent Mode installation. (Now I know why to install Oracle through a GUI app is much much recommended!! Silent Mode installation is no fun at all, be warned!) After you've downloaded the installer, unzip it and you should be able to see the Oracle Universal Installer named 'runInstaller' and you'll be touching the 'response' folder alot as well.&lt;br /&gt;&lt;br /&gt;This is what you need to prepare the environment for the pre-installation:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1)&lt;/span&gt; Check hardware requirement. ie. At least have 1024MB of physical RAM, swapspace, etc. Best to reference the official installation guide on this. You can get the installation guide from &lt;a href="http://www.oracle.com/pls/db102/portal.portal_db?selected=11"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2)&lt;/span&gt; Check software requirement. For example packages needed prior to install Oracle. For Suse 9, these are needed:&lt;br /&gt;binutils-2.15.90.0.1.1-32.5&lt;br /&gt;gcc-3.3.3-43.24&lt;br /&gt;gcc-c++-3.3.3-43.24&lt;br /&gt;glibc-2.3.3-98.28&lt;br /&gt;gnome-libs-1.4.1.7-671.1&lt;br /&gt;libstdc++-3.3.3-43.24&lt;br /&gt;libstdc++-devel-3.3.3-43.24&lt;br /&gt;make-3.80-184.1&lt;br /&gt;pdksh-5.2.14-780.1&lt;br /&gt;sysstat-5.0.1-35.1&lt;br /&gt;xscreensaver-4.16-2.6&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3)&lt;/span&gt; Creating Required Operating System Groups and Users (skip this step if already created user and groups)&lt;br /&gt;a) Create user 'oracle'&lt;br /&gt;b) Create group 'dba', 'oper', and 'oinstall'&lt;br /&gt;c) Make 'oracle' user has primary group of 'oinstall' and secondary group of 'dba' and 'oper'&lt;br /&gt;&lt;br /&gt;You should be able to do this with the following command:&lt;br /&gt;$ useradd -goinstall -Gdba,oper -pxxxx -m oracle&lt;br /&gt;-g flag is to set primary group&lt;br /&gt;-G flag is to set secondary group&lt;br /&gt;-p flag is to set password&lt;br /&gt;-m flag is to create home directory for the new user&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4)&lt;/span&gt; Configuring Kernel Parameters&lt;br /&gt;This are the kernel settings needed in Suse 9 platform:&lt;br /&gt;kernel.shmall = 2097152&lt;br /&gt;kernel.shmmax = 2147483648&lt;br /&gt;kernel.shmmni = 4096&lt;br /&gt;kernel.sem = 250 32000 100 128&lt;br /&gt;fs.file-max = 65536&lt;br /&gt;net.ipv4.ip_local_port_range = 1024 65000&lt;br /&gt;net.core.rmem_default = 1048576&lt;br /&gt;net.core.rmem_max = 1048576&lt;br /&gt;net.core.wmem_default = 262144&lt;br /&gt;net.core.wmem_max = 262144&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5)&lt;/span&gt; Software location&lt;br /&gt;Oracle RDBMS and other products are installed into /u01 and this directory is typically reserved for software only (i.e. no data/control/redolog/etc. files are to be created/put in this directory or its subdirectories). If you have only one disk, you can put the datafiles into /u01/oradata.&lt;br /&gt;The typical structure of /u01 is&lt;br /&gt;/u01/app/oracle  - Base ($ORACLE_BASE)&lt;br /&gt;/u01/app/oracle/oraInventory - Oracle Inventory&lt;br /&gt;/u01/app/oracle/product - Oracle Software&lt;br /&gt;/u01/app/oracle/product/10.2.0/db_1 - Oracle10g Home ($ORACLE_HOME)&lt;br /&gt;/u01/app/oracle/admin - Administrative&lt;br /&gt;/u01/app/oracle/admin/TAR - Admin Support Logs&lt;br /&gt;/u01/app/oracle/admin/sid - Admin Subtree for a SID&lt;br /&gt;/u01/app/oracle/doc - Online Docs&lt;br /&gt;&lt;br /&gt;The Base is the base of all Oracle software installation (not just database: development and administartion tools, application server, etc. is also installed here). The ORACLE_BASE environment variable's value must be the absolute path of this location; typically /u01/app/oracle. You should create it before installation.&lt;br /&gt;&lt;br /&gt;The above is copied from an installation guide (sorry, don't know which one was it, too many guides!!). For me, I created (with user 'oracle'):&lt;br /&gt;/u01/app/oracle&lt;br /&gt;/u01/app/oracle/oradata&lt;br /&gt;/u01/app/oracle/oraInventory&lt;br /&gt;&lt;br /&gt;and set the following environment variables in oracle user's profile:&lt;br /&gt;&lt;br /&gt;export ORACLE_BASE=/u01/app/oracle&lt;br /&gt;export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1&lt;br /&gt;export LD_LIBRARY_PATH=/u01/app/oracle/product/10.2.0/db_1/lib&lt;br /&gt;export PATH=$PATH:$ORACLE_HOME/bin&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6)&lt;/span&gt; Create oraInst.loc file&lt;br /&gt;&lt;br /&gt;If you plan to install Oracle products using Oracle Universal Installer in silent or suppressed mode, you must manually create the oraInst.loc file if it does not already exist. This file specifies the location of the Oracle Inventory directory where Oracle Universal Installer creates the inventory of Oracle products installed on the system.&lt;br /&gt;&lt;br /&gt;Note:&lt;br /&gt;If Oracle software has been installed previously on the system, the oraInst.loc file might already exist. If the file does exist, you do not need to create a file.&lt;br /&gt;&lt;br /&gt;To create the oraInst.loc file, follow these steps:&lt;br /&gt;&lt;br /&gt;1. Switch user to root:&lt;br /&gt;$ su - root&lt;br /&gt;&lt;br /&gt;2. Change directory as follows:&lt;br /&gt;# cd /etc&lt;br /&gt;&lt;br /&gt;3. Use a text editor to create the oraInst.loc file, containing the following lines:&lt;br /&gt;inventory_loc=/u01/app/oracle/oraInventory&lt;br /&gt;inst_group=oinstall&lt;br /&gt;&lt;br /&gt;4. Enter the following commands to set the appropriate owner, group, and permissions on the oraInst.loc file:&lt;br /&gt;# chown oracle:oinstall oraInst.loc&lt;br /&gt;# chmod 664 oraInst.loc&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7)&lt;/span&gt; Create response file&lt;br /&gt;Go to the installer folder search for the 'response' directory, locate a file named 'enterprise.rsp' and edit it. (I suggest to backup a copy first before you edit it)&lt;br /&gt;&lt;br /&gt;Unfortunately I'm not familiar with all the settings inside, below is what I find it workable towards the installation (stuck here for quite awhile and make lot of mistakes with multiple combinations configuration setup!) I'll only share a few errors I made or needed attention:&lt;br /&gt;&lt;br /&gt;1. Best to comment out whatever you think is not necessary for the installation&lt;br /&gt;2. Must enclose all string value with quotes - ""&lt;br /&gt;3. Put a complete path to 'FROM_LOCATION' field for the products.xml location&lt;br /&gt;4. Take note that SYSMAN and DBSNMP password do not allow to be the same as the username&lt;br /&gt;5. Due to many combination setup inside, I choose the most easiest one, which is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;a) INSTALL_TYPE = "EE"&lt;/span&gt;&lt;br /&gt;Installation type of the component&lt;br /&gt;&lt;br /&gt;The following choices are available. The value should contain only one of these choices.&lt;br /&gt;       EE     : Enterprise Edition&lt;br /&gt;       SE     : Standard Edition&lt;br /&gt;       Custom : Custom&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;b) n_dbType = 1&lt;/span&gt;&lt;br /&gt;Determines the type of database to create&lt;br /&gt;&lt;br /&gt;This entry should be specified as a number. The valid values that you can use:&lt;br /&gt;        1 - General Purpose Starter Database&lt;br /&gt;        2 - Transaction Processing Starter Database&lt;br /&gt;        3 - Data Warehouse Starter Database&lt;br /&gt;        4 - Advanced Configuration&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;c) n_configurationOption = 1&lt;/span&gt;&lt;br /&gt;Determines the type of configuration to perform for the session&lt;br /&gt;&lt;br /&gt;This entry should be specified as an number. The valid values that you can use:&lt;br /&gt;        1 - Create a Database&lt;br /&gt;        2 - Configure an ASM instance&lt;br /&gt;        3 - Install Software Only&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;d) n_performUpgrade = 0&lt;/span&gt;&lt;br /&gt;Determines whether to perform an upgrade during the installation or not&lt;br /&gt;&lt;br /&gt;If n_performUpgrade=1, then an upgrade will be performed at the end of the installation.&lt;br /&gt;If n_performUpgrade=0, then an upgrade will not be performed&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;e) n_dbStorageType = 1&lt;/span&gt;&lt;br /&gt;Determines the type of storage to use for the the database&lt;br /&gt;&lt;br /&gt;  This entry should be specified as an number. The valid values that you can use:&lt;br /&gt;        1 - Place the data files on a file system&lt;br /&gt;        2 - Use Automatic Storage Management (ASM)&lt;br /&gt;        3 - Place the datafiles on raw partitions&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;f) b_enableAutoBackup = false&lt;/span&gt;&lt;br /&gt;Determines whether to enable automated backups or not&lt;br /&gt;&lt;br /&gt;Pre-requsites for setting this variable:&lt;br /&gt;        n_configurationOption=1&lt;br /&gt;        n_performUpgrade=0&lt;br /&gt;        n_dbType = 1, 2, or 3&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;g) b_useSamePassword = false&lt;/span&gt;&lt;br /&gt;Determines whether the same password is set for each database schema or whether different passwords should be specified.&lt;br /&gt;&lt;br /&gt;If b_useSamePassword=true, then you must specify the password that will be used for all accounts using:&lt;br /&gt;        - s_superAdminSamePasswd&lt;br /&gt;        - s_superAdminSamePasswdAgain&lt;br /&gt;&lt;br /&gt;If b_useSamePassword=false, then you must specify the passwords the will be used for each account using:&lt;br /&gt;        - sl_superAdminPasswds&lt;br /&gt;        - sl_superAdminPasswdsAgain&lt;br /&gt;&lt;br /&gt;Please note that this is just a small amount of things that I share it here, in the response file, there're lots more to look into.&lt;br /&gt;&lt;br /&gt;After edit this file, you'll need to edit the dbca.rsp file as well. (If you want to create a new DB after the Oracle installation) In dbca.rsp file, is quite straight forward. You only need to look at the 'createDatabase' section and fill in the values accordingly. It is similar to other response file structure where have bunch of key=value pairs.&lt;br /&gt;&lt;br /&gt;After all these, you should be ready for the second installation section, which is the real installation part. Will post it as Part II in the blog soon.&lt;br /&gt;&lt;br /&gt;Happy installing!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-7303553959032527205?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2008/06/oracle-ee-installation-part-i.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-1355878775771929508.post-7022911200892572529</guid><pubDate>Sat, 28 Jun 2008 17:07:00 +0000</pubDate><atom:updated>2008-06-29T03:20:34.771+08:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>Oracle</category><title>Install Oracle DB Express Edition (XE)</title><description>&lt;span style="" face="arial" size="2"&gt;WARNING: this post is for &lt;font style="color: rgb(255, 0, 0);"&gt;geeks &lt;/font&gt;^_^&lt;br /&gt;&lt;br /&gt;Recently I have the chance to install Oracle DB XE 10gR2 version to try out what it is like. I used to be very skeptical on Oracle DB installation because just to create a database already took me like 10 hours or so, I just don't have the courage to think about how long it'll take me to install the Oracle DB server.&lt;br /&gt;&lt;br /&gt;To my surprise, this XE version is very fast and easy. This is how I do it to install XE server in Linux Suse 32-bit machine. Oops, just before I list down the steps, this is something you might want to know about XE:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Express Edition is limited to a single instance on any server.&lt;/li&gt;&lt;li&gt;Express Edition DB instance works with a single database only.&lt;/li&gt;&lt;li&gt;Express Edition may be installed on a multiple CPU server, but may  only be executed on one processor in any server.&lt;/li&gt;&lt;li&gt;The maximum database size in Oracle Database XE is 5 gigabytes (GB).  This includes between 0.5 and 0.9 GB for the data dictionary, internal  schemas, and temporary space, which leaves just over 4.0 GB for user data.&lt;/li&gt;&lt;li&gt;Express Edition may use up to 1 GB RAM of available memory.&lt;/li&gt;&lt;/ul&gt;XE server installation steps are as follow:&lt;br /&gt;1) Download the installer from Oracle site (I downloaded the rpm version):&lt;br /&gt;http://www.oracle.com/technology/software/products/database/xe/htdocs/102xelinsoft.html&lt;br /&gt;&lt;br /&gt;2) Create user 'oracle' if the system has yet to have it&lt;br /&gt;3) Create group 'dba', 'oper', and 'oinstall'&lt;br /&gt;4) Make 'oracle' user has primary group of 'oinstall' and secondary group of 'dba' and 'oper'&lt;br /&gt;You should be able to do this with the following command:&lt;br /&gt;$ useradd -goinstall -Gdba,oper  -pxxxx -m oracle&lt;br /&gt;-g flag is to set primary group&lt;br /&gt;-G flag is to set secondary group&lt;br /&gt;-p flag is to set password&lt;br /&gt;-m flag is to create home directory for the new user&lt;br /&gt;&lt;br /&gt;5) su to oracle user and run the rpm executable:&lt;br /&gt;$ rpm -ivh oracle-xe-10.2.0.1-1.0.i386.rpm&lt;br /&gt;&lt;br /&gt;6) Run the following command&lt;br /&gt;$ /etc/init.d/oracle-xe configure&lt;br /&gt;&lt;br /&gt;7) Enter the following configuration information:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A valid HTTP port for XE GUI (default is 8080) - web based&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A valid port for Oracle database listener (default is 1521)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A password for SYS and SYSTEM administrative users accounts&lt;/li&gt;&lt;li&gt;Whether you want the database to start automatically when the system boots (I choose 'Y' = Yes)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;You can always reconfigure the above settings by running the following command:&lt;br /&gt;$ /etc/init.d/oracle-xe configure&lt;br /&gt;&lt;br /&gt;To start database manually, run this command:&lt;br /&gt;$ /etc/init.d/oracle-xe start&lt;br /&gt;&lt;br /&gt;To stop database manually, run this command:&lt;br /&gt;$ /etc/init.d/oracle-xe stop&lt;br /&gt;&lt;br /&gt;8) Go to /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin folder and run&lt;br /&gt;$ ./oracle_env.sh&lt;br /&gt;&lt;br /&gt;9) Edit .bashrc file in oracle's home directory to include the following:&lt;br /&gt;. /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh&lt;br /&gt;&lt;br /&gt;10) This is depends if you want to do this. I do the step no 9) in '/etc/profile' file instead. So, whoever that logs in will have the environment variables setup automatically.&lt;br /&gt;&lt;br /&gt;Now, depends if you're installing the XE in local machine which you have KDE or any other GUI desktop, you'll be able to access the administration page with this link:&lt;br /&gt;&lt;font style="color: rgb(51, 51, 255);"&gt;http://127.0.0.1:1521/apex&lt;br /&gt;&lt;/font&gt;&lt;br /&gt;If you're installing it on a remote server, you need to go into the sqlplus to change a remote HTTP access setting before you can access the web page.&lt;br /&gt;&lt;br /&gt;This is how to do it:&lt;br /&gt;1) Start SQL *Plus in the remote server and log in as SYSTEM&lt;br /&gt;&lt;br /&gt;2) After login, enter the following command:&lt;br /&gt;SQL&gt; EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);&lt;br /&gt;&lt;br /&gt;After that, you should be able to access the web page, log in as SYSTEM and you should be able to start playing with XE features with a database named 'XE' created for you automatically.&lt;br /&gt;&lt;br /&gt;This is how easy it is to setup. For the rest of the installation guide and information, you can get it from &lt;a href="http://www.oracle.com/pls/xe102/homepage"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1355878775771929508-7022911200892572529?l=leftbrainnie.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://leftbrainnie.blogspot.com/2008/06/install-oracle-db-express-edition-xe.html</link><author>noreply@blogger.com (Phevoux)</author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></item></channel></rss>