none
Перенос копирования на второй DPM сервер RRS feed

  • Вопрос

  • Всем доброго дня!

    Есть два DPM сервера версии 2012 SP1, на втором сервере место закончилось и потребовалось остановить защиту на одном сервере и настроить его на другом. Что было сделано: остановка копирования одного из серверов и перенастройка агента на второй DPM, там же добавление в PG нового сервера и необходимых данных. На этом шаге и возникла проблема, DPM ругается что используемый DPM сервер не основной и в итоге не дает поставить в группу необходимые данные, которые копировались на первом DPM сервере. Пробовал применить параметр Start-SwitchProtection, но не помогло. Как я понял, второй сервер DPM полностью сможет снимать бэкапы при случае удаления неактивных реплик с первого DPM сервера и тем самым стиранием данных о копируемом сервере из DPMDB.

    Вопрос: можно ли, не удаляя реплик на первом DPM сервере, начать копирование на втором DPM сервере тех же данных с того же защищаемого сервера? 

    22 апреля 2013 г. 6:25

Ответы

  • Насколько я знаю, это невозможно. Необходимо удалить агент на первом DPM сервере, а сделать это получится только после удаления всех данных, относящихся к защищаемому серверу.

    My DPM blog ystartsev.wordpress.com

    • Предложено в качестве ответа Denis DyagilevEditor 22 апреля 2013 г. 11:23
    • Помечено в качестве ответа Vern1k 23 апреля 2013 г. 1:55
    • Снята пометка об ответе Vern1k 14 мая 2013 г. 7:46
    • Помечено в качестве ответа Vern1k 14 мая 2013 г. 9:20
    22 апреля 2013 г. 9:01
    Модератор

Все ответы

  • Насколько я знаю, это невозможно. Необходимо удалить агент на первом DPM сервере, а сделать это получится только после удаления всех данных, относящихся к защищаемому серверу.

    My DPM blog ystartsev.wordpress.com

    • Предложено в качестве ответа Denis DyagilevEditor 22 апреля 2013 г. 11:23
    • Помечено в качестве ответа Vern1k 23 апреля 2013 г. 1:55
    • Снята пометка об ответе Vern1k 14 мая 2013 г. 7:46
    • Помечено в качестве ответа Vern1k 14 мая 2013 г. 9:20
    22 апреля 2013 г. 9:01
    Модератор
  • В итоге полностью удалил агента на сервере, удалил все реплики и сервер из консоли DPM, но все равно запись в DPMDB о защищаемом сервере сохранилась, что соответственно не позволяет защитить этот сервер на другом DPM сервере. В интернете нашел интересный скрипт, который приписывают Егору Старцеву, хотелось бы выяснить действительно ли это так и может ли он помочь. Вот данный скрипт:

    USE DPMDB  
     DECLARE @PrimaryDPMName NVARCHAR(400)  
     DECLARE @PSName NVARCHAR(400)  
     -- Provide the actual values below before running.   
     -- @PrimaryDPMName is the name of the DPM server which was protecting this PS primarily.  
     -- @PSName is the name of the production server for which the history has to be cleaned up.   
     -- In the case of a clustered resource, you need to run the power shell script a minimum of three times and change the @PSname variable to include:  
        -- Node1.domain.com  
        -- Node2.domain.com  
        -- Cluster-resource.cluster.domain.com  
     SET @PrimaryDPMName = 'dpm1.contoso.com' --replace with original primary dpm server name  
     SET @PSName = 'productionserver.contoso.com' -- replace with protected server name you want to cleanup  
     -- Step 1:  
     -- Check whether all the datasources from the PS of interest are in stop   
     -- protected state on not.  
     -- Get the Secondary DPM Server ID  
     DECLARE @SecondaryDPMServerId Guid  
     DECLARE @error INT  
     SET @error = 0  
     SELECT @SecondaryDPMServerId = ServerId  
     FROM tbl_AM_Server  
     WHERE ServerId = DPMServerId  
     AND IsDPM = 1  
     AND MarkedForDeletion = 0  
     SELECT @error = dbo.udf_DPS_CheckRowCount(1)  
     IF (@error <> 0)  
     BEGIN  
       PRINT 'Could not get the secondary DPM ServerId. Aborting.'  
       GOTO _Exit  
     END  
     -- Get the Primary DPM Server ID  
     DECLARE @PrimaryDPMServerId Guid  
     SET @error = 0  
     SELECT @PrimaryDPMServerId = ServerId  
     FROM tbl_AM_Server  
     WHERE DPMServerId = @SecondaryDPMServerId  
     AND ServerId <> @SecondaryDPMServerId  
     AND ServerName = @PrimaryDPMName  
     AND IsDPM = 1  
     AND MarkedForDeletion = 0  
     SELECT @error = dbo.udf_DPS_CheckRowCount(1)  
     IF (@error <> 0)  
     BEGIN  
       PRINT 'Could not get the primary DPM ServerId for server ' + @PrimaryDPMName + '. Aborting.'  
       GOTO _Exit  
     END  
     -- Locate the PS of interest  
     DECLARE @ServerId Guid  
     SET @error = 0  
     SELECT @ServerId = ServerId   
     FROM tbl_AM_Server  
     WHERE ServerName = @PSName  
     AND MarkedForDeletion = 0  
     SELECT @error = dbo.udf_DPS_CheckRowCount(1)  
     IF (@error <> 0)  
     BEGIN  
       PRINT 'Could not find the production server '+ @PSName + '. Aborting.'  
       GOTO _Exit  
     END  
     -- Get all the datasources protected from this server  
     DECLARE @ProtectedDSCount INT   
     SET @ProtectedDSCount = 0  
     SELECT @ProtectedDSCount = COUNT(DS.DataSourceId)  
     FROM tbl_IM_DataSource DS  
     WHERE DS.ProtectedGroupId IS NOT NULL  
     AND DS.ServerId = @ServerId  
     IF (@ProtectedDSCount <> 0)  
     BEGIN  
       SELECT 'Following datasources are actively protected.' +  
           ' Execute this script after stopping their protection with retain data.'  
       AS ErrorMessage  
       SELECT DS.DataSourceName AS Datasource,   
         AM.ServerName AS OnServer,   
         PG.FriendlyName AS ProtectedInPG  
       FROM tbl_IM_DataSource DS  
       JOIN tbl_AM_Server AM  
         ON AM.ServerId = DS.ServerId   
       JOIN tbl_IM_ProtectedGroup PG  
         ON PG.ProtectedGroupId = DS.ProtectedGroupId  
       WHERE DS.ProtectedGroupId IS NOT NULL  
       AND DS.ServerId = @ServerId  
       GOTO _Exit  
     END  
     -- Step 2:  
     -- Cleanup the tables  
     -- Delete the DatasourceVolume entries corresponding to the PS-datasource and  
     -- PrimaryDPM-replicavolume  
     SET @error = 0  
     DELETE tbl_IM_DatasourceVolume  
     FROM tbl_IM_DatasourceVolume DsVol  
     JOIN tbl_IM_Volume Vol  
       ON DsVol.VolumeId = Vol.VolumeId  
     JOIN tbl_IM_DPMDatasourceReplicaProperties DSProp  
       ON DsVol.DataSourceId = DSProp.DataSourceId  
     JOIN tbl_IM_DataSource DS  
       ON DS.DataSourceId = DSProp.DataSourceId  
     WHERE DSProp.ServerId = @PrimaryDPMServerId  
     AND Vol.ServerId = @PrimaryDPMServerId  
     AND DS.ServerId = @ServerId  
     SELECT @error = @@ERROR   
     IF (@error > 0)   
     BEGIN  
       PRINT 'Could not clean up the DatasourceVolume entries.'   
       PRINT 'Errorcode: ' + CAST(@error AS varchar(10))  
       GOTO _Exit   
     END  
     -- Delete the entries in tbl_IM_DPMDatasourceReplicaProperties  
     SET @error = 0  
     DELETE tbl_IM_DPMDatasourceReplicaProperties  
     FROM tbl_IM_DataSource DS  
     JOIN tbl_IM_DPMDatasourceReplicaProperties DSProp  
       ON DS.DataSourceId = DSProp.DataSourceId  
     WHERE DSProp.ServerId = @PrimaryDPMServerId  
     AND DS.ServerId = @ServerId  
     SELECT @error = @@ERROR   
     IF (@error > 0)   
     BEGIN  
       PRINT 'Could not clean up the DPMDatasourceReplicaProperties table. '   
       PRINT 'Errorcode:' + CAST(@error AS varchar(10))  
     END  
     _Exit:   
     PRINT 'Exiting..'  

  • Добрый день.

    Поосторожнее, за этот скрипт на форумах DPM Technet EN вымогают обращение в техподдержку как минимум в пяти местах. А мопед не мой :)

    В оригинальном вопросе есть желание оставить неактивную защиту. Таким образом, этот скрипт не для описываемого случая.


    My DPM blog ystartsev.wordpress.com

    Модератор
  • Понятно :) На данный момент я уже просто хочу получить возможность переноса копирования с одного DPM сервера на другой без сохранения неактивной защиты. Как я понял, скрипт актуален, осталось только его проверить в деле.
    • Изменено Vern1k 14 мая 2013 г. 9:21