<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Life, Oracle</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/" />
    <link rel="self" type="application/atom+xml" href="http://www.isoracle.com/atom.xml" />
    <id>tag:www.isoracle.com,2008-04-02://1</id>
    <updated>2008-08-05T05:25:19Z</updated>
    <subtitle>Database, site architecture, performance tuning and applications</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Personal 4.1</generator>

<entry>
    <title>Update: Amazon S3 Availability Event: July 20, 2008</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/08/update-amazon-s3-availability.html" />
    <id>tag:www.isoracle.com,2008://1.35</id>

    <published>2008-08-05T05:22:43Z</published>
    <updated>2008-08-05T05:25:19Z</updated>

    <summary>Amazon S3 Availability Event: July 20, 2008 We wanted to provide some additional detail about the problem we experienced on Sunday, July 20th. At 8:40am PDT, error rates in all Amazon S3 datacenters began to quickly climb and our alarms...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Site Architecture" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="amazon" label="amazon" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="s3" label="s3" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<h3 style="font-size: 13.5pt;">Amazon S3 Availability Event: July 20, 2008</h3>
<p>We wanted to provide some additional detail about the problem we experienced 
on Sunday, July 20th.</p>
<p>At 8:40am PDT, error rates in all Amazon S3 datacenters began to quickly 
climb and our alarms went off. By 8:50am PDT, error rates were significantly 
elevated and very few requests were completing successfully. By 8:55am PDT, we 
had multiple engineers engaged and investigating the issue. Our alarms pointed 
at problems processing customer requests in multiple places within the system 
and across multiple data centers. While we began investigating several possible 
causes, we tried to restore system health by taking several actions to reduce 
system load. We reduced system load in several stages, but it had no impact on 
restoring system health.</p>
<p>At 9:41am PDT, we determined that servers within Amazon S3 were having 
problems communicating with each other. As background information, Amazon S3 
uses a gossip protocol to quickly spread server state information throughout the 
system. This allows Amazon S3 to quickly route around failed or unreachable 
servers, among other things. When one server connects to another as part of 
processing a customer's request, it starts by gossiping about the system state. 
Only after gossip is completed will the server send along the information 
related to the customer request. On Sunday, we saw a large number of servers 
that were spending almost all of their time gossiping and a disproportionate 
amount of servers that had failed while gossiping. With a large number of 
servers gossiping and failing while gossiping, Amazon S3 wasn't able to 
successfully process many customer requests.</p>
<p>At 10:32am PDT, after exploring several options, we determined that we needed 
to shut down all communication between Amazon S3 servers, shut down all 
components used for request processing, clear the system's state, and then 
reactivate the request processing components. By 11:05am PDT, all 
server-to-server communication was stopped, request processing components shut 
down, and the system's state cleared. By 2:20pm PDT, we'd restored internal 
communication between all Amazon S3 servers and began reactivating request 
processing components concurrently in both the US and EU.</p>
<p>At 2:57pm PDT, Amazon S3's EU location began successfully completing customer 
requests. The EU location came back online before the US because there are fewer 
servers in the EU. By 3:10pm PDT, request rates and error rates in the EU had 
returned to normal. At 4:02pm PDT, Amazon S3's US location began successfully 
completing customer requests, and request rates and error rates had returned to 
normal by 4:58pm PDT.</p>
<p>We've now determined that message corruption was the cause of the 
server-to-server communication problems. More specifically, we found that there 
were a handful of messages on Sunday morning that had a single bit corrupted 
such that the message was still intelligible, but the system state information 
was incorrect. We use MD5 checksums throughout the system, for example, to 
prevent, detect, and recover from corruption that can occur during receipt, 
storage, and retrieval of customers' objects. However, we didn't have the same 
protection in place to detect whether this particular internal state information 
had been corrupted. As a result, when the corruption occurred, we didn't detect 
it and it spread throughout the system causing the symptoms described above. We 
hadn't encountered server-to-server communication issues of this scale before 
and, as a result, it took some time during the event to diagnose and recover 
from it.</p>
<p>During our post-mortem analysis we've spent quite a bit of time evaluating 
what happened, how quickly we were able to respond and recover, and what we 
could do to prevent other unusual circumstances like this from having 
system-wide impacts. Here are the actions that we're taking: (a) we've deployed 
several changes to Amazon S3 that significantly reduce the amount of time 
required to completely restore system-wide state and restart customer request 
processing; (b) we've deployed a change to how Amazon S3 gossips about failed 
servers that reduces the amount of gossip and helps prevent the behavior we 
experienced on Sunday; (c) we've added additional monitoring and alarming of 
gossip rates and failures; and, (d) we're adding checksums to proactively detect 
corruption of system state messages so we can log any such messages and then 
reject them.</p>
<p>Finally, we want you to know that we are passionate about providing the best 
storage service at the best price so that you can spend more time thinking about 
your business rather than having to focus on building scalable, reliable 
infrastructure. Though we're proud of our operational performance in operating 
Amazon S3 for almost 2.5 years, we know that any downtime is unacceptable and we 
won't be satisfied until performance is statistically indistinguishable from 
perfect.</p>
<p>Sincerely,</p>
<p>The Amazon S3 Team</p><p><br /></p><p>Original Link: <a href="http://status.aws.amazon.com/s3-20080720.html">http://status.aws.amazon.com/s3-20080720.html</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>FreeBSD 7 Stable is running on Dell R300</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/07/freebsd-7-stable-is-running-on.html" />
    <id>tag:www.isoracle.com,2008://1.34</id>

    <published>2008-07-21T15:03:25Z</published>
    <updated>2008-07-21T15:07:55Z</updated>

    <summary>As I mentioned yesterday, the FreeBSD 7 Release doesn&apos;t support Broadcom 5722 network adapter which is combined in Dell R300, today, I installed 7.0 Stable 200807 amd64 on Dell R300, and the last stable version can identify the 5722 network...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Operating System" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dellr300" label="Dell R300" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="freebsd" label="freebsd" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[As I mentioned yesterday, the FreeBSD 7 Release doesn't support Broadcom 5722 network adapter which is combined in Dell R300, today, I installed 7.0 Stable 200807 amd64 on Dell R300, and the last stable version can identify the 5722 network adapter.<br /><br />Tomorrow, this box as the load balance which is running <a href="http://www.nginx.net/">Nginx</a> will be put on rack for production use. Crossing my fingers.<br />]]>
        
    </content>
</entry>

<entry>
    <title>FreeBSD 7.0 Release doesn&apos;t support Broadcom 5722 in Dell R300</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/07/freebsd-70-release-doesnt-supp.html" />
    <id>tag:www.isoracle.com,2008://1.33</id>

    <published>2008-07-20T18:04:22Z</published>
    <updated>2008-07-20T18:21:22Z</updated>

    <summary>I planed to install FreeBSD 7.0 Release on Dell R300, but unfortunately, 7.0 Release doesn&apos;t support the network adapter Broadcom 5722 which is combined in Dell R300.Some of my friends said that 7.0 stable in snapshot can work with 5722,...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Operating System" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="broadcom5722" label="broadcom 5722" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="dellr300" label="Dell R300" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="freebsd" label="freebsd" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[I planed to install FreeBSD 7.0 Release on Dell R300, but unfortunately, 7.0 Release doesn't support the network adapter Broadcom 5722 which is combined in Dell R300.<br /><br />Some of my friends said that 7.0 stable in snapshot can work with 5722, but I'm not sure if it's stable enough to support the production environment, so finally, I'll have to replace it with Dell 1950 which combines Broadcom 5708C :(<br />]]>
        
    </content>
</entry>

<entry>
    <title>Varnish -- Speeding up your web site</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/07/varnish-speeding-up-your-web-s.html" />
    <id>tag:www.isoracle.com,2008://1.32</id>

    <published>2008-07-12T23:36:44Z</published>
    <updated>2008-07-13T06:52:55Z</updated>

    <summary> Web cache is very important to a high traffic site, by holding those pictures, css and js files those are not changed frequently, it can reduce pressure to the backend servers, it&apos;s very helpful to improve the site speed.As...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Cache System" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="varnish" label="varnish" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="webcache" label="web cache" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p>
<p>Web cache is very important to a high traffic site, by holding those pictures, css and js files those are not changed frequently, it can reduce pressure to the backend servers, it's very helpful to improve the site speed.<br /><br />As you may know, <a href="http://www.squid-cache.org/">Squid</a> is widely used for web cache service, but we have another choice, that is <a href="http://varnish.projects.linpro.no/">Varnish</a>. Here is the introduction about Varnish from it's offical site:<br /><br /><em>"Varnish is a state-of-the-art, high-performance HTTP accelerator. Varnish is targeted primarily at the FreeBSD 6/7 and Linux 2.6 platforms, and takes full advantage of the virtual memory system and advanced I/O features offered by these operating systems."</em><br /><br />Some of my friends have already implemented Varnish as their web cache&nbsp;server in the production platform, and most of them replaced Squid with Varnish, they told me that Varnish has better performance than Squid in the high traffic site.<br /><br />So I wanna install a web cache server for my site, although my site traffic is pretty low :)<br /><br />Firstly, I'd like show you the basic workflow about how web cache works with web server.<br />
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><br /><br />&nbsp;</span>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><img class="mt-image-none" height="263" alt="varnish_workflow.jpg" src="http://www.isoracle.com/2008/07/13/varnish_workflow.jpg" width="242" /><br /><br /><br /></span>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline">Ok, let's start to install Varnish, the last stable version of Varnish is 1.1.2, you may download the source code from <a href="http://sourceforge.net/project/showfiles.php?group_id=155816">here</a>. My current web server is running on FreeBSD, Apache, PHP and MySQL, and Varnish&nbsp;will be&nbsp;installed on RedHat Linux.<br /><br /><strong>Installation<br />1. Createing group and user 'www' for Varnish<br /></strong># groupadd www<br /># useradd www -g www<br /><br /><strong>2. Compiling and installing Varnish<br /></strong># cd varnish-1.1.2<br /># ./configure --prefix=/home/varnish<br /># make &amp;&amp; make install<br /><br /><strong>3. Creating cache file and log file folder<br /></strong># mkdir -p /data02/cachefile<br /># chown -R www.www /data02/cachefile<br /># mkdir -p /data02/cachelog<br /># chown -R www.www /data02/cachelog<br /><br /><strong>4. Varnish configuration file<br /></strong>Example from my site:<br /><br /><em>backend mywebserver { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set backend.host = "YOUR_WEB_SERVER_IP"; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set backend.port = "80"; <br />}</em></span></p>
<p>
<p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><em>acl purge {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "localhost";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "127.0.0.1";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "192.168.1.0"/24;<br />}</em></span></p>
<p>
<p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><em>sub vcl_recv {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.request == "PURGE") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!client.ip ~ purge) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error 405 "Not allowed.";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lookup;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</em></span></p>
<p>
<p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.http.host ~ "^www.isoracle.com") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set req.backend = mywebserver; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.request != "GET" &amp;&amp; req.request != "HEAD") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pipe;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; elseif(req.url ~ "\.(php|cgi|pl)($|\?)") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pass;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lookup;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error 404 "isoracle.com Cache Server"; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lookup;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />}</em></span></p>
<p>
<p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><em>sub vcl_hit {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.request == "PURGE") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set obj.ttl = 0s;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error 200 "Purged.";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />}</em></span></p>
<p>
<p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><em>sub vcl_miss {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.request == "PURGE") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; error 404 "Not in cache.";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />}</em></span></p>
<p>
<span class="mt-enclosure mt-enclosure-image" style="DISPLAY: inline"><em>sub vcl_fetch {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (req.request == "GET" &amp;&amp; req.url ~ "\.(txt|js)$") {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set obj.ttl = 3600s;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set obj.ttl = 10d;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />}</em><br /><br />For more detailed description about the Varnish configuration file, please refer to the offical document.<br /><br /><strong>5. Starting varnishd<br /></strong># /home/varnish/sbin/varnishd -n /data02/cachefile -f /home/varnish/vcl.conf -a 0.0.0.0:80 -s file,/data02/cachefile/cache.dat,500M -g www -u www -w 50,200,10 -T 127.0.0.1:1800 -p client_http11=on<br /><br />For more options about starting up varnishd, please refer to "varnishd --help".<br /><br /><strong>6. Starting varnishncsa<br /></strong># /home/varnish/bin/varnishncsa -n /data02/cachefile -w /data02/cachelog/varnish.log &amp;<br /><br /><strong>7. Checking Varnish status<br /></strong># /home/varnish/bin/varnishstat<br />This command&nbsp;will show you the current Varnish status, such as cache hints, cache misses etc, they're useful for health check.<br /><br /><strong>Verification<br /></strong>We can use curl to check the HTTP header information:<br /><br /># curl --head <a href="http://www.isoracle.com/">http://www.isoracle.com/</a><br />HTTP/1.1 200 OK<br />Server: isoracle/Stable 1 (Unix) PHP/5.2.0<br />Last-Modified: Sat, 12 Jul 2008 21:54:39 GMT<br />ETag: "96347-cc05-4879281f"<br />Content-Type: text/html<br />Content-Length: 52229<br />Date: Sun, 13 Jul 2008 01:36:12 GMT<br /><strong><em>X-Varnish: 1652882410 1652882077<br /></em></strong>Age: 8877<br /><strong><em>Via: 1.1 varnish<br /></em></strong>Connection: keep-alive<br /><br />We can see that Varnish works now.<br /><br />Finally, you need change your DNS record to point the web server IP to cache server IP to let the requests hint the cache server.<br /><br /><br /></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p></span>]]>
        
    </content>
</entry>

<entry>
    <title>How to define table name or column name which contains &apos;SPACE&apos; in MySQL?</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/06/how-to-define-table-name-or-co.html" />
    <id>tag:www.isoracle.com,2008://1.28</id>

    <published>2008-06-28T11:27:15Z</published>
    <updated>2008-07-04T15:53:40Z</updated>

    <summary>To be honest, as an Oracle DBA, I&apos;m not very familar with some of the MySQL SQL syntax, there have some difference between Oracle and MySQL.Here, I wanna create a table in MySQL, the table name like &quot;Test Table&quot;, and...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="MySQL" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="mysql" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p>To be honest, as an Oracle DBA, I'm not very familar with some of the MySQL SQL syntax, there have some difference between Oracle and MySQL.<br /><br />Here, I wanna create a table in MySQL, the table name like "Test Table", and one of the column name like "First Name", when I try to create this table, it returns the following error:</p>
<p class="MsoPlainText"><font face="Courier New" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'">mysql&gt; create table "Test Table2" (id int, "First Name" varchar(200));<o:p></o:p></span></font></p>
<p class="MsoPlainText"><font face="Courier New" size="1"><span lang="EN-US" style="FONT-SIZE: 9pt; FONT-FAMILY: 'Courier New'">ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '"Test Table2" (id int, "First Name" varchar(200))' at line 1<o:p></o:p></span></font><br /><br />I created this MySQL database by following the normal procedure.<br /><br />How to fix the problem?<br /><br />1. You can use <strong>`</strong> (backquote) to include the talbe name and column name, like:<br />create table `Test Table2` (id int, `First Name` varchar(200));</p>
<p class="MsoPlainText">2. Set global 'sql_mode=ANSI_QUOTES'<br /><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">mysql&gt; set global sql_mode=ANSI_QUOTES;<br /><br /><strong>Comments:</strong> This is more similar with 'alter system set ...' in Oracle, once you set this parameter, it will take effect immediately, it will be valid until you restart your MySQL.<br /></span><br />3. Modify the my.cnf configuration file, add the following entry in [mysqld] section, and then restart MySQL to take effect.<br /><strong>sql_mode = ANSI_QUOTES<br /><br /></strong>4. Add the option when you start MySQL<br />mysqld_safe --user=mysql <strong>--sql-mode=ANSI_QUOTES </strong>&amp;<br /></p>
<p class="MsoPlainText"><br />I prefer the&nbsp;third solution.<br /></p>]]>
        
    </content>
</entry>

<entry>
    <title>Sun own story of moving to T2000</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/05/sun-own-story-of-moving-to-t20.html" />
    <id>tag:www.isoracle.com,2008://1.25</id>

    <published>2008-05-27T02:15:48Z</published>
    <updated>2008-05-27T02:17:52Z</updated>

    <summary>FYI: http://www.sun.com/blueprints/1205/819-5148.pdf...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Site Architecture" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="sun" label="sun" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="t2000" label="T2000" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p>FYI:</p>
<p><a href="http://www.sun.com/blueprints/1205/819-5148.pdf">http://www.sun.com/blueprints/1205/819-5148.pdf</a></p>]]>
        
    </content>
</entry>

<entry>
    <title>Installing Memcached</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/04/installing-memcached.html" />
    <id>tag:www.isoracle.com,2008://1.23</id>

    <published>2008-04-26T18:00:40Z</published>
    <updated>2008-04-26T21:02:55Z</updated>

    <summary>Memcached is a great caching application which is widely used in many web 2.0 site, such as LiveJournal, Facebook, Sourceforge etc. I&apos;m also very interest in this software, so first step, let&apos;s try to install and use it. For more...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Cache System" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="linux" label="linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="memcached" label="memcached" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p>Memcached is a great caching application which is widely used in many web 2.0 site, such as <a href="http://www.livejournal.com/">LiveJournal</a>, <a href="http://www.facebook.com/">Facebook</a>, <a href="http://sourceforge.net/">Sourceforge</a> etc. I'm also very interest in this software, so first step, let's try to install and use it. For more information about Memcached, please refer to <a href="http://danga.com/memcached/">http://danga.com/memcached/</a></p>
<p>Here, I'd like show you how to install Memcached on RedHat Advanced Server Update 6.</p>
<p><strong>Dependencies</strong></p>
<ul>
<li>libevent, <a href="http://www.monkey.org/~provos/libevent/">http://www.monkey.org/~provos/libevent/</a></li>
<li>Linux kernel 2.6, we need a kernel with epoll.</li></ul>
<p><br /><strong>Installation:</strong></p>
<ul>
<li>libevent</li></ul>
<p>./configure --prefix=/usr<br />make &amp;&amp; make install</p>
<ul>
<li>memcached</li></ul>
<p>There have many configuration options to use when you configure memcached, all the support options are available from:<br />./configure --help<br /><br />./configure --prefix=/home/memcached --with-libevent=/usr<br />make &amp;&amp; make install</p>
<p><strong>Starting memcached<br /></strong>/home/memcached/bin/memcached -d -m 100 -l 192.168.1.136 -p 11211 -u nobody<br /><br />-d: run as daemon<br />-m: how many memory in size of MB to allocate to memcached<br />-l: the listen on address which running the memcached<br />-p: the port allocate for memcached<br />-u: the user which running memcached daemon</p>
<p>After starting memcached daemon, we can use 'netstat' to verify the port 11211 is opened.<br />#netstat -an<br /><span style="FONT-SIZE: 8pt; FONT-FAMILY: 'Courier New'"><font color="#000000">Active Internet connections (servers and established)<br />Proto Recv-Q Send-Q Local Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Foreign Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State<br />tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.136:11211&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN<o:p></o:p></font></span></p>
<p><strong>Some&nbsp;simple Perl scripts to test memcached</strong></p>
<p>We have installed and run the memcached on 192.168.1.136, next step, I'll&nbsp;do some&nbsp;tests on another box 192.168.1.137 to push/pull the data from 192.168.1.136.<br /><br />Before run the Perl testing scripts, we need install 'Cache::Memcached' module, find it from cpan. Then let's run the following two scripts on the client 192.168.1.137.<br /><br /><strong>1. Pushing the&nbsp;data to memcached<br /></strong><u><em>Name: push_mem.pl<br /><br /></em></u>#!/usr/bin/perl<br />use Cache::Memcached;<br />my $memd = new Cache::Memcached {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'servers' =&gt; [ "192.168.1.136:11211"],<br />&nbsp;&nbsp;&nbsp; };<br /><br /># Set a value<br />$memd-&gt;set("my_key", "123");<br /><br />$memd-&gt;disconnect_all();<br />exit;</p>
<p><strong>2. Pulling the data from memcached<br /></strong><u><em>Name: print_mem.pl<br /><br /></em></u>#!/usr/bin/perl<br />use Cache::Memcached;<br />my $memd = new Cache::Memcached {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'servers' =&gt; [ "192.168.1.136:11211"],<br />&nbsp;&nbsp;&nbsp; };<br />my $val = $memd-&gt;get( "my_key" );<br />if ( $val )<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp; print "Value is '$val'\n";<br />}<br /><br />$memd-&gt;disconnect_all();<br />exit;</p>
<p>Result: Value is '123'<br /></p>
<p>Ok, we can see that the value '123' was stored in memcached when I run the 'push_mem.pl' for the first time, and then we get the same value from memcached when I run 'print_mem.pl'.<br /><br />Here, I only show you the the simplest examples on how to use memcached, but in a production environment, that will be more complex.</p>
<p><strong>Tips:<br /></strong>We can telnet memcached with port 11211 to check the memcached status, it will be helpful for troubleshooting.<br /><br />[root@web1 scripts]# telnet 192.168.1.136 11211<br />Trying 192.168.1.136...<br />Connected to web1.isoracle.com (192.168.1.136).<br />Escape character is '^]'.<br /><em><u>input command: stats<br /></u></em>STAT pid 23810<br />STAT uptime 622<br />STAT time 1209240944<br />STAT version 1.2.5<br />STAT pointer_size 32<br />STAT rusage_user 0.000999<br />STAT rusage_system 0.061990<br />STAT curr_items 1<br />STAT total_items 1<br />STAT bytes 58<br />STAT curr_connections 2<br />STAT total_connections 5<br />STAT connection_structures 3<br />STAT cmd_get 1<br />STAT cmd_set 1<br />STAT get_hits 1<br />STAT get_misses 0<br />STAT evictions 0<br />STAT bytes_read 43<br />STAT bytes_written 36<br />STAT limit_maxbytes 104857600<br />STAT threads 1<br />END<br /><br />And we can calculate the hint rate, the hint rate= get_hits/ cmd_get</p>]]>
        
    </content>
</entry>

<entry>
    <title>Key points about building a mail system with high scalability,manageability and performance</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/04/key-points-about-building-a-ma.html" />
    <id>tag:www.isoracle.com,2008://1.19</id>

    <published>2008-04-09T14:02:34Z</published>
    <updated>2008-04-09T14:38:30Z</updated>

    <summary>In this article, I don&apos;t wanna talk more details about how to build a mail system step by step, you may get lots of configuration documents about the popular MTA such as Sendmail, Postfix and qmail etc from Google. I...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Mail System" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Site Architecture" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="highscalability" label="high scalability" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="mailsystem" label="mail system" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="sitearchitecture" label="site architecture" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<div>In this article, I don't wanna talk more details about how to build a mail system step by step, you may get lots of configuration documents about the popular MTA such as <a href="http://www.sendmail.org/">Sendmail</a>, <a href="http://www.postfix.org/">Postfix</a> and <a href="http://cr.yp.to/qmail.html">qmail</a> etc from Google.</div>
<div><br /></div>
<div>I was once a mail system engineer to maintain a commercial mail system which sent out &gt;100 million mails/day, here the number is just the site mail, not including the campaign email, campaign mail will be even more usually. So here, I'd like share with you some of my experiences about how to build a mail system with high scalability, manageability and performance.</div>
<div><br /></div>
<div><strong>1. Split</strong></div>
<div>Most of the MTA has it's own internal policy to keep sending the mails which get the soft bounce(4xx) for a few days, the soft bounce error may due to the network latency or the other reasons, so the mail queue in a single box may become larger and larger, hence, this will cause the delay for sending the 'good mail' (the mails which can be delivered successfully in one time). You know, the site mail is critical and important for the business, they need to be delivered to end users timely.</div>
<div><br /></div>
<div>How to resolve this issue? The answer is split. </div>
<div>&nbsp;</div>
<div>Here I'd like introduce the concept of '<strong>fallback</strong>', what does it mean? It means if the mail in the primary server is not delivered successfully for the first time, then it will be transferred to the fallback mail server for delivering, the benefit is the mail queue on the primary server will not get too high, so the 'good mail' can be delivered to end users timely, also this will reduce the primary mail server load. </div>
<div>&nbsp;</div>
<div>Currently, most of the MTA supports this feature, you can check the MTA offical document to get more details. From my point of view, it's not difficult&nbsp;to implement the fallback feature on the current mail system, you don't need change a lot.</div>
<div>&nbsp;</div>
<div><strong>2. Load balance</strong></div>
<div>For a commercial mail system, one or two servers are hard to handle the huge number of mails effectively, so usually, we should consider to&nbsp;use load balance to separate them into&nbsp;each&nbsp;single&nbsp;mail server.</div>
<div>&nbsp;</div>
<div>For example, assumeing&nbsp;I have&nbsp;50&nbsp;powerful servers which act as the primary mail servers, &nbsp;and 40 common servers for the&nbsp;fallback pool, we can setup two VIP domain names: <u>mx.vip.isoracle.com </u>and <u>fallback.vip.isoracle.com</u> for 'primary' and 'fallback' pools, then we can configure load balance(i.e. F5) to distribute the mails to mx.vip.isoracle.com or fallback.vip.isoracle.com pool for mail delivering. </div>
<div>&nbsp;</div>
<div>By this way, without any downtime and impcat to the&nbsp;end users, we can easily add more and more servers into the current 'primary' or 'fallback' pool&nbsp;or remove them out from current pool when there have single node issue,&nbsp;the only one thing we need to do is add/remove the entries in the load balance or DNS server, so overall,&nbsp;the system&nbsp;scalability can be greatly improved.</div>
<div>&nbsp;</div>
<div>If you don't have budget to buy hardware load balance such as&nbsp;F5 or NetScaler, <a href="http://nginx.net/">Nginx</a> or DNS <em>lookup round robin</em> is another choice.</div>
<div>&nbsp;</div>
<div><strong>3. OS and Storage</strong></div>
<div>This is a common topic, I just want to emphasis that we'd better use high I/O performance storage&nbsp;to store the mail queue. SCSI hard disk is preferred, it occupies less CPU resource.</div>
<div>&nbsp;</div>
<div>BTW, if we use SSD (Solid-stat Disk) to store mail queue, will the I/O performance be greatly&nbsp;improved? ^^</div>
<div>&nbsp;</div>
<div>For the operating system, I think Linux is good enough. Also, I heared about that the last released FreeBSD 7.0&nbsp;performance is perfect,&nbsp;but still need more&nbsp;tests to confirm.&nbsp;</div>
<div>&nbsp;</div>
<div><strong>3. Monitoring</strong></div>
<div>For any mail system, I think monitoring is very very&nbsp;important.</div>
<div>&nbsp;</div>
<div>Basically, we need keep close eyes on the following items:</div>
<ul>
<li>Mail queue per single host</li>
<li>CPU, Memory and Load, especially the load and CPU</li>
<li>Storage usage info, especially for the volume which stores the mail queue</li></ul>
<p>&nbsp;</p>
<p><strong>4. Troubleshooting and Reporting<br /></strong>You know, as a mail system engineer, we often face many kinds of mail system issue,&nbsp;and usually, we need check the mail log to see what happened, how to&nbsp;get the useful infomation&nbsp; from the huge mail system log timely for troubleshooting?</p>
<div>I&nbsp;developed a troubleshooting and reporting system when I worked&nbsp;on the mail system, it will pull all the raw&nbsp;mai log from each mail servers to a center mail log server, and some Perl/Shell&nbsp;scripts&nbsp;will&nbsp;analyze and process the huge mail log hourly, at last, the useful data including the sender, receiver, queue id, send time, relay IP, receiver IP, DSN and detailed error log&nbsp;etc will all be stored into Oracle database for analysis. And I also wrote another cgi web page, you just only need input the issue time range and the receiver email address, then you can easily get all the detailed error log from this web page, to be honest, this tool greatly help me during the mail issue troubleshooting.</div>
<div>&nbsp;</div>
<div>Since we have the mail log information stored in the database, then we can also easliy write tool to generate the charts to show many key metrics, such as delivery rate, soft bounce#, hard bounce# etc. RRDTool is a good choice to store and generate the charts, I like it very much.</div>
<div>&nbsp;</div>
<div>You know, mail system is very complex, so this topic cannot touch each area of a mail system, please provide your comments/feedback if there is any.</div>
<div>&nbsp;</div>]]>
        
    </content>
</entry>

<entry>
    <title>More NFS file system mouting options are required to store Oracle 10g redo and archived log</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/03/nfs-file-system-mouting-option.html" />
    <id>tag:www.isoracle.com,2008://1.16</id>

    <published>2008-03-19T04:59:03Z</published>
    <updated>2008-04-09T14:29:25Z</updated>

    <summary>I have a DB which stores the archived logs in NFS file system, it&apos;s running Oracle 9i and mainly used for Logminer auditing. Due to the business requirement, I upgraded it to 10g, after that, when I run the Logminer...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Oracle" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="nfs" label="nfs" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ora27054" label="ORA-27054" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p>I have a DB which stores the archived logs in NFS file system, it's running Oracle 9i and mainly used for Logminer auditing.</p>
<p>Due to the business requirement, I upgraded it to 10g, after that, when I run the Logminer to process the archived log, I got the following errors:</p>
<p>ERROR at line 1:<br />ORA-01284: file /path/to/arc/100.arc cannot be opened<br />ORA-00308: cannot open archived log '/path/to/arc/100.arc'<br /><u><em>ORA-27054: NFS file system where the file is created or resides is not mounted with correct options<br /></em></u>Additional information: 2<br />ORA-06512: at "SYS.DBMS_LOGMNR", line 68<br />ORA-06512: at line 1</p>
<p><strong>Explanation about ORA-27054:</strong></p>
<p>27054, 00000, "NFS file system where the file is created or resides is not mounted with correct options"<br />// *Cause:The file was on an NFS partition and either reading the mount tab<br />// file failed or the partition wass not mounted with the correct<br />// mount option.<br />// *Action: Make sure mount tab file has read access for Oracle user and<br />// the NFS partition where the file resides is mounted correctly.<br />// For the list of mount options to use refer to your platform<br />// specific documentation</p>
<p><br /></p>
<p><strong>Solutions from Metalink:</strong></p>
<p>1. Umount the NFS file system and remount it with the following options:<br />rw,hard,bg,proto=tcp,suid,rsize=32768,wsize=32768,noac</p>
<p>2. Apply patch 5146667.</p>
<p>In my this case, I tried the option 1 to fix the problem.</p>]]>
        
    </content>
</entry>

<entry>
    <title>Sun to buy MySQL for $1billion</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/01/sun-to-buy-mysql-for-1billion.html" />
    <id>tag:www.isoracle.com,2008://1.15</id>

    <published>2008-01-17T02:27:46Z</published>
    <updated>2008-04-02T05:08:06Z</updated>

    <summary>I just hear about this news from Yahoo news, MySQL acts as an important role in LAMP, it&apos;s widely used in web2.0 site, let&apos;s see what&apos;s the next step of Sun-MySQL.BTW, Oracle also buy BEA (products: weblogic and Tuxedo)...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="MySQL" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mysql" label="mysql" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[I just hear about this news from <a href="http://news.yahoo.com/s/ap/20080116/ap_on_hi_te/sun_mysql;_ylt=AunFQCQCFf3P0sa9q7ahxXdU.3QA">Yahoo news</a>, <a href="http://www.mysql.com/">MySQL</a> acts as an important role in LAMP, it's widely used in web2.0 site, let's see what's the next step of Sun-MySQL.<br /><br />BTW, Oracle also buy BEA (products: weblogic and Tuxedo)<br />]]>
        
    </content>
</entry>

<entry>
    <title>Installing RedHat Advanced Server 4 Update5 on Dell 2950</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/01/installing-redhat-advanced-ser.html" />
    <id>tag:www.isoracle.com,2008://1.14</id>

    <published>2008-01-14T11:17:49Z</published>
    <updated>2008-04-02T14:15:11Z</updated>

    <summary>Dell 2950 server combines PERC5 Raid controller which needs the last Linux kernel to identify the raid controller driver. At the first time, I try to install RedHat Advanced Server 4 Update2 x86_64 on this server, but this version cannot...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Operating System" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dell2950" label="dell 2950" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="linux" label="linux" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="raid" label="raid" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="rhel" label="RHEL" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[Dell 2950 server combines PERC5 Raid controller which needs the last Linux kernel to identify the raid controller driver. At the first time, I try to install RedHat Advanced Server 4 Update2 x86_64 on this server, but this version cannot identify the raid driver of PERC5.<br /><br />Finally, from Dell tech support,&nbsp;I get to know that&nbsp;only RHEL 4 Update 5 or RHEL 5&nbsp;can be installed on Dell 2950. So, if you also need install RedHat RHEL on Dell 2950, please try RHEL 4 Update 5 or RHEL 5 version.]]>
        
    </content>
</entry>

<entry>
    <title>Migrated to Movable Type</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/01/migrated-to-movable-type.html" />
    <id>tag:www.isoracle.com,2008://1.13</id>

    <published>2008-01-13T16:56:16Z</published>
    <updated>2008-04-02T05:08:06Z</updated>

    <summary><![CDATA[I used Word Press as my personal blog application before, for my server&nbsp;was not powerful enough, I decided to migrate it to Movable Type. Movable Type will generate the static html pages when you finish a entry, except the search...]]></summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Applications" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="mt" label="mt" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="wordpress" label="word press" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[I used Word Press as my personal blog application before, for my server&nbsp;was not powerful enough, I decided to migrate it to Movable Type. Movable Type will generate the static html pages when you finish a entry, except the search and comment functions, so over all, I think the page viewing speed should be faster than Word Press.]]>
        
    </content>
</entry>

<entry>
    <title>Veritas -How to add a new dg(disk group) and Volume</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/01/veritas-how-to-add-a-new-dgdis.html" />
    <id>tag:www.isoracle.com,2008://1.12</id>

    <published>2008-01-07T16:26:57Z</published>
    <updated>2008-07-14T16:07:59Z</updated>

    <summary><![CDATA[* Assuming you have Veritas software installed on your platform correctly.*I performed the following operations on Sun Fire V480 (Solaris10 Sparc) with Sun T3 storage.Checking the current vxfs information#df -k#format &lt;/dev/null -- show detailed all disks info#vxprint -ht#vxdg list#vxdisk list...]]></summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Storage" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="dg" label="dg" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="veritas" label="veritas" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p><em>* Assuming you have Veritas software installed on your platform correctly.*<br /><br /></em>I performed the following operations on Sun Fire V480 (Solaris10 Sparc) with Sun T3 storage.<br /><br /><strong>Checking the current vxfs information<br /></strong>#df -k<br />#format &lt;/dev/null -- show detailed all disks info<br />#vxprint -ht<br />#vxdg list<br />#vxdisk list</p>
<p><strong>Using 'vxdiskadm' to create a new dg<br /></strong>#vxdiskadm<br />Enter the disk name:cxxdxxtxx<br />Enter the disk group name: namedg<br />Next...</p>
<p><strong>Verifying if the dg has been created<br /></strong>#vxdg list<br />#vxprint -ht<br />#vxdisk list</p>
<p><strong>Creating a new volume<br /></strong>#vxassist -g YOUR_DG make VOLUME_NAME SIZE<br />Example: #vxassist -g SITE2dg make archive 10g</p>
<p><strong>Verifying the new volume<br /></strong>#vxprint -ht</p>
<p><strong>Creating the vxfs file system<br /></strong>#mkfs -F vxfs -o bsize=2048 /dev/vx/rdsk/YOUR_DG/VOLUME_NAME<br />Example: #mkfs -F vxfs -o bsize=2048 /dev/vx/rdsk/SITE2/archive</p>
<p><strong>Creating the destination folders<br /></strong>#mkdir /oracle/archive<br />#mkdir /oracle/data01<br />#mkdir /oracle/data02<br />#mkdir /oracle/data03<br />#mkdir /oracle/home<br />#mkdir /oracle/redo</p>
<p><strong>Editing the /etc/vfstab if you want to mount vxfs file system automatically when OS startup<br /></strong>An example of /etc/vfstab on Solaris 10 Sparc</p>
<p>#device device mount FS fsck mount mount<br />#to mount to fsck point type pass at boot options<br />#<br />fd - /dev/fd fd - no -<br />/proc - /proc proc - no -<br />/dev/dsk/c1t0d0s1 - - swap - no -<br />/dev/dsk/c1t0d0s0 /dev/rdsk/c1t0d0s0 / ufs 1 no -<br />/dev/dsk/c1t0d0s3 /dev/rdsk/c1t0d0s3 /var ufs 1 no -<br />/dev/dsk/c1t0d0s2 /dev/rdsk/c1t0d0s2 /export/home ufs 2 yes -<br />/devices - /devices devfs - no -<br />ctfs - /system/contract ctfs - no -<br />objfs - /system/object objfs - no -<br />swap - /tmp tmpfs - yes -</p>
<p>##################SITE_2#####################<br />#/dev/vx/dsk/SITE2dg/archive /dev/vx/rdsk/SITE2dg/archive /oracle/archive vxfs - yes rw,suid,largefiles,log<br />#/dev/vx/dsk/SITE2dg/home /dev/vx/rdsk/SITE2dg/home /oracle/home vxfs - yes rw,suid,largefiles,log<br />#/dev/vx/dsk/SITE2dg/redo /dev/vx/rdsk/SITE2dg/redo /oracle/redo vxfs - yes rw,suid,largefiles,log<br />#/dev/vx/dsk/SITE2dg/data01 /dev/vx/rdsk/SITE2dg/data01 /oracle/data01 vxfs - yes rw,suid,largefiles,log<br />#/dev/vx/dsk/SITE2dg/data02 /dev/vx/rdsk/SITE2dg/data02 /oracle/data02 vxfs - yes rw,suid,largefiles,log<br />#/dev/vx/dsk/SITE2dg/data03 /dev/vx/rdsk/SITE2dg/data03 /oracle/data03 vxfs - yes rw,suid,largefiles,log</p>
<p><b>A Shell script to </b><strong><b>mount the vxfs file system manually</b><br /></strong>#!/usr/bin/bash<br />mount -F vxfs /dev/vx/dsk/SITE2dg/archive /oracle/archive<br />mount -F vxfs /dev/vx/dsk/SITE2dg/data01 /oracle/data01<br />mount -F vxfs /dev/vx/dsk/SITE2dg/data02 /oracle/data02<br />mount -F vxfs /dev/vx/dsk/SITE2dg/data03 /oracle/data03<br />mount -F vxfs /dev/vx/dsk/SITE2dg/home /oracle/home<br />mount -F vxfs /dev/vx/dsk/SITE2dg/redo /oracle/redo<br /></p>]]>
        
    </content>
</entry>

<entry>
    <title>Running on FreeBSD 8.0 now!</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2008/01/running-on-freebsd-80-now.html" />
    <id>tag:www.isoracle.com,2008://1.11</id>

    <published>2008-01-07T16:11:23Z</published>
    <updated>2008-04-02T05:08:05Z</updated>

    <summary>Today, I upgraded my server from current FreeBSD 6.2 to 8.0, I&apos;m looking forward to the new features and high performance of this new version! [root@www ~]# uname -aFreeBSD www.isoracle.com 8.0-CURRENT FreeBSD 8.0-CURRENT #1: Mon Jan? 7 01:05:43 CST 2008????...</summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Operating System" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="freebsd" label="freebsd" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p>Today, I upgraded my server from current FreeBSD 6.2 to 8.0, I'm looking forward to the new features and high performance of this new version! </p>
<p>[root@www ~]# uname -a</p><p>FreeBSD www.isoracle.com 8.0-CURRENT FreeBSD 8.0-CURRENT #1: Mon Jan? 7 01:05:43 CST 2008???? root@www.isoracle.com:/usr/obj/usr/src/sys/GENERIC? i386</p>]]>
        
    </content>
</entry>

<entry>
    <title>Microsoft.com site architecture in brief</title>
    <link rel="alternate" type="text/html" href="http://www.isoracle.com/2007/12/microsoftcom-architecture-in-b.html" />
    <id>tag:www.isoracle.com,2007://1.10</id>

    <published>2007-12-14T11:32:38Z</published>
    <updated>2008-04-02T05:08:05Z</updated>

    <summary><![CDATA[Note:The following contents are from internet, just FYI. If you’ve ever wondered how microsoft.com uses our technology then read on.&nbsp; I recently came across some good information from the folks over at the Operations team at Microsoft.com.&nbsp; The thread basically...]]></summary>
    <author>
        <name>Joe </name>
        <uri>http://www.isoracle.com</uri>
    </author>
    
        <category term="Site Architecture" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="microsoftarchitecture" label="microsoft architecture" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en-US" xml:base="http://www.isoracle.com/">
        <![CDATA[<p><strong>Note:<br /></strong>The following contents are from internet, just FYI.</p>
<p>If you’ve ever wondered how microsoft.com uses our technology then read on.&nbsp; I recently came across some good information from the folks over at the Operations team at Microsoft.com.&nbsp; The thread basically talks about how we use IIS, Firewalls and Windows Server 2008.&nbsp; I think as we come up to launch next year it’s a really good and quick insight into what they do and how they do it.&nbsp; So enjoy the reading and let me know what you think..Pretend I’ve asked about how they protect our sites…</p>
<p>1) We don’t handle HBI data so we don’t have the need for external logging capabilities.&nbsp; If&nbsp; we did handle HBI, we’d have firewalls.</p>
<p>2) We have ~650GB/day of IIS logs just for <a href="http://www.microsoft.com">www.microsoft.com</a> and update.microsoft.com (not including the 6GB/hour for each download server).&nbsp; Just IIS logs are a challenge without trying to parse another ~650GB of firewall logs. </p>
<p>3) 5+ years ago, there wasn’t a firewall solution that would scale to our needs and this forced us to focus on network, host, and application security.&nbsp; Based on the success of that work, we’ve not looked further at firewalls even though there are solutions that I believe (haven’t tested) would handled the traffic load (our non-download based web traffic alone can be in the 8-9 Gbps range and ~30 total for internal hosted traffic).</p>
<p>4) We also used NLB for load balancing exclusively up until July 2006 and the micro segmentation of networks required by that solution made firewalls an expensive and very complex solution.&nbsp; Again, especially at the scalability that used to be available.</p>
<p>5) Application security is critical since a firewall is likely going to allow traffic on the correct port and protocol through to the web servers so IIS/ASP.NET/Applications must deal with these requests gracefully.&nbsp; I realize there are other options/features of firewalls/IPS that provide other options.</p>
<p>In terms of how we protect the sites, we utilize (starting at the outside edge of the network and working in):<br />1) Cisco Guards for DoS detection and automated response</p>
<p>2) Router ACLs are in place to block unnecessary ports</p>
<p>3) NetScalers for <a href="http://www.microsoft.com">www.microsoft.com</a> and MSDN/TechNet (NLB still for update.microsoft.com) and those also provide DoS protection inherently as well as providing a few other knobs we can turn when required.</p>
<p>4) Windows and IIS…rock solid and secure!&nbsp; <a href="http://www.microsoft.com">www.microsoft.com</a> is on Windows Server 2008/IIS7, MSDN/TechNet are migrating to Win2k8/IIS7, and update.microsoft.com is on Windows Server 2003/IIS6.&nbsp; We do all the normal shut-off-unused-services practices that line up with MS published security guidance and we utilize GFS images to ensure standardized builds of systems.</p>
<p>5) Automated Netmon/Perfmon captures for attack analysis on NLB systems when SYN floods occur (event trigger).&nbsp; We’ve not yet done this for NetScaler systems, but we are noodling on how in our copious spare time :).</p>
<p>6) We do run AV on our servers when we can.&nbsp; At times product adoption means we don’t install it, but we do normally run AV.</p>
<p>7) Application security as mentioned.&nbsp; ACE is very good resource for this aspect.&nbsp; ACE is an internal team that does threat modelling for applications.</p>
<p>-EOF-<br /></p>]]>
        
    </content>
</entry>

</feed>
