Return to Level1Techs.com

Learning to be a DBA (how?)

#1

Hey guys,

Am interested in learning DBA skills. I’ve got 20 years with system admin, mostly networking focus (firewalling, switching, routing) and linux+windows admin experience for the same duration (Windows at scale, Linux as ad-hoc network devices). Also have significant storage experience, working with various SANs; Equallogic, Netapp, Purestorage, ZFS, etc.

The way i see it there’s likely to be a reduction in work for general admin stuff and literally everything needs a database these days so looking to get into the DBA game.

Not sure where to start.

Ideally looking to get a feel for what i need to learn without spending money on courses just yet, but also wondering what courses if any are appropriate or relevant.

Have a rudimentary knowledge of SQL server, mysql and postgresql, have set up play databases before but nothing serious…

essentially i see database administration as a missing piece in my toolkit… that and cloud admin (which i’m also working on at the moment :D)

Any advice would be appreciated.

edit:
Oh, i’m also working for a company who is lacking a full-time DBA. So there’s an opportunity there to fill a niche that we currently have…

2 Likes

#2

SQL Server in a Month of Lunches is going to be a great, great transition into the role. The book is written for the sysadmin that needs to do more DBA work and needs to get up to speed quickly.

From there, there is a whole series on SQL Server 2016:

image

image

image

There is also a fantastic tutorial that assisted me while in college from W3Schools:

https://www.w3schools.com/sql/

AWS lets you spin up RDS and DynamoDB instances under their Free Tier, take advantage of that.

Doing some basic NodeJS introductions will expose you to MongoDB, which is pretty popular key/pair value DBs. Their documentation is pretty good.

3 Likes

#3

Awesome, thanks so much. I’ll take a look.

1 Like

#4

Yeah man! It’s a lot of fun.

Learning performance tuning, transaction log backups, restoring data, etc. is a great experience.

Building your own database and tables is good to know, but realistically you’re going to work with existing databases. Adventure Works is available to load into your infrastructure to learn queries.

https://docs.microsoft.com/en-us/sql/samples/adventureworks-install-configure?view=sql-server-2017

1 Like

#5

Bought learning SQL server in a month of lunches.
Installing a test VM at the moment.

I’ve been involved in performance diagnostics and tuning for a variety of applications before, but yeah, mostly via measuring performance metrics and not via actual best practice for SQL.

cheers!

1 Like

#6

Some good advice there from @AdminDev

There are literally stacks of SQL Server books but with your background knowledge you will probably get a lot out of the books that go into the internals.

MIcrosoft SQL Server 2012 Internals - Kalen Delaney
SQL Server 2012 Internals & Troubleshooting - Christian Bolton et al
Pro SQL Server Internals - Dmitri Korotkevitch

Are all great, the 2012 books are still relevant, they just don’t cover the latest features. The last one covers SQL Server 2016.

Allan Hirt has been threatening to produce the defacto book on SQL Server HADR for a long time now, I think they just keep releasing new features faster than he can write. His blog is https://sqlha.com/ and has some useful blogs and links to books he has contributed to and whitepapers he has authored (some really good ones on SQL Server virtualisation on VMware).

MIcrosoft have loads of free training content on https://mva.microsoft.com/

If you want to get more into the Developer side of things then I can recommend:

Pro SQL Server Relational Database Design and Implementation - Louis Davidson, Jessica Moss

…and finally, PostgreSQL is definately worth sticking with too (SQL Server Enterprise licences are crazy expensive). I keep meaning to complete Curiousmoon which puts you in the spot of a junior DBA/Dev trying to wranagle data actually from the Cassini space probe. It’s really cool :slight_smile:

EDIT: Just to add, with regards to databases in the cloud e.g. Azure SQL DB, don’t let anyone tell you that DBA’;s are no longer needed (I’ve heard it from a few developers now). It’s BS, they need DBA’s more than ever with that stuff, it’s just the focus of the DBA is a little different is all.

EDIT2: Depending on where you work you might also want/need to dive straight into SQL Server on Linux/containers. Apress have just released a book by the lead Microsoft Engineer on that: https://www.apress.com/us/book/9781484241271

2 Likes

#7

yeah anyone who thinks DBAs aren’t required is an idiot.

it’s one of the major growth areas in IT at the moment. at least as far as i see.

we already have a bunch of ms sql here. i am as the teach yourself in a month of lunches book describes, a “reluctant dba”. i’m the defacto go to guy for exchange as well. i have no formal exchange training but because i understand the network side and was a sendmail admin forever i can usually figure shit out.

thanks heaps for the links guys, 100% the sort of guidance i was looking for :+1:

1 Like

#8

as an aside… we hired a dba for 3 months to sort out some internally developed apps (not me :joy:). he cut some of the report generation processes down from hours to seconds.

query optimisation, not doing dumb shit, etc.

you can’t just throw hardware at this shit, and you pay through the nose for cloud cpu.

these sorts of jobs aren’t going away any time soon…

2 Likes

#9

That’s the nice thing about the PaaS databases. It frees the DBA’s up to get on with tuning and optimisation tasks. Annoyingly it also means bad databases can pop up all over the place :grinning:

0 Likes

#10

SQL server DBAs are a dime a dozen, you can point and click to do everything in that DB. It’s much harder to find Oracle and (weirdly) MySQL DBAs. So I would suggest learning one of those. Oracle is far more prestigious and pays better today, but I question whether it’ll be relevant in 10 years.

Anyway, I learned on my own, back when even installing Oracle was a chore. Basically, install either Oracle or MySQL, and teach yourself how to do common stuff like taking backups, building standby/slave DBs, snapshot replication, cloning DBs, and take basic online SQL classes so you know what a left join is. Then apply for L1 DBA jobs.

1 Like

#11

Quote for Truth right here.

We’re fraking hemorrhaging right now… Completed AWS migration April of this year. Been playing catch up ever since.

2 Likes

#12

its not the pointy clicky shit i am interested in. more the optimisation concepts…

0 Likes

#13

@thro if you can hold off for like 2 weeks, you could submit this as your devember project.

I am in the middle of organizing the event here, would you like for me to add you to that list?

1 Like

#14

…seriously you can’t. SQL Server DBA’s that don’t know T-SQL, PowerShell and potentially some Python and Bash will hit ceilings. Query tuning requires rolling up your sleeves digging into the query plans and knowing T-SQL properly. Proper application life-cycle management and a shift to DevOps styles of working also mean PowerShell or other scripting languages (platform, automation engine dependent) are needed. More and more DBA’s are also starting to learn some R and Python so they can help Data Scientists etc.

@thro if query tuning is where you want to start this is a good book to get into it:

If you do want to that special kind of DBA who can also tune on other platforms then this is also worth having: https://sql-performance-explained.com/?utm_source=winand.at&utm_campaign=for-developers&utm_medium=web&utm_content=sql-performance-explained

EDIT: If you want to look hard core, keep SSMS closed and use SQL CLI instead:

2 Likes

#15

Yeah cheers @BGL.

To be clear, i’m after the ability to tweak queries, administer all of Mysql, Postgresql and MSSQL including db engine tuning and maintenance.

We’re an MS shop at the moment at work, but there’s no doubt that as mentioned, MSSQL is fucking expensive, and more stuff is using mysql or postgresql in cloud hosting these days.

I’ve got a lot on my plate at the moment (retiring ISDN from our VOIP environment, migrating various stuff from on-prem to 365, etc.) so this is going to be over several months, @Dynamic_Gravity - but the sooner i get started the sooner i get finished…

I should also mention i’m not a total SQL noob, i did write a couple of SQL driven web pages WAY back in the late 90s with mysql and PHP, but small fry stuff (basically a very rudimentary CMS before commercial content management things were a thing). I also inherited maintenance of an access application/db back in the early 00s, but got out of that pretty quick. Have a bit of programming experience in various languages but not professionally (C, php, pascal, mostly).

0 Likes

#16

I’ve never come across anyone using Postgres in the enterprise. I’m sure there are exceptions, obviously, so don’t go posting contrary to that. Just my experience.

Vast majority is moving towards MySQL, and legacy stuff is all on Oracle and MS-SQL.

You do need to know performance and SQL tuning, but just like sysadmin work, the vast majority of all DBA work is routine janitorial stuff. Deploying code, rebuilding standby DBs, fixing backups, cleaning up tablespaces, etc.

0 Likes

#17

I wouldn’t call PostgreSQL the exception. It vastly overpowers MySQL in performance and features. Postgres has concurrency and support for non-relational systems.

Certain tools are built around Postgres, too. SonarQube, R and Python development are big players in Postgres. Don’t confuse SQLite with Postgres.

While your experience is certainly welcome, saying “I’m sure there are exceptions so don’t go posting contrary to that” is limiting the reality of the situation. In my industry (E-Commerce), Postgres is largely used due to how dynamic and fast it is.

Also, historically, more and more people are using PostgreSQL, according to DB-Engines:

While the others have been dropping:

1 Like

#18

The problem people seem to have with postgresql in the enterprise is not it´s ability. It seems like it would be cheaper on paper. But as soon as you need support in any form oracle is more widely available and cheaper.

There are some niche cases where say timescaledb (witch is postgresql) is used, because it crushes everything else for that specific use case.

I´ve not really applied to a single job that uses postgresql either (because there seem to be none…). Big companies are either oracle or mssql (most of the time). Small companies seem to use mostly mysql and a lot of the time various nosql dbs. Just my experience with that.

1 Like

#19

Postgres is without a doubt superior to MySQL in many ways. And Oracle is such an amazingly great piece of software that it makes everything else look like reeking Chinatown garbage that when you look closer, is positively rippling with tumescent maggot larvae.

Quality doesn’t really matter. MySQL is winning because it’s popular. Why is it popular? Due to its popularity. But wait, why? Because people use it. It’s popular. There’s no other explanation for it. It’s like asking why people eat Taco Bell. Because they do. Why? Because they like it. But why, it sucks? Because they do.

I mean, MySQL sucks. It sucks the moon and stars right out of the sky.

1 Like

#20

Mysql was never better than postgresql but it became popular due to perl and php plugins quite early.

Now, it is popular because it is popular, however its been owned by Oracle for some time now and I suspect that Postgresql will overtake it eventually.

Because Larry.

0 Likes