DBA Blogs
0×1A
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.
DATAPUMP with SYS$SYS.* service_names
$ 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
UKOUG 2009 — Server Manageability Roundtable
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.
Blogrotate #8: The Weekly Roundup of News for System Administrators
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 SystemsLately 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.
SoftwareIn 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.
InternetThere’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?
VirtualizationSince we covered VMWare Fusion a couple weeks ago, check out The counter-punch: a review of Parallels Desktop 5 by Dave Girard.
Networking DatacenterVirginia 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.
HardwareHave 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 SpaaaaaaaaaaaaaaaaaaaaaaaaaaceThis 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.
Log Buffer Flu Away
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!
Result Cache: Another brilliant 11g New Feature
ORA-32016: parameter "db_name" cannot be updated in SPFILE
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
Presentation: Drizzle is not MySQL with Changes by Brian Aker
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).
Check URL Status from SQL Server
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 proceduresAdam 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.
VBSCRIPTAnother 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:
- Create a text file to store the URL status.
- Capture the passed parameter that represents the URL then use MSXML methods to interact with the URL.
I’m using Windows 7 (and I adore it) so it comes bundled with MSXML6 which also comes with Windows Vista, Windows Server 2008, and is installed with Windows server 2003 SP2. For older versions of windows like Windows XP, MSXML6 can be downloaded from here.
You can still use a legacy version of MSXML, but it is recommended to use version 6 for best security, performance, reliability, and W3C conformance; this is what Microsoft Microsoft XML Team says in this blog.
- After the MSXML returns the URL status , it should be written in the text file.
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
CLRCLR: 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; url.Trim().Substring(0, 7).ToLower() != "http://" &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

After creating the DLL comes creating SQL stored procedure based on the assembly:
- Enable CLR
EXEC master..sp_configure 'clr enabled', 1
RECONFIGURE
GO
- 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 - Create the assembly with External_access:
CREATE assembly Check_url FROM 'c:\app\check_url.dll'
WITH PERMISSION_SET=EXTERNAL_ACCESS
GO - Create the stored procedure:
CREATE PROCEDURE Check_url (@url NVARCHAR(MAX))
AS external name Check_url.check_url_status.check_url ;
GONote 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.
- Test the code:
EXEC Check_url @url = 'HTTP://WWW.Pythian.COM'
GOOK
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.
OpenSQLCamp Lightning Talk Videos
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.
- All the lightning talks belowin one continuous video (just over 54 minutes total)
- The Graph Engine (Antony Curtis)
- Cluster/J, a new set of Java APIs to MySQL Cluster 5.1 (John David Duncan)
- Sphinx, the fulltext storage engine (Peter Zaitsev)
- iiBench, the Indexed Insertion Benchmark (Bradley Kuszmaul of Tokutek)
- JJtree in Coco
- Integrating OSS with Windows (Tom Hanrahan of Microsoft)
- Trainwreck, an agent for MySQL replication (Domas Mituzas)
- Column Stores (David Lutz of Infobright)
- I Play With Data, about doing real statistical calculations of data, when SQL gets in the way (Joseph di Paolantonio)
- Your Guide to NoSQL (Brian Aker)
- PL/Parrot The call for PL/Parrot in Postgres is put out there (Jonathan “Duke” Leto)
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.
An Essential DBA Skill (Part II)
The CBO CPU Costing Model: Indexes vs. Full Table Scans
Automatic DOP in 11gR2
Perl and Server Management Objects (SMO)?
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.
- Perl 5.10 (Activestate and Strawberry Perl both work fine.)
- The Win32::CLR module.
- MS Visual C++ Express 2005 or 2008 (it is free and you can get it here: www.microsoft.com/express/download/#webInstall)
- 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.
Mad Troubleshooting Skillz!
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:
- 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.
- 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.
- 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.
- 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
- 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.
An Essential DBA Skill (Part I)
Logger 1.2.0 Released
MOS Survey Results
My Oracle Support is starting to perform
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.
Disable/Enable Automatic startup Oracle HAS

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


