SnapManager Oracle
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

샘플 플러그인 스크립트 보기

기여자

SnapManager에는 스크립트를 직접 만드는 방법이나 사용자 지정 스크립트의 기반으로 사용할 수 있는 스크립트가 포함되어 있습니다.

샘플 플러그인 스크립트는 다음 위치에서 찾을 수 있습니다.

  • default_install_directory>/plugins/examples/backup/create

  • default_install_directory>/plugins/examples/clone/create

  • default_install_directory> /plugins/unix/examples/backup/create/post 를 참조하십시오

샘플 플러그인 스크립트가 포함된 디렉토리에는 다음 하위 디렉토리가 포함됩니다.

  • 정책: 구성된 경우 항상 클론 작업에서 실행되는 스크립트를 포함합니다.

  • Pre(사전): 구성된 경우 클론 작업 전에 실행되는 스크립트를 포함합니다.

  • Post: 구성된 경우 클론 작업 후에 실행되는 스크립트를 포함합니다.

다음 표에는 샘플 스크립트에 대한 설명이 나와 있습니다.

스크립트 이름 설명 스크립트 유형입니다

validate_sid.sh

대상 시스템에서 사용되는 SID에 대한 추가 검사를 포함합니다. 스크립트는 SID에 다음과 같은 특성이 있는지 확인합니다.

  • 세 개의 영숫자 문자를 포함합니다

  • 문자로 시작합니다

정책

cleanup.sh

새로 생성된 클론을 저장할 준비가 되도록 타겟 시스템을 정리합니다. 필요에 따라 파일 및 디렉토리를 보존하거나 삭제합니다.

사전 작업

Mirror_the_backup.sh

7-Mode에서 운영 중인 Data ONTAP 또는 clustered Data ONTAP을 사용하는 UNIX 환경에서 백업 작업이 발생한 이후에 볼륨을 미러링합니다.

작업 후

Vault_the_backup_cDOT.sh

클러스터 Data ONTAP를 사용할 때 UNIX 환경에서 백업 작업 후 백업을 보관합니다.

작업 후

SnapManager와 함께 제공되는 스크립트는 기본적으로 Bash 셸을 사용합니다. 예제 스크립트를 실행하기 전에 운영 체제에 Bash 셸에 대한 지원이 설치되어 있는지 확인해야 합니다.

  1. Bash 셸을 사용하고 있는지 확인하려면 명령 프롬프트에 "bash"를 입력합니다

    오류가 표시되지 않으면 Bash 셸이 제대로 작동하고 있는 것입니다.

    또는 명령 프롬프트에 어떤 -bash 명령을 입력할 수도 있습니다.

  2. 다음 디렉터리에서 스크립트를 찾습니다.

    installdir>/plugins/examples/clone/create

  3. vi와 같은 스크립트 편집기에서 스크립트를 엽니다.

샘플 스크립트

다음 샘플 사용자 지정 스크립트는 데이터베이스 SID 이름의 유효성을 검사하고 복제된 데이터베이스에서 잘못된 이름이 사용되지 않도록 합니다. 여기에는 세 가지 작업(확인, 설명 및 실행)이 포함되며 이 작업은 스크립트를 실행한 후에 호출됩니다. 이 스크립트에는 코드 0, 4 및 > 4의 오류 메시지 처리 기능도 포함되어 있습니다.

EXIT=0
name="Validate SID"
description="Validate SID used on the target system"
parameter=()

# reserved system IDs
INVALID_SIDS=("ADD" "ALL" "AND" "ANY" "ASC"
              "COM" "DBA" "END" "EPS" "FOR"
              "GID" "IBM" "INT" "KEY" "LOG"
              "MON" "NIX" "NOT" "OFF" "OMS"
              "RAW" "ROW" "SAP" "SET" "SGA"
              "SHG" "SID" "SQL" "SYS" "TMP"
              "UID" "USR" "VAR")
function _exit {
     rc=$1
     echo "Command complete."
    	return $rc}

function usage {
     echo "usage: $(basename $0) { -check | -describe | -execute }"
     _exit 99}

function describe {
    	echo "SM_PI_NAME:$name"
    	echo "SM_PI_DESCRIPTION:$description"
    	_exit 0}

function check {
    	_exit 0}

function execute {
    	IFS=\$ myEnv=$(env)
     for a in ${paramteter[@]}; do
       		key=$(echo ${$a} | awk -F':' '{ print $1 }')
         val=$(echo $myEnv | grep -i -w $key 2>/dev/null | awk -F'=' '{ print $2 }')

       		if [ -n "$val" ] ; then
              state="set to $val"
       		else
           			state="not set"
           			#indicate a FATAL error, do not continue processing
           			((EXIT=+4))
		       fi
         echo "parameter $key is $state"
     done

	######################################################################
	# additional checks
 # Use SnapManager environment variable of SM_TARGET_SID

	if [ -n "$SM_TARGET_SID" ] ; then
  		if [ ${#SM_TARGET_SID} -ne 3 ] ; then
        echo "SID is defined as a 3 digit value, [$SM_TARGET_SID] is not valid."
        EXIT=4
    else
        echo "${INVALID_SIDS[@]}" | grep -i -w $SM_TARGET_SID >/dev/null 2>&1
     			if [ $? -eq 0 ] ; then
            echo "The usage of SID [$SM_TARGET_SID] is not supported by SAP."
        				((EXIT+=4))
  		fi
	fi
	else
   		echo "SM_TARGET_SID not set"
     EXIT=4
	fi  _exit $EXIT}

# Include the 3 required operations for clone plugin
case $(echo "$1" | tr [A-Z] [a-z]) in
  -check )        check     ;;
  -describe )     describe  ;;
  -execute )      execute   ;;     	* )
		 echo "unknown option $1"    usage 		;;
esac