protected override OrganizationBackupRuntimeData ExecuteInternal(OrganizationBackupRuntimeData runtimeData, Guid orgId, Guid backupId, Guid queueItemId)
        {
            Guid orgScaleGroupId = LocatorService.Instance.GetOrganizationScaleGroupId(orgId);

            // full backup
            CrmOrganizationBackupData backupData = SqlBackupRestoreUtility.ExecuteBackupSqlCommand(orgId, orgScaleGroupId);

            // update backup path and log path in runtime data
            runtimeData.BackupPath = backupData.BackupPathOnShare;
            runtimeData.LogPath    = backupData.LogPathOnShare;
            QueueManager.NewManager().UpdateQueueItemRuntimeData(queueItemId, OrganizationBackupRuntimeData.Serialize(runtimeData));
            return(runtimeData);
        }
Пример #2
0
        protected override OrganizationBackupRuntimeData ExecuteInternal(OrganizationBackupRuntimeData runtimeData, Guid orgId, Guid backupId, Guid queueItemId)
        {
            Exceptions.ThrowIfNullOrEmpty(runtimeData.BackupPath, "runtimeData.BackupPath");

            string orgUniqueName = LocatorService.Instance.GetOrganizationName(orgId);

            // retrieve restore sql server name and generate restored db name
            if (string.IsNullOrEmpty(runtimeData.RestoreSqlServerName) || string.IsNullOrEmpty(runtimeData.RestoredDBName))
            {
                runtimeData.RestoreSqlServerName = RetrieveRestoreSqlServer();
                runtimeData.RestoredDBName       = orgUniqueName + "_" + Guid.NewGuid().ToString();
            }

            // update run time data with RestoreSqlServerName and RestoredDBName
            QueueManager.NewManager().UpdateQueueItemRuntimeData(queueItemId, OrganizationBackupRuntimeData.Serialize(runtimeData));

            // restore
            SqlBackupRestoreUtility.ExecuteRestoreSqlCommand(runtimeData.RestoreSqlServerName, runtimeData.RestoredDBName, runtimeData.BackupPath, null);

            return(runtimeData);
        }
Пример #3
0
 protected static void UpdateRuntimeData(Guid queueItemId, OrganizationBackupRuntimeData runtimeData)
 {
     QueueManager.NewManager().UpdateQueueItemRuntimeData(queueItemId, OrganizationBackupRuntimeData.Serialize(runtimeData));
 }