1 Reply Latest reply: Jan 21, 2008 8:38 PM by 532507 RSS

    백업을 분할해서 받는 방법 좀 알려주세요.....

    597726
      아래와 같이 스크립트를 cron을 이용하여
      일주일한번 rman으로 자동 백업하고 있는데요.... 백업화일이 너무 커져서, 디스크 사이즈를 이미 넘었습니다...
      당장 디스크를 늘릴 수는 없고, 당분간 다른 disk에 나누어서 백업을 해보려하는데...
      rman 백업화일을 나누어 백업받는 방법을 잘모르겠네요... 어찌 수정하면 될까요..?
      또한 가능하다면 복구시, 명령도 같이 좀 부탁합니다. 수고하세요.....

      --------------------아래---------


      user=oracle
      LOG=/rman/log/log.`/usr/bin/date +'%m%d%y'`
      now_date=`date '+%m%d_%H%M_%Y'`
      now_time=`date '+%H%M'`
      bk_disk="/Disk1/rman_disk/$now_date"
      bk_ctrl="$bk_disk/control_$now_date"

      if [ ! $dk_disk ]
      then
      su - $user -c "mkdir -p $bk_disk"
      fi

      disk_format="'$bk_disk/bk_%d_%s_%t'"
      arc_format="'$bk_disk/arc_%d_%s_%t'"
      full_bk_sql="backup full format $disk_format database filesperset 2;"
      db_bk_sql="backup format $disk_format database filesperset 2;"
      arc_bk_sql="backup format $arc_format archivelog all;"
      arc_bk_sql2="backup format $arc_format archivelog all delete all input; "

      /usr/bin/su - $user -c "

      rman target / nocatalog << EOF

      run {
      allocate channel ch_disk_1 device type disk;
      allocate channel ch_disk_2 device type disk;
      allocate channel ch_disk_3 device type disk;
      allocate channel ch_disk_4 device type disk;

      $db_bk_sql

      release channel ch_disk_1;
      release channel ch_disk_2;
      release channel ch_disk_3;
      release channel ch_disk_4;
      }
      exit;
      EOF
      " >> $LOG 2>&1

      #----------------< Control file make >-------------


      /usr/bin/su - $user -c "

      sqlplus /nolog << EOF
      connect /as sysdba
      alter database backup controlfile to '$bk_ctrl';
      disconnect
      EOF
      " >> $LOG 2>&1
      #
        • 1. Re: 백업을 분할해서 받는 방법 좀 알려주세요.....
          532507
          스크립트의 RMAN 구동 후 돌려 주시는 구문 중에 $db_bk_sql 호출하여 백업을 받으시는데 채널 할당하는 부분에 format 구문을 넣어서 각 채널에서 저장하는 위치을 다르게 잡아 줄 수 있습니다. 대신 쓰시는 backup database 구문에서 format 관련된 부분을 빼 주셔야 합니다...

          예로
          ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/disk1/backups/%U';
          뒤으 %U는 구분을 해 주기위해서 쓴 구문이구요... 위 구문과 같은 형식으로 채널 할당을 조절해 주시면 원하시는 대로 백업을 나누어서 할 수 있을 겁니다...

          추가적으로 더 다양한 형식으로 컨트롤을 할 수 있지만 그런 부분들은 백업 정책 및 기타 고려 사항을 참고해서 구성을 하셔야 입맛에 맞게 조절할 수 있으리라 봅니다.

          글 수정:
          명품 관