<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-544159655393583565</id><updated>2012-02-16T07:56:24.094-05:00</updated><category term='install'/><category term='storage management'/><category term='forum tips'/><category term='11gR2'/><category term='Oracle Grid Infrastructure'/><category term='Oracle APEX upgrade XE'/><category term='OUI'/><category term='administration'/><category term='CentOS'/><category term='ACFS'/><category term='DBA'/><category term='Unsupported'/><category term='11gR2 XE EarlyAdopter'/><category term='core skills'/><category term='ASM'/><category term='ASMCMD'/><title type='text'>Brian Bontrager's Database Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-4748053791245105633</id><published>2011-09-01T22:20:00.004-04:00</published><updated>2011-09-01T23:44:00.474-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='forum tips'/><title type='text'>Successful Forum Participation</title><content type='html'>I've had the opportunity recently to spend a bit of time on the Oracle discussion forums at forums.oracle.com. I registered early in my career and followed a few discussions, then fell away from the forums for several years.&lt;br /&gt;&lt;br /&gt;As my career progressed I began to have more specific technical questions, and I turned to asktom.oracle.com for many of them. I love Tom Kyte's straightforwad, scientific, and matter-of-fact approach, with a bit of humor sprinkled in now and then. I learned a lot about my own technical needs, and learned a lot about Oracle in general. But I also began to develop a fascination with discussion group behavior, as well as a desire to share my knowledge similar to how Tom shares his. &lt;br /&gt;&lt;br /&gt;That got me interested in participating more closely in the Oracle Technology Network (OTN) forums. I've been reading or contributing there, as time allows, for a little over a year now. It is not the first discussion forum I have participated in and won't be the last. I have learned a lot of technical knowledge, but I have also learned a lot about success on the forums. I'm sharing here my observations and tips for rewarding forum participation. &lt;br /&gt;&lt;br /&gt;Each of these tips will have two sides - I'll call them the seeker and the helper. The seeker is the person who comes to the forum with a need or a question. They may be looking for help with a specific problem, or they may be simply expanding their knowledge. The helper is the person who responds to the seeker and shares their personal knowledge and experience.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip One: Read the Stickies.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seeker/Helper&lt;br /&gt;Every forum has its expectations of behavior (etiquette) and its most frequently asked questions. Theses are often posted nead the top of a topic or category in the form of "sticky" threads. Read these. They give you a great idea up front of acceptable and expected behavior in the forum, and are the first step to success.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Two: Hang Out for a Bit.&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Seeker: Before jumping in with your question, browse and search the forums. The question you came to post may already be answered. As you browse you will see threads where questions get answered quickly and thoroughly, as well as threads that never seem to get the answers the original poster (OP) seeks. You will begin to see patterns of effective questions and supporting information that is helpful to include. You will also start to observe the most common helpers who respond, and get a sense for their knowledgeable and reliability. You will probably also get a glimpse at who the "troublemakers" are.&lt;br /&gt;&lt;br /&gt;Helper: Before jumping in with your wisom, also browse the forums. Like the seeker, look for patterns of frequent posters who provide answers. Look for common frustrations among the veterans - they are likely to be vocal about them. Become familiar with the level of detail most often provided in answers and also how veterans redirect posters to existing documentation, posts, or different topic categories.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Three: Everyone is Learning&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seeker: You are on the forum to get help with a specific problem you are facing. Come expecting to learn. Expect a mix of answers that are sometimes helpful and sometimes completely off-base. Many of the people replying to you are learning also; if not technical skills, they may be learning the norms of the forum, or how to communicate effectively in a discussion forum. Trust but verify the answers you receive. Trust that people have the best intentions of helping, but check their responses as you put their help to use. For technical questions this is rather easy, since you have a program or a system where you can test their solution. For more theoretical questions you may not be able to directly test an answer, but you can check the answer you receive against documentation or other posters.&lt;br /&gt;&lt;br /&gt;Helper: You are more often the teacher than the learner in the forum, but there are still opportunities to learn yourself. Not only seekers, but other helpers are learning and you may find the need to correct someone else's response. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Four: Forum Levels and Points&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Many forums have a point system for identifying the experience level of members of the forum. Different forums have different variations, but a few concepts apply regardless of the system.&lt;br /&gt;&lt;br /&gt;Seeker: If the forum gives you the ooportunity to provide feedback on whether your question was answered, and who helped you, take advantage of it. Those who help you appreciate knowing they helped, and it often helps the forum run smoothly, since people can clearly tell which questions have been answered.&lt;br /&gt;&lt;br /&gt;Helper: Don't get hung up on the point system. Someone with a low level of reward points may be extremely knowledgeable but have little time to spend on the forums, so they never get very high. Others may have high levels simply because of their time on the forums and large number of posts (opportunities to be helpful), but have just as many condescending and unhelpful posts as they do helpful. If a seeker chooses not to flag your answer as "helpful", don't feel like you have to beg them to do so.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Five: Respect Other Forum Members&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seeker/Helper: Be professional. Be courteous. Treat other posters the same as you would treat them face to face. Keep in mind that many forums have visitors from many cultures and language levels. Wording you are not used to may simply be an anomoly in translation, or reflect a common phrase than exists in your own culture.&lt;br /&gt;&lt;br /&gt;Seeker: The people helping you are most often volunteers. Don't expect the forum to be a paid and staffed support line, ready to jump on your question. Patience shows respect for others time. Prepare your post with information commonly provided with new questions (see Tips 1 and 2). In the case of the Oracle forums, this often includes version numbers, sample code, specific error messages, and/or an example of what you have already tried. Other forums will have their own norms, of course. &lt;br /&gt;&lt;br /&gt;Helper: You likely started on the forum as a seeker yourself, focus on help with courteous redirection where necessary. There is no need to belittle seekers or other helpers. Threads that fall into bitter disputes or virtual shouting matches don't serve the forum, the original poster, or yourself. It's just not worth the trouble.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Six: Formatting&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seeker/Helper: Many forums today provide the ability to tag text for different formatting. Take advantage of this to make your questions and repsonses more clear. If a code formatting tag is provided, use that any time you need to post sample code or data, where column alignment is helpful. Most browsers' default font uses variable-length characters, so text that lines up on your screen may not on someone else's. Other tags for quoting portions of other's posts that you respond to are helpful in preserving the context of replies. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Seven: The Value of Examples &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In a technical forum, examples are often an effective form of communication.&lt;br /&gt;&lt;br /&gt;Seeker: When possible, provide simple examples that a helper can copy and paste into their system to reproduce your test case. Ideally a copy-and-paste from a session where you tried to solve the problem yourself is best. This shows you have already tried to answer your own question and you are not seeking someone to do your work for you.&lt;br /&gt;&lt;br /&gt;Helper: When responding, test cases and examples can as helpful as the seeker providing a test case to you. Balance this with norms of the forum. If a prior thread, or some documentation already has a suitable example to repsond to a seeker, take advantage of that and provide a link. If you are providing an example from memory alone, set that expectation (such as "this is not tested"). If you had to make any assumptions, make those clear. ("I ran this on version 10.2.0.4")&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tip Eight: Give Back to the Forum&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Seekers: Contribute back to the forum as you have gained from it. Answer questions on posts that fit within your experience. You don't have to be an expert on everything to answer a simple documentation question, for example. You may soon find yourself among those you originally considered the experts.&lt;br /&gt;&lt;br /&gt;Helpers: Your knowledge is what makes the forum valuable. Offer it freely and as often as you see fit, but don't burn yourself out. If you are a very frequent poster "giving back" for you may sometimes mean "sitting back" and not responding to questions you could easily answer, giving newer participants a chance to respond. Follow the threads and correct or redirect if someone is missing something or gies an outright incorrect response. This reduces the "burden" on you as a veterans and develops other's skills in replying, making a more valuable forum for all.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Wrap-Up &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Technical discussion forums are an excellent way for an information seeker to gain knowledge and get help on challenges. For the helper, it is an great way to keep your skills sharp on questions you may not come across every day in your "regular job", and maintain a broad exposure to the technical field. Courteous, professional participation can be very rewarding for both the seeker and the helper.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-4748053791245105633?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/4748053791245105633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2011/09/successful-forum-participation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/4748053791245105633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/4748053791245105633'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2011/09/successful-forum-participation.html' title='Successful Forum Participation'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-8102821734007897008</id><published>2011-06-11T11:38:00.011-04:00</published><updated>2011-06-11T21:18:25.491-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle APEX upgrade XE'/><title type='text'>APEX 4</title><content type='html'>I've been working on a small hobby application recently with Oracle XE and finally put an APEX front end on it.  I started with the default APEX that installed with 10g XE (Apex 2.2).  Knowing APEX 4 has nicer features I considered upgrading sooner, but didn't see the need for my project.&lt;br /&gt;&lt;br /&gt;The tipping point came when I tried to use make some changes using Firefox 4.  Most things worked fine, except when I tried to modify a PL/SQL package. In FF4, the text was in a red, uneditable text box instead of the usual text box. &lt;br /&gt;&lt;br /&gt;I exported my APEX schemas (FLOWS_020000 and FLOWS_FILES) as a precaution, then followed the APEX install/upgrade instructions found here: http://download.oracle.com/docs/cd/E17556_01/doc/install.40/e15513/otn_install.htm#BABHHIJB .  &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I was a little concerned with the documentation's description of the various components to think about when installing APEX (APEX listener, Oracle HTTP server, etc) but I expected the APEX install to figure out what I was running and take care of things since I was upgrading a functional, stock install on 10gXE.  That expectation proved mostly true.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Sidebar: I'm normally much more thorough about reading documentation before jumping into upgrades, and I like to understand what is changing before I change it.  In this case, APEX is promoted as something that is easy to use and doesn't take a lot of deep technical knowledge to manage, so I purposely read as little as possible to see how well that assertion held up.)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After downloading and unzipping files, the actual upgrade process took about 45 minutes on a desktop-class machine, running Windows 7 Enterprise and Oracle 10g XE.  The new APEX objects installed as expected into the schema APEX_040000, and my application was also upgraded without incident.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;Thank you for installing Oracle Application Express.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Oracle Application Express is installed in the APEX_040000 schema.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;The structure of the link to the Application Express administration services is &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;as follows:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http://host:port/pls/apex/apex_admin (Oracle HTTP Server with mod_plsql)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http://host:port/apex/apex_admin     (Oracle XML DB HTTP listener with the embed&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ded PL/SQL gateway)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;The structure of the link to the Application Express development interface is as &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;follows:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http://host:port/pls/apex (Oracle HTTP Server with mod_plsql)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;http://host:port/apex     (Oracle XML DB HTTP listener with the embedded PL/SQL &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;gateway)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After installation, application upgrades, and validation completed,  I had to update the image directory using  @apxldimg.sql C:\apex_4.0.2_en (because I was upgrading, not installing fresh) .  I ran this twice: the first time I specified a deeper path to APEX files (second-guessing the documentation) and it failed.  I re-ran with only the path to the directory I extracted files to (like the documentation said) and it worked.  Trust the documentation.  The image update took about 4 minutes.&lt;br /&gt;&lt;br /&gt;The documentation contains a lot of steps specific to Oracle 11g.  Since this is on 10g XE I skipped those altogether.  Maybe if I want to explore a REST API I will install the APEX listener, but that is a project for another time.&lt;br /&gt;&lt;br /&gt;I attempted to connect to the APEX administration site.  I was asked to change the admin password, and I found the new APEX has much stricter password rules than before (at least for the administrator - default settings for APEX users are less strict, but easily configurable). After changing the password I could access the administration page.  I saw several new panels and features to explore.  I reset the password for my main development workspace, and re-connected to APEX as that developer.&lt;br /&gt;&lt;br /&gt;Now that I was fully upgraded and ready to try things out, here's what I found...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;So the first test - did this solve the problem I was having?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yes.  The path to the database object browser changed a little, but once I found it I was able to edit the package spec using Firefox 4 .  In APEX 2.2 the Object Browser was on the home screen of the workspace.  In APEX 4 It is under Home&amp;gt;SQL Workshop&amp;gt;Object Browser&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Now the more important test - what changes did I observe in my application?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;When I built my application in APEX 2.2 I used APEX internal authentication, so the password for the application user (call it "XYZ") was not the same as the schema owner/APEX workspace user "XYZ".  After upgrading the IDs were merged and use the same password.  When I used the new password I entered the application fine.&lt;br /&gt;&lt;br /&gt;The look and features of my application continued to work as they always had.  I found no differences in my application itself.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Finally - what did I see that wasn't there before (new toys)?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Where to begin?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The new APEX Administration tab has an Activity Monitor and a Dashboard with metrics at the database, application, web server, and user levels.  There is a lot to explore here, and a lot that will be useful in monitoring a deployment (at least one larger than my hobby system).&lt;/li&gt;&lt;li&gt;The Manage Service tab has features for managing the system and application Meta Data and features to better support collaborative development.&lt;/li&gt;&lt;li&gt;The Team Development tab offers a host of project management features.  I'm eager to dive into this and use it as a development task list, project tracking, and other features.&lt;/li&gt;&lt;li&gt;The Application Builder adds a tab for Supporting Objects which generates application deployment and upgrade scripts.  This supports more structured deployments from a development server to test and production servers... much easier than APEX 2.2.&lt;/li&gt;&lt;li&gt;The SQL Workshop contains simpler (or at least more obvious to me) tools to import and export spreadsheet, text, and XML data.&lt;/li&gt;&lt;/ul&gt;These options only scratch the surface.&lt;br /&gt;&lt;br /&gt;Conclusion:  The upgrade was simple, but not automatic.  Follow the documentation.  It will save you from mistakes.  In my case I didn't worry about the APEX listener yet, but I may explore that in the future.&lt;br /&gt;&lt;br /&gt;The new tools and look are welcome improvements. I look forward to diving in with APEX 4.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-8102821734007897008?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/8102821734007897008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2011/06/apex-4.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/8102821734007897008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/8102821734007897008'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2011/06/apex-4.html' title='APEX 4'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-4293150343688584988</id><published>2011-04-10T15:49:00.024-04:00</published><updated>2011-04-10T20:00:26.769-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2 XE EarlyAdopter'/><title type='text'>Oracle XE 11g Early Adopter</title><content type='html'>&lt;p&gt;I was excited to see Oracle XE 11g has finally been released on OTN for early adopters. Loading it up, I was disappointed by a couple things right off the bat. I know, "early adopter" is a big red flag. (See update below. My disappointment is a result of my ready-fire-aim approach to trying XE 11g. Read the DOCS first and you won't be surprised).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;First off, I had to uninstall my 10g XE since I can only have one "OracleServiceXE" service. I can live with this one - I purposely wanted to deal with the default install. The real surprise here was that uninstalling XE also uninstalled my 10g XE DATA, not just the binaries. I made a cold backup copy before uninstalling, but still - uninstallers should KEEP the data files or at least warn me. Grr. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Second off, I saw the terms and conditions were the usual OTN terms, including "don't use this for internal data processing without a license" (paraphrased). I found that odd, since the 10g XE had its own language that states "OK for production use" (paraphrased again, I didn't look up the exact language for the sake of this post). &lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, 11g XE installed. (Still no notice of what the restrictions of the XE license are for 11g? Are they the same as 10g? More storage? Don't know, nothing in the download, install, or terms of service have enlightened me yet). Install is simple enough. I would have preferred an option to install clean or upgrade an existing 10g XE database, but this is an early adopter release, so I can live with that... I guess. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Command line sqlplus works... no surprise there... try SQL Developer. Surprise! SQL Developer is not working now. Why should that have changed? Now I have some investigation and troubleshooting to do. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;I'm at Collaborate 2011 this week, so maybe in some of the evening downtime I'll poke around and try to get everything working again. &lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;UPDATE: A quick search of the OTN Forums led me to &lt;a href="http://www.blogger.com/http://download.oracle.com/docs/cd/E17781_01/license.112/e18068/toc.htm"&gt;the fine documentation&lt;/a&gt; I did not bother looking up before. In it is the familiar language licensing 11g XE for "purposes of developing, prototyping and running your applications for your own internal data processing operations". &lt;/p&gt;&lt;br /&gt;&lt;p&gt;So, any relaxed (improved) restrictions? &lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Single instance per server (no change)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Only uses 1 CPU (no change)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Supports up to 11GB of user data (up from 4GB, that is a welcome increase)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;May use up to 1GM RAM (no change)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;How about features? Here are the quick standouts from perusing the list of what is NOT available (see the documentation for the full list):&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Pre-compilers and SQLJ&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Java support in the database&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Block Change tracking for incremental backup&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Flashback (in just about any form)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Online table redefinition and index rebuilds&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Tablespace point-in-time recovery&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Rolling upgrades&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Advanced Security&lt;/li&gt;&lt;br /&gt;&lt;li&gt;VPD / Label Security / DB Vault&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Secure External Password Store &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Client-side query, and other types of results caches&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Partitioning&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Transportable Tablespaces&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Streams&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Multimedia&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Spatial&lt;/li&gt;&lt;br /&gt;&lt;li&gt;ASM&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Resource Manager&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Besides the license and feature summary, the full 11g XE Documentation set is available at &lt;a href="http://download.oracle.com/docs/cd/E17781_01/nav/portal_booklist.htm"&gt;http://download.oracle.com/docs/cd/E17781_01/nav/portal_booklist.htm&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;In the README document, we find why SQL Developer stopped working. SQL Developer 3.0 must be used. This is a known issue and is stated that it will be fixed when 11g XE is no longer beta. In the meantime, I was thinking of moving to SQL Developer 3 anyway, since it is no longer in pre-release status.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-4293150343688584988?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/4293150343688584988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2011/04/oracle-xe-11g-early-adopter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/4293150343688584988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/4293150343688584988'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2011/04/oracle-xe-11g-early-adopter.html' title='Oracle XE 11g Early Adopter'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-2979037684127117224</id><published>2010-01-18T21:00:00.003-05:00</published><updated>2010-01-18T21:26:12.902-05:00</updated><title type='text'>Twists, Turns, Convergence</title><content type='html'>I decided to take a full-time opportunity a couple months ago, and it is has taken my career on an interesting, but unexpected turn.  One of my career goals has always been to continue learning, becoming more technologically well-rounded.  I try to balance this to avoid the adage "Jack of all trades, Master of none."  In college I studied a fairly broad software curriculum, yet I found an affinity for data management, and throughout my career that has been the focus.&lt;br /&gt;&lt;br /&gt;I had been expecting a career move to take me deeper into Oracle-specific technology, where I hoped to gain more technical skills in core database administration and new features.  As it turns out the opportunity that presented itself was not one of more depth in Oracle, but less - however it is adding breadth via exposure to Informix and DB2.&lt;br /&gt;&lt;br /&gt;Today I find myself needing to support Oracle at the application/schema level, but also needing to support DB2 at a similar level, and Informix from the installation on up.  At one point of my career I may have said "I'm an Oracle guy, no thanks".  Today I'm more of a "right tool for the job" guy, so I welcome the chance to learn the competing DB systems.&lt;br /&gt;&lt;br /&gt;In studying both DB2 and Informix, I find myself translating the concepts of each into the concepts I am familiar with from Oracle.  Sometimes I must be careful, such as when seeing the word "tablespace", which means different things in each RDBMS.  But overall I am finding conceptually they are more alike in operation than I exepected.   I am finding specific parts about each that I like, and other parts where I prefer Oracle's approach.  (Perhaps a "universal translator" cross-reference would be an interesting summary to put together and post here at a later date.)&lt;br /&gt;&lt;br /&gt;Professionally, I like where this is going.  I believe this experience is going to make me a better DBA overall, as I will get to know the differences and strengths of different vendor's database systems.  Down the road this could give me the ability to pick the most appropriate system for a specific project, or it could help me understand the "gotchas" to expect when migrating a system from one platform to another (for example, how are NULLs treated in a query in each system?).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-2979037684127117224?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/2979037684127117224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2010/01/twists-turns-convergence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/2979037684127117224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/2979037684127117224'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2010/01/twists-turns-convergence.html' title='Twists, Turns, Convergence'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-1666685120961216513</id><published>2009-09-22T20:37:00.019-04:00</published><updated>2009-09-23T02:01:46.427-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='OUI'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>Learning ASM: Installing a Database</title><content type='html'>REVIEW&lt;br /&gt;&lt;br /&gt;In my previous posts I logged my experience installing the 11gR2 Grid Infrastructure and getting familiar with ASM.  At this point I have a working ASM instance, as well as Oracle High Availability and Cluster Services running, and an ACFS file system, for kicks.&lt;br /&gt;&lt;br /&gt;My ASM Disk groups available are:&lt;br /&gt;&lt;br /&gt;ASMDATA - Where my database files will go&lt;br /&gt;FRA - Where my Flash Recovery Area will go&lt;br /&gt;FS - Hosts my ACFS partition, where database files will go that wouldn't normally go on an ASM disk.&lt;br /&gt;&lt;br /&gt;My goal in this post is not to reproduce the steps in the manual, but to record my own notes of things that are interesting or troublesome along the way.  I'm following the steps as documented in the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10840/inst_task.htm#BABBBHJH"&gt;Database Installation Guide 11g Release 2 (11.2) for Linux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I already configured the kernel parameters and made sure the necessary libraries were installed, and I already created a separate user account (oracle11r2) to host all my 11.2.0.1 files.  ASM was installed under the user oragrid, to keep the installations distinct.&lt;br /&gt;&lt;br /&gt;HERE WE GO:&lt;br /&gt;&lt;br /&gt;First note of "something new" in the install guide is the enhanced Secure Configuration option.  I'm a security nut, so I'll be taking this option, especially since it gives more opportunity to learn.&lt;br /&gt;&lt;br /&gt;Files are unzipped, X DISPLAY is verified, let's do this...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ ./runInstaller&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;You do not have sufficient permissions to access the inventory '/u01/app/oraInventory/orainstRoot.sh.ASMbackup'...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Hit the first issue sooner than I thought.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ ls /u01/app/oraInventory/orainstRoot.sh.ASMbackup&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;-rwxr-x--- 1 oragrid oinstall 1623 Sep  8 23:08 /u01/app/oraInventory/orainstRoot.sh.ASMbackup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This one's my own fault.  I made a backup of the ASM root.sh script after the ASM install.  It does not have group write permissions.  Apparently runInstaller checks to see if all directories are accessible, not just specific directories that it will use.  I changed the group write permission on the directory, since I don't expect it to be touched anyway. Now &lt;span style="font-family: courier new;"&gt;runInstaller&lt;/span&gt; is able to move onto the prerequisites, and we get the spiffy new 11gR2 Installer GUI.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;Note: I'm posting this blog on a different machine, so I'm not taking screen shots as I go.  There may be typos since I'm re-typing instead of copy-and-pasting.  If you find one, please let me know so I can fix the post.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;CONFIGURE SECURITY OPTIONS&lt;br /&gt;&lt;br /&gt;I'm not setting this up for a connection to MetaLink so I uncheck that, and leave the email blank for now.  I get a dialog box letting me know that Uncle Larry won't be looking over my shoulder to inform me of security updates now.  That's fine with me for this project.&lt;br /&gt;&lt;br /&gt;INSTALLATION OPTION&lt;br /&gt;&lt;br /&gt;I'm selecting "Create and configure a database".  I can always create another later for the DBCA experience.  I'm more curious what this installer does on autopilot.&lt;br /&gt;&lt;br /&gt;SYSTEM CLASS&lt;br /&gt;&lt;br /&gt;Even though I am using a desktop class machine, in power, I have been treating it as a server, in function.  ASM features are only available under this option, so I'm choosing "Server Class" here.&lt;br /&gt;&lt;br /&gt;GRID OPTIONS&lt;br /&gt;&lt;br /&gt;While I would really like to play with RAC features here at home, I know I don't have the infrastructure for it, so I won't risk confusing myself with a single-node RAC-ish installation.  I'm sticking with "Single instance database installation" for this option.&lt;br /&gt;&lt;br /&gt;INSTALL TYPE&lt;br /&gt;&lt;br /&gt;The whole point of this exercise is to learn ASM, so I need to choose "Advanced Install" here, for the opportunity to install on ASM.  (Of course I could start with non-ASM and convert to ASM as another exercise, but I have not layed out my partitions to do so).&lt;br /&gt;&lt;br /&gt;PRODUCT LANGUAGES&lt;br /&gt;&lt;br /&gt;Self-explanatory.&lt;br /&gt;&lt;br /&gt;DATABASE EDITION&lt;br /&gt;&lt;br /&gt;Enterprise, Standard, or Standard Edition ONE?  Here is where licensing would come into play.  Since this is under an OTN "get familiar, non-production" license, I'm going with EE with all the options, including Database Vault.&lt;br /&gt;&lt;br /&gt;INSTALLATION LOCATION&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Oracle Base: /u01/app/oracle11r2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Software Location: /u01/app/oracle11r2/product/11.2.0/dbhome_1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'll take the defaults here, since I expect most places I go will install things in the default layouts.  If they don't I'll be able to spot the difference right away.&lt;br /&gt;&lt;br /&gt;Since the Oracle Inventory was created when I installed Grid Infrastructure, I'm not given that option here.  I like this.  I have enough ways to shoot myself in the foot.  If Oracle can prevent me from a confusing multiple-inventory situation, I appreciate it.&lt;br /&gt;&lt;br /&gt;CONFIGURATION TYPE&lt;br /&gt;&lt;br /&gt;For now I'm interested in "General Purpose / Transaction Processing".&lt;br /&gt;&lt;br /&gt;DATABASE IDENTIFIERS&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Global Database Name: ora11r2.localdomain&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;SID: ora11r2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Normally I would change the localdomain to something appropriate, but I'm not worried about that for this machine.  I left it at that default in the Infrastructure install, so that's what the Listener is expecting.  I'll leave localdomain here, too.&lt;br /&gt;&lt;br /&gt;CONFIGURATION OPTIONS&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MEMORY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enable Auto Memory Management. Yes, please. I'll start with the default 40% of memory (604MB in my case).  In the real world I would do some capacity planning beforehand and size this based on a more educated guess, then tune as needed over time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;CHARACTER SETS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm taking the default here.  I'll play with UNICODE in another instance, another time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SECURITY&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Assert All New Security Settings.  I'm not upgrading an older database, and I am interested in learning new features, so I'll stick to the default here, which is yes... use the new security settings.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SAMPLE SCHEMAS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Good, the default is unchecked.  I like that.  I'll check it here, but for an application database I prefer to not have the sample schemas - less to secure or clean up.&lt;br /&gt;&lt;br /&gt;MANAGEMENT OPTIONS&lt;br /&gt;&lt;br /&gt;I don't have a Grid Control installation, or agent here, so that's grayed out.  That leaves DB Control, which is fine.  I'm skipping email notifications for now.&lt;br /&gt;&lt;br /&gt;DATABASE STORAGE&lt;br /&gt;&lt;br /&gt;Here's where we get interesting.  ASM is selected by default.  I put in the password I created for ASMSNMP during the ASM installation.  There were fewer options than I expected here.&lt;br /&gt;&lt;br /&gt;AUTOMATED BACKUPS&lt;br /&gt;&lt;br /&gt;I haven't allocated space for multiple backups, so I'll leave the automated backups disabled.  11gR2 RMAN features and backup strategies will be an exercise for another time.&lt;br /&gt;&lt;br /&gt;ASM DISK GROUP&lt;br /&gt;&lt;br /&gt;Here is the option I expected to see earlier.  My database files will go on ASMDATA.&lt;br /&gt;&lt;br /&gt;SCHEMA PASSWORDS&lt;br /&gt;&lt;br /&gt;Self-explanatory.&lt;br /&gt;&lt;br /&gt;OPERATING SYSTEM GROUPS&lt;br /&gt;&lt;br /&gt;Default.&lt;br /&gt;&lt;br /&gt;PREREQUISITE CHECKS&lt;br /&gt;&lt;br /&gt;I ran into the same prerequisite failure here on pdksh that I did on the Infrastructure installation.  I know I have ksh available, even if it is not pdksh, so I'm Ignoring this issue and continuing.  I wouldn't ignore this on a system that needs to remain stable.&lt;br /&gt;&lt;br /&gt;SUMMARY&lt;br /&gt;&lt;br /&gt;I'll save a response file (ora11r2.rsp) to use or review later.&lt;br /&gt;&lt;br /&gt;INSTALL PRODUCT&lt;br /&gt;&lt;br /&gt;Now we wait while OUI does it's thing.&lt;br /&gt;&lt;br /&gt;For status freaks like me, who like to know more than just watching the checklist of what's been done so far, the Details window lets me watch the install log and scroll back through the history without 'tail'ing it in a separate window.  Nice touch.&lt;br /&gt;&lt;br /&gt;I didn't keep a timer, but for a full EE install on an underpowered machine, the install process moves along pretty well.  I'm eager for the opportunity to see it on some bigger iron.&lt;br /&gt;&lt;br /&gt;DBCA, on the other hand, is really pokey, but I don't blame DBCA.  Now we're hitting the expected performance problems of my machine. &lt;br /&gt;&lt;br /&gt;My system is CPU-bound.  CPU is pegged at 100% for extended periods. No surprise on this box.&lt;br /&gt;Memory is in good shape - hovering around 30% used. &lt;br /&gt;&lt;span style="font-family: courier new;"&gt;top&lt;/span&gt; shows the database being created using more resources than the ASM database.&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;iostat&lt;/span&gt; DOES show activity spread out across the various partitions representing my ASM disks.&lt;br /&gt;&lt;br /&gt;At this point I am seeing ASM get its first workout and I see the load spreading across what would normally be multiple devices.  If you didn't read my first post on learning ASM, you missed the fact that I'm simulating 10 disks using 10 partitions on a single physical drive.  High Speed anything was never a goal in this exercise.&lt;br /&gt;&lt;br /&gt;dbca finished, root.sh run.&lt;br /&gt;&lt;br /&gt;The root.sh script complained about dbhome, oraenv, and coraenv already existing in /usr/local/bin.  I made backup copies of these and allowed root.sh to overwrite them.  diff showed the new files identical to the old, and permissions are such that oragrid won't have a problem, so it appears to be OK to just overwrite what the Grid Installation installed.&lt;br /&gt;&lt;br /&gt;FINISH&lt;br /&gt;&lt;br /&gt;This screen simply reminds us of the URL for DB Control.  Closed the installer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TEST DRIVE&lt;br /&gt;&lt;br /&gt;Start FireFox, browse to the EM URL, accept the security certificate, and ... waiting ...&lt;br /&gt;&lt;br /&gt;DB Control reports the database components are unavailable.&lt;br /&gt;Attempting to connect via sqlplus also fails, with a TNS error.&lt;br /&gt;&lt;br /&gt;Clearly, something is misconfigured at this point. Before banging my head and making things worse, I turn the page to the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10840/post_inst_task.htm#CHDCGCJI"&gt;Post-Installation Tasks&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I reboot just to clean things up a bit, and start a piece at a time.  I notice my network interface failed on boot - that explains a number of things.  I corrected the networking issue and &lt;span style="font-family: courier new;"&gt;lsnrctl status&lt;/span&gt; under oragrid responded as expected.&lt;br /&gt;&lt;br /&gt;I login as oracle11r2, set ORACLE_HOME and ORACLE_SID as needed.&lt;br /&gt;&lt;br /&gt;Now sqlplus works, and I see the database is already up.  This is odd, t me, since the startup flag in /etc/oratab for this instance is 'N'.  Oracle Restart is coming into play here.  The startup configuration I already did for ASM laid the groundwork for the new instance "ora11r2" being started automatically.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;$ ./emctl start dbconsole&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DB Console appeared to come up, but crashed upon first login attempt.&lt;br /&gt;&lt;br /&gt;I set up the .bash_profile for oracle11r2 to have the proper ORACLE_HOME and ORACLE_SID, created a DBA ID for myself in the database (so I didn't have to login as SYS), then I restarted the DB Console.&lt;br /&gt;&lt;br /&gt;When DB Console is running, it appears to be the big CPU hog on this machine.  CPU and disk I/O is moderate and acceptable when DB Console is not running.&lt;br /&gt;&lt;br /&gt;POST_INSTALLATION TASKS&lt;br /&gt;&lt;br /&gt;I followed the relevant steps for post-installation tasks that applied to my instance.&lt;br /&gt;&lt;br /&gt;Via DB Console, I found my way to the Flash Recovery Area setting.  I changed this from +ASMDATA to +FRA and increased the size to make use of more of the ASM disk group  allocated to flash recovery.&lt;br /&gt;&lt;br /&gt;THE END, AND THE BEGINNING&lt;br /&gt;At this point Oracle 11g Release 2 is up and running on a tiny machine, with ASM. &lt;br /&gt;Let the learning continue...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-1666685120961216513?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/1666685120961216513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-installing-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/1666685120961216513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/1666685120961216513'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-installing-database.html' title='Learning ASM: Installing a Database'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-7167687081699012564</id><published>2009-09-18T22:17:00.015-04:00</published><updated>2009-09-21T17:43:11.855-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CentOS'/><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='ACFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Unsupported'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Grid Infrastructure'/><title type='text'>Learning ASM: Breakin' the Rules (or, Running ACFS on CentOS)</title><content type='html'>Part 2 mentioned that I could not get ACFS to work on CentOS.  This is, of course, because it is not supported.  I did find a way to work around this.&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------&lt;br /&gt;DISCLAIMER:&lt;br /&gt;&lt;br /&gt;This post is provided as a log of personal experimentation only. If you attempt to replicate these steps on your system, it is wholly at your own risk with no guarantee you will get the same results as I did. It is in no way supported by Oracle, and I take no responsibility for any ill effects on your system - and Oracle won't either.  This is wholly undocumented and unrecommended.  I'm purposely changing things to understand them better.  If you want a stable (and simpler) experience, use the Linux versions documented to be supported by Oracle.&lt;br /&gt;&lt;br /&gt;---------------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;With the lawyers held at bay, I can proceed.  Remember, don't try this at work, kids - only on a system no one else uses, that you don't mind reinstalling if things go haywire.&lt;br /&gt;&lt;br /&gt;My environment (CentOS 5.3)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ uname -r&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;2.6.18-128.el5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;According to the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e10500/asmfs_extra.htm#CACECCDH"&gt;Oracle Database Storage Administrator's Guide&lt;/a&gt;  ACFS on a non-clustered system requires some manual steps to launch the volume driver.  The steps outlined at the hyperlink above detail what to do manually.&lt;br /&gt;&lt;br /&gt;login as root&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cd /u01/app/oragrid/product/11.2.0/grid/bin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ ./acfsload start -s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ADVM/ACFS is not supported on centos-release-5-3.el5.centos.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not surprising, the documentation said as much.  Let's see if we can work around that.&lt;br /&gt;&lt;br /&gt;Some backtracking through the shell and perl scripts leads us to ../lib/osds_acfslib.pm&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cd ../lib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cp -p osds_acfslib.pm osds_acfslib.pm.orig&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now I edit osds_acfslib.pm  (carefully) Search for "support this release" to get to the section to tweak.  (line 278 in my case)&lt;br /&gt;&lt;br /&gt;Since CentOS5 is equivalent to RedHat 5, we'll modify the test for RedHat to look like this...&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;if (($release =~ /enterprise-release-5/) ||&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ($release =~ /redhat-release-5/) ||&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;       ($release =~ /centos-release-5/))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That gets us past the supported version check, based on the version string. Now we get ACFS-9129: ADVM/ACFS not installed&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ mkdir /lib/modules/2.6.18-128.el5/extra/usm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;$ cp &lt;span style="font-family:courier new;"&gt;/u01/app/oragrid/product/11.2.0/grid/install/usm/EL5/i386/2.6.18-8/2.6.18-8.el5-i686/bin/*ko /lib/modules/2.6.18-128.el5/extra/usm&lt;br /&gt;$ chmod 744 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;/lib/modules/2.6.18-128.el5/extra/usm&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;This puts the modules in the expected location.  We can check it by:&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;$ cd /u01/app/oragrid/product/11.2.0/grid/bin&lt;br /&gt;$ ./acfsdriverstate -orahome &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;/u01/app/oragrid/product/11.2.0/grid version&lt;br /&gt;ACFS-9205: OS/ADVM,ACFS installed version = 2.6.18-8.el5(i386)/090715.1&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Record dependencies for the kernel modules. (The modules won't load if you skip this step).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ depmod&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now running &lt;span style="font-family:courier new;"&gt;acfsload start -s&lt;/span&gt; completes without any further messages.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In a cluster install the system executables get copied from the install directory to /sbin as part of the root.sh script.  Since this was a standalone install, they did not get copied. We get to do that manually (and set permissions).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;$ cd /u01/app/oragrid/product/11.2.0/grid/install/usm/EL5/i386/2.6.18-8/2.6.18-8.el5-i686/bin&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For each file that does not end in .ko   (there are 12 of them):&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cp acfsdbg /sbin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ chmod 755 /sbin/acfsdbg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TEST FOR SUCCESS:&lt;br /&gt;&lt;br /&gt;Now connect as oragrid.&lt;br /&gt;Running asmca is noticeably different - the Volumes and ASM Cluster File System tabs are available.  (They were greyed out when I tried before).&lt;br /&gt;&lt;br /&gt;Now we'll try the command that failed before in ASMCMD&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD  &gt; volcreate -G FS -s 2G --redundancy mirror acfs1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This completed without any error message.  Switching back to asmca to see it in the GUI...&lt;br /&gt;ACFS1 now appears in the Volume tab, with a device /dev/asm/acfs1-287.  It is unmounted. We could also find out this virtual device using the volinfo command in asmcmd.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now make a file system on that volume and mount it...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre space="preserve" class="oac_no_warn"&gt;&lt;span style="font-family:courier new;"&gt;$ /sbin/mkfs -t acfs /dev/asm/acfs1-287&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkfs.acfs: version                   = 11.2.0.1.0.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkfs.acfs: on-disk version           = 39.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkfs.acfs: volume                    = /dev/asm/acfs1-287&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkfs.acfs: volume size               = 2147483648&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;mkfs.acfs: Format complete.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre space="preserve" class="oac_no_warn"&gt;&lt;span style="font-family:courier new;"&gt;$ /sbin/acfsutil registry -a /dev/asm/acfs1-287 /u01/app/acfsmounts/acfstrial&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;acfsutil registry: mount point /u01/app/acfsmounts/acfstrial successfully added &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  to Oracle Registry&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;At this point, the ASM Cluster File Systems tab in asmca shows our registered mount point, in a DISMOUNTED state.  &lt;span style="font-family:courier new;"&gt;ls /u01/app &lt;/span&gt;shows no directory .../acfsmounts.&lt;br /&gt;&lt;br /&gt;To mount a filesystem, you need root privilege.&lt;br /&gt;&lt;br /&gt;add the following to the beginning of /sbin/mount.acfs, after the header comments&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ORACLE_HOME=/u01/app/oragrid/product/11.2.0/grid&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Create a directory to mount the filesystem on.  This step wasn't in the install guide.  I got an error if I didn't pre-create a directory.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ mkdir /u01/app/acfsmounts/acfstrial&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Perform the mount and set permissions&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ mount -t acfs /dev/asm/acfs1-287 /u01/app/acfsmounts/acfstrial&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ chown -R oracle11r2:dba /u01/app/acfsmounts/acfstrial&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And we are done!  A usable file system, owned by the ID we will later install the Oracle 11gR2 Database using.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ su - oracle11r2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cd /u01/app/acfsmounts/acfstrial&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;lost+found&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ echo hello world &gt; myfile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;lost+found   myfile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$ cat myfile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;hello world&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And there we have it... ASM Cluster File System running on a standalone CentOS box.  Now I have a place to experiment and build up my skill set, with no money out of pocket!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;EPILOGUE  (TODO):&lt;br /&gt;&lt;br /&gt;This doesn't come up automatically following a reboot.  I need to add startup scripts to perform the following steps:&lt;br /&gt;&lt;br /&gt;1. Load the ADVM drivers&lt;br /&gt;2. Enable the ASM volumes&lt;br /&gt;3. Mount the ACFS filesystems&lt;br /&gt;&lt;br /&gt;I can do these steps manually with a combination of the steps above, and with asmca.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-7167687081699012564?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/7167687081699012564/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-breakin-rules-or-running.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/7167687081699012564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/7167687081699012564'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-breakin-rules-or-running.html' title='Learning ASM: Breakin&apos; the Rules (or, Running ACFS on CentOS)'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-6355713748686938592</id><published>2009-09-09T11:30:00.021-04:00</published><updated>2009-09-18T20:41:31.431-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='ASMCMD'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Grid Infrastructure'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>Learning ASM: Part 2</title><content type='html'>In the previous post, I installed ASM on a woefully underpowered machine.  Things I learned along the way included:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't skip steps.  If Oracle says install Grid Infrastructure First, don't start by setting up a user id for the Oracle Database.&lt;/li&gt;&lt;li&gt;Partitions on a single physical drive will work for experimenting with ASM, but for hopefully obvious reasons is not something you would do on a system that actually supports development or production. &lt;/li&gt;&lt;li&gt;11g Release 2 changes a few of the familiar installation steps, especially the Oracle listener.&lt;/li&gt;&lt;li&gt;It is helpful to plan (and document) your desired disk group layout before you start.  ASM will manage everything for you, but that is no substitute for a diagram on a piece of paper to keep everything straight.&lt;/li&gt;&lt;/ul&gt;LEARNING THE TOOLS: ASMCMD&lt;br /&gt;&lt;br /&gt;ASMCMD is the command-line tool for managing ASM.  You can also manage it through Enterprise Manager, but that is not installed yet, so not an option.  I always like to know how to do things at the command line, since that is always available.  For this section I'm using a chapter from the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/server.112/e10500/asm_util.htm#BJEGEAAJ"&gt;Oracle Database Storage Administrators Guide&lt;/a&gt; .&lt;br /&gt;&lt;br /&gt;First we need to make sure ORACLE_HOME and ORACLE_SID are set appropriately.  This was not a step in the install guide, or I missed it. I added the following to my .bash_profile for oragrid&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;umask 022&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ORACLE_HOME=/u01/app/oragrid/product/11.2.0/grid&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ORACLE_SID=+ASM&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;export ORACLE_HOME ORACLE_SID&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;export PATH&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now asmcmd will start properly&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[oragrid@loclahost ~]$ . .bash_profile&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; [oragrid@loclahost ~]$ asmcmd&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMCMD&gt; ls&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMDATA/&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;FRA/&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;FS/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next I spent some time playing around with ASM commands.  shutdown and startup were straightforward and behaved as expected.  I exited asmcmd and restarted it with th e-p and -v options to show the current directory in the prompt (-p) and more verbose output (-v).  At the asmcmd prompt, 'help' displays the list of valid asm commands.  I could go through the manual, but I like to poke around sometimes on my own in this situation.&lt;br /&gt;&lt;br /&gt;ls and cd navigate through the directory.  ls -l provides a longer list, as I expected.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; cd +ASMDATA/asm/asmparameterfile&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMCMD [+ASMDATA/asm/asmparameterfile] &gt; ls&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;REGISTRY.253.697071913&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMCMD [+ASMDATA/asm/asmparameterfile] &gt; ls -l&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;Type              Redund  Striped  Time             Sys  Name&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMPARAMETERFILE  MIRROR  COARSE   SEP 08 23:00:00  Y    REGISTRY.253.697071913&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Wonder where a file is located?&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+]&gt; find + registry*&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;+ASMDATA/ASM/ASMPARAMETERFILE/REGISTRY.253.697071913&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Need to manage the available disk groups?&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; ls -l&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;State    Type    Rebal  Name&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;MOUNTED  NORMAL  N      ASMDATA/&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;MOUNTED  NORMAL  N      FRA/&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;MOUNTED  NORMAL  N      FS/&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; umount FS&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMCMD [+] &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt; &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ls -l&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; State    Type    Rebal  Name&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; MOUNTED  NORMAL  N      ASMDATA/&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;  MOUNTED  NORMAL  N      FRA/&lt;/span&gt;   &lt;span style="font-family:courier new;"&gt;ASMCMD [+] &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt; &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;mount FS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&gt; &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ls -l&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;State    Type    Rebal  Name&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;MOUNTED  NORMAL  N      ASMDATA/&lt;/span&gt;   &lt;span style="font-family:courier new;"&gt;MOUNTED  NORMAL  N      FRA/&lt;/span&gt;   &lt;span style="font-family:courier new;"&gt;MOUNTED  NORMAL  N      FS/&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At certain points, such as when a new device is added to a disk group, ASM will rebalance the data among the devices in a group to spread the I/O evenly throughout.  You can also force a rebalance to happen immediately.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; rebal FRA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While the Rebalance is occuring, ls -l will report the diskgroup with a Y in the Rebal column.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;Curios about the I/O load across disks?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; iostat&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;Group_Name  Dsk_Name  Reads    Writes&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMDATA     DATA1     7421952  5046272&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMDATA     DATA2     8433664  2883584&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Need to check integrity of a disk grou? chkdg&lt;br /&gt;Did your disk develop bad sectors?  the remap command will avoid them.  (for more info, help remap).&lt;br /&gt;&lt;br /&gt;Let's try taking a disk out of a disk group&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; offline -G ASMDATA -D DATA3&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ORA-15032: not all alterations performed&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ORA-15283: ASM operation requires compatible.rdbms of 11.1.0.0.0 or higher&lt;/span&gt; Really?  Why is that?&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; lsattr -G ASMDATA -l rdbms&lt;br /&gt;Name               Value&lt;br /&gt;compatible.rdbms   10.1.0.0.0&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Interesting, the default is to be compatible with a 10g database, not an 11g database.  This setting is probably to assist with upgrades, since 10g will be more prevalent still that 11g for a while.  We don't have a 10g database right now, so I'll change it to test the offlining.&lt;/span&gt; ASMCMD [+] &gt; setattr -G ASMDATA compatible.rdbms 11.1.0.0.0&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Now, let's try that offline again:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+]&lt;span style="font-family:courier new;"&gt; &gt; offline -G ASMDATA -D DATA3&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; lsdsk -G ASMDATA &lt;/span&gt; &lt;span style="font-family:courier new;"&gt;Path&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; ORCL:DATA1&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; ORCL:DATA2&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; ORCL:DATA4&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; ORCL:DATA5&lt;/span&gt; &lt;span style="font-family:courier new;"&gt; ORCL:DATA6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;GETTIN' CRAZY: CREATING AN ACFS VOLUME VIA ASMCMD (FAIL)&lt;br /&gt;&lt;br /&gt;To have ASM act as a storage manager, or volume manager, for a general-purpose file system, we first define a volume within a disk group.  We have the FS disk group defined for this purpose, so we'll create 2 volumes within that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD [+] &gt; volcreate -G FS -s 2G --redundancy mirror acfs1&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;ORA-15032: not all alterations performed&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;ORA-15477: cannot communicate with the volume driver&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Apparently something else is not installed.  According to documentation, ACFS is only supported on Oracle Enterprise Linux 5 or Red Had Enterprisxe Linux 5.  CentOS 5 is supposed to be equivalent to RHEL, perhaps this is a point where it is not equivalent enough?&lt;br /&gt;&lt;br /&gt;My lesson to myself here - stick with supported O/S versions.  Oracle Enterprise Linux is supported, and designed around running ASM and the Oracle Database.  I'll be switching to that later to study ACFS, but in the meantime I'll table the ACFS exploration and continue looking at ASM and 11gR2.&lt;br /&gt;&lt;br /&gt;REBOOT: GETTING ASM TO START AUTOMATICALLY ON BOOT&lt;br /&gt;&lt;br /&gt;I want ASM to start on boot, so I modified /etc/oratab to start +ASM.&lt;br /&gt;&lt;br /&gt;I stopped ASM using ASMCMD&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASMCMD&gt; shutdown --immediate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASM diskgroups dismounted&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ASM instance shutdown&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Connected to an idle instance.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The O/S was restarted.&lt;br /&gt;&lt;br /&gt;Following the restart, a&lt;span style="font-family:courier new;"&gt; ps-fu oragrid&lt;/span&gt; showed a few processes running, but not enough.&lt;br /&gt;ASMCMD startup yielded an ORA-01078: failure in processing system parameters, and ORA-29701: unable to connect to Cluster Synchronization Service.  The supporting cluster software is not fully functioning.  To start it:&lt;br /&gt;&lt;br /&gt;login as root&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd /u01/app/oragrid/product/11.2.0/grid/bin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;./crsctl start resource -all&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now&lt;span style="font-family:courier new;"&gt; ps -fu oragrid&lt;/span&gt; shows an instance running.  logout of root, back in as oragrid, and now asmcmd shows the disk groups available.  Interestingly, the startup=Y was changed back to N in /etc/oratab for the +ASM instance.  Note to self: +ASM should not be managed by oratab.&lt;br /&gt;&lt;br /&gt;The installer added oracleasm and ohasd to the /etc/init.d and rc3.d and rc5.d, but not the cluster services.  I created an init script to do the steps we just did manually&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd /etc/init.d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cp -p ohasd ocrs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Edit ocrs changing the start() subroutine to include&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/u01/app/oragrid/product/11.2.0/grid/bin/crsctl start resource -all&lt;/span&gt;&lt;br /&gt;and the stop() subroutine to include&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/u01/app/oragrid/product/11.2.0/grid/bin/&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;crsctl stop resource -all&lt;/span&gt;&lt;br /&gt;as well as modifying any descriptive text in the script.&lt;br /&gt;&lt;br /&gt;I created symbolic links in rc5.d and rc3.d for Start and Stop at step 97 (after OHASD has started)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd ../rc5.d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ln -s /etc/init.d/ocrs S97ocrs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ln -s /etc/init.d/ocrs K97ocrs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;cd ../rc3.d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(same thing)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And now ASM starts on boot.&lt;br /&gt;&lt;br /&gt;Next post: actually installing a database on 11gR2 ASM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-6355713748686938592?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/6355713748686938592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-part-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/6355713748686938592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/6355713748686938592'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-part-2.html' title='Learning ASM: Part 2'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-99959059188134263</id><published>2009-09-08T11:54:00.034-04:00</published><updated>2009-09-20T20:34:20.054-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='11gR2'/><category scheme='http://www.blogger.com/atom/ns#' term='install'/><category scheme='http://www.blogger.com/atom/ns#' term='ACFS'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle Grid Infrastructure'/><category scheme='http://www.blogger.com/atom/ns#' term='storage management'/><category scheme='http://www.blogger.com/atom/ns#' term='ASM'/><title type='text'>Learning ASM: Part 1</title><content type='html'>Oracle's ASM (Automatic Storage Management) may well be one of the most significant additions to the Oracle database, beginning in 10g, and becomes more interesting in 11g Release 2. I wanted to learn it at home, before I run into it at a client, and because it is extremely interesting technology. This post logs my experiences setting it up for the first time.  This may become my personal HOWTO reference on the topic - expect to see extreme detail as we get into it.&lt;br /&gt;&lt;br /&gt;About ASM:&lt;br /&gt;&lt;br /&gt;If you are unfamiliar with ASM, it is storage management software that comes with the database. It provides the performance of using RAW devices without the need to manage an storage volume through the operating system or a logical volume manager. For the DBA this translates into more direct control over the storage and more efficiency. For the business, this may translate into reduced costs, if it saves on a license for 3rd-party volume management.&lt;br /&gt;&lt;br /&gt;You provide ASM with a pool of storage devices, and then tell ASM how to divide that up logically. You can add or remove devices as needed, without interrupting the database, and ASM will automatically spread your data and load across all the devices. This can be a viable substitute for RAID systems, eliminating another layer of software and hardware. (However, if you have a solid RAID strategy in place already, you can use ASM for managing the volumes, and still let the RAID handle redundancy.)&lt;br /&gt;&lt;br /&gt;In 11g Release 2 it gets even more interesting with the introduction of ASM Cluster File System (ACFS). ACFS provides an operating-system-usable file system running on top of Oracle ASM. "Why would I do that?" to further simplify the life of the DBA. In 10g, ASM could not be used for files outside the database, such as binaries, log files, etc. With ACFS all of those files can also be moved into ASM storage. You can set up a cluster of machines running ASM and it can pool storage across the entire cluster, and present it to Oracle and/or the filesystem as if it were a big pool of local storage.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The setup:&lt;br /&gt;&lt;br /&gt;I'm slow to adopt new hardware at home, so to make this more interesting I am going to be exploring this on a single-CPU Celeron machine, circa 2005. I don't expect speed or performance. I just want to learn the syntax and management. And yes, Oracle will run on this... just don't expect to do much with it besides self-education. This is a home-class machine, so I have 2 hard drives. One with some older data in a Windows partition I want to save, The other a larger drive with a Windows partition, a Linux partition, and a bunch of extra space to play with.&lt;br /&gt;&lt;br /&gt;Hardware: Single CPU Celeron&lt;br /&gt;RAM 1.5 GB&lt;br /&gt;Storage: 1 250GB Hard Drive, in multiple partitions.&lt;br /&gt;&lt;br /&gt;ASM is designed to pool storage across multiple devices. I don't have multiple devices, but can simulate that for the sake of education by using multiple partitions. I fully expect this to perform slowly since these are on the same physical device.&lt;br /&gt;&lt;br /&gt;FIRST STEP: SET UP PARTITIONS AND INSTALL LINUX&lt;br /&gt;&lt;br /&gt;I'm going with CentOS 5.3, which is equivalent to RHEL 5. I had previously installed 11g Release 1 on this machine, so I know the Oracle Database will run, at least.&lt;br /&gt;&lt;br /&gt;Here is my partition layout, yours may be different.&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;/dev/hda&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt; /dev/hda1    Windows Partition           NTFS     102398 MB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  /dev/hda5    /                           ext3      23454 MB  &lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt; /dev/hda6-15 10 virtual physical devices LVM PV    10236 MB each&lt;/span&gt;&lt;br /&gt;    /&lt;span style="font-family:courier new;"&gt;dev/hda16   swap                        swap      10236 MB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In a real system I wouldn't lump root, /home, etc all on the same partition, but for this exercise I'm going simple. I made my partitions roughly 10GB in size for simplicity later.&lt;br /&gt;&lt;br /&gt;After this I finished the Linux installation, and made sure all the required packages for the Oracle Database were installed, as directed in the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10840/pre_install.htm#CHDHFGBJ"&gt;11gR2 Installation Guide for Linux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;NEXT STEP: CONFIGURE LINUX&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Post-install configuration included setting the following options:&lt;/li&gt;&lt;li&gt;Opened TCP port 1521 in the firewall.&lt;/li&gt;&lt;li&gt;SELinux Setting  set to Permissive&lt;/li&gt;&lt;li&gt;Created a non-root user (bbontrag, in my case) to login as&lt;/li&gt;&lt;li&gt;Configured Linux to connect to my local network, and verified Internet access&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Verified that boot parameters are only attaching drives 0 and 4 (/ and swap, or /dev/hda1 and /dev/hda5). This was verified in /boot/grub/grub.conf and by viewing the partitions in CentOS Logical Volume Management.&lt;/li&gt;&lt;li&gt;Rebooted at this point to ensure networking was fully operational&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Used the Package Manager to verify all required packages from the Oracle Install Guide.&lt;/li&gt;&lt;li&gt;On a normal development or production system I would install O/S patches at this point.  For this machine, I am skipping that step, so I can practice patching AFTER a database is installed. (But that's another post).&lt;/li&gt;&lt;/ul&gt; NEXT STEP: PREPARE TO INSTALL Oracle 11gR2&lt;br /&gt;&lt;br /&gt;In reviewing the documentation for 11gR2 I found this little nugget... "Oracle Database 11&lt;span class="italic"&gt;g&lt;/span&gt; Release 2 introduces the Grid Infrastructure installation. For single instance databases, the grid infrastructure includes Automatic Storage Management, the listener, and Oracle Restart."..."If you want to use grid infrastructure for a standalone server, then you must install the oracle software from the grid infrastructure media before you install the database." In 11gR1 ASM was included on the Database Install media.  In this release it is separate.&lt;br /&gt;(&lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10840/whatsnew.htm#BGGJDGAA"&gt;What's New in Oracle Database 11g&lt;/a&gt; )&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(If you are following this as a HOWTO, hold off on this section until AFTER Oracle Grid Infrastructure is installed in the next step.  I got ahead fo myself - don't get yourself into the same trouble I did.)&lt;/span&gt;  &lt;span style="font-style: italic;"&gt; &lt;/span&gt;I prepared to install the Oracle 11gR2 software according to according to the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10857/toc.htm"&gt;Quick Install Guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Checked installed packages&lt;/li&gt;&lt;li&gt;Setup groups and users, since this was the first install of Oracle software&lt;/li&gt;&lt;li&gt;Set kernel parameters and other configuration parameters&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I created oracle11r2 instead of oracle as the oracle User Id, to allow a future install of previous versions to practice upgrades.&lt;/li&gt;&lt;li&gt;I had trouble with the default profile script trying to use ksh as the default shell for oracle11r2.  I changed the default shell to bash and it worked fine&lt;/li&gt;&lt;/ul&gt;At this point I copied the install media onto the server, but did not install the database yet.&lt;br /&gt;&lt;br /&gt;INFRASTRUCTURE INSTALL: ASM LIBRARIES&lt;br /&gt;&lt;br /&gt;I installed ASM according to the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10812/typinstl.htm#sthref38"&gt;Oracle Grid Infrastructure Install Guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;created user oragrid, where the instructions called for "oracle".  This will allow me to understand the difference between grid infrastructure files and normal database files.  (I may get into trouble by doing this... we'll see).&lt;span style="font-style: italic;"&gt;  Note: after creating new users I had to logout and log back in, to restart the X server.  New users did not have authority to run X apps, such as the OUI, so this was my workaround.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Since permissions for oracle were already set on /u01/app I reset ownership to be what the Infrastructure guide called for.&lt;/li&gt;&lt;li&gt;Since my installation is not registered with the Unbreakable Linux Network, I had the joy of installing ASMLIB manually, which is a set of Linux libraries for interacting with ASM.  The steps are documented in the Install Guide. Follow them carefully,  On my first attempt I downloaded the wrong version. On my second attempt I still missed the oraclasm driver for my kernel.  There are 3 packages to install, if the install guide is not clear on that.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Install the oracleasm package first, then the other packages. The oracleasmlib package depends on it.&lt;/li&gt;&lt;/ul&gt;INFRASTRUCTURE INSTALL: CONFIGURE ASM&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Once the packages successfully installed I ran&lt;span style="font-family:courier new;"&gt; oracleasm configure -i&lt;/span&gt; as instructed.&lt;/li&gt;&lt;li&gt;The install guide is not clear what to enter here.  I used user=oragrid, group=oinstall, Start on boot=y, Scan on boot=y&lt;/li&gt;&lt;li&gt;My first attempt at the following step failed with an error "Instantiating disk: failed".  I found through a quick Google search that ASM was not initialized, so I started ASM by issuing &lt;span style="font-family:courier new;"&gt;oracleasm init&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;. After that the following createdisk commands worked as expected.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next I set my empty partitions as candidate groups for ASM.  &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:courier new;"&gt;      oracleasm createdisk data1 /dev/hda6&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;      oracleasm createdisk data2 /dev/hda7&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;   oracleasm createdisk data3 /dev/hda8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;      oracleasm createdisk data4 /dev/hda9&lt;/span&gt;  &lt;span style="font-family:courier new;"&gt;      oracleasm createdisk data5 /dev/hda10&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;      oracleasm createdisk data6 /dev/hda11&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I only created 6 at first, so I can play with adding more later.  Verify with &lt;span style="font-family:courier new;"&gt;oracleasm listdisks&lt;/span&gt;.  6 disks are displayed DISK1-DISK6.  Great.&lt;/li&gt;&lt;/ul&gt; INFRASTRUCTURE INSTALL: INSTALL THE INFRASTRUCTURE&lt;br /&gt;&lt;br /&gt;At this point I unzipped my install media, and ran the Grid Infrastructure installer.  Note: The documentation does not say switch to the 'oracle' user here, but runInstaller will not run as root, so I switched to the new oragrid user created earlier.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;This is where I hit my first permissions hiccup of having separate IDs for Infrastructure and Database.  I happened to have the media files under /home/oracle11r2 not under /oragrid.  Once I changed the group on /home/oracle11r2 to oinstall and granted group read/execute on it, oragrid could run the installer.&lt;/li&gt;&lt;li&gt;Once OUI started, I selected "Install and Configure Grid Infrastructure for a Standalone Server"&lt;/li&gt;&lt;li&gt;I picked English as my language.&lt;/li&gt;&lt;li&gt;Next I was prompted to set up DISK GROUPS.  Let's review..&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;ASM Disk Groups are the logical grouping of physical disks, representing the basic unit of storage that ASM presents either to the database for use, or to the operating system, via ACFS.   Each Disk Group has a redundancy level, which sets the level of mirroring that ASM manages for you.  High redundancy keeps 3 or more copies of the data within the disk group.  Normal redundancy keeps 2 copies of data within the disk group (basic mirroring).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;First, I named my disk group ASMDATA, selected Normal redundancy, and selected all 6 devices as Candidate Disks.  The failure groups for redundancy may be defined later?  We'll find out.&lt;/li&gt;&lt;li&gt;I set passwords for the SYS and ASMSNP accounts.  Let's review again...&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;ASM uses Oracle Database technology to keep track of the storage it manages.  ASM is essentially an instance of the Oracle Database, specially tailored for managing the data.  It is relatively small overhead on the system as compared to an Oracle Database for an application.  Many of the concepts of maintaining an Oracle database instance carry over to managing ASM, such as the SYS password, in this step. Treat ASM SYS and other passwords as securely as you do SYS for your Oracle Database.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I assigned all the authentication groups to "oinstall" (default).&lt;/li&gt;&lt;li&gt;Oracle Base = /u01/app/oragrid (default)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Software Location = /u01/app/oragrid/product/11.2.0/grid  (default, Very OFA-ish, no?)&lt;/li&gt;&lt;li&gt;Inventory Directory = /u01/app/oraInventory (default)&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;OUI checked for installation requirements, and here is where my home machine starts to fall short.  The Physical Memory check failed... 1.5GB was required, and my system reports 1.48GB. It also did not recognize my swap space.  &lt;/li&gt;&lt;li&gt;There was a package ASM expected (pdksh-5.2.14) which I found, downloaded, and tried to install.  I found it conflicted with ksh and bash already installed, so I left things as-is.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The max file descriptor limit was set too low.  OUI was able to generate a fixit script to take care of this one.&lt;/li&gt;&lt;li&gt;I told OUI to ignore the remaining prerequisite checks and continue anyway... The goal is to learn so if this screws something up I will learn even more because of it.&lt;/li&gt;&lt;li&gt;I elected to save a repsonse file.  I'm not setting up a cluster, but this will be helpful to study, even on this standalone install.&lt;/li&gt;&lt;li&gt;Installation continued without incident, and I ran the 2 scripts as root when prompted.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;ps -fu oragrid&lt;/span&gt; shows all the processes I would expect to see from an Oracle database instance &lt;/li&gt;&lt;li&gt;Pulling up the System Monitor, I see a little bit of load and memory usage, but nothing that concerns me.&lt;/li&gt;&lt;li&gt;/etc/mtab now contains a mount point for oracleasmfs&lt;/li&gt;&lt;li&gt;I modified /etc/oratab to automatically start the instance "+ASM" on startup.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;INFRASTRUCTURE INSTALL: POST-INSTALL REVIEW&lt;br /&gt;&lt;br /&gt;There are several interesting things in the &lt;a href="http://download.oracle.com/docs/cd/E11882_01/install.112/e10812/postinst.htm#BABHHEHG"&gt;post-install steps&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of particular interest:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;In a real system, patching is important. THe first post-install instruction is to apply patches. Do so.  I'm not here, as it is out of scope for this exercise.  Patching will be tried later.&lt;/li&gt;&lt;li&gt; The 11gR2 Grid Infrastructure includes the listener.  When managing the listener the ORACLE_HOME for the ASM/Grid Infrastructure installation must be used.  I have to say I like this.  I was never a fan of multiple listeners on a single node.  I understood the reasoning of the DBAs who chose to run that way, but disagreed on the need.&lt;/li&gt;&lt;li&gt;The 11gR2 Grid Infrastructure will support databases as old as 9.2.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Backup the orainstRoot.sh script in /u01/app/oraInventory for future reference and troubleshooting. OK, done.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We set up a single disk group during the installation.  For installing 11gR2 we will want another disk group for the Flash Recovery Area.  I'm already planning to pare down the 6 disks to maybe 4.  We still have 4 partitions which we can use for an ACFS playground.&lt;/li&gt;&lt;li&gt;The ASM utility binaries do not seem to be in the location expected in the postinstallation steps.  This symbolic link is a helpful shortcut:&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt; ln -s /u01/app/oragrid/product/11.2.0/grid/bin /u01/app/11.2.0/grid/bin&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;USING ASM: CREATE ADDITIONAL DISK GROUPS&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Before adding new disk grounds, I need to enable to other partitions for ASM, with oracleasm (as root).  Done.  data7-data10 now exist.&lt;/li&gt;&lt;li&gt;Logged in as oragr&lt;span style="font-family:times new roman;"&gt;id, I go to &lt;span style="font-family:courier new;"&gt;/u01/app/11.2.0/grid/bin&lt;/span&gt; and run &lt;span style="font-family:courier new;"&gt;./asmca &lt;/span&gt;to manage&lt;/span&gt; disk groups.&lt;/li&gt;&lt;li&gt;I go to create new group. The HEADER STATUS column shows the state of all the devices available.  I see my 4 new partitions PROVISIONED, and if I click "Show All" Member Disks, I see my other 6 have a status of MEMBER&lt;/li&gt;&lt;li&gt;I created a disk group FRA from DISK7 and DISK8, with normal redundancy.&lt;/li&gt;&lt;li&gt;I created a disk group FS from DISK9 and DISK10, with normal redundancy.&lt;/li&gt;&lt;li&gt;We notice on each of these the Usable capacity is half the Size.  normal redundancy is mirroring the data.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;WRAP-UP: ASM IS INSTALLED&lt;br /&gt;&lt;br /&gt;At this point, ASM has been successfully installed, and we can add and remove disks from disk groups at will.  In the next installments we are ready to add a Database to the mix, try out the new-fangled File System, and (oh yeah, shut down and start everything up cleanly).  I have 8 or 9 hours invested to this point, and that includes installing the operating system and writing this blog along the way.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-99959059188134263?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/99959059188134263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/99959059188134263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/99959059188134263'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/learning-asm-part-1.html' title='Learning ASM: Part 1'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-544159655393583565.post-8470248549799284962</id><published>2009-09-02T10:14:00.009-04:00</published><updated>2009-09-02T22:42:00.485-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DBA'/><category scheme='http://www.blogger.com/atom/ns#' term='core skills'/><category scheme='http://www.blogger.com/atom/ns#' term='administration'/><title type='text'>A "Real" DBA</title><content type='html'>A friend asked recently, "Would you be interested/able to show me some of the skills I'd need to be a REAL DBA?"  He'd been working in a mix of databases for 10 years, and was comfortable with application-level aspects, such as tables, stored procedures, triggers, and views, but wanted some coaching on lower-level aspects, such as Backup/Recovery and Tuning.  Mike, this one's for you!&lt;br /&gt;&lt;br /&gt;Some shops I've worked in make a distinction between "Application DBA" and "Infrastructure DBA", where Application DBAs manage schemas and develop applications, and Infrastructure DBAs install the software, perform backups, and keep things running.  Other shops I've been in have the "DBA" doing all of the above.  (My thoughts on division of responsibilities is a topic for another post).  I contend that both are "Real DBAs", each with different specialties, so I'll just use "DBA" from here on out.&lt;br /&gt;&lt;br /&gt;It is helpful for a DBA to be familiar with both the application-level and infrastructure-level concepts, regardless of the database platform. If your organization splits responsibilities, you may know more about one or the other in practice, but should at least understand the concepts.&lt;br /&gt;&lt;br /&gt;The Application DBA can write more effective SQL and procedures if they have a thorough understanding of how the infrastructure works.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  How does the database handle read consistency?&lt;/li&gt;&lt;li&gt;  How does it handle transactional integrity? &lt;/li&gt;&lt;li&gt;  What happens if I lose my connection?&lt;/li&gt;&lt;li&gt;  How is it backed up, so I know how to get data back when it, inevitably, gets lost.&lt;/li&gt;&lt;li&gt;  How does it store data on disk, so I can organize my schema objects appropriately?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The Infrastructure DBA can perform their job more effectively by understanding the applications that use "their" database.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   Are some tables more critical than others?&lt;/li&gt;&lt;li&gt;   What load is expected from the application, including over time?&lt;/li&gt;&lt;li&gt;   Does the application rely on version-specific features?&lt;/li&gt;&lt;li&gt;A knowledge of different SQL techniques can be useful when developers come to you for help in tuning, since much tuning happens in the application and not a magical FAST=TRUE database setting.&lt;/li&gt;&lt;li&gt;Be able to explain to developers why bind variables are important to both security and performance.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;br /&gt;When it comes to many of the questions above, each database is different.  Oracle handles read consistency differently than MySQL, which handles it differently than SQL Server.  There are application design implications here, and different performance tuning approaches for each.  The DBA needs to understand how the database they service manages data internally, to some degree.  Reading the documentation is often the best place to start.&lt;br /&gt;&lt;br /&gt;No DBA can know everything, so an effective DBA will have resources in mind where he can get questions answered as needed.  Remain teachable and open to learning something new every day.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Documentation is the obvious place to start (did I mention that already? Yes. Good. Can't mention it enough.)  &lt;/li&gt;&lt;li&gt;Online support systems and forums from your database vendor.  &lt;/li&gt;&lt;li&gt;Select other Internet forums that you TRUST.  They are not all good, and many are the blind leading the blind. &lt;/li&gt;&lt;li&gt;Know local resources you can go to... peers, mentors, user groups.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Down to more technical details,  the DBA MUST, absolutely, know backup and recovery strategies for their chosen database.  Each product has different methods and semantics, so learn what is appropriate.  There may be multiple strategies (hot backups vs. cold backups, vs. exports - which are not really a backup, but that's another post).  Understand how your database backup relates to your operating system backup.  (For example, that O/S backup of /oradata, in and of itself, is utterly useless if your database is running at the time.)&lt;br /&gt;&lt;br /&gt;Always remember, an untested backup is no backup at all.  If you are not confident in your ability to restore a backup, you might as well not be taking it.  Know how to restore the entire database, as well as subsets of the data... individual data files, individual tables, individual tablespaces, point-in-time recovery.&lt;br /&gt;&lt;br /&gt;Performance Tuning is an acquired skill, learned mostly through experience, often with bumps and bruises along the way.  In Oracle, at least, there are many tools available.  Experiment with each of the tools available, learn their strengths.  Use these tools to measure performance in good times and bad, so you can tell the difference. In a performance "crisis" you will likely be facing a situation unlike others you have solved in the past.  Be prepared to do critical analysis on the fly.  If you are making a change to fix a performance problem, have evidence to support why THIS change is the right choice and not the first parameter tweak that came to mind.&lt;br /&gt;&lt;br /&gt;Know how to read your system's log files.  Know how to generate diagnostic traces, if your database-of-choice supports it.  Practice (in a test database) if you have that luxury, by setting up situations you expect to be a problem, then observing the messages that show up in the logs.&lt;br /&gt;&lt;br /&gt;Practice installing the database, especially if you inherited a system already up and running.  Perform regular patches.  Pay attention to the files and directories that are created and know their purpose.  Know what processes are expected to be running and their typical load.  To beat the proverbial dead horse, the documentation for your system may be very valuable here.&lt;br /&gt;&lt;br /&gt;The most important non-technical skill for the DBA may be communication.  Cultivate good working relationships with the development team, and with the system administrators (if that doesn't already include you).  Present yourself as an accessible resource, rather than the surly gatekeeper, and you will find a much smoother experience in implementing changes.  At the same time, the "surly gatekeeper" hat is sometimes important and necessary - know when it is appropriate in your organization.&lt;br /&gt;&lt;br /&gt;As long as this post has been, I'm sure I missed several important areas that could be added.  As they come to mind, look for more posts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/544159655393583565-8470248549799284962?l=brianbontrager.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brianbontrager.blogspot.com/feeds/8470248549799284962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/real-dba.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/8470248549799284962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/544159655393583565/posts/default/8470248549799284962'/><link rel='alternate' type='text/html' href='http://brianbontrager.blogspot.com/2009/09/real-dba.html' title='A &quot;Real&quot; DBA'/><author><name>Brian Bontrager</name><uri>http://www.blogger.com/profile/08308299264632080415</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_YmxmPThFqYc/Sp5xaK1pylI/AAAAAAAAAAU/p6UMu6UaJTA/S220/profilepic'/></author><thr:total>0</thr:total></entry></feed>
