Unsolved
This post is more than 5 years old
1 Message
0
1875
November 11th, 2010 07:00
Dismount using Replication Manager CLI
I am using Replication Manager 5.3 with RecoverPoint to mount snapshots on a mount host for backups. My RM job mounts volumes successfully and runs a script to backup the replicated volumes to tape - actually, it kicks off the job on the backup server. However, if the consistecy group is left in logged access mode, the journal lag goes through the roof and causes the next RM mount to take too long to enter logged access mode. According to tech support, eventually the CG will stop replicating and go through a full sweep although I have found that the RM job fails before that. I would like to create a post task on the backup job to initiate the command to the RM server to dismount the job. According to the RM guide, the rmcli command can be used. I see how I can use the command in a batch mode to access the RM server. What is the command line to initiate the dismount of the job? Thanks.
0 events found


sandyb1980_6dab42
8 Posts
0
December 30th, 2010 06:00
i have this as a batch file,
save the below into a batch file, then run the batch file rm_unmount.bat "application set name" "job name" you will need to change the items in bold for your own environment.
@echo off
rem - rm_unmount.bat
rem - Unmount an RM replica
rem - Command line arguments
rem - Arg 1 = RM application set name
rem - Arg 2 = RM job name
rem - Save the current environment variables
rem - and enable command extensions
setlocal
setlocal enableextensions
setlocal enabledelayedexpansion
rem - Command line arguments
set APPSET=%1
set JOB=%2
if not defined APPSET (
echo ABORT
echo Application Set not specified on the command line
exit /b 1
)
if not defined JOB (
echo ABORT
echo Job not specified on the command line
exit /b 1
)
rem - The RM environment
set RMCLI="C:\Program Files (x86)\EMC\rm\gui\rmcli.bat"
set SERVER=RM server NAME
set PORT=65432
set USER=Administrator
set PASSWORD=password
set COMMAND=c:\temp\rm_unmount_%JOB%_command.txt
set OUTPUT=c:\temp\rm_unmount_%JOB%_output.txt
set TEMP1=c:\temp\rm_unmount_%JOB%_temp1.txt
set TEMP2=c:\temp\rm_unmount_%JOB%_temp2.txt
echo.
echo Unmount and delete an RM replica
echo Application Set = %APPSET%
echo Job = %Job%
echo.
echo List all replicas for the Applicaton Set
if exist %COMMAND% del %COMMAND%
if exist %OUTPUT% del %OUTPUT%
echo if-not connect host=%SERVER% port=%PORT% then exit 1 >>%COMMAND%
echo if-not login user=%USER% password=%PASSWORD% then exit 1 >>%COMMAND%
echo list name=/Application Sets/%APPSET%/Replicas recursive=yes >>%COMMAND%
echo exit 0 >>%COMMAND%
call %RMCLI% file=%COMMAND% >%OUTPUT% 2>&1
echo ExitCode = %ERRORLEVEL%
if %ERRORLEVEL% neq 0 (
echo ABORT
type %OUTPUT%
exit /b 1
)
type %OUTPUT%
echo.
echo List replica details and unmount
rem - Select each replica line from the output and save this to a temp file
rem - Then call the unmount subroutine for each line in the temp file
set COUNT=0
type %OUTPUT% | findstr /R /C:"^/" | findstr /R /C:":" >%TEMP1%
rem - type %TEMP1%
for /f "tokens=*" %%R in (%TEMP1%) do (
call :UNMOUNT "%%R"
)
echo.
echo Replicas unmounted = %COUNT%
exit /b 0
rem -----------------------------------------------------------------------
rem - End of main routine
rem - Start of subroutines
rem -----------------------------------------------------------------------
rem -----------------------------------------------------------------------
rem - Subroutine to unmount a replica
rem -----------------------------------------------------------------------
:UNMOUNT
set REPLICA=%~1
echo.
echo ********************
echo Replica = %REPLICA%
echo ********************
echo.
echo Get replica details
if exist %COMMAND% del %COMMAND%
if exist %OUTPUT% del %OUTPUT%
echo if-not connect host=%SERVER% port=%PORT% then exit 1 >>%COMMAND%
echo if-not login user=%USER% password=%PASSWORD% then exit 1 >>%COMMAND%
echo list-properties name=%REPLICA% >>%COMMAND%
echo exit 0 >>%COMMAND%
call %RMCLI% file=%COMMAND% >%OUTPUT% 2>&1
echo ExitCode = %ERRORLEVEL%
if %ERRORLEVEL% neq 0 (
echo ABORT
type %OUTPUT%
exit /b 1
)
type %OUTPUT%
rem - Check the replica is for this job
type %OUTPUT% | findstr /R /C:"^Replica Name:" | findstr /R /C:"%Job%" >nul
if %ERRORLEVEL% neq 0 (
echo.
echo Replica is not for this job
goto :EOF
)
echo.
echo Replica is for this job
rem - Check the replica is not a failed replica
type %OUTPUT% | findstr /R /C:"^Flags:" | findstr /R /C:"Failed" >nul
if %ERRORLEVEL% equ 0 (
echo.
echo Replica is a failed replica
goto :EOF
)
echo.
echo Replica is not a failed replica
rem - So far we have been using the full replica name
rem - /Application Sets/ / /Replicas/
rem - The delete command requires just the part of the name
for /f "tokens=4 delims=/" %%R in ("%REPLICA%") do (
set REPLICA_DATETIME=%%R
)
rem echo %REPLICA_DATETIME%
echo.
echo Unmount replica
if exist %COMMAND% del %COMMAND%
if exist %OUTPUT% del %OUTPUT%
echo if-not connect host=%SERVER% port=%PORT% then exit 1 >>%COMMAND%
echo if-not login user=%USER% password=%PASSWORD% then exit 1 >>%COMMAND%
echo if-not unmount-replica name=%REPLICA_DATETIME% appset=%APPSET% then exit 1 >>%COMMAND%
echo exit 0 >>%COMMAND%
call %RMCLI% file=%COMMAND% >%OUTPUT% 2>&1
echo ExitCode = %ERRORLEVEL%
if %ERRORLEVEL% neq 0 (
echo ABORT
type %OUTPUT%
exit /b 1
)
type %OUTPUT%
echo.
echo Delete replica
if exist %COMMAND% del %COMMAND%
if exist %OUTPUT% del %OUTPUT%
echo if-not connect host=%SERVER% port=%PORT% then exit 1 >>%COMMAND%
echo if-not login user=%USER% password=%PASSWORD% then exit 1 >>%COMMAND%
echo if-not delete-replica name=%REPLICA_DATETIME% appset=%APPSET% then exit 1 >>%COMMAND%
echo exit 0 >>%COMMAND%
call %RMCLI% file=%COMMAND% >%OUTPUT% 2>&1
echo ExitCode = %ERRORLEVEL%
if %ERRORLEVEL% neq 0 (
echo ABORT
type %OUTPUT%
exit /b 1
)
type %OUTPUT%
set /a COUNT=%COUNT% + 1
goto :EOF