DBMS 2

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

Backup and restore

DBMS 2
Sybase 가이드
DBA를 위한 가이드
Backup and restore
작성자
admin
작성일
2021-02-19 13:59
조회
937

Backup and restore

overview

디스크나 시스템의 장애에 대비하여 SYBASE IQ의 catalog store와 IQ main store를 디스크나 테이프에 따로 저장하는 방법을 말합니다.

백업이 시작되기 전 commit된 데이터만 백업하며 백업이 수행되는 중에 commit된 데이터는 다음 백업에 반영됩니다.

백업의 속도를 높이기 위해 여러 개의 디바이스에 분산하여 동시에 백업을 하는 것이 좋고 이 때 catalog store는 첫번째 디바이스에 백업되며 IQ main store의 데이터는 여러디바이스에 분산되어 동시에 백업됩니다.

catalog 영역인 .db의 크기가 갑자기 크게 증가한다면 누군가 그 영역에 object를 생성해 사용중인 것으로 간주해야 합니다.

overview


백업 방법

Built-in 백업 : SYBASE IQ의 백업 명령어를 통해 실행되는 백업 형태입니다


  • full : 백업의 디폴트 형태며 Catalog Store, IQ Main Store 전체를 백업합니다.
  • incremental : Catalog Store는 전체를 백업하며 IQ Main Store 는 어느 종류의 백업에 관계없이 마지막 백업한 이후에 변경분만을 백업합니다.
  • incremental-since-full : Catalog Store는 전체를 백업하며 IQ Main Store는 마지막 full 백업한 이후의 변경분만을 백업합니다.

Virtual 백업 : SYBASE IQ의 main store는 O/S나 디스크의 백업 명령어를 통해서, 카다로그 정보는 IQ의 명령어를 통해서 실행되는 백업 형태이며 적극 권장합니다.


  • O/S : dd와 같은 O/S 명령어를 통해 백업합니다.
  • 디스크 : EMC, Hitachi 등과 같은 디스크 업체에서 제공하는 디스크 솔루션을 통해 백업합니다.
백업매체

디스크, DLT 테이프, 4mm DDS, 8mm, stacker등 일반적으로 사용되어지는 모든 디바이스가 지원 가능합니다.

Built-in 명령어를 이용한 3rd party 백업 툴과의 연동은 Veritas NetBackup 만 가능하며 single stream만 지원합니다.

Virtual backup 을 이용한 3rd party 백업 툴과의 연동은 Veritas NetBackup, BMC SQLBack Track, Legato NetWorker등과 같은 모든 상용 백업 툴을 지원합니다.

참고 : Built-in 백업할 때 지원되지 않는 디바이스


  • jukebox
  • robotic loader
  • QIC drive
백업syntax

syntax
BACKUP DATABASE
[ CRC On | Off ]
[ ATTENDED On | Off ]
[ BLOCK FACTOR integer-value ]
[ FULL | INCREMENTAL | INCREMENTAL SINCE FULL ]
TO 'archive-device' [ SIZE #-of-KB ]
[ STACKER #-of-tapes-in-stack ]
[ WITH COMMENT 'comment' ]


  • CRC : 32bit CRC 검사 수행여부를 설정하며 디폴트는 on 입니다.
  • ATTENDED : 추가적인 테이프가 필요할 때 관리자의 개입 여부를 설정합니다.
  • BLOCK FACTOR : 한번에 write 하는 블록의 수 입니다. 크기를 크게 하면 속도는 향상되지만 메모리를 많이 사용하므로 주의 바랍니다. 권장 값은 25 이상 입니다.
  • SIZE : 백업되는 데이터의 최대 크기를 지정해 줍니다. 디폴트는 2GB이고 이를 초과 할 때는 반드시 기술해야 합니다.
  • STACKER : stacker device에 존재하는 테이프의 수를 지정해 줍니다.
백업syntax

예)
BACKUP DATABASE
BLOCK FACTOR 50
FULL
TO '/dev/rmt/0n' SIZE 40000000
TO '/dev/rmt/1n' SIZE 40000000
TO '/dev/rmt/2n' SIZE 40000000
WITH COMMENT '03/17 Full backup of asiqdemo !!!';

백업이 정상적으로 완료될 때 $ASDIR/logfiles/backup.syb 파일에 아래와 같이 백업을 완료한 시간과 추가적인 정보를 기록합니다.

BACKUP, 2.0, asiqdemo.db, ASIQ, '2004-03-16 15:15:00.000', DBA, Full, Arch, /dev/rmt/0m, ''

BACKUP, 2.0, asiqdemo.db, ASIQ, '2004-03-16 15:22:00.000', DBA, Full, Arch, /dev/rmt/0m, ''

BACKUP, 2.0, asiqdemo.db, ASIQ, '2004-03-16 15:38:00.000', DBA, Full, Arch, /dev/rmt/0m, ''

……

……


virtual 백업

Virtual 백업 유틸리티는 DB 백업 기능의 효율성을 증대하기 위한 방법으로 제공됩니다. 3rd party 백업 툴과의 직접적인 Interfaces를 하지 않고도 완벽한 backup기능을 제공하고 있습니다.

백업이 진행중인 상태에서도 insert, update, delete,select 와 같은 모든 작업이 가능하며 이런 백업 중에 발생된 데이터는 다음 백업에 반영됩니다.

SYBASE IQ는 catalog store, transaction log, block map & free list 등 아주 적은 양의 시스템 정보를 백업하고 OS나 디스크 솔루션을 통해 IQ main store를 백업합니다.

모든 IQ main store는 OS 명령어를 이용하여 multi-stream으로 다수의 테이프나 파일로 백업할 수 있고 이때 3rd party 백업 툴을 사용할 수 있습니다.

백업이 진행되는 동안 클라이언트의 Checkpoint 명령어는 백업 종료 후로 연기됩니다.

Restore시에는 SYBASE IQ에서 백업된 catalog store, transaction log, block map & free list 등의 정보를 이용하여 완벽한 복구를? 위해 다운타임을 고려할 필요가 없이 24 * 7의 가용성을 제공할 수 있습니다.


virtual 백업 처리과정

Virtual 백업 명령어
set temporary option Virtual_Backup = 'On';
set temporary option Backup_Exec_Cmd = 'virtual_backup.sh';
BACKUP DATABASE FULL TO '/asiq125/Backup/catalog.dmp';

virtual_backup.sh의 내용
cp /asiq125/DEV/IQ125.IQ1 /asiq125/Backup/IQ125.dmp1
cp /asiq125/DEV/IQ125.IQ2 /asiq125/Backup/IQ125.dmp2

처리과정


  • 백업이 시작되기 전에 checkpoint가 실행되어 그 때까지 commit된 데이터만 백업 합니다.
  • BACKUP DATABASE 명령어에서 지정된 파일이나 디바이스로 catalog store, transaction log가 백업됩니다.
  • 각 dbspace의 block map과 free list 정보가 지정된 파일이나 디바이스로 백업 됩니다.
  • IQ 백업 처리 루틴은 Backup_Exec_Cmd 옵션에 설정 된 virtual_backup.sh 파일을 실행합니다.
  • virtual_backup.sh 파일의 return status를 점검하고 백업이 종료됩니다.
3rd party backup tool virtual backup

3rd party backup tool virtual backup


restore - 주의사항

restore를 시작하기 전에 다음과 같은 주의사항이 있습니다.


  • 데이터베이스 관리자 권한을 가진 사용자만 restore 할 수 있습니다.
  • restore 되고 있는 동안 다른 사용자들은 데32c9a>● full restore를 위해서는 catalog store(dbname.db)와 transaction log (dbname.log) 파일이 있어서는 안됩니다.
  • incremental restore를 위해서는 catalog store(dbname.db)과 transaction log (dbname.log) 파일이 반드시 존재해야 합니다.
restore - syntax

syntax
RESTORE DATABASE 'db-name'
FROM 'archive-device-name' [ FROM 'archive-device-name' ]
[ RENAME dbspace_name TO 'new-dbspace-path' ]
[ CATALOG ONLY ]


  • CATALOG ONLY : 데이터를 restore 하는 대신 단지 헤더 정보만 보여줍니다.
  • RENAME : sysfile의 dbspace_name 컬럼에 해당하는 file_name 컬럼의 위치를 다른 곳으로 옮기고자 할 때 사용합니다. 이 때 transaction log는 사용 불가능 합니다.

예)
RESTORE DATABASE 'mydb.db'
FROM '/dev/rmt/0m'
CATALOG ONLY;


moving database file

예)
RESTORE DATABASE 'salesdb.db'
FROM '/dev/rmt/0m'
RENAME '/s1/sales1.db' TO '/s2/sales1.db' ;

moving database file


dblog

새로운데이터베이스이름으로 restore 했을때나 restore…rename을통해restore 한 이후에 dblog유틸리티를사용하여 transaction log의이름을변경할수있습니다.

또한이유틸리티는 transaction log와관련된유용한정보를볼수도있고 transaction log를 mirroring 시킬수도있습니다.

syntax
% dblog [-m -n -q -o -r -t ] database-file


  • -m mirror-name : transaction log의 mirror file 명을지정합니다.
  • -n : transaction log나 mirror를더이상사용하지않습니다.
  • -q : quite mode로메시지를출력하지않습니다.
  • -o file-name : output 메시지를 file-name에출력합니다.
  • -r : mirror를더이상사용하지않습니다.
  • -t log-name : transaction log 이름을새로설정합니다.