This content has been marked as final. Show 6 replies
user585511 wrote:May be physical corruption can occur, But logical corruption only on standby have less chances..
I am setting up a manual physical standby and I want to periodically check the standby database for physical and logical corruption.
I am not sure what is the best way to do it:
1) should I only use dbv?
2) should I open the database read only and use RMAN "validate database check logical ;" ?
3) should I open the database read only and use anlter table ... validate structure cascade ; for every table?
4) Do steps 2 and 3 do the same checks?
as always, Standby is image copy so if any logical corruption in primary you will have those in standby too..
May be due to some mount point issues (or) any other there is chance for physical corruption.
So either you can go for DBV, Even you can check by RMAN too.
Better, if you perform some tests like creating a user with tables(schema) & open standby and keep track the status. I think if you able to open and count is same. You are fine.
Another point , If any corruption in your database, MRP process will be died and no recovery will be performed, So until unless you able to perform Recover, then there is no issue at the most.+
Edited by: CKPT on May 18, 2012 4:22 PM
Tough question. There just are not many of these around.
The primary purpose of dbv is to verify the integrity of cold datafiles that would be used for a backup, so I would probably NOT use it for this.
The problem or one of the problems with this is the standby database behind the production database by the size of a redo log pretty much all the time. You cannot check sync so much as am I close.
I would consider finding a table or tables that have a DATE and are active and then open the standby read only and run whatever SQL to verify production changes are applying. Its simple and easy to demo to say a business customer.
This is my two cents.
your idea is useful to verify whether archive log are being applied , but I am looking for a way to do some integrity check of the physical standby . That is why I was asking about the difference between rman's validate database and "alter table validate cascade" ;Lets suppose you have 3000 of tables, you cant perform validating for each tables?
Even logical corruption you can check even in primary you no need to check on standby, Because whatever exist in primary it will be in standby.
So just take care of any physical corruptions, also make sure MRP is keep running.
OK, got it.
I would consider using the DBMS_HM PL/SQL Package for this. I'm thinking you would still have to open read only for this.
v$hm_check will give you a list of health check names :
The Database Administrator's Guide for your version should have a section on "Running Health Checks Manually"
SELECT name FROM v$hm_check WHERE internal_check='N';