Solved

Data Aging - Oracle Database - getCrossCheckInfo()

  • 14 April 2022
  • 9 replies
  • 533 views

Userlevel 2
Badge +9

Hi, 

 

Does anyone knows how the Commvault determines the number of clients and instances to be crosschecked? According to Data Aging logs, the function getCrossCheckInfo() returned a total of 10 (ten) Oracle instances to be cross checked, but we have many more. 

 

The option Disable RMAN Crosscheck is NOT checked for any client. 

 

 

icon

Best answer by Sunil 1 June 2022, 05:39

View original

9 replies

Userlevel 6
Badge +15

Good afternoon.  Can you please verify that CrossCheck is enabled on all of  the instance properties for the Oracle clients not being seen in the CrossCheck?

Userlevel 2
Badge +9

Good afternoon.  Can you please verify that CrossCheck is enabled on all of  the instance properties for the Oracle clients not being seen in the CrossCheck?

@Orazan , thank you for the reply,

 

The CrossCheck is enabled by default. Right? That’s why we have a option to disable that. 

“When you do not select this option (which is also the default), the Commvault software automatically runs an RMAN script that sets the prunable backup piece to unavailable when the data aging job runs.

When you select this option, the Commvault software does not run the script, which causes the prunable backup piece to remain unchanged when the data aging job runs.”

 

There are 27 Oracle databases with that option NOT checked, but the function getCrossCheckInfo() reports just 10 instances to be crosschecked. 

Userlevel 5
Badge +12

Hi @Eduardo Braga 

Do all the instances have expired backup pieces? The cross check script will be sent to only those clients/instances that have some expired backup pieces.

 

Thanks,

Sunil-

 

Userlevel 2
Badge +9

Hi @Eduardo Braga 

Do all the instances have expired backup pieces? The cross check script will be sent to only those clients/instances that have some expired backup pieces.

 

Thanks,

Sunil-

 

I don’t know. 

I talked to our Oracle database administrator and we concluded that CVLT should work as follows:

The CVLT (1st.) excludes jobs (with Oracle BackupSet pieces inside it) according to the retention configured in the Storage Policy (30 days, I don't know where the cycle parameter enters in this story) and then (2nd.) runs a crosscheck so that RMAN can mark as expired not found objects deleted by CVLT. Finally, (3rd) runs a command to delete the expired objects (possibly with a DELETE EXPIRED BACKUP) and updates the RMAN recovery catalog.

Can you confirm if that’s the logic? 

If this is the behind-the-scenes logic, I need to understand one more thing. CVLT deletes jobs (with Oracle BackupSet parts inside it) according to the retention configured in the Storage Policy, but it needs to note the dependency between LVL0 and subsequent backups. It can’t exclude jobs with LVL0 backup pieces if there are subsequent backups, like LVL1 and archive log backups. Right? 

Anyway, how CVLT arrives at a certain number of instances to be crosschecked remains a mystery. We have almost 30 Oracle databases instances with the “Disable RMAN Crosscheck” option NOT checked running backups everyday. LVL0 once per week, LVL1 once per day and archive logs every hour. 

 

In my understanding, CVLT should run crosscheck for all of them during data aging execution. 

 

Userlevel 2
Badge +9

@Sunil EDIT: In my understanding, CVLT should run a crosscheck for all of them during data aging execution. All the instances are associated with the same Storage Policy and we have four Schedule Policies, but with the same tasks just to run LVL0 and LVL1 at different times. Maybe this explain how CVLT getCrossCheckInfo() function returns a different number of instancens to be crosschecked. 

Userlevel 7
Badge +23

@Eduardo Braga can you confirm your last reply was confirmation that you have your answer?

Userlevel 2
Badge +9

@Eduardo Braga can you confirm your last reply was confirmation that you have your answer?

I'm waiting for some help with this. I need to know if my understanding is correct. If what I described in the previous messages is the working logic of Commvault.

Userlevel 7
Badge +23

I’ll tag @Sunil to see if he can confirm based on his reply.

Userlevel 5
Badge +12

Hi @Eduardo Braga 

 

Let me try answering your questions one by one.

 

 

The CVLT (1st.) excludes jobs (with Oracle BackupSet pieces inside it) according to the retention configured in the Storage Policy (30 days, I don't know where the cycle parameter enters in this story) and then (2nd.) runs a crosscheck so that RMAN can mark as expired not found objects deleted by CVLT. Finally, (3rd) runs a command to delete the expired objects (possibly with a DELETE EXPIRED BACKUP) and updates the RMAN recovery catalog.

Can you confirm if that’s the logic? 

[Sunil] Commvault takes number of days, cycles and any log linkage while identifying the jobs that are qualified for Data aging and cross check. All the instances that have at least one qualifying job will be selected for cross check by the Data Aging job and all the backup pieces of the aged jobs will be marked expired/deleted based on config settings.

Not all Data aging jobs may find all the instances at once as qualified. It depends on the presence of the jobs to be aged at that time.

 

If this is the behind-the-scenes logic, I need to understand one more thing. CVLT deletes jobs (with Oracle BackupSet parts inside it) according to the retention configured in the Storage Policy, but it needs to note the dependency between LVL0 and subsequent backups. It can’t exclude jobs with LVL0 backup pieces if there are subsequent backups, like LVL1 and archive log backups. Right? 

[Sunil] Actually if the LVL0 job goes out of retention days, it will also be qualified for the data aging regardless of the following LVL1 jobs.

 

Anyway, how CVLT arrives at a certain number of instances to be crosschecked remains a mystery. We have almost 30 Oracle databases instances with the “Disable RMAN Crosscheck” option NOT checked running backups everyday. LVL0 once per week, LVL1 once per day and archive logs every hour.

[Sunil] If you still notice the Data aging is not doing cross check on all the eligible instances, we might need a ticket raised. We can check the logs further..

 

Thanks,

Sunil-

 

Reply