I am a MS SQL DBA that is self learned. My degree is in History. I originally started in the IT field working my first summer after college at a camera store. While working in that store they had a 10base2 network in the store that was constantly failing. Being the guy that was the first person to use “the hard drive ate my homework” to my professor as an excuse as to why my senior thesis was delayed by a day, the owner knew I had some skill with these computers. Now my real experience was with DOS and Windows 3.1 at the time, but I am a quick study and learned some of the base concepts of networking and how these systems worked together. I went on to build computers for this company (and moved them to a 10baseT network) that the customers bought. I was later hired on as a System Admin position with a non-profit organization where I became the man that knew everything to know about their systems. This is also where I began to learn about how SQL 7 and (later) SQL 2000 worked. My first real SQL code I wrote was to insert user accounts into the Microsoft based cash registers we switched to (the backend was SQL 2000 express).
At my next position I learned how to write very effective Crystal Reports, but to a beginner like me, I learned of a major shortfall with their program, you can’t average a sum or sum an average. From the need to be able to do that I learned how to create views, stored procedures, and triggers (well this was more to a bug in the front end code that I couldn’t fix, than a reporting thing). I became more and more enraptured in SQL coding. It became fun and for the first time I was actually able to memorize another language than plain American English (I actually got a F on my report card for Spanish 2 in HS). This position though was a Management position within the IT department and I was still forced to pick up the support calls on why my computer suddenly shut off after I stretched (the user stretched at their desk and kicked their power cord from the back of their PC (thus the reason I never allowed PCs on the floor)).
I moved on from there to my first true DBA job within a very large company. Loved the people I worked closely with (those Sybase DBA’s are whacked in the head) but the corporate mentality from management made me nervous. This is where I learned that a lot of the basic concepts that I had already developed were very basic to what the real world was like. This is also where I learned that the three tier development system is very important. I was tasked with a huge project of moving clustered SQL servers from one domain (a company that had been purchased) to another, those same servers needed to be setup according to our specs, the databases had to have minimum downtime, the end corporate users/developers had to have minimum downtime and still need to be able to access the data wherever it was, and then on top of it we had to have DR in place after we switched the servers back to their site. The following goes over how we solved this:
- Created new two node cluster in our site.
- Divided the databases from their three servers to our two by creating log shipping and then using MS SQL Aliasing to change the front-end systems so they could see the new instances while using the old instance names.
- Performed cutover procedures after hours to finish the move of the databases. at the same time had the infrastructure team setup DNS Aliasing to “move” the servers.
- Rebuilt their servers to our standards, rebuilding their clusters to match.
- Created the log shipping back to their systems.
- Cut the servers back over.
- Reversed the log shipping to then create a DR that was a 20 minute RPO and 30 minute RTO.
It was difficult work, but I pulled it off. If I did not have the networking experience that I had (what does DNS do for me, how long does it take to move 300GB database over a 1Mbps pipe, routing, etc…), it would have been more difficult and taken a lot longer.
Left there and went back to a smaller shop again…