DB2-백업 및 복구
이 장에서는 데이터베이스의 백업 및 복원 방법에 대해 설명합니다.
소개
백업 및 복구 방법은 정보를 안전하게 유지하도록 설계되었습니다. 백업 및 복구 유틸리티를 사용하는 CLI (Command Line Interface) 또는 GUI (Graphical User Interface)에서 DB2 UDB의 데이터베이스 데이터를 백업하거나 복원 할 수 있습니다.
벌채 반출
로그 파일은 애플리케이션 오류에서 복구하는 데 사용되는 오류 로그로 구성됩니다. 로그는 데이터베이스의 변경 기록을 유지합니다. 아래에 설명 된대로 두 가지 유형의 로깅이 있습니다.
순환 로깅
새로운 트랜잭션 로그 파일을 할당 할 필요가있을 때 이전 트랜잭션 로그를 덮어 써서 로그 파일의 시퀀스를 지우고 재사용하는 방법입니다. 오프라인 모드에서는 전체 백업 만 수행 할 수 있습니다. 즉, 전체 백업을 수행하려면 데이터베이스가 오프라인 상태 여야합니다.
아카이브 로깅
이 모드는 롤 포워드 복구라는 로그 파일을 사용하여 온라인 백업 및 데이터베이스 복구를 지원합니다. logretain 또는 userexit를 ON으로 설정하여 백업 모드를 순환에서 아카이브로 변경할 수 있습니다. 아카이브 로깅의 경우 백업 설정 데이터베이스에는 DB2 프로세스에 쓸 수있는 디렉토리가 필요합니다.
지원
사용 Backup명령은 전체 데이터베이스를 복사 할 수 있습니다. 이 백업 복사본에는 데이터베이스 시스템 파일, 데이터 파일, 로그 파일, 제어 정보 등이 포함됩니다.
오프라인 및 온라인 작업 중에 백업을 수행 할 수 있습니다.
오프라인 백업
Syntax: [활성 응용 프로그램 / 데이터베이스를 나열하려면]
db2 list application
Output:
Auth Id Application Appl. Application Id
DB # of
Name Handle
Name Agents
-------- -------------- ---------- ---------------------
----------------------------------------- -------- -----
DB2INST1 db2bp 39
*LOCAL.db2inst1.140722043938
ONE 1
Syntax:[앱을 사용하여 강제 적용합니다. 처리 된 ID]
db2 "force application (39)"
Output:
DB20000I The FORCE APPLICATION command completed
successfully.
DB21024I This command is asynchronous and may not
be effective immediately.
Syntax: [데이터베이스 연결을 종료하려면]
db2 terminate
Syntax: [데이터베이스 비활성화하기]
db2 deactivate database one
Syntax: [백업 파일 가져 오기]
db2 backup database <db_name> to <location>
Example:
db2 backup database one to /home/db2inst1/
Output:
Backup successful. The timestamp for this backup image is :
20140722105345
온라인 백업
시작하려면 모드를 다음에서 변경해야합니다. Circular logging ...에 Archive Logging.
Syntax: [데이터베이스가 순환 또는 아카이브 로깅을 사용하는지 확인하려면]
db2 get db cfg for one | grep LOGARCH
Output:
First log archive method (LOGARCHMETH1) = OFF
Archive compression for logarchmeth1 (LOGARCHCOMPR1) = OFF
Options for logarchmeth1 (LOGARCHOPT1) =
Second log archive method (LOGARCHMETH2) = OFF
Archive compression for logarchmeth2 (LOGARCHCOMPR2) = OFF
Options for logarchmeth2 (LOGARCHOPT2) =
위 출력에서 강조 표시된 값은 꺼짐 모드의 [logarchmeth1 및 logarchmeth2]이며, 이는 현재 데이터베이스가 "CIRCULLAR LOGGING"모드임을 의미합니다. 'ARCHIVE LOGGING'모드로 작업해야하는 경우 구성 파일에있는 logarchmeth1 및 logarchmeth2 변수의 경로를 변경하거나 추가해야합니다.
필수 아카이브 디렉토리로 logarchmeth1 업데이트
Syntax: [디렉터리 만들기]
mkdir backup
mkdir backup/ArchiveDest
Syntax: [폴더에 대한 사용자 권한을 제공하려면]
chown db2inst1:db2iadm1 backup/ArchiveDest
Syntax: [LOGARCHMETH1 구성을 업데이트하려면]
db2 update database configuration for one using LOGARCHMETH1
'DISK:/home/db2inst1/backup/ArchiveDest'
안전을 위해 오프라인 백업을 수행하고 데이터베이스를 활성화 한 후 연결할 수 있습니다.
Syntax: [온라인 백업을하려면]
db2 backup database one online to
/home/db2inst1/onlinebackup/ compress include logs
Output:
db2 backup database one online to
/home/db2inst1/onlinebackup/ compress include logs
다음 명령을 사용하여 백업 파일을 확인하십시오.
Syntax:
db2ckbkp <location/backup file>
Example:
db2ckbkp
/home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001
백업 파일 기록 나열
Syntax:
db2 list history backup all for one
Output:
List History File for one
Number of matching file entries = 4
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-- --- ------------------ ---- --- ------------ ------------
--------------
B D 20140722105345001 F D S0000000.LOG S0000000.LOG
------------------------------------------------------------
----------------
Contains 4 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
00003 SYSTOOLSPACE
00004 TS1
------------------------------------------------------------
----------------
Comment: DB2 BACKUP ONE OFFLINE
Start Time: 20140722105345
End Time: 20140722105347
Status: A
------------------------------------------------------------
----------------
EID: 3 Location: /home/db2inst1
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-- --- ------------------ ---- --- ------------ ------------
--------------
B D 20140722112239000 N S0000000.LOG S0000000.LOG
------------------------------------------------------------
-------------------------------------------------------------
-------------------------------
Comment: DB2 BACKUP ONE ONLINE
Start Time: 20140722112239
End Time: 20140722112240
Status: A
------------------------------------------------------------
----------------
EID: 4 Location:
SQLCA Information
sqlcaid : SQLCA sqlcabc: 136 sqlcode: -2413 sqlerrml: 0
sqlerrmc:
sqlerrp : sqlubIni
sqlerrd : (1) 0 (2) 0 (3) 0
(4) 0 (5) 0 (6) 0
sqlwarn : (1) (2) (3) (4) (5) (6)
(7) (8) (9) (10) (11)
sqlstate:
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-- --- ------------------ ---- --- ------------ ------------
--------------
B D 20140722112743001 F D S0000000.LOG S0000000.LOG
------------------------------------------------------------
----------------
Contains 4 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
00003 SYSTOOLSPACE
00004 TS1
-------------------------------------------------------------
----------------
Comment: DB2 BACKUP ONE OFFLINE
Start Time: 20140722112743
End Time: 20140722112743
Status: A
-------------------------------------------------------------
----------------
EID: 5 Location: /home/db2inst1
Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log
Backup ID
-------------------------------------------------------------
----------------
R D 20140722114519001 F
20140722112743
------------------------------------------------------------
----------------
Contains 4 tablespace(s):
00001 SYSCATSPACE
00002 USERSPACE1
00003 SYSTOOLSPACE
00004 TS1
------------------------------------------------------------
----------------
Comment: RESTORE ONE WITH RF
Start Time: 20140722114519
End Time: 20140722115015
Status: A
------------------------------------------------------------
----------------
EID: 6 Location:
백업에서 데이터베이스 복원
백업 파일에서 데이터베이스를 복원하려면 주어진 구문을 따라야합니다.
Syntax:
db2 restore database <db_name> from <location>
taken at <timestamp>
Example:
db2 restore database one from /home/db2inst1/ taken at
20140722112743
Output:
SQL2523W Warning! Restoring to an existing database that is
different from
the database on the backup image, but have matching names.
The target database
will be overwritten by the backup version. The Roll-forward
recovery logs
associated with the target database will be deleted.
Do you want to continue ? (y/n) y
DB20000I The RESTORE DATABASE command completed successfully.
디스크 드라이브 오류 직전의 최신 변경 사항을 포함하여 로그 디렉터리에있는 모든 로그를 롤 포워드합니다.
Syntax:
db2 rollforward db <db_name> to end of logs and stop
Example:
db2 rollforward db one to end of logs and stop
Output:
Rollforward Status
Input database alias = one
Number of members have returned status = 1
Member ID = 0
Rollforward status = not pending
Next log file to be read =
Log files processed = S0000000.LOG -
S0000001.LOG
Last committed transaction = 2014-07-22-
06.00.33.000000 UTC
DB20000I The ROLLFORWARD command completed successfully.