DB2 - Sao lưu và phục hồi
Chương này mô tả các phương pháp sao lưu và khôi phục cơ sở dữ liệu.
Giới thiệu
Các phương pháp sao lưu và phục hồi được thiết kế để giữ an toàn cho thông tin của chúng tôi. Trong Giao diện dòng lệnh (CLI) hoặc Giao diện người dùng đồ họa (GUI) sử dụng các tiện ích sao lưu và phục hồi, bạn có thể sao lưu hoặc khôi phục dữ liệu của cơ sở dữ liệu trong DB2 UDB.
Ghi nhật ký
Các tệp nhật ký bao gồm nhật ký lỗi, được sử dụng để khôi phục từ các lỗi ứng dụng. Các bản ghi lưu giữ hồ sơ về những thay đổi trong cơ sở dữ liệu. Có hai kiểu ghi nhật ký như mô tả bên dưới:
Ghi nhật ký vòng tròn
Đây là một phương pháp mà các bản ghi giao dịch cũ được ghi đè khi có nhu cầu cấp phát một tệp nhật ký giao dịch mới, do đó xóa chuỗi các tệp nhật ký và sử dụng lại chúng. Bạn chỉ được phép sao lưu toàn bộ ở chế độ ngoại tuyến. tức là, cơ sở dữ liệu phải ngoại tuyến để thực hiện sao lưu đầy đủ.
Ghi nhật ký lưu trữ
Chế độ này hỗ trợ Sao lưu trực tuyến và khôi phục cơ sở dữ liệu bằng cách sử dụng các tệp nhật ký được gọi là khôi phục cuộn chuyển tiếp. Chế độ sao lưu có thể được thay đổi từ vòng tròn sang lưu trữ bằng cách đặt logretain hoặc userexit thành BẬT. Để ghi nhật ký lưu trữ, cơ sở dữ liệu cài đặt sao lưu yêu cầu một thư mục có thể ghi được cho quá trình DB2.
Sao lưu
Sử dụng Backupbạn có thể sao chép toàn bộ cơ sở dữ liệu. Bản sao lưu này bao gồm các tệp hệ thống cơ sở dữ liệu, tệp dữ liệu, tệp nhật ký, thông tin điều khiển, v.v.
Bạn có thể sao lưu khi làm việc ngoại tuyến cũng như trực tuyến.
Sao lưu ngoại tuyến
Syntax: [Để liệt kê các ứng dụng / cơ sở dữ liệu đang hoạt động]
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:[Để buộc ứng dụng bằng ứng dụng. Id được xử lý]
db2 "force application (39)"
Output:
DB20000I The FORCE APPLICATION command completed
successfully.
DB21024I This command is asynchronous and may not
be effective immediately.
Syntax: [Để chấm dứt Kết nối Cơ sở dữ liệu]
db2 terminate
Syntax: [Để hủy kích hoạt Cơ sở dữ liệu]
db2 deactivate database one
Syntax: [Để lấy tệp sao lưu]
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
Sao lưu trực tuyến
Để bắt đầu, bạn cần thay đổi chế độ từ Circular logging đến Archive Logging.
Syntax: [Để kiểm tra xem cơ sở dữ liệu đang sử dụng ghi nhật ký vòng tròn hay lưu trữ]
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) =
Trong kết quả đầu ra ở trên, các giá trị được đánh dấu là [logarchmeth1 và logarchmeth2] ở chế độ tắt, có nghĩa là cơ sở dữ liệu hiện tại ở chế độ "CIRCULLAR LOGGING". Nếu bạn cần làm việc với chế độ 'ARCHIVE LOGGING', bạn cần thay đổi hoặc thêm đường dẫn trong các biến logarchmeth1 và logarchmeth2 có trong tệp cấu hình.
Cập nhật logarchmeth1 với thư mục lưu trữ bắt buộc
Syntax: [Để tạo thư mục]
mkdir backup
mkdir backup/ArchiveDest
Syntax: [Để cung cấp quyền của người dùng cho thư mục]
chown db2inst1:db2iadm1 backup/ArchiveDest
Syntax: [Để cập nhật cấu hình LOGARCHMETH1]
db2 update database configuration for one using LOGARCHMETH1
'DISK:/home/db2inst1/backup/ArchiveDest'
Bạn có thể sao lưu ngoại tuyến để đảm bảo an toàn, kích hoạt cơ sở dữ liệu và kết nối với nó.
Syntax: [Để sao lưu trực tuyến]
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
Xác minh tệp sao lưu bằng lệnh sau:
Syntax:
db2ckbkp <location/backup file>
Example:
db2ckbkp
/home/db2inst1/ONE.0.db2inst1.DBPART000.20140722112743.001
Liệt kê lịch sử của các tệp sao lưu
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:
Khôi phục cơ sở dữ liệu từ bản sao lưu
Để khôi phục cơ sở dữ liệu từ tệp sao lưu, bạn cần làm theo cú pháp đã cho:
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.
Cuộn chuyển tiếp tất cả các nhật ký nằm trong thư mục nhật ký, bao gồm các thay đổi mới nhất ngay trước khi ổ đĩa bị lỗi.
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.