When you back up and restore a Cisco Unity server (and one or more Exchange servers), you need to consider the same issues involved when you back up and restore any other system. This document describes how to troubleshoot a Cisco Unity SQL backup failure.
There are no specific requirements for this document.
The information in this document is based on Cisco Unity 4.0(5) and earlier.
Note: Disaster Recovery Tools (DiRT) backup is the only Cisco supported Backup and Restore Tool for a Cisco Unity Server.
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.
Refer to Cisco Technical Tips Conventions for more information on document conventions.
The nightly Cisco Unity database backup schedule does not work on Cisco Unity server 4.0(5) and earlier. The scheduled backup fails and the application log shows this error message:
SQLSERVERAGENT 208 SQL Server Scheduled Job
'SqlNightlyBackupJob' (0xDD76B87067B64E4EA8BE7C8EE0B05F59) - Status: Failed -
The Job was invoked by Schedule (Nightly UnityDb Backup Schedule). The last
step to run was step 2 (BackupUnityDbLog).
Refer to Cisco bug IDs CSCsa95341 (registered customers only) and CSCdv82394 (registered customers only) for more information on this issue.
This issue occurs in Cisco Unity 4.0(5) and earlier versions where the Cisco Unity installation account has had privileges revoked or the account is disabled. The hard drive might not be full, but the Unity database and/or log files exceed 100 MB for every 10 K Unity subscribers in the environment. This issue is fixed in Cisco Unity 4.1(1) and later. In order to resolve this issue, you can either upgrade to Cisco Unity 4.1(1) or later or perform one of the solutions discussed in this document.
Complete these steps in order to resolve this issue:
Go to the Cisco Unity server and choose Start > Programs > Microsoft SQL Server > Enterprise Manager. If MSDE is not installed, refer to Installing Administration Software for MSDE 2000.
Click Microsoft SQL Servers > SQL Server Group > <UnityserverName> > Databases, right-click on UnityDb and choose Properties.
Go to the Options tab and change the Recovery Model to Full if it is set to Simple.
Click Microsoft SQL Severs > SQL Server Group > Local Server > Management > Sql Server Agent > Jobs. If the jobs failed in the past, there is a red X on SqlNightlyBackupJob and SqlWeeklyBackupJob.
Right-click on SqlWeeklyBackupJob and choose Start Job.
Wait a few minutes and then press the <F5> key in order to refresh the status.
Repeat steps 5 and 6 for SqlNightlyBackupJob.
Custom SQL backup scripts can also fail if the Cisco Security Agent for Cisco Unity version 1.1(4) or earlier is installed and runs during backup. If the Cisco Security Agent for the Cisco Unity Microsoft SQL protection rules are violated when a user performs custom SQL backup procedures or DiRT backup, the backup does not complete. The problem occurs if the process that performs the backup does not have the correct Cisco Security Agent file access control permissions for the backup target location.
Versions of the Cisco Security Agent for Cisco Unity later than release 1.1(4a) include a rule that identifies any directory named SQLBackups as a sandbox directory that is excluded from Cisco Security Agent for Unity SQL protection rules. So, an upgrade to Cisco Security Agent for Cisco Unity to a version later than 1.1(4a) solves this issue. You can download the latest version of Cisco Security Agent for Cisco Unity from the Software Download (registered customers only) page.
You can also resolve this issue if you perform any of these steps:
For Cisco Security Agent for Cisco Unity versions 1.1(4a) and earlier, the Cisco Security Agent can be disabled before you run any custom backup procedures, then re-enable the Cisco Security Agent after the backup is complete.
If this problem is encountered with a version of the Cisco Security Agent for Cisco Unity that is later than version 1.1(4a), change the custom backup target location, or DiRT backup target location, to a path that includes a directory named SQLBackups. For example, backup destination target paths that match the sandbox rule include C:\SQLBackups\, D:\<directory>\SQLBackups\<name>\, and \\backupserver\SQLBackups\.
You need to make sure that the account used by the DiRT backup and by the SQL backup is the same. If not, you can manually change the owner of the backup jobs in order to resolve this issue. Complete these steps:
Open SQL Enterprise Manager.
Expand Microsoft SQL Servers > SQL Server Group > <UnityserverName> > Security and choose Logins.
Right-click on Logins and choose New Login.
In the General Tab, click the ... button next to the Name field and choose the Unity Directory Service(dirsvc) account from the domain user listing. Then click Add and OK.
Go to the Server Roles tab and check System Administrators.
Go to the Database Access tab and check Permit for UnityDb, ReportDb and UnityDistributionDb (if Failover is installed). Then check db_backupoperator for Permit in Database Role and click OK.
Click Microsoft SQL Severs > SQL Server Group > <UnityserverName> > Management > Sql Server Agent > \Jobs.
Right-click on SqlNightlyBackupJob and choose Properties. Then right-click on SqlWeeklyBackupJob and choose Properties again.
From the Owner drop-down, choose the user that you just added and click OK.
Note: This issue can result in low disk space on the server. You need to shrink the Cisco Unity databases in this situation. Refer to Shrink the Cisco Unity Database Configuration Example for information on how to shrink the Cisco Unity database.
Sometimes domain accounts and even local system accounts run into permission issues that can cause backup to fail. This can be fixed by going to each backup job and completing these steps:
Go to the Cisco Unity server and choose Start > Programs > Microsoft SQL Server > Enterprise Manager.
Click Microsoft SQL Severs > SQL Server Group > Local Server > Management > Sql Server Agent > Jobs.
In the right-pane, click on a backup job, for instance, SQLNightlyBackupJob. Right-click and select Properties.
In the Properties window, go to the General tab and for the Owner, choose sa from the drop-down list.
Save and test backup.
If this works fine, change the owner to sa for the SQLWeeklyBackupJob as well.
Once these steps are performed, you might need to shrink the Cisco Unity database as described in Shrink the Cisco Unity Database Configuration Example.
When the Cisco Unity backup is performed to a remote server which is located in a different domain, the backup fails. The backup is created, but the backup cannot be moved to the remote location. If you create a backup locally and then create a job to move the backup file from the local server to the remote server, it works fine if the job is run on the server's console, but fails when it runs as a scheduled job.
Complete these steps in order to resolve the issue:
Create a mapped drive. The mapped drive is available only while logged in the server.
Create your scheduled job to move the file to the remote location.
The scheduled job works as long as the account is logged to the server, due to the availability of the mapped drive. This means that you need to be logged to the server.
When you run the DiRT backup, you receive a message that asks if you ran DBWalker. When you press ok, this error is received:
(error):70 (Permission denied) in procedure bAccountsHasMailStoreRights of Form frmMain
Followed by this error:
(error):52 (Bad file name or number) in procedure bAccountHasMailStoreRights
of Form frmMain
One of the most common causes of this error is that running DiRT does not have the right permissions. In order to run the backup successfully, make sure the account has the right permissions.
Issue this command from the command prompt:
Change the value of IncludeMessages in Unity server > run > regedit >HKLM\Software\Active Voice\DisasterRecovery\Settings from 1 to 0.
Cisco Unity backup to a network server fails with one of these errors:
Event Type: Error
Event Source: MSSQLSERVER
Event Category: (2)
Event ID: 17055
Time: 2:46:38 PM
BackupDiskFile::CreateMedia: Backup device 'B:\UnityDBBackUp.sql' failed to create.
Operating system error = 3(The system cannot find the path specified.).
(error) in cmbBackup routine:[Microsoft][ODBC SQL Server Driver][SQL Server]
Cannot open backup device '\\Server\d$\unitybkp\UnityDBBackUp.sql'.
Device error or device off-line.
See the SQL Server error log for more details.
[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP DATABASE is
terminating abnormally. number= 0.
There are two possible causes which render this issue:
When the backup is done with the Cisco Security Agent turned on
Disable the CSA and enable it when the backup is complete to resolve the issue.
The two-hop SQL backup method is not used
The actual backup of the SQL data for the main Cisco Unity database and, optionally, the reports database is done with the SQL services. As such, the permissions to write files to the target directory are limited by the account under which the SQL services run. If your site uses the local system account for these services, then if you write the SQL backup data to an off box location, it fails. Furthermore, you use a domain account for the SQL services but do not want to grant read/write permissions to the off box location, then the SQL backup portion fails as well.
This is a fairly common scenario, thus a simple mechanism to work around it is provided. First, do the SQL backup to a local drive. Move the backed up database files to the off box target with the use of the account DiRT backup under which it runs. Then, delete the local copies of the backup files. This is called the two-hop method. Perform these steps:
Go to Cisco Unity Tools and download the new version of DiRT Backup. Then, install the same.
In the Backup Target Location field, enter the network location.
Check Use 'two hop' method for backing up SQL data. The temporary local directory you enter here should be local to the server.
This step will backup SQL to the local drive and will copy over to the network drive. This is why it is called the two-hop method. DiRT cannot backup SQL to a network drive in one.
When you run DiRT backup to back up mailbox messages, the backup fails with this error message:
The account you logged in as does not have 'Send as' and 'Recieve as' rights
on one or more message stores that Unity subscribers are associated with.
The possible cause of this error could be the account that you use does not have enough permissions in order to access mailboxes. Verify that you log in with the account for which send-as and receive-as permissions are checked as Allow.