Computer/Solaris

dump를 이용한 파일 시스템 백업 / 복구

짱이네 2008. 12. 29. 14:07

 

-출처 네이버 테크넷 카페 -

dump를 이용한 파일 시스템 백업 / 복구

  • ufsdump [option] [arguments] file_system

option

Description

0 - 9

덤프 레벨로 '0'은 완전한 백업이고 '1-9'는 점진적 백업을 말하는 것으로 /etc/dumpdates를 기준으로 점진적 백업을 한다. 

u

/etc/dumpdates를 기록한다.

a file_name

덤프 기록 파일을 작성한다. 어떤 파일들이 덤프되었는지 기록한다.

f dump_file

백업 이미지를 덤프 파일에 기록한다. (default : /dev/rmt/0) dump_file은 테이프 장치이거나 그외의 표준 출력장치일 수 있다. hostname:device 표기법을 사용하여 원격 시스템에 있는 장치를 사용할 수도 있다.

S

주어진 옵션에 따른 백업 크기 측정, 실제 백업은 하지 않는다. 백업하기전에 얼마나 큰 용량을 가진 장치가 필요한지 알아볼때 유용하다.

w

/etc/dumpdates 를 기준으로 가장 최근에 백업되지 않은 /etc/vfstab 내의 ufs파일 시스템을 모두 출력한다.

<Example>  레벨 0으로 dumpdates를 기록하면서 테이프 장치에 /data 파일시스템을 덤프한다.

# ufsdump 0uf /dev/rmt/0 /data

 

  • ufsrestore [option] [arguments] file_system

option

Description

i

대화형으로 복구 한다. UNIX 파일 시스템을 보는 것과 유사 하다.

r

전체를 모두 복구 한다.

t

백업 테이블의 리스트를 출력한다.

x

지정된 파일만을 추출하여 복구 한다. 지정되지 않으면 전체 복구

f dump_file

백업 이미지를 dump_file에서 읽는다 (default : /dev/rmt/0)

a file_name

기록 파일에서 덤프 테이블의 내용을 읽는다.

<Example>  /dev/rmt/0 장치에 있는 덤프 데이터를 현재 위치한 파일 시스템에 복구 한다.

# ufsrestore xf /dev/rmt/0

 

 

tar를 이용한 계층 디렉토리의 백업

 

tar 에는 여러가 지 옵션이 많이 있지만 다음 세가지의 옵션만 사용하여도 된다.

tar [options] [tar_file] [directory]

c : tar_file을 생성한다. tar_file은 파일 이름 일수도 있고 장치명일 수도 있다.
x : tar_file을 복구 한다.
t : tar_file의 리스트를 출력한다.
v : 화면에 작업 과정을 출력을한다.
f : 기록 파일로 다음의 매개변수를 사용한다.

<백업 Example> 백업 받고 싶은 디랙토리가 /etc 일때

# cd /etc
# tar cvf /dev/rmt/0 ./*                  <-- 테이프 장치로 백업 할때

# tar cvf /home/etc.tar ./*              <--   파일명으로 받을때

<주 의> 여기서 중요한것은 디렉토리 지정을 상대 디렉토리(./*)로 해야 한다는 것이다. 이렇게 해야만 tar_file을 복구 할때 자기가 풀고자하는 디렉토리에 할수 있다.

<복구 Example> 복구 하고자 하는 파일이 /etc/named.boot 라면..

1. 우선 /dev/rmt/0 에 /etc/named.boot 파일이 있는지 확인한다.

# tar tvf /dev/rmt/0

2. 있으면 임시디렉토리를 만들고 그곳에 tar_file을 복구 한후 내용이 맞으면 실제 복구 할곳에 복구 한다.

# cd /tmp
# tar xvf /dev/rmt/0
# more named.boot
# cp named.boot /etc/

 

tar 사용시 특정디렉토리만 제외하고 백업을 받을때 사용하는 옵션입니다.

 

--exclude [디렉토리명]

 

<사용법>

/home/samples 디렉토리를 백업받는데 불필요한 logs 디렉토리를 제외하고 싶을경우

 

home]# tar cvzf samples .tar.gz --exclude samples/logs samples

 

 

TAR로 증분/이어받기 백업하기

 

1. 증분백업(incremental) 하기

 

    AIX 기본 tar는 지원을 안하는것 같다. backup 명령이 있긴 하지만, 파일시스템에 대한 증분백업만 가능한것 같다. 아니면, find 명령어로 수정본(몇일동안에 변경된 파일)에 대한 파일 리스트를 입력으로한 tar 백업을 할 수 있을것 같다. 간단히, GNU TAR를 이용해서 해야 할것임. 해보진 않았음

 

2. 4mm tape에 tar 명령으로 이어받기 -1-

 

예를들어, /test1 /test2 /test3 이란 디렉토리를 순차적으로 기록하는 방법은

 

#tar -cvf /dev/rmt0.1 /test1
#tar -cvf /dev/rmt0.1 /test2
#tar -cvf /dev/rmt0.1 /test3

 

위처럼 순차적으로 명령어를 실행시키면 된다. (TAPE을 꺼내면 자동으로 rewind 되어 빠진다. no test)

 

2.1 이어받은 Tape에 데이터를 복구하는 방법 -1-

 

예를들어, /test2 디렉토리를 복구하는 방법은

 

#mt fsf 1 
#tar -xvf /dev/rmt0.1

또는

#tctl fsf 1 
#tar -xvf /dev/rmt0.1

 

tape에 처음부터 1개의 화일(필자: 백업 시 해드가 멈춘시점)을 읽고 해드를 정지시킨다. 그다음 tar 명령어로 해드가 위치한 곳부터 데이터를 복구한다.

 

2.2 이어받은 Tape에 데이터를 복구하는 방법 -2-

 

#tar -tvf /dev/rmt0.1
#tar -xvf /dev/rmt0.1

 

한번 tape을 풀어보고(-t 사용), 멈춰진 해드에서 데이터를 복구한다.

 

2.3 이어받은 Tape에 특정파일을 복구하는 방법

 

예를들어, /test2 디렉토리에 testfile 이란 파일을 복구하는 방법은

 

#mt fsf 1

#tar -xvf /dev/rmt0.1 testfile

 

또 다른방법을 아래와 같이 생각할 수 있지만

 

#tar -cvf /dev/rmt0.1 /test1
#tar -rvf /dev/rmt0.1 /test2
#tar -rvf /dev/rmt0.1 /test3

 

-r 옵션을 사용해서 TAPE 에 직접 백업하는것은 불가능하다. AIX 문서에 나와있음.

 

2.4 이어받은 Tape에 첨부해서 백업하는 방법

 

먼저 Tape Drive헤드를 보관된 데이터의 끝으로 이동시켜야한다.

 

dd if=/dev/rmt0.1 of=/dev/null bs=1024k

 

위 명령어를 이용해서 헤드를 끝으로 옮기고, 그전처럼 백업을 한다.

 

* Tape에 남은 용량확인 : Tape으로 이어받기를 하는데 남은 용량을 체크하려는것은 어려운것 같다. 나름대로의 백업 프로그램을 만들면 가능할것도 같긴 하지만...

 

* 보통 이어받기는 잘 안한다. 이어받기를 하는 목적이 tape에 남은 용량이 아깝기 떄문에 그러는 것인데... tape이 비싸거나.. 없어서 그런것도 아닌데..^^; 그리고, tape에 에러가 나면 나머지 데이터들도 위험 할 수 있다.

 

3. 4mm tape에 tar 명령으로 이어받기 -2-

 

    백업대상 파일을 파일( *.tar)로 백업을 하고 옵션( -r ) 을 사용해서 추가적으로 파일을 attach 하는 방법으로 해야 한다. 이경우 서버에 tar 파일을 임시로 저장할 temp 공간이 필요하다.

 

4. attach 백업 후 중복 파일 복구는 어느것 부터 되는지?

 

    가장 최근에 백업을 한 파일이 복구가 된다. 필자가 직접 테스트했음.

 

5. rmt 장치에 백업된 파일중에 지정파일만 복구 가능?

  

    가능함. 필자가 직접 테스트했음.

 

 

 

*tar 백업 방법

[sdome 예제]
#tar -cvf /dev/rmt/0m /stand /var /usr /opt /usr/local/lsf /applic

▷ o/s 백업방법 (시스템 운영중에는 안됨)

① DB & Application shutdown 시킴
② Single-user mode로 전환
#shutdown 0
③ O/S 관련 directory만 mount시킴, “bdf” 로 확인
④ #cd  /  (root directory로 이동)
⑤ tape을 드라이브에 넣는다.
⑥ #tar cvf /dev/rmt/0m ./


▷ 일반 데이터 백업


일반적으로 수십 ~ 수백 MB 정도의 데이터를 백업하는데 적합
[예제]  #cd /data ; #tar cvf /dev/rmt/0m .
data를 상대 path로 백업 받음 (#tar cv . 과 같음)
[예제]  #tar cvf /dev/rmt/0m /data
data를 절대 path로 백업 받음
[예제]  #tar rvf /dev/rmt/0m .
기존 tape에 덧붙여 백업 받음
[예제]  #tar tvf /dev/rmt/0m
백업 받은 내용을 tape에서 확인함

* restore 방법

▷ 절대 path로 백업 받았을 시
#tar xvf /dev/rmt/0m
data는 백업 받은 절대 path로 복구된다.

▷ 상대 path로 백업 받았을 시
#cd /data
#tar xvf /dev/rmt/0m
복구하고자 하는 directory로 이동 후 복구

 

***** tar xvf /dev/rmt/0mn /etc/hosts /tmp

---> 오 놀라워라 tar xvf /dev/rmt/0mn etc/hosts 이래야 되네...

 

 

 

HP OS Backup(DDS TAPE)
#make_recovery -AvC /dev/rmt/0mn 
                                  ============== 
                                tape 장치명,생략가능 
복구

▷ O/S 전체 복구


① System을 recovery tape으로 부팅한다.

② 부팅 후 batch mode 및 interactive mode로 복구 할 수 있다.


- Batch mode
백업 받은 disk 에 백업 받은 상태 그대로 복구 시 사용한다. 즉, tape으로 부팅 후 ignite-ux 화면 load 시 interrupt을 걸지 않으면 자동으로 batch mode로 들어가 recovery 작업이 수행된다.
- Interactive mode
tape 으로 부팅 후 ignite-ux 화면 load 시 아무 key나 누르면 interactive mode 로 들어갈 수 있다. Interactive mode에서는 restore 할 disk 지정, O/S file system layout 변경 등 다양한 flexibility를 제공한다.


▷ 일부 파일 복구


① 복구 tape에서 boot image를 skip하고 file 이 백업된 곳으로 이동
#mt -t /dev/rmt/0mn fsf 1
② 원하는 파일 복구
#tar xvf /dev/rmt/0m etc/passwd opt/

 

 

 

################################################################

Ignite-ux server 설정 ( lanbooting 을 위한 설정 )

ignite client 위한 Ignite-ux server 의 DHCP 설정 ( CD booting 이면 아래의 설정 필요없음)

 

두가지중 편한것을 선택 ( 1) ignite 명령으로 설정하기를 recommend )

 

1) ignite 명령으로 단계별 DHCP Server 설정

2) /etc/dhcptab , /etc/inetd.conf , /etc/services files 편집 

 

2-1) vi /etc/dhcptab

===========================================================================

dhcp_device_group:\
        class-name=HP_IGNITE_UX_0:\
        class-id="Ignite-UX_centerb":\
        addr-pool-start-address=192.168.0.170:\
        addr-pool-last-address=192.168.0.175:\
        lease-time=7200:\
        lease-policy=accept-new-clients:\
        allow-bootp-clients=FALSE:\
        hn:\
        bf=/opt/ignite/boot/hbp.efi:\
        subnet-mask=255.255.255.0:\
        gw=192.168.0.1

 

============================================================================

 

2-2) vi /etc/inetd.conf

============================================================================

#bootps dgram   udp     wait    root    /usr/lbin/bootpd        bootpd
bootps dgram udp wait root /opt/ignite/lbin/instl_bootd instl_bootd
instl_boots dgram udp wait root /opt/ignite/lbin/instl_bootd instl_bootd

============================================================================

 

2-3) vi /etc/services

============================================================================

bootps        67/udp                 # Bootstrap Protocol Server

 

2-4) inetd -c ( inetd.conf 변경했으므로 inetd 재시작 )


반응형