DG PDB : Oracle Data Guard for Pluggable Databases in 21c, and why you shouldn’t use it!

Last month you may have noticed the announcement of DG PDB. It’s Data Guard for PDBs, rather than CDBs, introduced in the Oracle 21.7 release update.

How do you use it?

I’ve had a play around with it, which resulted in this article.

I also did a Vagrant build, which includes the build of the servers, the database software installations, database creations and the perquisites, so you can jump straight to the DG PDB configuration section in the article. You can find that build here.

So that’s the basic how-to covered, and I really do mean “basic”. There is a lot more people might want to do with it, but it’s beyond the scope of my little Vagrant build.

What do I think about it?

Well I guess you know how this is going to go, based on the title of this post. I don’t like it (yet), but I’m going to try and be a bit more constructive than that.

  • It is buggy! : I know 21c is an innovation release, but this is a HA/DR solution, so it needs to be bullet proof and it’s not. There are a number of issues when you come to use it, which will most likely be fixed in a future release update, or database version, but for now this is a production release and I don’t feel like it is safe pair of hands for real PDBs. That is a *very* bad look for a product of this type.
  • Is it Data Guard? Really? : Once again, I know this is the first release of this functionality, but there are so many restrictions associated with it that I wonder if it is even deserving of the Data Guard name. I feel like it should have been a little further along the development cycle before it got associated with the name Data Guard. The first time someone has a problem with DG PDB, and they definitely will, they are going to say some choice words about Data Guard. I know this because I was throwing around some expletives when I was having issues with it. That’s not a feeling you want to associated with one of your HA/DR products…
  • Is this even scriptable? : The “add pluggable database” step in the DGMGRL utility prompts for a password. Maybe I’ve missed something, but I didn’t see a way to supply this silently. If it needs human interaction it is not finished. If someone can explain to me what I’ve missed, that would be good. If I’m correct and this can’t be done silently, it needs some new arguments. It doesn’t help that it consistently fails the first time you call it, but works the second time. Ouch!
  • Is the standby PDB created or not? : When you run the “add pluggable database” command (and it eventually works) it creates the standby PDB, but there are no datafiles associated with it. You have to copy those across yourself. The default action should be to copy the files across. Oracle could do it quite easily with the DBMS_FILE_TRANSFER package, or some variant of a hot clone. There should still be an option to not do the datafile copy, as some people might want to move the files manually, and that is fine, but to not have a way to include the file copy seems a bit crappy.
  • Ease of use : Oracle 21c introduced the PREPARE FOR DATA GUARD command, which automates a whole bunch of prerequisites for Data Guard setup, which is a really nice touch. Of course DG PDB has many of the same prerequisites, so you can use PREPARE FOR DATA GUARD to get yourself in a good place to start, but I still feel like there are too many moving parts to get going. I really want it to be a single command that takes me from zero to hero. I could say this about many other Oracle features too, but that’s the subject of another blog post.
  • Overall : A few times I got myself into such a mess the only thing I could do was rebuild the whole environment. That’s not a good look for a HA/DR product!

Conclusion

I’m sorry if I’ve pissed off any of the folks that worked on this feature. It wasn’t my intention. I just don’t think this is ready to be included in a production release yet. I’m hoping I can sing its praises of a future release of this functionality!

Cheers

Tim…

PS. I’m reminded of this post about The Definition of Done.

Fedora 36 and Oracle

Fedora 36 was released recently. Here comes the standard warning.

Here are the usual things I do when a new version of Fedora comes out.

Why do I do this? As mentioned in the first link, Fedora is a proving ground for future versions of RHEL, and therefore Oracle Linux. I like to see what is coming around the corner. Doing this has no “real world” value, but I’m a geek, and this is what geeks do. 🙂

As an aside, when Fedora 35 was released I was having a lot of trouble getting 19c and 21c installed on it. I tried a number of times over the course of a few weeks and failed each time. When I tried those same installations on Fedora 36 they just worked, so I went back and tried on Fedora 35 again, and they worked there too. Clearly there have been some changes to underlying Fedora 35 packages that have fixed whatever the problem was with the Oracle installations. As a result, I also produced these.

Now that Fedora 36 exists, these Fedora 35 installations are not really necessary, but it’s nice to do them for the sake of completeness.

I pushed Vagrant builds to my GitHub.

If you want to try these out, you will need to build the base Vagrant boxes using Packer. You can find the Packer builds on my GitHub too.

So now you know how to do it, please don’t! 🙂

What’s New?

So what’s new with Fedora 36? It’s a bleeding edge distribution, so as you might expect, loads of package version updates, bringing most things to the latest and greatest versions. The things that stand out for me are Ansible 5 and Podman 4.0. If you want a more complete perspective on this, you might want to look here.

Cheers

Tim…

Video : SecureFiles Shrink in Oracle Database 21c

In today’s video we’ll demonstrate the SecureFiles Shrink feature, introduced in Oracle database 21c.

The video is based on this article.

You might also find these useful.

The star of today’s video is Arman Sharma. This clip was from Sangam15. To think that was seven years ago is mind-blowing!

Cheers

Tim…

Video : The PREPARE DATABASE FOR DATA GUARD Command in Oracle Database 21c

In today’s video we demonstrate the PREPARE DATABASE FOR DATA GUARD command, introduced in Oracle database 21c.

The video is based on this article.

The star of today’s video is Osama Mustafa, who was looking like a Teenage Mutant Ninja Turtle at that OpenWorld. 🙂

Cheers

Tim…

Video : EXCEPT and EXCEPT ALL Set Operators in Oracle Database 21c

In today’s video we demonstrate the EXCEPT and EXCEPT ALL set operators, introduced in Oracle database 21c.

The video is based on this article.

You might also find these useful.

The star of today’s video is Chris Saxon, who you’ll know from AskTom and his YouTube channel.

Cheers

Tim…

Video : INTERSECT ALL Set Operator in Oracle Database 21c

In today’s video we demonstrate the INTERSECT ALL set operator, introduced in Oracle database 21c.

The video is based on this article.

You might also find these useful.

The star of today’s video is Francesco Tisiot, who for some reason is incapable of understand the virtues of putting pineapple on pizza, or snapping spaghetti in half so it fits in the pan!

Cheers

Tim…

Video : MINUS ALL Set Operator in Oracle Database 21c

In today’s video we’ll demonstrate the MINUS ALL set operator,
introduced in Oracle database 21c.

The video is based on this article.

You might also find these useful.

The star of today’s video is Ludovico Caldara, who looks a little different than I remember him.

Cheers

Tim…

Video : Attention Log in Oracle Database 21c

In today’s video we discuss the attention log, introduced in Oracle database 21c.

The video is based on this article.

You might also find this useful.

The star of today’s video is Zahid Anwar, who despite being a fellow Brit, is filmed here in the USA. It’s funny how things work out. 🙂

Cheers

Tim…

Video : DBMS_XPLAN : Compare Execution Plans in Oracle Database 19c and 21c

In today’s video we’ll demonstrate the compare plans routines, added to the DBMS_XPLAN package in Oracle database 19c and 21c.

The video is based on the following article.

The star of today’s video Lumpy the donkey, who is being held by Bjoern Rost.

Cheers

Tim…

Video : ANY_VALUE Aggregate Function in Oracle Database 21c

In today’s video we’ll demonstrate the ANY_VALUE aggregate function, introduced in Oracle database 21c.

The video is based on this article.

The star of today’s video is Scott Spendolini, who I suspect has used APEX at least once or twice in his life…

Cheers

Tim…