none
Replica Sync fails RRS feed

Answers

  • Housekeeping. closing old post.

    You didn't mention the DPM Version but when using DPM 2016 + Modern backup storage (MBS) - you need to mount the replica volume manually using the mountreplica.ps1 script below.

    #Mount Replica Volume located on Modern Backup Storage.
    # 1.1 fixes clearing error variable before mount attempt.
    # 1.2 lists only data sources in PG's with "Short-term using disk".
    #     Includes inactive data sources with disk protection
    $version="V1.2"  
    $ErrorActionPreference = "silentlycontinue"
    
    [uint64] $GB=1048576000 #Multiple of 10MB
    $logfile="MountReplica.LOG"
    $confirmpreference = "None" 
    
    function Show_help
    {
    	cls
    	write-host "Version: $version" -foregroundcolor cyan
            write-host "Script Usage" -foregroundcolor green
        	write-host "A: Script lists all protected data sources plus current Replica size." -foregroundcolor green
            write-host "B: User Selects data source to mount replica for." -foregroundcolor green
    	write-host "C: User dismounts replica." -foregroundcolor green
    	write-host "Appending inputs and results to log file $logfile`n" -foregroundcolor white
    	
    }
    
    "" >>$logfile
    "**********************************" >> $logfile
    "Version $version" >> $logfile
    get-date >> $logfile
    show_help
    Write-Host "`nThis script is only intended to be ran on DPM 2016 or later using Modern Backup Storage (MBS) exclusively. "
    write-host "User Accepts all responsibilities by entering a data source" -foregroundcolor white -backgroundcolor blue
    
    $DPM = Connect-dpmserver -Dpmservername (&hostname)
    $DPMservername = (&hostname)
    "Selected DPM server = $DPMservername" >> $logfile
    write-host "`nRetrieving list of data sources on $Dpmservername`n" -foregroundcolor green
    $pglist = @(Get-ProtectionGroup |where { $_.IsDiskShortTerm -eq 1}) # Created PGlist as array in case we have a single protection group.
    $ds=@()
    $count = 0
    $dscount = 0
    foreach ($count in 0..($pglist.count - 1)) 
    {
        $ds += @(get-datasource $pglist[$count]) # Created DS as array in case we have a single protection group.
    } 
    if ( Get-Datasource $DPMservername -inactive) {$ds += Get-Datasource $DPMservername -inactive |where {$_.IsDiskInactive -eq 1}}   #Include Inactive DataSources with Disk Protection
    
    $i=0
    write-host "Index Protection Group     Computer             Path                                     Replica-UsedSizeMB"
    write-host "-----------------------------------------------------------------------------------------------------------"
    foreach ($l in $ds) 
    {
    	"[{0,3}] {1,-20} {2,-20} {3,-40} {4}" -f $i, $l.ProtectionGroupName, $l.psinfo.netbiosname, $l.logicalpath, ($l.ReplicaUsedSpace/1024/1024)
    	$i++
    }
    $DSname=read-host "`nEnter a data source index number from the list above."
    write-host ""
    if (!$DSname) 
    {
    	write-host "No datasource selected, exiting.`n" -foregroundcolor yellow
    	"Aborted on no Datasource index selected" >> $logfile
    	exit 0
    }
    $DSselected=$ds[$DSname]
    if (!$DSselected) 
    {
    	write-host "No valid datasource selected, exiting. `n" -foregroundcolor yellow
    	"Aborted on invalid Datasource index number" >> $logfile
    	exit 0
    }
    
    
    $line=("Processing Replica Volume Mount operation.  Please wait...") 
    	$line >> $logfile
    	write-host $line`n -foregroundcolor white
    
    # Mount Replica
    $error.clear()
    Mount-DPMrecoverypoint -DataSource $DSSelected  
    if($error)
             {
              $line=("Error Mounting !! - aborted.")
              $line >> $logfile
              write-host $line`n -foregroundcolor red
              Disconnect-dpmServer
              exit 1
             }
    
    
    
    $datetime = get-date
    $line = ("Mount done for {0} " -f $DSSelected) 
    $line = $line + $datetime 
    write-host $line`n -foregroundcolor green
    $line >> $logfile
    
    
    # Dismount Replica	
    	$line = ("Press any key to dismount the replica for {0}" -f $DSSelected) 
            write-host $line -foregroundcolor white
            $C=Read-Host
    	$line = $line + $C
    	$line >> $logfile
    	$datetime = get-date
            $line = ("Dismount Done for {0} " -f $DSSelected) 
    	$line = $line + $datetime
            $line >> $logfile
    
    Dismount-DPMrecoverypoint -DataSource $DSSelected
    
    
    # View Log
    $line="Do you want to View $logfile file Y/N ? "
    	write-host $line -foregroundcolor white
    	$Y=read-host
    	$line = $line + $Y
    	$line >> $logfile
    	if ($Y -ieq "Y") 
    	{		
    	Notepad $logfile
    	}

    Once it's mounted assign a drive letter to the volume and see if you cam then open the failedfiles.dat in the root.

    Alternately - you can review the DPMRA*.errlog files on the protected server and see why files were skipped.

    Regards
    Mike Jacquet


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread. Regards, Mike J. [MSFT] This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, January 7, 2020 12:17 AM
    Moderator