Hi, and welcome to Backup Central's Restore it All podcast.
W. Curtis Preston:I'm your host, w Curtis Preston, aka mr.
W. Curtis Preston:Backup, and have with me my cloud backup experiment,
W. Curtis Preston:collaborator, Prasanna Malaiyandi.
W. Curtis Preston:How's it going, Prasanna?
Prasanna Malaiyandi:Good, Curtis, and how much have you spent on cloud these days?
W. Curtis Preston:Um, I don't know.
W. Curtis Preston:I don't know.
W. Curtis Preston:I don't know.
W. Curtis Preston:I'm up, I'm, I'm probably up to about $20 I think so far, just
W. Curtis Preston:because I keep buying little things and, you know, um, and, uh, the.
W. Curtis Preston:The, the, the quickest one.
W. Curtis Preston:You know, I tried, I did like, I, I tried the rsync.net cuz I,
W. Curtis Preston:I know we had those guys on here.
W. Curtis Preston:Um, and I will say it was the simplest, right, cuz basically you just get it,
W. Curtis Preston:it's a, you know, it's a destination.
W. Curtis Preston:You can send stuff to it.
W. Curtis Preston:And it was really very straightforward.
W. Curtis Preston:Um, the,
Prasanna Malaiyandi:But for the amount of data you
Prasanna Malaiyandi:had, it didn't make sense.
W. Curtis Preston:For the amount of data I had, it was overkill because they have a
W. Curtis Preston:minimum charge of 10 bucks a month, which is for 680 gigabytes, which, you know,
W. Curtis Preston:it's 10 bucks a month isn't a lot, but.
W. Curtis Preston:Um, it just, there are other options that are less expensive than that and, um,
W. Curtis Preston:it was just the experiment of, of trying to, I, I'm still, the, the main project
W. Curtis Preston:here is trying to figure out what's the best way to properly back up my iphotos.
W. Curtis Preston:This all started with a conversation on the podcast and
W. Curtis Preston:me re just really realizing.
W. Curtis Preston:My, for my own self that iphotos, you know, that I'm not backing up my photos
W. Curtis Preston:because, or my, my photos in my iPhone and, uh, it used to be called iphoto
W. Curtis Preston:and now they just call it photos and it makes for weird internet posts.
W. Curtis Preston:Because Apple or iCloud is not a backup.
W. Curtis Preston:It is a synchronization.
W. Curtis Preston:Right.
W. Curtis Preston:And so, um, I'm, I, I'm on I think experiment number three.
W. Curtis Preston:Um, And the one that I think will be the ultimate winner.
W. Curtis Preston:I'm not gonna reveal my my thing yet, but I think it'll be the ultimate winner.
W. Curtis Preston:And in the midst of this, I tried out a new product called, um, what is it called?
W. Curtis Preston:I should have it here on my desktop.
W. Curtis Preston:It's called System.
W. Curtis Preston:Uh, it's, it's it's system, but it's, it's like, C I S D E M, duplicate finder.
W. Curtis Preston:Um, and it has some pretty cool technology in it where it will
W. Curtis Preston:actually find similar photos,
Prasanna Malaiyandi:hmm.
W. Curtis Preston:Not just identical photos, but similar photos and like low
W. Curtis Preston:and high-res versions of the same photo.
W. Curtis Preston:Um,
Prasanna Malaiyandi:you took a burst.
W. Curtis Preston:Yeah, well, a b a burst is, it would be, yeah, it
W. Curtis Preston:would be nearly identical photos.
W. Curtis Preston:Uh, but this will find, so it ended up finding 1500 similar photos, and
W. Curtis Preston:then it can, it can smart select all of the dupes for you and delete them.
W. Curtis Preston:Uh, and I did that.
W. Curtis Preston:Um, anyway, it's been, it's been, uh, it's been a journey, you know, as they
Prasanna Malaiyandi:So are your experiment going to be
Prasanna Malaiyandi:finished by the time we have Daniel Rosehill on the podcast?
W. Curtis Preston:Um, yeah, probably, uh, when, what are we having him on?
W. Curtis Preston:How and how many weeks
Prasanna Malaiyandi:week,
W. Curtis Preston:early next week?
Prasanna Malaiyandi:next Wednesday.
W. Curtis Preston:Mm.
W. Curtis Preston:Might not be.
W. Curtis Preston:Cause you know, like everything I try takes about a day.
W. Curtis Preston:So we'll see.
W. Curtis Preston:We'll see, we'll see, we'll see.
W. Curtis Preston:Um, but speaking of modern, you know, hashtag first world problems.
W. Curtis Preston:I'm gonna record our usual disclaimer, uh, Prasanna and I
W. Curtis Preston:work for different companies.
W. Curtis Preston:And, uh, this is not a podcast of either company.
W. Curtis Preston:And these are our opinions, not theirs.
W. Curtis Preston:Uh, please reach out to us at Curtis Preston at gmail,
W. Curtis Preston:or at WC Preston on Twitter.
W. Curtis Preston:And, um, And Owen LinkedIn, yes, linkedin.com/in/mrbackup.
W. Curtis Preston:And you can find us.
W. Curtis Preston:And please also rate us, uh, go to your podcast.
W. Curtis Preston:That helps other people find us.
W. Curtis Preston:If you like the show, help other people find it by giving us,
W. Curtis Preston:you know, stars and whatnot.
W. Curtis Preston:So we're in our continued backup to basic series here.
W. Curtis Preston:We're in part three, which, uh, the first part was about traditional data sources.
W. Curtis Preston:The second is about, uh, is about databases.
W. Curtis Preston:But in that episode, we focused mainly on the architecture, the
W. Curtis Preston:different types of databases.
W. Curtis Preston:The different ways that they sort of exist.
W. Curtis Preston:And, uh, this week we're gonna talk about basically the, you know, the
W. Curtis Preston:meat and potatoes, which is how you actually back up, uh, databases.
W. Curtis Preston:So, um, the.
W. Curtis Preston:What's that?
W. Curtis Preston:You don't,
Prasanna Malaiyandi:said no one ever.
W. Curtis Preston:up the databases said no one.
W. Curtis Preston:Uh, yeah.
W. Curtis Preston:Yeah.
W. Curtis Preston:I mean, you know, the, the only ones I, I'd say the only data
W. Curtis Preston:databases that I would consider valid not to be backed up are
Prasanna Malaiyandi:Test.
W. Curtis Preston:database or something like that.
W. Curtis Preston:Test, yeah.
W. Curtis Preston:Test tester dev.
W. Curtis Preston:An actual dev.
W. Curtis Preston:Not, you know.
W. Curtis Preston:Sometimes dev is not
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:Yep.
W. Curtis Preston:Um, so, and, and I'll say that a lot of the things, in
W. Curtis Preston:fact, many of the options that we're gonna talk about really only apply
W. Curtis Preston:to if you are hosting the database on a server or VM that you control.
Prasanna Malaiyandi:Mm-hmm.
W. Curtis Preston:Right.
W. Curtis Preston:Um, because, you know, it'll become obvious.
W. Curtis Preston:And, and so those of you that, that, you know, you're using RDS
W. Curtis Preston:or something like that, um, then.
W. Curtis Preston:Um, you know, you're gonna be like, well, that doesn't work for me.
W. Curtis Preston:Well, you know, if it doesn't work for you, it doesn't work for you.
W. Curtis Preston:Right?
W. Curtis Preston:So, do you remember what what we said was the, the main pro, you know, most
W. Curtis Preston:databases are residing on files, right?
W. Curtis Preston:There are a handful of people out there that like to use
W. Curtis Preston:raw devices for databases.
W. Curtis Preston:What?
Prasanna Malaiyandi:especially with
W. Curtis Preston:Right.
Prasanna Malaiyandi:Yeah.
W. Curtis Preston:Yeah.
W. Curtis Preston:Okay.
W. Curtis Preston:Most databases that are running as an application inside servers
W. Curtis Preston:are really just a bunch of files.
W. Curtis Preston:You know, they're stored as
Prasanna Malaiyandi:a pile.
Prasanna Malaiyandi:Yeah,
W. Curtis Preston:system.
W. Curtis Preston:Right.
W. Curtis Preston:And we talked about last week that you can't just go and back those up.
W. Curtis Preston:You were the one that, you know, you brought that up that, um, I might have
W. Curtis Preston:just edited that so it's fresh in my mind.
Prasanna Malaiyandi:I was like, how do you know
W. Curtis Preston:were the one that brought, yeah.
W. Curtis Preston:You were the one that brought that up about um, that you can't just
W. Curtis Preston:go back up those files, right?
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:Yeah, because if you did, right, given how databases operated and they're
Prasanna Malaiyandi:constantly modifying files, right?
Prasanna Malaiyandi:You might get a file at a different point in time than something else, or even
Prasanna Malaiyandi:within a file at different points in time, cuz it's not like you're taking a
Prasanna Malaiyandi:snapshot and then doing a backup, right?
Prasanna Malaiyandi:When you do a
Prasanna Malaiyandi:normal file
W. Curtis Preston:exactly.
W. Curtis Preston:And.
W. Curtis Preston:And even if you did take a snapshot, um, that might not be consistent.
W. Curtis Preston:Right.
W. Curtis Preston:Um, you
Prasanna Malaiyandi:Uh,
W. Curtis Preston:because
Prasanna Malaiyandi:Do
Prasanna Malaiyandi:you wanna talk about that now?
W. Curtis Preston:might not.
W. Curtis Preston:I do.
Prasanna Malaiyandi:Yes.
Prasanna Malaiyandi:So, so, so yeah.
Prasanna Malaiyandi:Having worked
Prasanna Malaiyandi:at storage vendors, I, yeah.
Prasanna Malaiyandi:Having worked at storage vendors, I know some database companies
Prasanna Malaiyandi:are very particular to say that we do not guarantee recovery.
Prasanna Malaiyandi:From a snapshot based copy.
Prasanna Malaiyandi:However, in based on experience, 95, 90 9% of the time it works.
Prasanna Malaiyandi:But there's no guarantee
Prasanna Malaiyandi:because of
W. Curtis Preston:not.
Prasanna Malaiyandi:I know.
Prasanna Malaiyandi:I know, I
W. Curtis Preston:Well, uh, again, you're, wait, wait, wait.
W. Curtis Preston:I'm specifically talking about taking a snapshot without doing
W. Curtis Preston:anything special with the database.
Prasanna Malaiyandi:Yes.
Prasanna Malaiyandi:That's what I'm talking
W. Curtis Preston:That's, that's the scenario that I'm, I'm talking about
W. Curtis Preston:what is referred to as, uh, well, darn it, we're getting ahead of ourselves.
W. Curtis Preston:Okay.
W. Curtis Preston:Um, so we're getting, we're getting ahead of ourselves.
W. Curtis Preston:All right.
W. Curtis Preston:So the, the first, uh, type of database backup is called a cold backup.
W. Curtis Preston:Do you want to talk about that?
Prasanna Malaiyandi:Yeah, so for a cold backup, it's.
Prasanna Malaiyandi:Probably the safest way to do a backup, right?
Prasanna Malaiyandi:Because you're basically shutting down the database completely.
Prasanna Malaiyandi:You're guaranteed to have no writes happening to your database at all
Prasanna Malaiyandi:during this time, and then you're basically taking your copy once you're
Prasanna Malaiyandi:done or you take your snapshot and then you back up from there, whatever
Prasanna Malaiyandi:mechanism you want to use, right?
Prasanna Malaiyandi:Once that's done, then you bring the database back online and then
Prasanna Malaiyandi:writes start again until you're.
Prasanna Malaiyandi:Hundred percent guaranteed that nothing should be going and
Prasanna Malaiyandi:modifying that database file while you're doing your backup.
W. Curtis Preston:It has
Prasanna Malaiyandi:The downside is
W. Curtis Preston:downside,
Prasanna Malaiyandi:
Speaker:big, yeah, it's great.
Prasanna Malaiyandi:
Speaker:As long as no one needs to use the database during this process, right?
Prasanna Malaiyandi:
Speaker:Because you literally are bringing the database down, which means
Prasanna Malaiyandi:
Speaker:any applications, any clients who are connecting to that
Prasanna Malaiyandi:
Speaker:database, they're like, bye-bye.
W. Curtis Preston:And you know, I've been doing backups a long time and I can't
W. Curtis Preston:remember a single client that did this have, have you ever seen anybody do this?
Prasanna Malaiyandi:I've never seen anyone do this.
W. Curtis Preston:Yeah, because it, it means, it's just, it, it
W. Curtis Preston:goes back again back in the day.
W. Curtis Preston:Um, the, the Unix, so you, so, you know, I grew up around Unix systems, right?
W. Curtis Preston:And the, the command that we used to back up the file systems back then was dump.
Prasanna Malaiyandi:Mm-hmm.
W. Curtis Preston:Do, do you know what the Dump Man page recommended
W. Curtis Preston:when you dump a file system?
Prasanna Malaiyandi:no.
W. Curtis Preston:This.
W. Curtis Preston:It recommended that you unmount the file system
Prasanna Malaiyandi:Tit
W. Curtis Preston:and then run dump on it.
W. Curtis Preston:No one did that.
Prasanna Malaiyandi:No.
W. Curtis Preston:No one did that.
W. Curtis Preston:But this is a very safe way and if you have a, um, you know, if you have a world
W. Curtis Preston:where nothing is happening, It at night.
W. Curtis Preston:This is a completely viable way to get a solid backup of the database.
W. Curtis Preston:Right.
W. Curtis Preston:Um, it's just like, you know, like you said, it comes with, with, uh, one
Prasanna Malaiyandi:Just a, a small, small curve, a small downside.
W. Curtis Preston:Yeah.
W. Curtis Preston:Small, small.
W. Curtis Preston:Now here.
W. Curtis Preston:Now this next one, um, it, it is, should be one that you might remember from.
W. Curtis Preston:Your former employer, and I'm generically calling it Split Replica,
Prasanna Malaiyandi:you wanna talk about
W. Curtis Preston:you know, to which I'm referring to
Prasanna Malaiyandi:This is
W. Curtis Preston:former employer
Prasanna Malaiyandi:my former, former, former, former employer,
W. Curtis Preston:starts with an e.
Prasanna Malaiyandi:Yes, so this is, yeah, where you basically have a replica
Prasanna Malaiyandi:copy, which of course everyone is gonna have a replica of their database because
Prasanna Malaiyandi:you need that for availability, or they might be using for availability.
Prasanna Malaiyandi:And whenever you need to do a backup, right, you basically stop replicating.
Prasanna Malaiyandi:And you basically split the replica.
Prasanna Malaiyandi:So the replica is at a point in time you do the backup off of the replica.
Prasanna Malaiyandi:Once the backup is done, then you resynchronize and then
Prasanna Malaiyandi:continue doing your availability
W. Curtis Preston:yeah.
W. Curtis Preston:The.
W. Curtis Preston:E
W. Curtis Preston:EMC had the term b c V for this, right?
W. Curtis Preston:The business continuance volume.
W. Curtis Preston:Um,
Prasanna Malaiyandi:Business
W. Curtis Preston:is a, another great way.
W. Curtis Preston:Yeah.
W. Curtis Preston:It's, yeah.
W. Curtis Preston:What did I say?
W. Curtis Preston:Business.
W. Curtis Preston:Oh, business con.
W. Curtis Preston:Yeah.
W. Curtis Preston:Um, yeah, I thought it was continuance on, on the BBC V, but,
W. Curtis Preston:uh, whatever, it doesn't matter, you
Prasanna Malaiyandi:On the symmetric?
Prasanna Malaiyandi:Yes.
W. Curtis Preston:on the symmetric, yeah.
W. Curtis Preston:Been a while.
W. Curtis Preston:It's been, it's been a minute since I've done this.
W. Curtis Preston:Um.
W. Curtis Preston:And this is essentially the same thing as a cold backup, but just
W. Curtis Preston:how you get that cold backup, right?
W. Curtis Preston:You stop writes for a second.
W. Curtis Preston:You, you, you split the replica, et cetera, right?
W. Curtis Preston:Um, that's
Prasanna Malaiyandi:though, Curtis?
W. Curtis Preston:viable way.
W. Curtis Preston:Well, the downside, uh, is cost, right?
W. Curtis Preston:You know, you actually said everybody's got a replica.
W. Curtis Preston:Everybody doesn't have a replica, right?
W. Curtis Preston:Everybody has a replica maybe in Salesforce.
W. Curtis Preston:Uh, so I'm sorry.
W. Curtis Preston:Uh, maybe in.
W. Curtis Preston:EMC Dreamland sales, you know, EMC salesperson, dreamland.
W. Curtis Preston:But, uh, that's the big, that's the big cost.
W. Curtis Preston:And also complexity, right?
W. Curtis Preston:I remember lots of scripts.
W. Curtis Preston:Um, you know, if the, the split can fail, the rejoin can fail, you know, all
W. Curtis Preston:these kind of things, just complexity.
Prasanna Malaiyandi:but isn't also another downside, the fact that when
Prasanna Malaiyandi:you're, do you now have to decide, do I want a replica copy or do I want a backup?
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:For a period of time, it could be one or the other, right?
Prasanna Malaiyandi:Because when you split it, you're no longer getting updates, which
Prasanna Malaiyandi:means that your protection of that, of your production is now
Prasanna Malaiyandi:restricted until your backup is done.
W. Curtis Preston:Yep.
W. Curtis Preston:Yeah, exactly.
W. Curtis Preston:Um, so you're, so, you're,
Prasanna Malaiyandi:
Speaker:What's more important?
W. Curtis Preston:you're, yeah.
W. Curtis Preston:Yeah, I, I'd say at that point you're no worse off than people
W. Curtis Preston:that don't have a replica, but, which is I think most people.
W. Curtis Preston:But, um, I, so I really just go back to the, the downside
W. Curtis Preston:of that is cost and complexity.
W. Curtis Preston:Most people, at least most people that I've worked with, didn't have
W. Curtis Preston:the money to pay for A, B, C V just for the purposes of backup.
W. Curtis Preston:Right?
W. Curtis Preston:Because then also they would show you another, Right.
W. Curtis Preston:Another symmetric to replicate that too.
W. Curtis Preston:And, um, yeah.
W. Curtis Preston:And, and if, if you needed synchronous and you could, you
W. Curtis Preston:could end up with three symmetric by the time you were done, right?
W. Curtis Preston:Four copies of the data.
W. Curtis Preston:You had the local, the, the primary copy, the B c v, which
W. Curtis Preston:was physically attached to that.
W. Curtis Preston:Then you had another symmetric that you were replicating to,
W. Curtis Preston:uh, symmetrical synchronously.
W. Curtis Preston:Yeah, thank you.
W. Curtis Preston:Replicating too synchronously.
W. Curtis Preston:And then you could replicate asynchronously to another one.
W. Curtis Preston:Uh, man that sold a lot of disk back in the day.
Prasanna Malaiyandi:srd, F s, and Srd.
Prasanna Malaiyandi:S a.
Prasanna Malaiyandi:Yep.
W. Curtis Preston:Yeah, exactly right.
W. Curtis Preston:Um, so the next one is what I would say, my usual way that
W. Curtis Preston:I'm backing up databases.
W. Curtis Preston:Um, at least in a case of, um, Like Oracle,
Prasanna Malaiyandi:Hmm.
W. Curtis Preston:Oracle and Informix, which is still around, um, Sybase
W. Curtis Preston:to a lesser degree, not SQL server it didn't have this functionality.
W. Curtis Preston:But that is this concept of hot backup
Prasanna Malaiyandi:Does SAP support it?
W. Curtis Preston:I don't know, um, I never had to admin sap, so I don't
W. Curtis Preston:know the answer to that question, but
Prasanna Malaiyandi:I stumped Backup.
W. Curtis Preston:So I'm glad I'm I'll, I'll make that a social post.
W. Curtis Preston:Um, the, um, You know, if, if you've ever Oracle admin and Oracle database, there
W. Curtis Preston:is this, there is this command, it used to you, it used to be you had to say
W. Curtis Preston:alter table space, begin backup, and you had to do this a table space at a time.
W. Curtis Preston:And if you don't know what a table space is, it's literally the space
W. Curtis Preston:where you put the tables, right?
W. Curtis Preston:Um, you know, you have, you have some data files that form a table space and
W. Curtis Preston:you put tables in those table spaces.
W. Curtis Preston:We talked about that on last week's episode.
W. Curtis Preston:Um, But now there's an alter database.
W. Curtis Preston:Uh, begin backup command.
W. Curtis Preston:And what it does in the case of Oracle, I can speak specifically,
W. Curtis Preston:it doesn't halt writes.
W. Curtis Preston:I actually thought, I used to think that it halt halted writes.
W. Curtis Preston:It doesn't halt writes.
W. Curtis Preston:What it does is it changes what it logs in the redo logs and it,
W. Curtis Preston:it, it logs, the changed blocks rather than the vector, right?
W. Curtis Preston:Because basically it's, it's storing all of the blocks that are changing while the
W. Curtis Preston:backups are happening so that when you, uh, go to try to use these oracle knows
W. Curtis Preston:that, oh, this, this backup occurred during a ti a period when it was, um,
Prasanna Malaiyandi:Inconsistent.
W. Curtis Preston:backup mode.
W. Curtis Preston:And so it can use those BA blocks to then, um, to then fix the blocks that
W. Curtis Preston:change during the backup in case you got them before they were changed.
W. Curtis Preston:Right.
W. Curtis Preston:Um, and it's a, it's a really cool way in that you just need a pretty basic script.
W. Curtis Preston:That you run at the time of backup, you just say, alter database, begin
W. Curtis Preston:backup, and then you can back up that database however you want.
W. Curtis Preston:We've talked about a couple ways.
W. Curtis Preston:You can, you know, just split shot or snapshots.
W. Curtis Preston:You can do a regular, uh, file system backup, which is the way
W. Curtis Preston:that I've historically done it.
W. Curtis Preston:Um, and, and the other nice thing about this is historically you, you quite
W. Curtis Preston:often would pay extra for database backup
Prasanna Malaiyandi:functional, yeah.
W. Curtis Preston:Um, that's, that's become a little bit
W. Curtis Preston:less in vogue, um, these days.
W. Curtis Preston:But we've kind of gone with capacity base, um, pricing.
W. Curtis Preston:But the, it used to be that you would pay a lot extra.
W. Curtis Preston:The other, um, The, the di, the disadvantage of this was that the DBAs
W. Curtis Preston:couldn't really control backups, right?
W. Curtis Preston:So, uh, this was always a war between, you know, those of us that wanted to
W. Curtis Preston:have the backup system control the backups or the DBAs control the backups.
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:Oh man, it's so, I never administered databases, but I visited many, many
Prasanna Malaiyandi:customers and it would always be interesting getting the backup folks
Prasanna Malaiyandi:and the DBAs into this room at the same time, and as we talk about solutions or
Prasanna Malaiyandi:as I would talk about solutions, they'd be like, no, I want control of this.
Prasanna Malaiyandi:No, I want control because I don't trust the other guy.
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:It's just that back and forth that goes on, and I would say it
W. Curtis Preston:Yeah.
Prasanna Malaiyandi:It was notorious, especially for Oracle deployments, right?
Prasanna Malaiyandi:I think.
W. Curtis Preston:It was, I dunno what that was about, but it was, yeah.
W. Curtis Preston:And, and, and yet Oracle has, I think, the best answer that makes both sides happy.
W. Curtis Preston:Right.
W. Curtis Preston:Uh, we're, we're gonna get to that in a minute, but
Prasanna Malaiyandi:the one thing
Prasanna Malaiyandi:I think that you need to consider as a disadvantage, or just to be careful
Prasanna Malaiyandi:of when you are using Hot backup is, I know Curtis, you mentioned sort of
Prasanna Malaiyandi:logging those change blocks, right?
Prasanna Malaiyandi:This causes additional load on your database, so you wanna make sure that.
Prasanna Malaiyandi:Right, that you're not, that you've sized your storage systems
Prasanna Malaiyandi:to account for this as well.
Prasanna Malaiyandi:So wherever you're storing your logs, your archive, do we do logs?
W. Curtis Preston:Yeah, that's a good point.
W. Curtis Preston:And it brings up a story.
W. Curtis Preston:Um, I know I've told this story on here before, but it's apropo to this moment.
W. Curtis Preston:So I was at a very large oil and gas company.
W. Curtis Preston:This was very early in my career.
W. Curtis Preston:I.
W. Curtis Preston:And they had this, this database server that had never been backed up.
W. Curtis Preston:And, uh, it was a d s s system decision support system.
W. Curtis Preston:Uh, I don't even know what it did, but that's what it was called.
W. Curtis Preston:And it got a nightly upload of data from the mainframe.
W. Curtis Preston:And then the new data would be there the next day.
W. Curtis Preston:Well, because the upload occurred at night, we couldn't do a cold
W. Curtis Preston:backup, so I, I found out that it had never been backed up and I'm like,
W. Curtis Preston:guys, we have to get this backed up.
W. Curtis Preston:And the D B A, he had a couple of really, Weird conceptions
W. Curtis Preston:about the way hot backups worked.
W. Curtis Preston:Basically, the, the, the, in order to do hot backups in Oracle, the database has
W. Curtis Preston:to be running in archive log mode, right?
W. Curtis Preston:He had all his databases running in no archive log mode.
W. Curtis Preston:Don't even get me started.
W. Curtis Preston:So he had this weird belief that if I put the database in archive log
W. Curtis Preston:mode, that it would cause corruption.
W. Curtis Preston:I'm like, can you please go call Oracle support cuz you know you're crazy talk.
W. Curtis Preston:Um, and Oracle assured him that this feature that everyone uses is fine.
W. Curtis Preston:But then he had this other thing, what, what you were alluding to was
W. Curtis Preston:that putting the database in backup mode was going to cause an increase.
W. Curtis Preston:A, a performance decrease on his database.
W. Curtis Preston:And so he was going to, uh, the, the, the nightly loads, which were occurring
W. Curtis Preston:at the same time as the, the backup would, uh, take significantly longer.
W. Curtis Preston:And I ended up betting him that, um, For, for some reason what I'm reme
W. Curtis Preston:remembering was that it was 5%, right?
W. Curtis Preston:I, I said the backups won't, or the, the, the uploads or ingest of
W. Curtis Preston:this data wouldn't take more than 5% longer than it, cuz it was a very
W. Curtis Preston:documented process that happened.
W. Curtis Preston:Uh, and we, we did it, we put it, we put it in archive log mode.
W. Curtis Preston:We ran the first ever backup.
W. Curtis Preston:Um, oh, and by the way, um, the, the, the backup product that I was using,
W. Curtis Preston:Used, um, some features of Solaris that were well known to be buggy in
W. Curtis Preston:the version of the OS that we had.
W. Curtis Preston:So there were some patches.
W. Curtis Preston:So we had to, I had to load these patches, uh, so I had to load the patches.
W. Curtis Preston:I had to put the, uh, it was the, the jumbo patch, the Solaris jumbo patch.
W. Curtis Preston:Right.
W. Curtis Preston:We had to load the latest one, or else when I ran the database, when I ran the
W. Curtis Preston:backup, it would crashed the server.
Prasanna Malaiyandi:that would be
W. Curtis Preston:I had to put on the jumbo patch.
W. Curtis Preston:Yeah.
W. Curtis Preston:And, and I, and I had to put it on archive log mode.
W. Curtis Preston:And then, um, I got the first ever backup.
W. Curtis Preston:And we did the first ever, uh, uh, ingest of this mainframe
W. Curtis Preston:data while running a backup.
W. Curtis Preston:And it took like 5.2% longer.
W. Curtis Preston:And so I ended up buying lunch for this guy, and it, it was
W. Curtis Preston:on like a, like a Thursday.
W. Curtis Preston:And then over the weekend the system crashed and we lost five disc drives and
W. Curtis Preston:I had a backup and, you know, and so I was like, I'm cock of the walk, right?
W. Curtis Preston:So I came in Monday morning and, and he's like, I bet, I
W. Curtis Preston:bet you think you're something.
W. Curtis Preston:I'm like, yeah, I kinda do.
W. Curtis Preston:Right?
W. Curtis Preston:And he said, well, you get no credit for saving our ass.
W. Curtis Preston:I'm like, why?
W. Curtis Preston:He goes, well, for two reasons.
W. Curtis Preston:He goes, I don't know what caused, uh,
Prasanna Malaiyandi:caused the dystrophy.
W. Curtis Preston:Yeah.
W. Curtis Preston:So I think maybe the extra, the extra, you know, stuff you were
W. Curtis Preston:doing was like exercising the disk more than they were used to.
W. Curtis Preston:And so they failed because of that.
W. Curtis Preston:Or maybe it was those patches you put in either way, I think you caused a failure,
W. Curtis Preston:so you get no credit for saving it.
W. Curtis Preston:And I was like, whatever dude.
Prasanna Malaiyandi:Oh man.
W. Curtis Preston:Uh, good times.
W. Curtis Preston:Um, so, um, All right, so that's the hot backup mode.
W. Curtis Preston:Oh, by the way, the, the other downside, any backup method that involves
W. Curtis Preston:writing and maintaining custom scripts,
Prasanna Malaiyandi:Oh
W. Curtis Preston:it, it is not to be preferred over backup
W. Curtis Preston:methods that don't require, right.
W. Curtis Preston:Uh, I would prefer you not use a system that that doesn't use custom
Prasanna Malaiyandi:because just imagine that someone forgot to add a
Prasanna Malaiyandi:database table into the backup script.
Prasanna Malaiyandi:And all this time, and it runs for a year and everyone thinks, oh yeah, everything's
Prasanna Malaiyandi:backed up until a failure happens.
Prasanna Malaiyandi:And it's like, oops, we forgot about that cuz no one told me.
W. Curtis Preston:see, this is why my backup scripts queried the tables.
W. Curtis Preston:And I got a list of all the table spaces and then I put each table space and
W. Curtis Preston:back 'em up cuz I knew what I was doing.
W. Curtis Preston:But you are correct.
W. Curtis Preston:Not everybody, not
Prasanna Malaiyandi:not everyone
Prasanna Malaiyandi:does.
Prasanna Malaiyandi:Yeah.
W. Curtis Preston:Exactly.
W. Curtis Preston:All right.
W. Curtis Preston:Uh, and then we have snap and sweep and dump and sweep.
W. Curtis Preston:All right.
W. Curtis Preston:So, um, snap and sweep we've kind of covered, but basically the
W. Curtis Preston:idea is, uh, hopefully put your database in backup mode then.
W. Curtis Preston:Take a snapshot.
W. Curtis Preston:And you're right, a lot of people don't, and it works 99.9% of the time.
W. Curtis Preston:And I would say I'm even okay with that as long as we got all the transaction
W. Curtis Preston:logs going far back as we need them to go.
W. Curtis Preston:Right?
W. Curtis Preston:So if last night's backup doesn't work, then right?
W. Curtis Preston:We can go to yesterday's backup.
W. Curtis Preston:But remember, remember, remember, remember, remember the story
W. Curtis Preston:that I told last episode?
W. Curtis Preston:This is, this launched my career, so when I hear people go, it works 99%
W. Curtis Preston:of the time, I'm like, well, it didn't for me and it didn't for six weeks.
W. Curtis Preston:Right.
W. Curtis Preston:So this is what I'm saying.
W. Curtis Preston:Right.
W. Curtis Preston:Anyway, but I didn't use a snapshot.
W. Curtis Preston:I was using dump and I didn't unmount the file system.
W. Curtis Preston:But yeah, so snap and sweep.
W. Curtis Preston:And what is the, what's the sweep Prasanna
Prasanna Malaiyandi:Basically taking it and putting it somewhere else, right?
Prasanna Malaiyandi:Snapshot just gives you the point in time, but it's on the same system,
Prasanna Malaiyandi:which as we all know, is not a backup.
Prasanna Malaiyandi:So therefore take it and then put it somewhere else, right?
Prasanna Malaiyandi:Move it off box, move it to a different system, right?
Prasanna Malaiyandi:Whatever it is, whatever mechanism you use, do that.
Prasanna Malaiyandi:So when I, so one of the first projects I worked at, at my former
Prasanna Malaiyandi:employee, which starts with an ee.
Prasanna Malaiyandi:Was actually, how can you make backups more efficient for these large databases?
Prasanna Malaiyandi:Because when you started talking about 20 terabyte or 200 terabyte
Prasanna Malaiyandi:database instances, right, at the time, there was no great mechanism to
Prasanna Malaiyandi:back that up without sort of causing lots of pain for a lot of people.
Prasanna Malaiyandi:And so one of the mechanisms that we created was a product or
Prasanna Malaiyandi:a feature called Protect Point, which basically took a snapshot.
Prasanna Malaiyandi:An application consistent snapshot on your primary storage.
Prasanna Malaiyandi:Use different data movers to actually move that copy from storage to at
Prasanna Malaiyandi:the time a data domain appliance.
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:So being able to efficiently move it, because the other problem
Prasanna Malaiyandi:is once you take that snapshot in, say a normal case, right?
Prasanna Malaiyandi:You have your snapshot, now you need to sweep it somewhere else.
Prasanna Malaiyandi:It's normally your client who's moving it.
Prasanna Malaiyandi:You're now impacting your storage system.
Prasanna Malaiyandi:I know we talked about this in a previous podcast, right?
Prasanna Malaiyandi:About N D M P and having it done at a storage system makes a lot more sense.
Prasanna Malaiyandi:That's what we used to do.
Prasanna Malaiyandi:So we actually built a solution to move the data from.
Prasanna Malaiyandi:Primary storage.
Prasanna Malaiyandi:Write the EMC snapshot to a data domain system directly without
Prasanna Malaiyandi:requiring a client in the picture.
W. Curtis Preston:Hmm.
W. Curtis Preston:It's both pieces of that arch architecture were sold by emc.
W. Curtis Preston:That's fascinating.
W. Curtis Preston:Um, so, so we'll get the next one is what I think is probably
W. Curtis Preston:the most common backup method for databases, which is dump and sweep.
W. Curtis Preston:You wanna talk about that?
Prasanna Malaiyandi:Yeah, so this is, so most database applications support
Prasanna Malaiyandi:a functionality called dump, right?
Prasanna Malaiyandi:Which is take my database files and dump it to a location, right?
Prasanna Malaiyandi:So rman supports this, right?
Prasanna Malaiyandi:Uh, which we'll talk about in a little bit, right?
Prasanna Malaiyandi:Other tools do it, and similar to sort of a snapshot and sweep, right?
Prasanna Malaiyandi:Dump and sweep is you do a database dump somewhere, and then you sweep it off
Prasanna Malaiyandi:and copy the files off somewhere else to get that backup copy, if you will.
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:And so this is another mechanism, and you don't need any fancy tools.
Prasanna Malaiyandi:You don't need, like this works everywhere, right?
Prasanna Malaiyandi:So you don't need to have a storage system that supports snapshots, right?
Prasanna Malaiyandi:You could be running it on a server, right?
Prasanna Malaiyandi:With local disk, do a local dump and then sweep it off
Prasanna Malaiyandi:somewhere else to get your backup.
W. Curtis Preston:Yeah, the upsides of this is that it's very
W. Curtis Preston:flexible and anybody can do it.
W. Curtis Preston:Um, you know, the, and it gives the DBAs that control that they're looking for.
W. Curtis Preston:Uh, the downsides are many.
W. Curtis Preston:Unfortunately, no one cares, right?
W. Curtis Preston:So you have to have twice as much storage.
W. Curtis Preston:Right.
W. Curtis Preston:Um, you know, you have to have a dump location that you can back it up to.
W. Curtis Preston:Now what some people have done is they've backed up directly to a
W. Curtis Preston:deduplication appliance, right?
W. Curtis Preston:Like a data domain.
W. Curtis Preston:They get an NFS mount and they back up to that.
W. Curtis Preston:I do not like that method either.
W. Curtis Preston:I don't like the backups being visible directly as on an NFS mount
W. Curtis Preston:point, but, you know, whatever.
W. Curtis Preston:Uh, ransomware cuz of ransomware.
W. Curtis Preston:Right?
W. Curtis Preston:Um, but the, um, Uh, the other problem is again, that this is going to be done by
W. Curtis Preston:some sort of custom script, some sort of scheduling system, which it may or may not
W. Curtis Preston:have any decent reporting to it, right?
W. Curtis Preston:One of the, one of the main concerns I have with Dump and Sweep in
W. Curtis Preston:general is that, um, the, the two sides don't talk to each other.
W. Curtis Preston:Right.
W. Curtis Preston:So the, the, the sweep is happening.
W. Curtis Preston:The backup person is running the sweep and the DBA is running the dump.
W. Curtis Preston:What happens if the dump fails?
W. Curtis Preston:The backup just keeps running.
Prasanna Malaiyandi:Thinks it's all fine.
Prasanna Malaiyandi:It's great.
Prasanna Malaiyandi:Yeah.
W. Curtis Preston:Yeah.
W. Curtis Preston:So what I've done, again, it's, it is just complexity, but, you know, I liked it.
W. Curtis Preston:Um, was I, I built into the dump script.
W. Curtis Preston:I would work with the, the DBA to build into the dump script, a file that they
W. Curtis Preston:would touch that would say that the backup worked or didn't work or whatever.
W. Curtis Preston:And then I would look at that file from the other side and I would know
W. Curtis Preston:that the backup ran recently or not.
W. Curtis Preston:And if it didn't run recently, then I would error and then I could go to
W. Curtis Preston:the DBA all that stuff is all custom
Prasanna Malaiyandi:Well, well, and what percentage of DBAs
Prasanna Malaiyandi:and backup people do you think actually do that mechanism, Curtis?
Prasanna Malaiyandi:You know?
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:Most people, and I, and I've actually seen this, right?
Prasanna Malaiyandi:So when I've talked to customers, right?
Prasanna Malaiyandi:Sometimes they're like, yeah, our DBA was doing dumps.
Prasanna Malaiyandi:We were doing sweeps, and then something happened.
Prasanna Malaiyandi:It wasn't coordinated.
Prasanna Malaiyandi:And we lost some data.
W. Curtis Preston:Yeah.
W. Curtis Preston:Yeah.
W. Curtis Preston:Uh, so that's why I don't like it, even though it's the most popular method.
W. Curtis Preston:So the, the next, um, is the second, I think the second most popular method,
W. Curtis Preston:which is the stream to backup product.
W. Curtis Preston:Right?
W. Curtis Preston:So this is, I'm gonna get the, the agent, uh, For the thing, right?
W. Curtis Preston:I'm gonna get an in, you know, in the case of Oracle, it's Rman, right?
W. Curtis Preston:Our Rman by the way, RMAN can do a dump, right?
W. Curtis Preston:Uh, RMAN can do a dump to disc.
W. Curtis Preston:Rman can also basically send data to a pipe that is then read by the
W. Curtis Preston:backup product, and it can then be sent directly to wherever that
W. Curtis Preston:backup product stores its backups.
W. Curtis Preston:Whether it's a DDU device, regular disc tape.
W. Curtis Preston:The cloud, right?
W. Curtis Preston:Whatever it uh, does, but hardly anybody.
W. Curtis Preston:Does this right?
Prasanna Malaiyandi:What?
Prasanna Malaiyandi:I hope you're being sarcastic.
W. Curtis Preston:saying No, no, no, no.
W. Curtis Preston:I'm just saying I'm just, it's the second most popular, but
W. Curtis Preston:it's, but it's a distant second.
W. Curtis Preston:It's, it goes back to that.
W. Curtis Preston:To that control, right?
W. Curtis Preston:The, the, the, the DBAs just want to control it.
W. Curtis Preston:Now, in the case of RMAN, you can properly configure RMAN so that the DBA can run
W. Curtis Preston:a backup whenever they want, and you can run the backup whenever you want.
W. Curtis Preston:And then you don't have to talk to each other.
W. Curtis Preston:But I don't, I don't mean that the, the DBAs the SAs shouldn't talk to
W. Curtis Preston:each other, but you know what I'm
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:It's, it's, it's a control.
Prasanna Malaiyandi:Everyone still has control and visibility, right?
Prasanna Malaiyandi:I think that's the key is people want the control.
Prasanna Malaiyandi:They don't want to give it up because it's their job on the line.
Prasanna Malaiyandi:Like if the database fails, DBA is like, do I trust the backup team or am I
Prasanna Malaiyandi:going to take control and do it myself?
Prasanna Malaiyandi:And this is why even with these tools, Right, that the backup team
Prasanna Malaiyandi:and the DBAs can work together.
Prasanna Malaiyandi:I would still see DBAs on expensive primary tier one primary storage,
Prasanna Malaiyandi:take five, six database copies.
Prasanna Malaiyandi:Yeah, and keep it locally on production storage because they
Prasanna Malaiyandi:did not trust a backup team.
W. Curtis Preston:Yeah.
W. Curtis Preston:Good times.
W. Curtis Preston:Yeah.
W. Curtis Preston:Yeah.
W. Curtis Preston:The, the biggest advantage to this is, well, the two, one is that you don't
W. Curtis Preston:have to have that extra storage, but a lot of people end up having it anyway.
W. Curtis Preston:Uh, but the biggest advantage here is no custom scripting, right.
W. Curtis Preston:Put the agent where it's supposed to be, uh, connect it.
W. Curtis Preston:It's usually like a DLL or something, and then it talks to the, the backup
W. Curtis Preston:system, and then you get all the reporting, everything end to end.
W. Curtis Preston:That's why I like it.
W. Curtis Preston:I, I think it's a better design, but I know why the
W. Curtis Preston:other guys do The other thing.
W. Curtis Preston:Um, and then just real quick, I'm just gonna cover 'em real quick
W. Curtis Preston:cuz we're, we're gonna be too long.
W. Curtis Preston:Uh, transaction log backup, making sure that you know, if you have a transaction
W. Curtis Preston:log database, making sure that that's included in the backup, because
W. Curtis Preston:especially if you're doing a hot backup.
W. Curtis Preston:You need those transaction logs during the time of the backup where you're
W. Curtis Preston:not gonna be able to, to get it.
W. Curtis Preston:And also you need those transaction logs to roll your backup forward
W. Curtis Preston:to the current point in time.
W. Curtis Preston:Right.
W. Curtis Preston:And then the master file, right?
W. Curtis Preston:The control file and Oracle, the, the master database and sql, uh, et cetera.
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:There are all these other things that you need as well.
Prasanna Malaiyandi:Yep.
W. Curtis Preston:Yes, yes, yes.
W. Curtis Preston:Um, so the next we have is backing up PaaS and serverless databases.
W. Curtis Preston:Um, this is.
W. Curtis Preston:Um, I, I think that things times have changed, even as, as I, you
W. Curtis Preston:know, since I wrote the book.
W. Curtis Preston:There's dump and sweep there too, right?
W. Curtis Preston:Uh, there's also integrated backup as a service, right?
W. Curtis Preston:Um, so like, w when you think about like RDS or DynamoDB, how,
W. Curtis Preston:how do people back those up today?
Prasanna Malaiyandi:I think they just predominantly use AWS's native tools.
Prasanna Malaiyandi:Right?
Prasanna Malaiyandi:If I look at that, it's a cloud provider, whoever I'm using,
Prasanna Malaiyandi:right, gives me the tools I need to do the functionality to backup,
W. Curtis Preston:yeah, yeah.
W. Curtis Preston:I, I don't even think it's, many of them don't even offer the dump feature.
W. Curtis Preston:Right.
W. Curtis Preston:I don't think you can dump, uh, DynamoDB
Prasanna Malaiyandi:think Dynamo DB now supports dumping to s3, I believe.
W. Curtis Preston:Oh, okay.
W. Curtis Preston:All right.
W. Curtis Preston:Maybe, um, yeah, so quite often that feature's not available.
W. Curtis Preston:Uh, sometimes it is, it sounds like maybe, uh, Amazon was sort of
W. Curtis Preston:probably forced to come out with that.
W. Curtis Preston:They, they had customer demand for it.
W. Curtis Preston:Um, I think, I agree with you.
W. Curtis Preston:I think the most common method is the, basically the, the integrated.
W. Curtis Preston:Backup method, right?
W. Curtis Preston:In the case of aws, you take snapshots, those snapshots
W. Curtis Preston:end up getting stored in s3.
W. Curtis Preston:Um, you can ha you can have those snapshots replicated to other
W. Curtis Preston:places, uh, which you should, right?
W. Curtis Preston:That's, that's the only concern that I have.
W. Curtis Preston:If you have RDS and you're just like, RDS by default has snapshots enabled, and they
W. Curtis Preston:just run, like, I think they run once a
Prasanna Malaiyandi:They run once a day,
Prasanna Malaiyandi:but.
W. Curtis Preston:all in the same, go ahead.
Prasanna Malaiyandi:but the thing you should be careful of and read
Prasanna Malaiyandi:carefully what they offer because each one does something different.
Prasanna Malaiyandi:And even RDS gives you different flavors depending on what database
Prasanna Malaiyandi:type you're using within RDS.
Prasanna Malaiyandi:Um, so most of 'em, when they're doing that automated snapshot, like
Prasanna Malaiyandi:you're talking about, Curtis, They typically only keep it for 30 days max.
Prasanna Malaiyandi:That's it.
Prasanna Malaiyandi:You can't extend it beyond 30 days.
Prasanna Malaiyandi:That's all you get.
Prasanna Malaiyandi:So if you have retention requirements, you now have to manually manage the snapshots
Prasanna Malaiyandi:on your own or the backups on your own.
Prasanna Malaiyandi:Um, the other
W. Curtis Preston:Yeah.
Prasanna Malaiyandi:oh, go ahead.
W. Curtis Preston:go ahead.
Prasanna Malaiyandi:The other point I was gonna make is that be careful
Prasanna Malaiyandi:also because some tools allow you to do a backup, but they don't
Prasanna Malaiyandi:actually allow you to do the restore.
W. Curtis Preston:Yeah.
W. Curtis Preston:OuRMAN on RDS perfect example of
Prasanna Malaiyandi:Yeah, so make sure
W. Curtis Preston:The last time I checked anyway.
Prasanna Malaiyandi:So carefully read what it offers.
Prasanna Malaiyandi:Don't assume.
W. Curtis Preston:I am gonna throw an idea out there, Prasanna,
W. Curtis Preston:and tell me what you think.
W. Curtis Preston:Why in the hell do you need backups Over 30 days of a database?
W. Curtis Preston:Of a database?
W. Curtis Preston:What good is a backup of your database from two months ago?
W. Curtis Preston:This not the file system,
Prasanna Malaiyandi:CA.
W. Curtis Preston:right?
Prasanna Malaiyandi:I can.
Prasanna Malaiyandi:I have a, so here's where I think it could be useful.
Prasanna Malaiyandi:Now, I've never administered backup systems.
Prasanna Malaiyandi:I've never actually had to deal with recoveries like you have.
W. Curtis Preston:Mm-hmm.
Prasanna Malaiyandi:But one potential I could see is, say there was a corruption,
Prasanna Malaiyandi:you have all the transaction logs.
Prasanna Malaiyandi:Going back, say 60 days, you could theoretically, Recover the
Prasanna Malaiyandi:database back to 60 days and replay all the transactions to recover.
W. Curtis Preston:I think that is the edge condition of all edge conditions.
Prasanna Malaiyandi:I said, but, but did you notice that I did
Prasanna Malaiyandi:not say anything about archive?
Prasanna Malaiyandi:Because that's typically why people should be
Prasanna Malaiyandi:keeping it
W. Curtis Preston:Well, they, they're like, well, they, they're like, well,
W. Curtis Preston:we keep it for, um, for, um, um, For retention or compliance or whatever.
W. Curtis Preston:And I'm like, yeah, but you're keeping a backup for compliance reasons.
W. Curtis Preston:If you actually need that in three years, you're gonna be in a world of hurt.
W. Curtis Preston:Cuz you're, we're gonna be on Oracle version 78 and you're gonna be on version
W. Curtis Preston:13 and you're gonna be in a world of hurt if you need stuff for compliance reasons
W. Curtis Preston:that should be archived, which would be in like full text, not in a database format.
W. Curtis Preston:Uh, you know, that's a, that's a whole other discussion.
W. Curtis Preston:So, um, the, the final section and, and it, and it's gonna be admittedly
W. Curtis Preston:much shorter than the previous, right?
W. Curtis Preston:And, and that is, and it's, it's equally as important, which
W. Curtis Preston:is recovering the databases.
W. Curtis Preston:But there's, um, there are, um, h Hang on, sorry, I'm just looking here.
W. Curtis Preston:Um,
W. Curtis Preston:um, I, I do in the book, go into.
W. Curtis Preston:Preferred, at least my preferred backup methods for, for a
W. Curtis Preston:handful of different databases.
W. Curtis Preston:If, if, if you want those, you know, those are available in the book.
W. Curtis Preston:Uh, but as far as recovering traditional databases, There's
W. Curtis Preston:essentially four steps, right?
W. Curtis Preston:I'm just gonna go through 'em real quick.
W. Curtis Preston:Right?
W. Curtis Preston:Identify what's wrong, restore the data files, apply media recovery,
W. Curtis Preston:and then start the database, right?
W. Curtis Preston:So the, this is for regular, you know, databases hosted on a, on a server.
W. Curtis Preston:Um, you, you have to figure out what's wrong because you might
W. Curtis Preston:not have to do a full recovery.
W. Curtis Preston:Right?
Prasanna Malaiyandi:And hopefully you can avoid that.
Prasanna Malaiyandi:Yeah.
W. Curtis Preston:Like in the case of, again, I'm gonna use Oracles a lot cuz
W. Curtis Preston:it's where most of my experience is.
W. Curtis Preston:You might just find out that the control file is missing, right?
W. Curtis Preston:You might just find out that one data file is, was deleted or corrupted and
W. Curtis Preston:you could restore just that data file.
W. Curtis Preston:Um, anything you can do like that, um, you know, you know to figure out what's wrong.
W. Curtis Preston:Before you do any recovery, it, it's just like, you know, we talked about ransomware
W. Curtis Preston:recovery, just like ransomware recovery, the more you can do upfront to figure
W. Curtis Preston:out the, the more time it'll save you.
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:Every, you don't need a hammer for everything.
Prasanna Malaiyandi:Full recovery.
Prasanna Malaiyandi:You don't need to full restore everything.
Prasanna Malaiyandi:Anytime something happens with your database.
Prasanna Malaiyandi:A lot of these database backups, right, and the database applications
Prasanna Malaiyandi:themselves are smart enough to recover with just smaller granularities.
Prasanna Malaiyandi:So once you figured out what caused the issue, right, most of these
Prasanna Malaiyandi:database, then you can actually restore whatever needs to be recovered, right?
Prasanna Malaiyandi:So like you mentioned, Curtis, your second step was recover the data
Prasanna Malaiyandi:file or whatever that object is.
Prasanna Malaiyandi:Most of the database recovery tools sort of deal with a lot of that for you.
Prasanna Malaiyandi:So say you've.
Prasanna Malaiyandi:Found Oracle has a corrupt data file, right?
Prasanna Malaiyandi:You can go to Oracle RMAN and say, recover this particular data file, and
Prasanna Malaiyandi:it'll just pull back that one data file.
W. Curtis Preston:Right.
W. Curtis Preston:And if you used, if you used dump and sweep, it's a little bit different.
W. Curtis Preston:But if you used, uh, snap and Sweep or you know, one of the others where
W. Curtis Preston:basically you have the, the data files right there, you can just grab
W. Curtis Preston:'em and restore 'em, or you can, you know, use your database product.
W. Curtis Preston:The, the really important step, the database won't open at that point because
W. Curtis Preston:now you've got, You've either got a, all the files are from one point in time from
W. Curtis Preston:last night or maybe even two days ago, or you've got some files from right now
W. Curtis Preston:and some data files which are behind, and then you have to apply media recovery.
W. Curtis Preston:So this is essentially using those transaction logs to redo
W. Curtis Preston:logs to, to redo everything that happened since that backup.
W. Curtis Preston:And you, you basically bring all the data files up to the same point in time.
W. Curtis Preston:And then you can open the database.
Prasanna Malaiyandi:And I,
W. Curtis Preston:go ahead.
Prasanna Malaiyandi:and I remember just going back talking about it, right?
Prasanna Malaiyandi:Only once I started talking to like the application experts who are really good at
Prasanna Malaiyandi:backups for databases, and I realized it's a two step process, like you said, right?
Prasanna Malaiyandi:One is restore and the other is recovery.
Prasanna Malaiyandi:You're restoring your data files or whatever the media is, you're
Prasanna Malaiyandi:recovering the database into a well-known point in time so it can, in
Prasanna Malaiyandi:the footstep, be brought back online.
W. Curtis Preston:And it is possible.
W. Curtis Preston:For example, if the reason that you're restoring the database is that somebody
W. Curtis Preston:dropped a table, uh, or did a DBA or, or a threat actor did something
W. Curtis Preston:to your database, deleted a bunch of records, deleted some tables, whatever.
W. Curtis Preston:When you do media recovery, you can typically say, do media recovery.
W. Curtis Preston:Up to this point in time, you know that the date that the table
W. Curtis Preston:was dropped at, you know, 1745.
W. Curtis Preston:And so you, you just restore, you know, recover up to 1744.
W. Curtis Preston:Um, you might even do 17 44, 59, what, you know, whatever it is that, you
W. Curtis Preston:know, when that table was dropped.
W. Curtis Preston:You can do media recovery up to that point and it'll bring it up to a consistent
W. Curtis Preston:point in time at that point in time.
W. Curtis Preston:Right.
W. Curtis Preston:Um, Yeah, it, it, it's not an easy thing and, and uh, you know, hopefully
W. Curtis Preston:it's something that you practice on a regular basis, just like everything else.
W. Curtis Preston:Hopefully it's something you test and you practice, um, et cetera.
W. Curtis Preston:So I've got so recovering modern databases, um, I.
W. Curtis Preston:You know, I, I've got a handful of different ways, right?
W. Curtis Preston:So I've got the point in time recovery without media recovery.
W. Curtis Preston:So, um, some of them just don't provide it, right?
W. Curtis Preston:So, like when we talked about backing up, um, What are we talking
W. Curtis Preston:about backing up DynamoDB, right?
W. Curtis Preston:So it doesn't really have the concept of media recovery.
W. Curtis Preston:If you want better, if you want more granularity in the restore, you just take
W. Curtis Preston:More uh, snapshots more often, right?
W. Curtis Preston:That gives you a better rpo, right?
W. Curtis Preston:Recovery point objective.
W. Curtis Preston:Uh, so that, that could be one option.
W. Curtis Preston:The other option would be table based recovery.
W. Curtis Preston:Um, why might I want to do that?
Prasanna Malaiyandi:because you only care about one particular thing in the
Prasanna Malaiyandi:tape or in the entire database instance.
Prasanna Malaiyandi:Not everything.
W. Curtis Preston:Well, I hint, I mentioned something
W. Curtis Preston:that could happen a few minutes
Prasanna Malaiyandi:Oh, someone dropped a table
Prasanna Malaiyandi:or uh, or you have a malicious person who goes and deletes things.
W. Curtis Preston:Yes.
W. Curtis Preston:Yes, exactly right.
W. Curtis Preston:So it may be that the only thing wrong with your, with your, um,
W. Curtis Preston:system is, uh, is ta is is the table.
W. Curtis Preston:But the other reason that you might want to do this is that
W. Curtis Preston:this is the only way to do this.
W. Curtis Preston:Some, some of the backup agents or some of, I'm sorry, some of the
W. Curtis Preston:database products, the only way to back up is at the table level, right?
W. Curtis Preston:Um, there's also node level recovery.
W. Curtis Preston:Right.
Prasanna Malaiyandi:you're talking
W. Curtis Preston:a multi node database, go ahead.
Prasanna Malaiyandi:I was thinking like when you think about like Cassandra
Prasanna Malaiyandi:or MongoDB or other things like this where you have multiple nodes, which.
Prasanna Malaiyandi:Then make up the database.
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:You might have a node fail.
Prasanna Malaiyandi:Right.
Prasanna Malaiyandi:And so what's the process for bringing up and recovering a particular node?
W. Curtis Preston:Right, and and most of them, it looks like you don't really
W. Curtis Preston:have to recover the note as much as you just have to create a new replica.
W. Curtis Preston:Say, Hey, uh, this one's dead.
W. Curtis Preston:We're gonna do this one now.
W. Curtis Preston:And they just sort of figure that out.
W. Curtis Preston:That is the beauty of those type, you know, of a scale out database, right?
W. Curtis Preston:Um, the, the, the more common I think is gonna be the, you know, the one
W. Curtis Preston:that we, it, it, I'm, I'm saying it twice, but the, I have cloud level
W. Curtis Preston:snapshot as a backup and restore method.
W. Curtis Preston:That's a super easy restore method though, right?
Prasanna Malaiyandi:Yeah, can you just bring it back?
W. Curtis Preston:Yeah.
Prasanna Malaiyandi:assuming that it's supporting, assuming it's supporting,
W. Curtis Preston:Yeah.
W. Curtis Preston:Assuming, supported.
W. Curtis Preston:Yeah.
W. Curtis Preston:Um, don't assume any of this stuff right.
W. Curtis Preston:To make
Prasanna Malaiyandi:go test it.
W. Curtis Preston:you're testing this upfront.
W. Curtis Preston:Yeah, exactly right.
W. Curtis Preston:Um, the.
W. Curtis Preston:So, uh, I'm just gonna read this because it's, it's outside, really
W. Curtis Preston:outside of my world here, but, so there's some restored, uh, scenarios.
W. Curtis Preston:Depending on how the data is restored will need to be brought consistent
W. Curtis Preston:with the rest of the database.
W. Curtis Preston:So you may have to restore.
W. Curtis Preston:This is, again, this is with an eventually consistent database.
W. Curtis Preston:That's why we wanted to mention that term back in the last, uh, recording.
W. Curtis Preston:Um, if you've got an eventually consistent database, You may restore
W. Curtis Preston:only part of that database and that it then needs to be brought consistent
W. Curtis Preston:with the rest of the database.
W. Curtis Preston:It's a bit, honestly, it's a bit, uh, outside of my realm of experience.
W. Curtis Preston:So I, um, so I just have, I just have to say that is a type of restore and
W. Curtis Preston:when you talk about like Cassandra and MongoDB and these, these giant, uh, you
W. Curtis Preston:know, massive databases, That I, I talk to, um, like the folks over at datos.io,
W. Curtis Preston:that, that they, you know, they back up these type of things and they're
W. Curtis Preston:the ones that talk, that, talk to me about this, where that some of the stuff
W. Curtis Preston:that's documented in the, in the manual that I, if you follow it, it could end
W. Curtis Preston:up having to do an eventual, like an eventual recovery and that it can take
W. Curtis Preston:a really, really long time to do that.
W. Curtis Preston:So that, that, that's sort of what I'm alluding to there.
W. Curtis Preston:Honestly, I barely understand what, what that is myself if you don't understand it.
W. Curtis Preston:But here's what I'm saying is if you've got a, if you've got one of these massive
W. Curtis Preston:scale out databases, the, the big thing, the big takeaway for me from those is
W. Curtis Preston:please do not confuse availability.
Prasanna Malaiyandi:Yep.
W. Curtis Preston:durability, right?
W. Curtis Preston:Um, that, uh, someone can still drop a table, you can still lose a number
W. Curtis Preston:of a, a number of nodes, right?
W. Curtis Preston:So the question is, how do we recover?
W. Curtis Preston:If somebody lost, if somebody dropped a table, how do we recover?
W. Curtis Preston:If we lost whatever the number of nodes is, that would take out the system.
W. Curtis Preston:What's that solution?
W. Curtis Preston:Because if you don't have a solution for that, Uh, then you're gonna be in
W. Curtis Preston:a world of herd if that ever happens.
W. Curtis Preston:Right?
W. Curtis Preston:Some final thoughts on backing up databases.
W. Curtis Preston:Just a few things that come to my mind.
W. Curtis Preston:You, you've mentioned one of 'em, I, if you are scripting things, make sure you
W. Curtis Preston:built some intelligence into that script so that it will identify new databases,
W. Curtis Preston:new table spaces, new data files, whatever it is that you're don't, please don't
W. Curtis Preston:have a configuration file that you have to update when you make a new database
Prasanna Malaiyandi:Well, because things are changing and no one's
Prasanna Malaiyandi:gonna reach out to you either.
W. Curtis Preston:Yeah, exactly what I used.
W. Curtis Preston:Uh, shoot, it's been a while.
W. Curtis Preston:Was it the, the, is it like.com?
W. Curtis Preston:Like it was the, it was the configuration file for Oracle itself.
W. Curtis Preston:Right?
W. Curtis Preston:So if you had a new database in Oracle, you would had, you
W. Curtis Preston:would add a new instance, right.
W. Curtis Preston:And that instance would have an instance Id, that instance Id would
W. Curtis Preston:go into the Oracle configuration file.
W. Curtis Preston:It's basically the Oracle version of the, of the file system table, right?
W. Curtis Preston:And so I would start there.
W. Curtis Preston:I would read the Oracle configuration file, and I would say, what, you
W. Curtis Preston:know, what instances are on this?
W. Curtis Preston:And then I would put all those instances in backup mode back in the day.
W. Curtis Preston:I had to put the table spaces in backup mode.
W. Curtis Preston:So I would, log into that instance, query the instance of what the table
W. Curtis Preston:spaces were, you know, then loop through and, and, and do all of
W. Curtis Preston:tho put all those in backup mode.
W. Curtis Preston:And then of course, very importantly, take them out of backup mode when you're done.
W. Curtis Preston:Um, and, uh, and then add some reporting, add lots of error
W. Curtis Preston:checking for, for things.
W. Curtis Preston:You know, like, you know, the, the or.com file isn't where
W. Curtis Preston:I thought it was gonna be.
W. Curtis Preston:Right.
W. Curtis Preston:Um, or the, the sequel, I remember the, they would change.
W. Curtis Preston:Yeah.
W. Curtis Preston:Stuff would change.
W. Curtis Preston:So just have error conditions built into when the, when the script doesn't do
W. Curtis Preston:what you think you're gonna do, have some kind of way of letting other people know.
W. Curtis Preston:Back in the day, the only way I had was, was email.
W. Curtis Preston:Um, And we would just, you know, uh, send out a note, say, Hey dude, you
W. Curtis Preston:know, something happened over here.
W. Curtis Preston:Come take a look at it.
W. Curtis Preston:What, what other sort of
W. Curtis Preston:general things to can you think of?
Prasanna Malaiyandi:I think the other thing to take away is, Whatever
Prasanna Malaiyandi:solution you're using for backup, right?
Prasanna Malaiyandi:Even if you do have these automated abilities in the script, make
Prasanna Malaiyandi:sure the backup and the database people talk to each other.
Prasanna Malaiyandi:You guys don't have to be enemies.
Prasanna Malaiyandi:You don't have to be best buds either, right?
Prasanna Malaiyandi:But at least talk to each other and make sure you're coordinated.
Prasanna Malaiyandi:Because when you start to talk about recovery and the process,
Prasanna Malaiyandi:right, it all starts from what did we decide upfront for backup?
W. Curtis Preston:Um, man, we covered a lot in this episode, dude.
W. Curtis Preston:What do you think?
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:No, I think
Prasanna Malaiyandi:this is a, I think
W. Curtis Preston:Yeah.
Prasanna Malaiyandi:I always learned something new thinking, and I think
Prasanna Malaiyandi:I talked about this on the last database chapter or episode as well.
Prasanna Malaiyandi:It's databases are complex.
Prasanna Malaiyandi:If some of these things go over your head, don't worry.
Prasanna Malaiyandi:Right?
Prasanna Malaiyandi:There's a lot of
W. Curtis Preston:Hey, it goes over my head sometimes.
W. Curtis Preston:Right, right.
W. Curtis Preston:Because I'm trying to talk about, you know, we talked about if you go
W. Curtis Preston:to db-engines.com, we talked about that there are, um, it was like
W. Curtis Preston:30 different database products.
W. Curtis Preston:There's
Prasanna Malaiyandi:I think
Prasanna Malaiyandi:it's more than
W. Curtis Preston:different types.
Prasanna Malaiyandi:Yeah.
Prasanna Malaiyandi:30
W. Curtis Preston:well, no, it was like 30 types and then like a couple
W. Curtis Preston:of hundred different databases out there, and they're all different.
W. Curtis Preston:And they all.
W. Curtis Preston:You know, they all back up different and restore different, so just
W. Curtis Preston:make sure you know how yours works.
W. Curtis Preston:Right.
W. Curtis Preston:Um, and please don't let the vendor go, oh, this doesn't need to be backed up.
W. Curtis Preston:Please don't.
W. Curtis Preston:It hurts my ears when I hear that.
W. Curtis Preston:Uh, so hopefully this was helpful.
W. Curtis Preston:Um, you know, if you've got other database questions, throw 'em out.
W. Curtis Preston:Throw it out to us.
W. Curtis Preston:I hope you enjoyed the episode.
W. Curtis Preston:Um, it's always fun, um, talking about my favorite subject
Prasanna Malaiyandi:Yeah, and no, I, I'm excited to hear about your
Prasanna Malaiyandi:experiment, Curtis, more than anything, honestly, I wanna see what happens.
W. Curtis Preston:Yeah, it'll be interesting.
W. Curtis Preston:It'll be interesting and, uh, thanks everybody for listening and remember to