Tuesday, November 19, 2013

DB2 Refrential Integrity

I was going to write a post about DB2 referential integrity, but I cannot imagine writing anything better than the very good, thorough treatment of the topic found here:
http://ibmdatamag.com/2011/01/how-well-do-you-know-the-rules/

Thursday, October 17, 2013

Trouble installing oracle on Windows

So, while installing Oracle on Windows 7 (64-bit), the Oracle installer would just sort of shut down unceremoniously.

I found a log file C:\Program Files\Oracle\Inventory\logs.  It wasn't, however, very revealing.  The last message was simply "INFO: Get view named [QuickInstallUI]"

So, poking around on the internet lead me to a thread over at forums.oracle.com that discussed this issue, but the only thing that worked for me was to create another user and run the install as that user.

Crazy. But it worked.  Wanted to pass it along.

Monday, October 14, 2013

DB2 Backup Naming convention

I had a hard time finding this on the internet, so I thought I'd post after I found it in a book.

The naming convention for a DB2 file system backup will be:
Alias.Type.Instance.Node.Catalog_Node.MonthHourSecond.Sequence
Example:
MyDB.0.DB2INST.NODE00000.CATN0000.20131015131259.001
   ↑       ↑        ↑                ↑                   ↑                ↑   ↑  ↑     ↑   ↑     ↑
Alias     |    Instance          |           Catalog Node     |    |   |      |    |      |
       Backup Type       Node                              Year  |   |      |    |      |
                                                                            Mon  Day  |  Sec   Seq
                                                                                           Min

Reference:
Understanding DB2: Learning Visually with Examples Second Edition
Page 745
14.4.6 The Backup Files
Raul F. Chong Clara Liu Sylvia F. Qi Dwaine R. Snow 

Friday, October 11, 2013

Christ and the Environment


http://losalamitos.patch.com/groups/weather/p/climate-change-study-permanent-unbearable-heat-expected-in-southern-california-by-2047_44f0b316

So many things are weird to me. I think this is the last thing I'll say for a while, but here's this one.

Christians are Republican. No, don't even argue that you're not, I've seen your glee over the glitches in Obamacare, which I cannot see in any other context.

But that's OK, I get that. You picked a team over an issue that was important to you, and I completely respect that. Now you want your team to win, and that's completely natural.

I guess, if I had a wish, though, it would be that you could start pressuring your team to have more Christ-like opinions on issues outside your main one.

For instance: what would Christ say about the environment?

Would Christ say, well, Bush 41 ended acid rain by creating a market for sulfur and letting his market based solution solve this problem, but that same idea is applied by that Kenyan Muslim Terrorist AntiChrist black-man in the white house, it's the most evil thing ever?

Would He say Boy, despite the opinion being held by literally all of your best scientists, there's a possibility that they're wrong, so why advance the human race by creating cleaner more renewable sources of energy that will reduce costs and improve standard of living for everyone, particularly the poor?

Would He mock the environmentalists who, whether they're right or wrong, have the best interest of His creation at heart?

Would He say, Hey, having an environment that supports human life and happiness is important, but I'd hate to see profits hurt by some sort of effort to make a change?

Would He even say, Hey, you can't put people out of work? Or would He say, man, do everything you can not to put people out of work, and if you DO put people out of work, support them, retrain them, pray for them, feed and clothe them until they're back on their feet again? And, oh, btw, develop of carbon sequestration technology, and you don't have to put people out of work?

The only way that I can understand the Christian position on a variety of issues is through the psychology of teams. Our minds are designed to make us join a team, make us love us and hate them, and blind us to obvious Truth.

BUT, we are the disciples of The One who is the Way, the TRUTH, and the life. Truth is important. Perhaps more important than anything. Wanting our team to win at the cost of Truth is a terrible, terrible shame.

My next note will be this same sort of thing, but about health care ...

Thursday, October 10, 2013

It's Sad

It's sad.

I'm listening to the radio, and I hear some preacher literally preaching against big government, as if the bible says that.


After a few moments of listening in stunned silence, I turn the channel to another Christian station, where they're talking about how changes in government policies are driving out Christian heritage.


You'd swear that Christians can't worship God or follow the teachings of Christ without the approval of the state of Iowa, or that (Beware: The following is sarcasm:) Kenyan Muslim Terrorist AntiChrist in the white house.

There's a hideous idol standing in the middle of our sanctuary, and on it's head are two horns. On one is written "the culture wars", and on the other, "Republican politics".

It's a comforting idol, for sure. It allows us to exercise our basest human instincts to divide into us and them, love us, and hate them, and do it all in the name of something higher, something pure, something good. 


Except that it's not any of those things. It boils with the wretchedness of racism that the perpetrator can't even see,much less acknowledge. It drips bile towards those who have legitimate differences in opinion. It intoxicates decent, generous, kind people into demonizing the very people to whom you should be reaching out, convinced that they are the enemy of your "Christian nation".

And hidden behind this abomination is the cross of Christ, quietly calling you to the real, difficult, demoralizing, frustrating work against nature; the remaking of yourself in Christ's image. The Cross of Christ calling you to deny yourself, to deny these basal, tribal instincts, to put aside the psychology of teams, and to begin the journey of a genuine disciple of Christ.

Wake up.

Tuesday, September 03, 2013

I've been reading a lot about suffering lately.  It's not that I sought them out, but rather that they sort of came to me unbidden.  This makes me take notice, moreso than I normally would.

CS Lewis:

Unfortunately, I'm having trouble finding it and am out of time, but the gist was that we fear a thing, and we shrink from what we fear. What, the, if that thing we fear turns out to be good?

Paramahansa Yogananda in Autobiography of a Yogi, chapter: Law of Miracles ...

A dazzling play of light filled the whole horizon. A soft rumbling vibration formed itself into words:
"What has life or death to do with Light? In the image of My Light I have made you. The relativities of life and death belong to the cosmic dream. Behold your dreamless being! Awake, my child, awake!"
 
and later in the same chapter, after a horrifying vision of the European battlefields of WW1:
 My heart was still not comforted. The divine voice went on: "Creation is light and shadow both, else no picture is possible. The good and evil of maya must ever alternate in supremacy. If joy were ceaseless here in this world, would man ever seek another? Without suffering he scarcely cares to recall that he has forsaken his eternal home. Pain is a prod to remembrance. The way of escape is through wisdom! The tragedy of death is unreal; those who shudder at it are like an ignorant actor who dies of fright on the stage when nothing more is fired at him than a blank cartridge. My sons are the children of light; they will not sleep forever in delusion."

A guy on a facebook group I'm on (Translated from Greek, so forgive some of the imperfections. I decided to leave them):



There will never flew ...
The cocoon of the Butterfly (instructive history) Someone, sometime, he found the cocoon of a butterfly.
One day, there was a small opening in the cocoon. The man sat and observed the butterfly for several hours as she was struggling to pass her body through the small hole. Sometime it seemed anympori to proceed.
So the man decided to help the butterfly. With a pair of scissors, cut the remaining piece of the cocoon. The butterfly made easily, but had a swollen body and wings are withered. The man continued to observe the butterfly because he expected that the wings will be raised and we were stretching to prop up her body, which will slowly xeprizotan.
Something, however, was not.
In contrast, the butterfly spent the rest of her life by dragging her swollen body and having withered wings. Never been able to fly.
This man, with kindness and haste, did not understand was that the fight to get the butterfly from the opening, it was the way in which God carried the fluid from her body toward the wings so that they are ready to fly once freed from the cocoon.
Sometimes, the difficulty is exactly what we need in our lives. If God allowed us to cross the life without obstacles, will not have the power to bestow.

There will never flew ...


It has been postulated that suffereing and fear and loss are all animal emotions; that the soul perceives live as a gleeful adventure.  I don't know. I do think that pain makes us care. It drives us to our knees to seek a closer relationship with a creator that we'll never quite know.  It prods us to remember those we love, both here and gone.

I suppose we should be thankful, but that knowledge is little consolation when we are in the midst of that pain. There is, I think, nothing to do but to greive with those who greive, give ourselves that time and space to be a human and not a machine at a job or even in our family, and be OK with the grieving, knowing that it is as unavoidable as sun-rise, and that like the sun-set, it's will, eventually, abate.
 
When we all experience pain, a little courage helps
more (Lewis observes) than much knowledge, a little
human sympathy more than much courage, and the
least tincture of the love of God more than all.
- CS Lewis, The Problem of Pain

Thursday, August 29, 2013

Nothing Ever Always

Sometimes I get really frustrated by the things I used to know, but somehow forgot.
For instance, I USED to know that, in a relational database, nothing is ever always true.
Huh?

Perhaps an example will be illuminating.

Indexes - we are told that they help reads and hurt writes.  I suppose that's true, on some level, because of the processing the RDBMS has to do in order to perform the actual operation of writing to the table, and updating the indexes.

However, I had a situation today wherein I found myself creating an index to DRAMATICALLY speed up a write operation.

Both for a delete where and an update where, adding the index cut the execution (in DB2, measured in timerons) by 60 - 80 %.  Wow. 

Honestly, I should have known this.  I've been doing this for a while. I get used to pat ideas and the looking at a problem in a very particular way, or on a small set of data.

Bottom line, in relational databases, nothing ever always.

Tuesday, July 30, 2013

It's so weird to me ...

Spent the morning trying to decide if/how to write about my daughter, Livie's week at Baptist summer camp.

It's just so weird to me ...

I read verses like this, and they humble me: http://www.biblegateway.com/passage/?search=Isaiah+55%3A9-10&version=NIV

But, in spite of such reminders, we try so hard to make the working of the cosmos fit our strict cosmological views.

I've heard the idea expressed, again and again, by people of great faith, that their entire faith somehow falls flat on its face if the first couple chapters of Genesis are not a literal, accurate historical record.

Wait; what? Why?

Because the Holy Spirit could never inspire an allegory or morality tale that, while holding great Truth, nonetheless wasn't literal, historical fact? (See parables of Jesus)

Because we know the mind of God, and he would never bring to fruition His great Creative Work through a process so unintuitive as billions of years of the emergence of Life through a bottom-up process, rather than sort of drawing us in the dirt like a back-yard football play?

Because the Spirit of the Living God could not possibly be present in the very cells and subatomic structures and the fundamental Nature of living beings as they grow and change and reproduce as the eons go by?

Because it would be so sensible for an omnipotent God to create men with curious nature, put them in a garden, give them infinite time, access to sin, and the presence of a tempter; and then say "Woah, what?  Boy, didn't see THAT coming." when they ate ... what was it? Not the fruit of the icky awful nasty sinfulness? No, the fruit of the knowledge of good and evil. There's a fruit for that? A literal fruit for that? OK...


Look, I respect that you believe that. I really do. For all I know, you could be right, and it really went down in exactly that way. I'm not saying it DIDN'T happen, just that I find it unlikely.

Neither am I saying that I believe in a godless form of evolution. Science doesn't talk about God because it's limitations prevent it from doing so. It's not designed for intuitive speculation, and it's not any good at discussing what it can't measure or observe.

What I AM SAYING is that it's so weird that we limit God in the ways we do. The argument I hear is "Jesus quoted from Genesis, so if Genesis isn't true (historical fact), then my entire faith collapses." My response: Jesus told parables. There's no reason Jesus couldn't use Genesis if it's a morality tale, or an allegory. 


Why does science have to be the enemy?  Why can science, in its limited but rather thrilling way,  not be, after all these eons, finally giving us our first tentative glimpses into how God did what God did?

You don't have to buy that. You probably won't even actually hear it, if history is any guide.

But, please, please, please, do me this one favor:

Don't persecute and vilify those who really, truly do love Jesus and work hard every day to be His disciple, but don't buy into your version.

Especially my kids.

It's just so weird to me...

Tuesday, July 16, 2013

Getting immediate notifications for deadlocks in SQL Server

Today I learned that I can get immediate notification of deadlocks in SQL Server.  This is very useful, since one of our applications is prone to deadlocks (due to it's remarkable configurability), and these can be difficult to reproduce, especially in production.

First - a disclaimer.  This method does not email the deadlock graph to you, only an alert saying that the deadlock has occurred.  It is assumed that you are running a server-side trace to capture the necessary information for trouble-shooting.  This is only to give you the alert.

    1. Assure that the 1205 message is actually logged. (very good info on this in Michael K. Campbell's article for Practical SQL Server)
                      EXEC master..sp_altermessage 1205, 'WITH_LOG', TRUE;
                      GO
    1. Assure that SQLMail is configured
      1. NOTE: The step I forget most often is to assure that mail is enabled under SQL Server Agent -> Properties, as is outlined here.
    2. Create an alert for 1205 message.
  1. NOTE: This will only set up the notification.  You also have to configure a default monitor to detect deadlocks.  The mail will only prompt you to go and have a look at the deadlock trace!

References used in compiling this procedure:


Info on the error message I encountered in using sqlmail with alerts:
Error: An attempt was made to send an email when no email session has been established
Link  ; http://www.sqldbadiaries.com/2010/07/27/an-attempt-was-made-to-send-an-email-when-no-email-session-has-been-established-sql-server-2005/

Procedure for setting up alerts:
http://sqlmag.com/blog/enabling-email-alerts-sql-server-deadlocks

Test Script to simulate deadlock:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49692 


Monday, July 08, 2013

backup Db2- unable to force applications

When trying to backup a db on db2 LUW 9.5, I get the following message, even after running quiesce.

SQL1035N The database is currently in use. SQLSTATE=57019
 
There is some good advice involving authority here: http://www.dbforums.com/db2/1663529-backup-db2-unable-force-applications.html#post6596923

However, it did not apply to my situation.

In desperation, I decided to just restart the instance.
When I did, I got an error indicating invalid credentials.

I had to go into the Windows Service and change the password for the user.
That cleared up the issue.

Whaddya know...

Wednesday, July 03, 2013

DB2 (and WebSphere) infocenter vs Developerworks

Just a quick note for those who may encounter it.
IBM's InfoCenters, or the ones for DB2 and WebSphere at any rate, are great at containing a fantastic amount of words that really don't tell you anything.

For task-based procedures, I like to go to DeveloperWorks and do a site search.


Tuesday, July 02, 2013

Tips for working an office-style job from your home.



Tips for Working from Home:

Make a space

               This space needs to be comfortable, but not TOO comfortable, and have few distractions.  It needs to offer the quiet environment you need and allow you to focus on your work without thinking about kids or other distractions

Don’t watch the kids, do chores, etc

               For full time WFH, it is unlikely that you’ll be able to do your best work if you’re also attending to children.  This is the reason a lot of people want to work from home.  I suppose if you can do it and get away with it, OK, but for me, they would be wanting too much attention and cause too many interruptions. My children know that, when Dad’s at work and the office door is closed, they stay away.  When my wife has to work, we get a baby-sitter.
               If someone calls you and needs you to do something, say no.  If the spouse wants you to watch kids while they run errands, say no. You are AT WORK (PERIOD).

Create a social Context

               The lack of human contact can be very isolating.  Create your own social outlet through a religious organization, hobby or enthusiasts group, etc.  It’s tough to justify this if you’re working long hours and you have a family, but, at least for me, it really is necessary to maintain an even keel.
Pretend someone is watching you.
               Discipline is tough, and it’s easy to let it break down when no one can see what you’re doing.

Get Exercise!

               You don’t realize how much you move when going to the office, and being at the office.  Much of this very simple movement can be lost if you work from your home.  It is VITAL that you find a way to get exercise.  Go for a walk over lunch, join a gym, do tai chi, whatever suits you, but for heaven’s sake, do something!

Thursday, May 23, 2013

Find out where you're logged on

As a sysadmin, I end up logged in all over the place.
Periodically, I'm asked to change my password, and if I'm not logged out from every server, it can cause all sorts of issues.



Update: 2013-11-11
Ignore everything below.  This is so much easier than I was making it.
PsLoggedOn will simply scan your network and tell you where you're logged on. Not sure how I missed this!
http://technet.microsoft.com/en-us/sysinternals/bb897545

Example:
PsLoggedon.exe -l MyDomain\MyUser

*facepalm*
___

There is a WMIC command that can be used to see where you're logged in at on the network. This is probably the recommended way if you're running newer servers.
L
However, we still have a lot of older servers that don't fully support WMIC.  I therefore take the following approach:

From command prompt, run
NET VIEW | FIND /I "DB" > SERVERLIST.txt
This populates the list with all DB servers (per our naming conventions).

I then run
NET VIEW | FIND /I "AS" >> SERVERLIST.txt
This, per our naming conventions, appends the app servers (hosting jboss or WebSphere).
Note the >>, so that the SERVERLIST.txt is not overwritten by the output redirection.

I then execute PSLOGGEDON (download from sysinternals/PSTools) as follows:
for /F %i in (SERVERLIST.txt) do PsLoggedon.exe -L %i >> loggedon_output.txt 2>&1
This will read the systems in SERVERLIST.txt and, for each one, execute the PSLoggedon.exe -L command.  Output will be piped to loggedon_output.txt.
NOTE: loggedon_output.txt is not truncated at any point.  If you're like me and tend to run this from the same place over and over again, you'll need to clean it up manually before you begin.

Good luck :-)

Tuesday, April 30, 2013

WMIC to create a report of free disk space on servers

To see the free space on drives for a server, use the following command.
NOTE:  Replace   with the name of your server.

C:\temp>wmic /AGGREGATE:Off /FAILFAST:On /RECORD:outout.xml /NODE: "" logicaldisk get SystemName,description,DeviceID,FreeSpace
Description              DeviceID  FreeSpace    SystemName
3 1/2 Inch Floppy Drive  A:                     DEN01VMDBSOLO01
Local Fixed Disk         C:        12263886848  DEN01VMDBSOLO01
Local Fixed Disk         D:        78583287808  DEN01VMDBSOLO01
Local Fixed Disk         E:        78348578816  DEN01VMDBSOLO01
CD-ROM Disc              F:                     DEN01VMDBSOLO01
Network Connection       R:        52428800000  DEN01VMDBSOLO01


Even better, you can do so for a whole list of servers, by
A) Creating a comma delimited or newline delimited (on server on each line) list of server names in a .txt file.
Example:
Server1
Server2
Server3
Server4

B) Replacing with @ServerList.txt, where ServerList.txt is the name of your text file.

Awesome.

Tuesday, April 16, 2013

Issues with mouse direct-connected to hp EliteBook 8540w

CORRECTION:
Everything below the horizontal line is crazy-talk.  Sorry.
It was a problem with the mouse itself. I believe the USB connection was damaged.

________________________________________________________________________________________


I've been having issues recently with my mouse disconnecting and then reconnecting for no apparent reason when plugged directly into a USB port on my laptop.
I went into Control Panel -> Mouse, and found that my pointer was configured as shown:
Before: Synaptics TouchStyk V2.0 on PS/2 Port 0

I changed it to use the V7.0 Synaptic driver, and it appears to be working much better.
After: Synaptics TouchPad V7.2 on PS/2 Port 3

I also recajiggered the pointer so it's bigger and has a tail.

Not sure if this will help anyone, ever, but it's been really annoying me, so I thought I'd share just in case ;-)

Friday, April 05, 2013

Type an Ascii character in Windows, Alt Codes, Useful Links

If you're like me, you have a fairly limitted selection of special characters that you want to insert into your documents or messages on a regular basis.

There are several ways to do this, as outlined here:
http://www.timeatlas.com/5_minute_tips/general/making_cents_of_special_characters#.UV7QyFeS8hV

I've taken to using alt-codes for the ones I use most frequently.  Memorizing a few of these can be a big time-saver.  Good list here:
http://www.alt-codes.net/

Some of the ones I find most useful:
ALT-3        ♥
ALT- 14     ♫
ALT - 126   ~
ALT - 236   ∞
ALT - 241   ±
ALT - 242   ≥
ALT - 243   ≤
ALT - 0162 ¢  (Not in the linked page - look here: http://symbolcodes.tlt.psu.edu/accents/codealt.html)
ALT - 0169 © (Not in the linked page - look here: http://symbolcodes.tlt.psu.edu/accents/codealt.html)
ALT - 0174 ® (Not in the linked page - look here: http://symbolcodes.tlt.psu.edu/accents/codealt.html)

Those who write Spanish will find these useful:
¿  ALT-168
¡  ALT-173

There are also some accented letters you can check into, found here:
http://symbolcodes.tlt.psu.edu/bylanguage/spanish.html



Monday, April 01, 2013

Finding large files and directories on Windows

One of the most useful tools I've found for troubleshooting full drive issues is WinDirStat.

Since it seems that it's being bundled with all sorts of yuck-ware by all sorts of people, I thought I'd post the sourceforge link to the software.

http://sourceforge.net/projects/windirstat/files/windirstat/1.1.2%20installer%20re-release%20%28more%20languages%21%29/windirstat1_1_2_setup.exe/download?use_mirror=iweb

It gives a nice sort of heat map of where your large files and directories reside.  Very good tool, and much faster than the jdiskreport that I previously recommended from JGoodies, although I will say that is also a very worthy tool.  We have some systems that don't have java installed, though, and this tool is faster and doesn't have the java requirement.

Thursday, March 28, 2013

Detecting Transaction Isolation Level through Profiler Trace and other means on MS SQL Server 2005

I doubt that this comes up often, but I find myself in a bit of an argument about what isolation level will be used for transactions in our SQL Server database when the transaction is initiated by WebSphere.  There are various documents that indicate how WebSphere can over ride this value.

I decided to dig into this a bit further.

TRACE:

In doing so, I found that I could monitor our SQL Server DB to determine this.

I have only found two places where the transaction isolation level is appearing:
1 - Sessions:Existing Connection.Text Data
2 - In a deadlock trace as part of the XML output.

If anyone can find it elsewhere, I'd love to hear from you.  However, this makes sense, since this is more-or-less controlled at the session level.

QUERY:
If found that 
DBCC USEROPTIONS
would give me the *default* TIL for the db, but that if that TIL was altered by the session, it would not reflect that.

To get the TIL for *your session*, you can run the following query:

SELECT CASE transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncomitted' WHEN 2 THEN 'Readcomitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL FROM sys.dm_exec_sessions

Credit to StackOverflow question and answer here: http://stackoverflow.com/questions/1038113/how-to-find-current-transaction-level 

Friday, March 22, 2013

Observations on translating stored procedures from Oracle <-> DB2 <-> MS SQL Server

I've spent the vast majority of the last 3-4 weeks translating stored procedures from Oracle to DB2, Oracle to SQL Server, and back again, etc. etc. etc. and so on and so forth ;-)

I have a couple of observations:
1 - Oracle PL/SQL is a very clean and easy to read language.
2 - MS SQL Server's T/SQL is powerful and modern and easy
3 - DB2's PL/SQL is, well, my grandmother always taught me that if I didn't have anything nice to say I should just not say anything at all.

I'll post some more useful notes in the coming days.  For now, I wanted to say, very clearly, that I have spent an inordinate amount of my time on the DB2 portions of this.  Sort of sad.  I fear IBM is neglecting this flagship product ...

Thursday, March 21, 2013

Altering schema for all tables in MS SQL Server 2005

I ran into a situation today where I needed to alter all tables for an MS SQL Server 2005 database.
A quick Google revealed this post from Ruslan Trifonov.

exec sp_MSforeachtable "ALTER SCHEMA new_schema TRANSFER ? PRINT '? modified' "

Excellent :-)  That was easy ...

Reference to ALTER SCHEMA command is here.
In it's simplest form, the command appears to take this shape: ALTER SCHEMA HumanResources TRANSFER Person.Address;

For those who aren't familiar with the '?' in T/SQL, it's represents a parameter, so this statement is parameterized.  Essentially, sp_MSforeachtable is going to pass the name of each table to statement/query.

Great stuff. Big thanks to Ruslan. That was easy :-)

Tuesday, March 19, 2013

Email your SQL Server Administrators regarding the last backups for databases


The following script will send a notification that tells when the last database backup was performed.

EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Sqlalerts',
@recipients = 'first.last@somoecompany.com',
@copy_recipients ='first.last@somoecompany.com',
@query ='exec msdb.dbo.uspMonitorbackups',
@query_result_separator=' ',
@subject = 'DB's w/o backups for last 10 days on SS Instance Name',
@attach_query_result_as_file = 0,
@body= 'Database without backup from last 10 days',
@body_format='text',
@query_result_width = 1000,
@append_query_error = 1,
@query_result_no_padding = 1;

Most of these parameters are self-explanatory.  I will say that profile_name = the profile FROM which the email will be sent.  This ends up in the "FROM" line of the email.

sp_send_dbmail documentation can be found here: http://msdn.microsoft.com/en-us/library/ms190307.aspx 

The contents of uspMonitorbackups is as follows:

USE [msdb]
GO
/****** Object:  StoredProcedure [dbo].[uspMonitorbackups]    Script Date: 03/19/2013 16:51:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
  Create procedure [dbo].[uspMonitorbackups]
  as
   SELECT  sd.name,
        bs.TYPE,
        bs.database_name,
        max(bs.backup_start_date) as last_backup,
        CONVERT(varchar(30),DATABASEPROPERTYEX(sd.name,'Status')) as [Database Status]
FROM    master..sysdatabases sd
        Left outer join msdb..backupset bs on rtrim(bs.database_name) = rtrim(sd.name)
        left outer JOIN msdb..backupmediafamily bmf ON bs.media_set_id = bmf.media_set_id
WHERE     bs.type = 'D'
Group by sd.name,
        bs.TYPE,
        bs.database_name
HAVING (MAX(bs.backup_start_date) < DATEADD(dd,-10,GETDATE()))

Issues with AIX newline characters on KSH files developed on Windows


To fix issues with the ^M from developing a .KSH file on windows and then uploaded to AIX:
1 - edit the file in vi (extremly useful vi cheatsheet found here: Vi Cheatsheet from LagMonster)
2 - do a substitution using the following keystrokes: :%s/[ctrlkey+v and ctrl-key+M]//g
This will appear as ...  :%s/^M//g … when you type it.
3 - save with :x

However, note that the command does not look like he says it does.  He reports the ctrl-v as printing this: :%s/^V^M//g.  For me, it did this: :%s/^M//g.

Friday, March 15, 2013

The momentum of life


Sometimes, something is on my heart, and it nests in my brain, and to move on with my day, I have to let it out through my fingertips via keyboard or pen and paper.  Today I chose keyboard.  Hope you don't mind :-)

Life takes on a certain momentum (mass, direction and speed attributes).  The right mental attitude is important, but let's face it, the glass is 1/2 full if you're filling it, 1/2 empty if your draining it.  To change the momentum of an object requires the application of and external source of energy/force.  The larger the change, the larger the energy/force required. If I remember my physics correctly, which admittedly I may not, the larger the mass and speed of the object (direction and speed attributes of the existing condition, in this metaphor), the more external energy/force that is required to make even a small change.
For a person with an undesirable character trait that is impacting their life, every piece of this is difficult; from the self-awareness to know that some part of your life or personality is taking an undesirable trajectory, to the application of the energy necessary to make a meaningful change.  
What's even more difficult, IMO, is watching someone you love build an undesirable velocity in their life, knowing what an enormous task it's going to be for them to change it when they are finally ready, and that there's absolutely nothing you can do but say words they won't hear and wait for the right time, to add your energy to theirs when they have that epiphany.
I'm sure it's an experience we all share.

Thursday, March 14, 2013

From "Lord of Light"

This is taken from a Facebook post from someone I respect.  Because he values anonymity, I do not credit him explicitly. 

This is from Roger Zelazny´s classic work Lord of Light.


"When he came to the purple grove, there were small camplights behind the trees, pale blossoms of fire in the sky above the town, and a breeze with a certain dampness in it stirring the growth about him.

He moved silently ahead, entering the grove.

When he came into the lighted area, he was faced with row upon row of motionless, seated figures. Each wore a yellow robe with a yellow cowl drawn over the head. Hundreds of them were seated so, and not one uttered a sound.

He approached the one nearest him. "I have come to see Tathagatha, the Buddha," he said.

The man did not seem to hear him.

"Where is he?"

The man did not reply.

He bent forward and stared into the monk's half-closed eyes. For a moment, he glared into them, but it was as though the other was asleep, for the eyes did not even meet with his.

Then he raised his voice, so that all within the grove might hear him: "I have come to see Tathagatha, the Buddha," he said. "Where is he?"

It was as though he addressed a field of stones. "Do you think to hide him in this manner?" he called out. "Do you think that because you are many, and all dressed alike, and because you will not answer me, that for these reasons I cannot find him among you?"

There was only the sighing of the wind, passing through from the back of the grove. The light flickered and the purple fronds stirred.

He laughed. "In this, you may be right," he admitted. "But you must move sometime, if you intend to go on living-and I can wait as long as any man."

Then he seated himself upon the ground, his back against the blue bark of a tall tree, his blade across his knees. Immediately, he was seized with drowsiness. His head nodded and jerked upward several times. Then his chin came to rest upon his breast and he snored.

Was walking, across a blue-green plain, the grasses bending down to form a pathway before him. At the end of this pathway was a massive tree, a tree such as did not grow upon the world, but rather held the world together with its roots, and with its branches reached up to utter leaves among the stars.

At its base sat a man, cross-legged, a faint smile upon his lips. He knew this man to be the Buddha, and he approached and stood before him.

"Greetings, oh Death," said the seated one, crowned with a rose-hued aureole that was bright in the shadow of the tree.

Yama did not reply, but drew his blade.

The Buddha continued to smile, and as Yama moved forward he heard a sound like distant music.

He halted and looked about him, his blade still upraised.

They came from all quarters, the four Regents of the world, come down from Mount Sumernu: the Master of the North advanced, followed by his Yakshas, all in gold, mounted on yellow horses, bearing shields that blazed with golden light; the Angel of the South came on, followed by his hosts, the Kumbhandas, mounted upon blue steeds and bearing sapphire shields; from the East rode the Regent whose horsemen carry shields of pearl, and who are clad all in silver; and from the West there came the One whose Nagas mounted blood-red horses, were clad all in red and held before them shields of coral. Their hooves did not appear to touch the grasses, and the only sound in the air was the music, which grew louder.

"Why do the Regents of the world approach?" Yama found himself saying.

"They come to bear my bones away," replied the Buddha, still smiling.

The four Regents drew rein, their hordes at their backs, and Yama faced them.

"You come to bear his bones away," said Yama, "but who will come for yours?"

The Regents dismounted.

"You may not have this man, oh Death," said the Master of the North, "for he belongs to the world, and we of the world will defend him."

"Hear me, Regents who dwell upon Sumeru," said Yama, taking his Aspect upon him. "Into your hands is given the keeping of the world, but Death takes whom he will from out the world, and whenever he chooses. It is not given to you to dispute my Attributes, or the ways of their working."

The four Regents moved to a position between Yama and Tathagatha.

"We do dispute your way with this one. Lord Yama. For in his hands he holds the destiny of our world. You may touch him only after having overthrown the four Powers."

"So be it," said Yama. "Which among you will be first to oppose me?"

"I will," said the speaker, drawing his golden blade.

Yama, his Aspect upon him, sheared through the soft metal like butter and laid the flat of his scimitar along the Regent's head, sending him sprawling upon the ground.

A great cry came up from the ranks of the Yakshas, and two of the golden horsemen came forward to bear away their leader. Then they turned their mounts and rode back into the North;

"Who is next?"

The Regent of the East came before him, bearing a straight blade of silver and a net woven of moonbeams. "I," he said, and he cast with the net.

Yama set his foot upon it, caught it in his fingers, jerked the other off balance. As the Regent stumbled forward, he reversed his blade and struck him in the jaw with its pommel.

Two silver warriors glared at him, then dropped their eyes, as they bore their Master away to the East, a discordant music trailing in their wake.

"Next!" said Yama.

Then there came before him the burly leader of the Nagas, who threw down his weapons and stripped off his tunic, saying, "I will wrestle with you, deathgod."

Yama laid his weapons aside and removed his upper garments.

All the while this was happening, the Buddha sat in the shade of the great tree, smiling, as though the passage of arms meant nothing to him.

The Chief of the Nagas caught Yama behind the neck with his left hand, pulling his head forward. Yama did the same to him; and the other did then twist his body, casting his right arm over Yama's left shoulder and behind his neck, locking it then tight about his head, which he now drew down hard against his hip, turning his body as he dragged the other forward.

Reaching up behind the Naga Chief's back, Yama caught his left shoulder in his left hand and then moved his right hand behind the Regent's knees, so that he lifted both his legs off the ground while drawing back upon his shoulder.

For a moment he held this one cradled in his arms like a child, then raised him up to shoulder level and dropped away his arms.

When the Regent struck the ground, Yama fell upon him with his knees and rose again. The other did not.

When the riders of the West had departed, only the Angel of the South, clad all in blue, stood before the Buddha.

"And you?" asked the deathgod, raising his weapons again.

"I will not take up weapons of steel or leather or stone, as a child takes up toys, to face you, god of death. Nor will I match the strength of my body against yours," said the Angel. "I know I will be bested if I do these things, for none may dispute you with arms."

"Then climb back upon your blue stallion and ride away," said Yama, "if you will not fight."

The Angel did not answer, but cast his blue shield into the air, so that it spun like a wheel of sapphire, growing larger and larger as it hung above them.

Then it fell to the ground and began to sink into it, without a sound, still growing as it vanished from sight, the grasses coming together again above the spot where it had struck.

"And what does that signify?" asked Yama.

"I do not actively contest. I merely defend. Mine is the power of passive opposition. Mine is the power of life, as yours is the power of death. While you can destroy anything I send against you, you cannot destroy everything, oh Death. Mine is the power of the shield, but not the sword. Life will oppose you, Lord Yama, to defend your victim."

The Blue One turned then, mounted his blue steed and rode into the South, the Kumbhandas at his back. The sound of the music did not go with him, but remained in the air he had occupied.

Yama advanced once more, his blade in his hand. "Their efforts came to naught," he said. "Your time is come."

He struck forward with his blade.

The blow did not land, however, as a branch from the great tree fell between them and struck the scimitar from his grasp.

He reached for it and the grasses bent to cover it over, weaving themselves into a tight, unbreakable net.

Cursing, he drew his dagger and struck again.

One mighty branch bent down, came swaying before his target, so that his blade was imbedded deeply in its fibers. Then the branch lashed again skyward, carrying the weapon with it, high out of reach.

The Buddha's eyes were closed in meditation and his halo glowed in the shadows.

Yama took a step forward, raising his hands, and the grasses knotted themselves about his ankles, holding him where he stood.

He struggled for a moment, tugging at their unyielding roots. Then he stopped and raised both hands high, throwing his head far back, death leaping from his eyes.

"Hear me, oh Powers!" he cried. "From this moment forward, this spot shall bear the curse of Yama! No living thing shall ever stir again upon this ground! No bird shall sing, nor snake slither here! It shall be barren and stark, a place of rocks and shifting sand! Not a spear of grass shall ever be upraised from here against the sky! I speak this curse and lay this doom upon the defenders of my enemy!"

The grasses began to wither, but before they had released him there came a great splintering, cracking noise, as the tree whose roots held together the world and in whose branches the stars were caught, as fish in a net, swayed forward, splitting down its middle, its uppermost limbs tearing apart the sky, its roots opening chasms in the ground, its leaves falling like blue-green rain about him. A massive section of its trunk toppled toward him, casting before it a shadow dark as night.

In the distance, he still saw the Buddha, seated in meditation, as though unaware of the chaos that erupted about him.

Then there was only blackness and a sound like the crashing of thunder."

DBA Categories from Brent Ozar

Brent Ozar shared a post on the categories for a SQL Server DBA. NOTE that these overlook things like BI or data scientist professionals, w...