Skip navigation.

DBA Blogs

0×1A

Freek D’Hooge - Sun, 2009-11-29 16:23

0×1A, better know as the end of file character.
Now also known as the cause of me waisting several hours on analyzing a 500MB raw trace file trying to figure out why the tkprof report did not seemed to be correct.

Still wondering why the application I was tracing had an EOF character in the value of a varchar2 type bind variable.

Categories: DBA Blogs

DATAPUMP with SYS$SYS.* service_names

Surachart Opun - Sun, 2009-11-29 12:16
While we using DATAPUMP, we will find ALTER SYSTEM SET service_names='SYS$SYS.*...' in alert log file(RAC).
$ expdp directory=TMP logfile=full.log dumpfile=full.dmp full=yIn alert log file:
Mon Nov 30 01:14:22 2009
ALTER SYSTEM SET service_names='service2','service1','SYS$SYS.KUPC$C_1_20091130011411.ORCL' SCOPE=MEMORY SID='orcl1';
ALTER SYSTEM SET service_names='SYS$SYS.KUPC$C_1_20091130011411.ORCL','service2','service1','SYS$SYS.KUPC$S_1_20091130011411.ORCL' SCOPE=MEMORY SID='orcl1';
Mon Nov 30 01:14:29 2009
DM00 started with pid=56, OS id=26976, job SYS.SYS_EXPORT_SCHEMA_01

At "SERVICE_NAMES" parameter:
SQL> show parameter service_names

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string SYS$SYS.KUPC$C_1_20091130011411.ORCL, service2, service1, SYS$SYS.KUPC$S_1_20091130011411.ORCLAfter DATAPUMP finished. In alert log file:

ALTER SYSTEM SET service_names='SYS$SYS.KUPC$S_1_20091130011602.ORCL','service2','service1' SCOPE=MEMORY SID='orcl1';
ALTER SYSTEM SET service_names='service2','service1' SCOPE=MEMORY SID='orcl1';

At SERVICE_NAMES parameter:
SQL> show parameter service_names

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string service2, service1DATAPUMP doesn't change existing service name and no impact to existing services.
DATAPUMP just adds new services for its own queue operation.

read more metalink 363396.1Written By: Surachart Opun http://surachartopun.com
Categories: DBA Blogs

UKOUG 2009 — Server Manageability Roundtable

Pythian Group - Sat, 2009-11-28 10:47

This is a call for topics for the upcoming Server Manageability Roundtable that I will be running at UKOUG Conference 2009 Technology and E-Business Suite. I should have probably blogged earlier about this but better later than never…

The Server Manageability Roundtable is on Monday, 30-Nov, at 16:25 in the foyer on the 5th level. It’s a bit late and I should have probably proposed to change the venue to the nearby pub but it’s too late now so let’s make it the last effort for the day and then…

The topic is quite broad so we will obviously need to focus on the most relevant areas for the attendees and this is the chance to state your interest so please comment away!

Here are the topics that I think might be particularly interested:

  • Oracle Enterprise Manager — experience, deployment issues, success stories, strengths and weaknesses.
  • Impact of virtualization and cloud computing — does it make it easier to manage our infrastructure?
  • Costs cutting by manageability improvements — myth or reality?
  • Managing highly available environment — human factors.

Make sure to leave a comment below whether you have something to say on the topics above or something completely new. Sharing your experience would be fantastic! Thanks in advance for all contributions and I promise I’ll write up the report on this round-table.

Categories: DBA Blogs

Blogrotate #8: The Weekly Roundup of News for System Administrators

Pythian Group - Fri, 2009-11-27 14:58

Good morning and happy Friday to all. Happy Thanksgiving to all of our friends, family, acquaintances, and well-wishers in the US. Enjoy the turkey and the football. As always, there’s not shortage of news stories, though the week seemed a bit slow because of the holiday. Here are some things we thought were interesting this week.

Operating Systems

Lately it seems like every week a new OS comes out. Windows 7 led the pack, then Ubuntu, then Red Hat. This week’s release? FreeBSD 8.0. There are a lot of changes in this release, so check out the FreeBSD 8.0-RELEASE Announcement.

KDE (The “K” Desktop Environment) is Repositioning the KDE Brand. This does not change the functionality, it’s a change to make a distinction between the community and the desktop itself. This probably will not interest most, but since I use KDE and write this blog I get to tell you about it anyway.

Software

In a follow-up to last week’s article about GPL code being found in a new Microsoft USB/DVD download tool found in Windows 7, Microsoft has delayed opening the source for the tool. This appears to be because they want to remove proprietary code from the release. Emil Protalinski has more in his article, Microsoft delays open sourcing Windows 7 tool. More details can be found on the Port25 blog at MS tech net in, Update on the Windows 7 USB/DVD Tool.

Internet

There’s yet another browser vulnerability for IE6 and IE7. Emil Protalinski at Ars Technica has the details in, IE6 and IE7 vulnerable to latest flaw; IE8 immune.

Not to be outdone, a major IE8 flaw makes ’safe’ sites unsafe, as The Register tells us about XSS issues in IE8.

Science Daily has an article about how Search Engines Are Source of Learning. The article discusses a report from Penn state about their research into how and why people use search engines. Among other things, “They found that search engines are primarily used for fact checking users’ own internal knowledge, meaning that they are part of the learning process rather than simply a source for information”. Hey! That’s how I use them!.

Have you ever wondered how much the internet weighs? Chris Stevens at CNET UK does some math in How heavy is the Internet?

Virtualization

Since we covered VMWare Fusion a couple weeks ago, check out The counter-punch: a review of Parallels Desktop 5 by Dave Girard.

Networking Datacenter

Virginia IT Systems Lack Network Redundancy is a scary little number. According to the article, “…in just five weeks this fall, the Virginia DMV suffered 12 computer system outages, putting individual offices out of business for a total of more than 100 hours”.

Did you ever wonder what the magic was behind World of Warcraft? Data Center Knowledge says WoW’s Back End: 10 Data Centers, 75,000 Cores, 13,000 blades and over 100TB of RAM.

Hardware

Have you ever needed to have a massive amount of storage on a budget? If so, this one may be for you. The folks over at BackBlaze offer a service allowing you to backup your PC for just $5 per month, and they do all of their storage in the cloud. Their solution to the storage problem was to build their own, and they have put all the plans and schematics for doing this on their site so you can too. Check out Petabytes on a budget: How to build cheap cloud storage. Caution: your mind may be blown.

Smoking could be hazardous to your Apple warranty by Jeff Smykil is an interesting read. Apple is refusing warranty service due to potential health hazards from second hand smoke transferred to laptops. Hey, Apple, if I’m sending my laptop in for repair, I expect it to be done by technicians with masks, goggles and rubber gloves (and anti-static straps of course). One would think this should be enough to protect your employees.

Networks Innnnnnnnn Spaaaaaaaaaaaaaaaaaaaaaaaaaace

This one is really really cool. On Nov 23rd Cisco launched what I think might be the worlds largest router into space. Layer8 at Network World has the details in, Internet routing blasts into space. There is an official news release: Cisco Router Sent Into Space Aboard Intelsat Satellite.

Well, that will do it for another week. Be sure to leave some comments with your own top stories this week. I checked the logs, I know people are reading. Let’s start some chatter.

Categories: DBA Blogs

Log Buffer Flu Away

Pythian Group - Fri, 2009-11-27 12:03

It is with heavy heart (and snuffy nose and throbbing head) that I regret to inform you: there will be no Log Buffer today. Your LB coordinator has some of that flu that’s so popular these days, and he can’t blow away blog congestion when he’s so busy with his own.

We’ll get through this together, LB readers! Log Buffer will return next Friday. Till then!

Categories: DBA Blogs

Result Cache: Another brilliant 11g New Feature

The Oracle Instructor - Fri, 2009-11-27 08:19
I have just finished an Oracle Database 11g New Features course in Vienna. There are many amazing New Features in the 11g version, one of them is the possibility to cache the result sets of statements, that access large tables but return relatively few rows. Think of it like automagically created materialized views inside the [...]
Categories: DBA Blogs

ORA-32016: parameter "db_name" cannot be updated in SPFILE

ContractOracle - Fri, 2009-11-27 06:50
Strange ... database won't let you change the db_name in the spfile when the database is mounted.

SYS AS SYSDBA@tl01bko1> alter system set db_name='t01bko' scope=spfile;

System altered.

SYS AS SYSDBA@tl01bko1> alter database mount;

Database altered.

SYS AS SYSDBA@tl01bko1> alter system set db_name='t01bko' scope=spfile;
alter system set db_name='t01bko' scope=spfile
*
ERROR at line 1:
ORA-32017: failure in updating SPFILE
ORA-32016: parameter "db_name" cannot be updated in SPFILE
Categories: DBA Blogs

Presentation: Drizzle is not MySQL with Changes by Brian Aker

Pythian Group - Wed, 2009-11-25 16:42

Another video from the recent OpenSQLCamp in Portland, Oregon….Earlier today I uploaded the Lightning Talk Videos. Due to the holiday I am unsure when the rest of the videos will be ready. When they are, I will do one blog post featuring them all.

However, I have had several requests for this specific video, so here is Brian Aker speaking about Drizzle.

The slides are up at http://www.slideshare.net/brianaker/drizzle-opensql-camp, and here’s the video:

(Note, I will not do a post for each video…..but since this one is up and ready, I figured I’d do it before I leave for the holiday).

Categories: DBA Blogs

Check URL Status from SQL Server

Pythian Group - Wed, 2009-11-25 12:08

One of our clients has a public web page and they needed to ensure that it is always up and accessible. Pythian already has a monitoring stack that includes website and pages monitoring.

I wondered if this could be done from SQL Server using built-in Windows modules to access external web resources. There are various the methods we can use.

Object Automation extended stored procedures

Adam Machanic has a nice blog describing how to use Object Automation extended stored procedures. That code, however, was designed for SQL Server 2000; to use it in SQL Server 2005 and after, you will need to turn on OLE Automation using sp_configure.

Adam also recommended using CLR for SQL 2005 and later as it is safer, more stable, and more capable, which is completely true.

VBSCRIPT

Another old-fashioned method is using a VBSCRIPT file, then calling it using XP_CMDSHELL and Windows Script Host (WSH).

The VBScript should work like this:

This is the VBS script:

' Parameter holding URL

url= WScript.Arguments.Item(0)

'url= "http://www.pythian.com/mawla"

' Using MSXML 6.0 ; shipping with Win Vista , Win7, win 2008 and is installed with Win server 2003 Sp2
' Download it for older versions
' http://www.microsoft.com/downloads/details.aspx?FamilyID=993C0BCF-3BCF-4009-BE21-27E85E1857B1;displaylang=en

Set HttpRequest = CreateObject("Msxml2.XMLHTTP.6.0")  

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set oShell = WScript.CreateObject("Wscript.Shell")

' Create text file beside the script file. Should have proper permissions.
' Don't use CurDir or Oshell.currentdirectory  global variables, they will refer to %windows%\system32

Set obj_File = objFSO.createTextFile(oFSO.GetParentFolderName(Wscript.ScriptFullName) ; "\check_url.txt", true )

' Make the connection

HttpRequest.open "HEAD", Url , False  

On Error Resume Next  

HttpRequest.send  

If Err.Number <> 0 Then
' Error happend , write to file
obj_File.Write "Error : "
obj_File.Write Err.Number
obj_File.Write ": "
obj_File.Write Err.Description
'WScript.echo "Error : "
'WScript.echo Err.Number
'WScript.echo ": "
'WScript.echo Err.Description

Else
' No Errors , write URL status to file
obj_File.Write "HTTP status: "
obj_File.Write HttpRequest.status
obj_File.Write " "
obj_File.Write HttpRequest.statusText
'WScript.echo "HTTP status: "
'WScript.echo HttpRequest.status
'WScript.echo " "
'WScript.echo HttpRequest.statusText
End If  

Calling the code should be easy using Xp_cmdshell (which must be enabled) and CSscript

DECLARE @url NVARCHAR(2000)

SET @url = 'http://www.pythian.com/';

EXEC ('Exec master..Xp_cmdshell  ''Cscript //B c:\app\check_url.vbs "'+@url+'"''') ;

GO

EXEC master..xp_cmdshell 'type c:\app\check_url.txt'

GO

HTTP status: 200 OK

CLR

CLR: The more elegant, safer, newer, and more stable way.

By creating a CLR stored procedure that takes URL as a parameter, we are using the System.Net namespace as the basis here; it provides a simple programming interface for many of the protocols used on networks. I used the WebRequest and WebResponse classes to interact with the URL and return its status using HttpStatusCode. For FTP, I used FTPWebRequest and FtpWebResponse.

The URL can be HTTP, HTTPS, or FTP, and must begin with “%Protocol%://”. I wrote the CLR in C# using Microsoft Visual Studio 2008. The code is quite simple, so it can be easily written in Notepad, saved as .CS file, and compiled using C# compiler CSC.EXE.

Here is the code:


using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Web;
using System.Net;

public partial class check_url_status
{
    [Microsoft.SqlServer.Server.SqlProcedure]
    public static void check_url(string url)
    {
        if (url.Trim().Substring(0, 6).ToLower() != "ftp://" &amp;amp;amp;amp;amp;amp; url.Trim().Substring(0, 7).ToLower() != "http://" &amp;amp;amp;amp;amp;amp; url.Trim().Substring(0, 8).ToLower() != "https://")
        {
            SqlContext.Pipe.Send("URL must be a valid HTTP:// , HTTPS:// Or FTP:// URL ");
            return;
        }

        if (url.Trim().Substring(0, 7).ToLower() == "http://" || url.Trim().Substring(0, 8).ToLower() == "https://")
        {
            try
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url.Trim());

                using (HttpWebResponse rsp = (HttpWebResponse)req.GetResponse())
                {

                    SqlContext.Pipe.Send(rsp.StatusCode.ToString());
                }
            }
            catch (WebException e)
            {
                SqlContext.Pipe.Send(e.ToString().Substring(0, e.ToString().IndexOf(" at ")));
            }
        }

        else if (url.Trim().Substring(0, 6).ToLower() == "ftp://")
        {
            try
            {
                FtpWebRequest req = (FtpWebRequest)WebRequest.Create(url.Trim());

                using (FtpWebResponse rsp = (FtpWebResponse)req.GetResponse())
                {

                    SqlContext.Pipe.Send(rsp.StatusCode.ToString());
                }
            }
            catch (WebException e)
            {
                SqlContext.Pipe.Send(e.ToString().Substring(0, e.ToString().IndexOf(" at ")));
            }
        }

    }
};

There are few notes regarding the CLR.

The CLR permission level is defined as “External” as it accesses external resources (Web resources). This is set from project properties > Database tab.

The assembly should be signed for the purpose of later creating the assembly in SQL Server.

To create an EXTERNAL_ACCESS or UNSAFE assembly in SQL Server, or to load an assembly, one of two conditions must be met as mentioned in referenced link.

You can sign the assembly from project properties > signing tab

Sign Assembly

After creating the DLL comes creating SQL stored procedure based on the assembly:

  1. Enable CLR
    EXEC master..sp_configure 'clr enabled', 1

    RECONFIGURE

    GO

  2. Adhering to the requirement of creating an EXTERNAL_ACCESS assembly, we will create an ASYMMETRIC KEY and a corresponding login with EXTERNAL ACCESS ASSEMBLY permission.

    USE master 

    GO 

    CREATE ASYMMETRIC KEY check_url FROM EXECUTABLE FILE = 'c:\app\check_url.dll' 

    GO

    CREATE LOGIN check_url FROM ASYMMETRIC KEY check_url GRANT EXTERNAL ACCESS ASSEMBLY TO check_url

    GO

  3. Create the assembly with External_access:

    CREATE assembly Check_url FROM 'c:\app\check_url.dll'

    WITH PERMISSION_SET=EXTERNAL_ACCESS 

    GO

  4. Create the stored procedure:

    CREATE PROCEDURE Check_url (@url NVARCHAR(MAX))

    AS external name Check_url.check_url_status.check_url ;

    GO

    Note that the URL parameter is STRING in C# code and should be either Nvarchar or nchar in SQL Server. This is a table of mapping CLR parameter data.

  5. Test the code:

    EXEC Check_url @url = 'HTTP://WWW.Pythian.COM'

    GO

    OK

    NOTE:

    • For FTP, there must be a destination file and not only a folder or root site (example : “ftp://ftp.gnu.org/README”). This is how FTPWebRequest works, but I’m not sure why.
    • Sometimes links are redirected. The maximum number of redirects that the request follows can be controlled by MaximumAutomaticRedirections property.
Categories: DBA Blogs

OpenSQLCamp Lightning Talk Videos

Pythian Group - Wed, 2009-11-25 11:34

OpenSQLCamp was a huge success! Not many folks have blogged about what they learned there….if you missed it, all is not lost. We did take videos of most of the sessions (we only had 3 video cameras, and 4 rooms, and 2 sessions were not recorded).

All the videos have been processed, and I am working on uploading them to YouTube and filling in details for the video descriptions. Not all the videos are up right now….right now all the lightning talks are up.



I am working on uploading the rest of the sessions, so look for them next week, though I may have one or two up very soon.

Categories: DBA Blogs

An Essential DBA Skill (Part II)

Iggy Fernandez - Wed, 2009-11-25 09:47
Click here for Part I of this article. Searching for information online is an essential DBA skill. The Internet is a treasure trove of information that can help you in solving a problem. For example, user groups such as the Northern California Oracle Users Group (NoCOUG) have made vast collections of electronic presentations and white papers available [...]
Categories: DBA Blogs

The CBO CPU Costing Model: Indexes vs. Full Table Scans

Richard Foote - Wed, 2009-11-25 04:43
As previously promised, I thought I might look at how the CBO goes about costing a Full Table Scan (FTS) with system statistics and the CPU costing model, so we can understand why the CBO may have chosen one option over the other.   WARNING: You might need to grab a calculator to help you along To [...]
Categories: DBA Blogs

Automatic DOP in 11gR2

The Oracle Instructor - Tue, 2009-11-24 12:22
We have a probably very needful new feature introduced in 11g Release 2, related to parallel query: Automatically determined Degree of Parallelism (DOP). In earlier versions of the Oracle Database, we had to determine the DOP more or less manually, either with a parallel hint or by setting a parallel degree with alter table: select /*+ [...]
Categories: DBA Blogs

Perl and Server Management Objects (SMO)?

Pythian Group - Tue, 2009-11-24 11:38

No, I do not have squiggly worms in my head, and no, I haven’t gone over to the dark-side. It’s just that I had an opportunity over the past few days to attempt to use Microsoft’s Server Management Objects (SMO) with Perl to manage a SQL Server 2005 DB.

To make a long story into a short post, I blundered into the Win32::CLR module on CPAN, a little gem from Toshiyuki Yamato.

Here is all you need to get started.

  1. Perl 5.10 (Activestate and Strawberry Perl both work fine.)
  2. The Win32::CLR module.
  3. MS Visual C++ Express 2005 or 2008 (it is free and you can get it here: www.microsoft.com/express/download/#webInstall)
  4. Open a DOS prompt from Visual C++ and Makefile and the nmake install Win32::CLR.

Once you have a working version of Win32::CLR in your Perl installation, you should check that you have the SMO objects installed on you computer. These are normally stored in c:\Program Files\Microsoft SQL Server\100\SDK\Assemblies. The DLL we are interested in is called Microsoft.SqlServer.Smo.dll. If it is not there, you will most likely have to get the latest Service Pack from Microsoft.

Finally, so that Perl can find it, you will have to make sure that you put the directory of the DLL in the path.

Once you have jumped these little hurdles, you can then get down to coding. As good Perl programmers, we start with:

use strict;

and then use our CLR mod:

use Win32::CLR;
use utf8;
binmode STDOUT, ":encoding(Shift_JIS)"; # japanese character set
binmode STDERR, ":encoding(sjis)"; # if japanese windows

(I am not sure why we have to use the binmode here, so if you want an answer you will have to ask Toshi.)

We then load the SMO DLL . . . 

my $smo= Win32::CLR->load_from("Microsoft.SqlServer.Smo.dll");

 . . . and create a server object that we can play with.

my $svr = Win32::CLR->create_instance("Microsoft.SqlServer.Management.Smo.Server");

my $conn=$svr->get_property("ConnectionContext");
$conn->set_property("LoginSecure",0);
$conn->set_property("DatabaseName","xxx");
$conn->set_property("Login","xxx") ;
$conn->set_property("Password","xxx");

The above will set up the connection for us and then . . . 

print "Edition=".$svr->get_property("Edition")."\n";

 . . . will connect to the server and print out the Edition details. So if you run it you will see:

Edition=Enterprise Evaluation Edition (64-bit)

Now for the big question: Why?

For one thing, ‘SQL-DMO’, which I have been using with Win32::OLE, is on the way out for any SQL Server edition after 2005.

Second, I though I would give PowerShell a try as a replacement for my Perl Scripts. But, after a few hours trying to get my head around it, I found it was just going to be easier to use Perl for what I had to do.

I think that anyone using PowerShell might find that the above Perl solution will pay off in the long run, as any program you write in Perl can be fully modular or even object oriented in design, whereas PowerShell’s OO is more limited.

As a bonus, I found that the monitoring footprint (disk-space, memory usage, CPU usage) on my server was smaller with Perl than with PowerShell, and very much smaller than a similar C# .Net app.

Of course there are some limitations in using Win32::CLR and SMO, but nothing insurmountable. You will have to write a number of little helper subroutines because Win32::CLR exposes only the Base Class Library of objects, and not the many wrappers that one is more familiar with.

But that is another story—one that I’ll tell in an upcoming post.

Categories: DBA Blogs

Mad Troubleshooting Skillz!

Chen Shapira - Mon, 2009-11-23 21:06

Last week I attended Tanel Poder’s Advanced Oracle Troubleshooting seminar, organized by NoCOUG.

Well, actually it was organized by me, with lots of help from Iggy and the rest of NoCOUG. Organizing a seminar was not trivial, but wow – it was totally worth it!

When the seminar was over, we asked the attendees to fill a small survey and tell us what was good and what was bad. Turns out that there was just a single answer for “What was the best thing about the seminar”. The answer is – Tanel.

He is clearly an expert. He loves what he is doing. He can think on his feet and answer all sorts of more-or-less related questions from the audience. He is extremely generous with his time and his knowledge and his scripts (I know lots of DBAs who guard their scripts with their lives, Tanel happily shares them in his blog). Tanel is also funny, entertaining and the course is pretty well structured. He also talks very fast (and seems somewhat obsessed about not wasting a single millisecond) – you won’t believe how much you’ll learn in two days.

I had some trouble explaining explaining to my team and boss what I learned:
“Well, the first half day was troubleshooting hangs and slowdowns using v$views”
“But you knew that before!”
“We also learned lots of Oracle internals. How the shared pool really works, and how SQL is really processed. Lots of cool stuff.”
“OK, but what is it good for?”
“Knowing how stuff works is always good. Anyway, I also learned to use Unix tools to debug problems. Like dumping process stuck to see where it hangs! Also, we learned how to handle free memory issues. Remember that awful leak we had on that test server?”
“No.”
“Oh! Look! Shiny scripts!”

But the proof of the pudding is in the eating. No one can argue the fact that last week I already managed to troubleshoot and solve two problems that other team members failed to make much progress on. I did it very quickly too.
Now here is the strange thing – the two problems were in areas of Oracle that Tanel very explicitly did not mention during the seminar. Streams and Clusterware. I did not even use any of his scripts to shoot them. And yet I’m still convinced that the reason I was so effective in solving those problems is directly related to the seminar. How is that? Here are the important non-technical things I learned at the seminar:

  1. Systematic approach – You don’t work off lists, you don’t waste time by looking at random places and you don’t guess (much). You gather symptoms, you use them to pinpoint the problem and you use the pinpointed knowledge to work your way toward a solution. The last part sometimes involves Oracle support. I knew about the systematic approach thing before, but two days of looking at someone demonstrating it makes a difference.
  2. Don’t believe anyone (except the OS) – Users lie, other DBAs lie, even Oracle sometimes lies. Always crosscheck and double check the facts. No one lies intentionally, but the result is still misleading.
  3. Problems have causes. I know it sounds funny, but very often we stop troubleshooting too soon, attributing a problem to mysterious unknown forces or at least say “well, I don’t know how to know this” and leave things at that. Tanel went farther than anyone I’ve ever seen by saying “I have to know why this behaves like that” and when Oracle doesn’t tell him, he goes to the OS, or the network, or writes his own tools. Thats a good lesson – don’t take no for an answer.
  4. All DBAs have tons of troubleshooting scripts. Real experts have scripts with very short names and very flexible arguments. They also have a script for reminding them how to use their scripts
  5. I no longer view trouble as something annoying that wastes my time and prevents me from doing stuff I want to do. Instead every trouble is now cherished as an opportunity to practice what I learned, learn more and polish my skills.

I highly recommend Tanel’s course to DBAs who want to suddenly become the best troubleshooters in their team. Its not a comfortable position to be in (suddenly a lot more trouble finds its way to you), but it can be lots of fun.

Categories: DBA Blogs

An Essential DBA Skill (Part I)

Iggy Fernandez - Mon, 2009-11-23 19:31
I have attended many interviews for Oracle DBA positions in my career and, with rare exceptions, always found that the interviewers set great store on knowledge of Oracle syntax. A big problem is that the typical interviewer usually only asks questions about those Oracle features that he or she uses on the job and is [...]
Categories: DBA Blogs

Logger 1.2.0 Released

Tyler Muth - Mon, 2009-11-23 15:20
I just posted the latest version of logger, my PL/SQL logging utility to https://logger.samplecode.oracle.com/.  There are a number of new features as well as bug fixes, many of which were suggested by other people in the comments of my previous blog post on logger.  You can view the new features and fixes in the “Change [...]
Categories: DBA Blogs, Development

MOS Survey Results

Hemant K Chitale - Mon, 2009-11-23 09:08
Daniel Fink has published the results of a survey on MOS -- aka "My Oracle Support"....

Categories: DBA Blogs

My Oracle Support is starting to perform

Hans Forbrich - Sun, 2009-11-22 19:50
Not sure whether this is due to the lighter weekend traffic, or significant changes in the programming, but I notice that My Oracle Support - Flash version - is considerably faster today.

If this is a permanent change, then I am duly impressed.

Some areas of the UI are also starting to become operational. For example, I find if I 'follow the rules' for getting certification info - filling in lots of drop down boxes to get a strong filter - the result is returned in a not-unreasonable amount of time.

That means there is hope that eventually the UI will become less irritating as well.
Categories: DBA Blogs

Disable/Enable Automatic startup Oracle HAS

Surachart Opun - Sun, 2009-11-22 03:39



















On 11gR2, Oracle Clusterware consists of two separate stacks: an upper stack anchored by the Cluster Ready Services (CRS) daemon (crsd) and a lower stack anchored by the Oracle High Availability Services daemon (ohasd).

So.. How to disable/enable Oracle HAS.
Use the crsctl disable has command to disable automatic startup of the Oracle High Availability Services stack when the server boots up.
# crsctl config has
CRS-4622: Oracle High Availability Services autostart is enabled.How to know Oracle HAS is enabled(if doesn't use "crsctl config has")
# cat /etc/oracle/scls_scr/rhel5-test/root/ohasdstr
enable

# crsctl disable has
CRS-4621: Oracle High Availability Services autostart is disabled.

# crsctl config has
CRS-4621: Oracle High Availability Services autostart is disabled.

# cat /etc/oracle/scls_scr/rhel5-test/root/ohasdstr
disableUse the crsctl enable has command to enable automatic startup of the Oracle High Availability Services stack when the server boots up.
# crsctl enable has
CRS-4622: Oracle High Availability Services autostart is enabled.

# cat /etc/oracle/scls_scr/rhel5-test/root/ohasdstr
enableIf We just check HAS Disable/Enable status, that uses "crsctl config has" command, it's easier than "ohasdstr" file checking.

How about "crsctl disable/enable crs" on 11gR2?
They disable/enable automatic startup of Oracle HAS.

I posted "check enable/disable the startup of CRS".. that show Oracle Clusterware version <= 11gR1, we can check from "crsstart" file. On 11gR2, crsstart file is not used ???

Use the crsctl disable crs command to prevent the automatic startup of Oracle High Availability Services when the server boots.

Use the crsctl enable crs command to enable automatic startup of Oracle High Availability Services when the server boots.
# crsctl config has
CRS-4622: Oracle High Availability Services autostart is enabled.

# crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.

# ls -ltr /etc/oracle/scls_scr/rhel5-test/root/
-rw-r--r-- 1 root root 7 Sep 7 00:56 crsstart
-rw-r--r-- 1 root oinstall 5 Nov 22 17:04 ohasdrun
-rw-r--r-- 1 root oinstall 7 Nov 22 17:10 ohasdstr# cat /etc/oracle/scls_scr/rhel5-test/root/crsstart
enable

# cat /etc/oracle/scls_scr/rhel5-test/root/ohasdstr
enable

# crsctl disable crs
CRS-4621: Oracle High Availability Services autostart is disabled.

# crsctl config crs
CRS-4621: Oracle High Availability Services autostart is disabled.

# crsctl config has
CRS-4621: Oracle High Availability Services autostart is disabled.

# ls -ltr /etc/oracle/scls_scr/rhel5-test/root/
-rw-r--r-- 1 root root 7 Sep 7 00:56 crsstart
-rw-r--r-- 1 root oinstall 5 Nov 22 17:04 ohasdrun
-rw-r--r-- 1 root oinstall 8 Nov 22 17:12 ohasdstr

# cat /etc/oracle/scls_scr/rhel5-test/root/crsstart
enable

# cat /etc/oracle/scls_scr/rhel5-test/root/ohasdstr
disable
However, check CRSCTL Utility ReferenceWritten By: Surachart Opun http://surachartopun.com
Categories: DBA Blogs