Enabling Encryption in No-Integrity Mode

Posted by karasanr on 28-Apr-2017 04:29

Hi All,

We are planning to implement TDE with no-integrity mode in our production (OE 11.5.1) database.

Have anyone implemented it with no-integrity mode. Is it fine implementing with no-integrity mode?

Need your suggestions.

Thanks,

karasanr

Posted by ChUIMonster on 28-Apr-2017 08:06

Also, FWIW, -r provides the same performance benefits as -i with slightly less risk.  You  shouldn't use either of them in production but in the carefully maintenance scenario with good backups (or when starting from scratch) -r is my preference.

All Replies

Posted by Tim Kuehn on 28-Apr-2017 06:41

You want to run no-integrity on a production database?

Can you help us understand why?

Posted by Rob Fitzpatrick on 28-Apr-2017 07:08

> We are planning to implement TDE with no-integrity mode in our production (OE 11.5.1) database.

Do not do this.  Period.  No-integrity should never be used in production outside of strictly controlled maintenance activities run by people who understand the constraints and dangers of no-integrity mode.  Whoever created your plan does not.

Posted by ChUIMonster on 28-Apr-2017 07:36

I don't see the point in doing that -- why are you wanting to do this?  What benefit are you hoping for?

If you mean that you intend to have no-integrity mode on during a maintenance period during which you will implement TDE then 1) make sure you have a good backup before you start and 2) make sure to NOT  have -i enabled when you restart.

If you mean that you plan to run in production with no-integrity then I second Rob's comment with emphasis.  DO NOT DO THAT.  The database isn't kidding when it calls it "no-integrity".  If any little thing goes wrong you will be throwing away the database with no possibility of recovery.

Posted by Rob Fitzpatrick on 28-Apr-2017 07:55

I don't even see the point of enabling encryption with -i.  The common scenario for using -i is the binary load portion of a dump/load/rebuild.  People use -i because (a) it speeds up the process substantially, which means minimizing downtime substantially, and (b) you're starting from nothing, so if you crash and lose the database you can safely start over.

Enabling encryption and encrypting your objects doesn't have to be done all at once and doesn't have to be done offline.  Users can use the system while data is being encrypted.  Whereas you would have to keep users out of the system during initial encryption with -i because you can't guarantee the durability of their transactions.  That doesn't seem like it's worth the bother and the risk.

Posted by ChUIMonster on 28-Apr-2017 08:06

Also, FWIW, -r provides the same performance benefits as -i with slightly less risk.  You  shouldn't use either of them in production but in the carefully maintenance scenario with good backups (or when starting from scratch) -r is my preference.

Posted by gus bjorklund on 02-May-2017 13:54

> On Apr 28, 2017, at 5:29 AM, karasanr wrote:

>

> Is it fine implementing with no-integrity mode?

are you aware that no-integrity mode (-i) means that the possibility of crash recovery is turned OFF ?

Posted by karasanr on 03-May-2017 05:20

Hi All,

Apologies for the delay in response, need to enable TDE for a table of 185 GB.  To reduce the maintenance window, we are planning to do it in no-integrity mode. We do take a backup before implementing it.

Let me test it with -r also.

Thanks all for your replies.

Thanks,

Karasanr

Posted by Rob Fitzpatrick on 03-May-2017 06:34

> To reduce the maintenance window

Why do you have a large maintenance window?

Posted by karasanr on 03-May-2017 07:18

> Why do you have a large maintenance window?

It take 9 hours to encrypt and update the table blocks in normal mode, which completes in 3 hours with no-integrity mode.

Posted by Rob Fitzpatrick on 03-May-2017 07:32

> It take 9 hours to encrypt and update the table blocks in normal mode, which completes in 3 hours with no-integrity mode.

Maybe my memory is failing me, but I believe TDE is designed so you can encrypt your objects online.  And you can use proutil epolicy scan to monitor the progress.  So I don't see the need for a downtime window of 9 hours or 3 hours.  Am I missing something?

Also, what are your BI/AI settings? (BI block size, AI block size, BI cluster size, helper processes)

This thread is closed