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.