Tải bản đầy đủ (.pdf) (68 trang)

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9, Phần 7: Nhân bản tách (split mirror) và tính sẵn sàng cao và khôi phục sau sự cố (HADR) docx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (17.51 MB, 68 trang )

Chuẩn bị kỳ thi số 731 lấy chứng chỉ DBA (Quản trị cơ sở dữ liệu) DB2 9,
Phần 7: Nhân bản tách (split mirror) và tính sẵn sàng cao và khôi phục sau
sự cố (HADR)
Michael Dang, Quản trị CSDL DB2, IBM
Sylvia Qi, Kiểm định chức năng, IBM Toronto Lab
Tóm tắt: Đây là bài cuối cùng trong một loạt bài gồm bảy hướng dẫn để giúp bạn
chuẩn bị cho kỳ thi 731 về Quản trị cơ sở dữ liệu DB2® 9 cho Linux®, UNIX®
và Windows™. Hướng dẫn này tập trung vào hai chủ đề có tính sẵn sàng nâng
cao: Nhân bản tách và tính sẵn sàng cao và khơi phục sau sự cố (HADR). Với
nhân bản tách bạn có thể khơi phục cơ sở dữ liệu bằng cách sử dụng các bản sao
đĩa. HADR (tính sẵn sàng cao và khơi phục sau sự cố) cung cấp hỗ trợ dự phòng
lỗi, tương tự khả năng dự phòng lỗi được HACMP và Microsoft™ Cluster Server
(máy chủ cụm của Microsoft) cung cấp.
Trước khi bạn bắt đầu
Về loạt bài này
Nếu bạn đang chuẩn bị tham dự kỳ thi 731 lấy chứng chỉ DBA, bạn đã đến đúng
chỗ -- một hướng dẫn tự học, giả định thế. Loạt bài gồm bảy hướng dẫn chuẩn bị
lấy chứng chỉ DB2 này trình bày các khái niệm chính mà bạn cần phải biết cho kỳ
thi này. Hãy làm bài tập ở đây và cố gắng giảm bớt những căng thẳng trong ngày
thi.
Về hướng dẫn này
Hướng dẫn này tập trung vào hai chủ đề tính sẵn sàng cao cao cấp: Nhân bản tách
và tính sẵn sàng cao và khơi phục sau sự cố (HADR). Kết hợp với hướng dẫn thứ


sáu, tính sẵn sàng cao -- sao lưu và phục hồi, nó trình bày các mục tiêu trong phần
sáu của kỳ thi, mang tên "Tính sẵn sàng cao". Bạn có thể xem các mục tiêu tại:
/>
Các mục tiêu
Trong hướng dẫn này, hãy tìm hiểu:



Khái niệm về tính sẵn sàng cao.



Vận chuyển log hoạt động như thế nào.



Nhân bản tách hoạt động như thế nào và cách sử dụng một phép nhân bản
tách để tạo ra tính sẵn sàng cao như thế nào.



HADR hoạt động như thế nào và cách thiết lập một hệ thống HADR như
thế nào.



Làm thế nào để cập nhật trực tuyến hệ thống của bạn bằng cách sử dụng các
tham số cấu hình động.

Các điều kiện cần trước
Để hiểu tài liệu được trình bày trong hướng dẫn này, bạn cần hiểu rõ những điều
sau đây:




Mơi trường DB2 (các tệp cấu hình của trình quản lý cơ sở dữ liệu, các tệp

cấu hình cơ sở dữ liệu, các biến đăng ký DB2, v.v).



Sử dụng bộ xử lý dịng lệnh và các cơng cụ giao diện đồ họa (GUI) của
DB2 để gọi các lệnh DB2.



Các đối tượng DB2 khác nhau, chẳng hạn như các vùng bộ đệm, các không
gian bảng (tablespaces), các bảng và các chỉ mục và v.v.



Các phép SQL cơ bản có thể được thực hiện trên một cơ sở dữ liệu (các câu
lệnh SQL UPDATE, INSERT, DELETE và SELECT).

Bạn cũng nên quen thuộc với các thuật ngữ sau đây:


Đối tượng: Bất kỳ thứ gì trong một cơ sở dữ liệu có thể được tạo ra hoặc
được thao tác với SQL (ví dụ các bảng, các khung nhìn, các chỉ mục, các
gói).



Bảng: Một cấu trúc logic được sử dụng để trình bày dữ liệu dưới dạng tập
các hàng không theo thứ tự với một số cột cố định. Mỗi cột có chứa một tập
giá trị, mỗi giá trị có cùng một kiểu dữ liệu (hoặc một kiểu con của kiểu dữ
liệu của cột); các định nghĩa về các cột tạo nên cấu trúc bảng và các hàng

có chứa dữ liệu thực của bảng.



Bản ghi: Biểu diễn lưu trữ của một hàng trong một bảng.



Trường: Biểu diễn lưu trữ của một cột trong một bảng.



Giá trị: Một mục dữ liệu cụ thể có thể được tìm thấy tại mỗi giao điểm của
một hàng và cột trong một bảng cơ sở dữ liệu.




Structured Query Language (SQL-Ngơn ngữ truy vấn có cấu trúc): Một
ngơn ngữ được tiêu chuẩn hóa được sử dụng để định nghĩa các đối tượng và
thao tác dữ liệu trong cơ sở dữ liệu quan hệ. (Để biết thêm về SQL, xem
hướng dẫn thứ tư trong loạt bài này).



Trình tối ưu hóa DB2: Một thành phần của trình tiền dịch (precompiler)
SQL có chọn lựa một kế hoạch truy cập cho một câu lệnh SQL của Data
Manipulation Language (DML- Ngôn ngữ thao tác dữ liệu) bằng cách mơ
hình hóa chi phí thực hiện một số kế hoạch truy cập khác nhau và chọn một
kế hoạch truy cập có chi phí đánh giá thấp nhất.


Để tham dự kỳ thi DBA DB2 9, bạn phải vượt qua kỳ thi 730 về Các khái niệm cơ
bản của DB2 9. Chúng tôi khuyên bạn nên tìm hiểu Loạt bài hướng dẫn về các
khái niệm cơ bản của DB2 trước khi bắt đầu loạt bài này.

Các yêu cầu về hệ thống
Bạn không cần một bản sao của DB2 để hoàn thành hướng dẫn này. Tuy nhiên,
bạn sẽ thu được nhiều hơn bên ngoài những hướng dẫn, nếu bạn tải phiên bản
dùng thử miễn phí IBM DB2 9 để làm việc cùng với hướng dẫn này
Khái niệm về tính sẵn sàng cao
Tính sẵn sàng cao (HA) là một thuật ngữ dùng để mô tả các hệ thống đang hoạt
động và luôn sẵn sàng cho những người dùng hầu như mọi lúc. Một hệ thống HA
có các đặc tính sau:




Xử lý giao dịch hiệu quả, mà không làm giảm hiệu năng trong các giai đoạn
hoạt động cao điểm.



Nhanh chóng phục hồi khi có các lỗi phần cứng hoặc phần mềm xảy ra
hoặc ngay cả khi phải chịu thiên tai -- nếu một chiến lược sao lưu và phục
hồi đã được kiểm chứng đúng chỗ.



Khả năng dự phòng lỗi. Nếu trình quản lý cơ sở dữ liệu hiện tại khơng hoạt
động, phải có một trình quản lý cơ sở dữ liệu khác tiếp thu công việc và cho

phép các cơ sở dữ liệu luôn sẵn sàng để sử dụng ngay lập tức. Cần đảm bảo
gián đoạn là tối thiểu cho các ứng dụng của khách.

Trong khi hướng dẫn trước đó đã trình bày các chiến lược phục hồi sao lưu cơ bản,
trong hướng dẫn này, tập trung vào đặc tính thứ ba của hệ thống sẵn sàng cao -khả năng dự phịng lỗi. Bạn tìm hiểu về sự vận chuyển log, nhân bản tách và tính
sẵn sàng cao và khơi phục sau sự cố (HADR).

Vận chuyển bản ghi (log)
Cơ sở dữ liệu chính và dự phịng
Một hệ thống HA thường bao gồm một cơ sở dữ liệu chính và một cơ sở dữ liệu
dự phòng. Cơ sở dữ liệu đang chạy hiện tại được gọi là cơ sở dữ liệu chính. Mọi
giao dịch đi qua cơ sở dữ liệu này. Cơ sở dữ liệu dự phòng là một bản sao của cơ
sở dữ liệu chính. Nếu cơ sở dữ liệu chính bị hỏng, cơ sở dữ liệu dự phịng sẽ đảm
nhận các giao dịch hiện có và sẽ trở thành cơ sở dữ liệu chính mới.
Vận chuyển log là gì?


Vận chuyển log là một phương pháp mà các log giao dịch được tự động sao lưu từ
máy chủ DB2 chính và tạo ra khả năng truy cập đến một máy chủ dự phòng.
Cơ sở dữ liệu dự phòng thường được khởi tạo bằng cách khơi phục lại một hình
ảnh sao lưu của các cơ sở dữ liệu chính. Tuy nhiên, cơ sở dữ liệu chính tiếp tục xử
lý giao dịch sau khi cơ sở dữ liệu dự phòng đã được khởi tạo. Nếu những giao dịch
này không được áp dụng cho cơ sở dữ liệu dự phòng, cơ sở dữ liệu dự phịng sẽ
khơng trùng với cơ sở dữ liệu chính. Để giữ cho các cơ sở dữ liệu dự phịng đồng
bộ với các cơ sở dữ liệu chính, cơ sở dữ liệu dự phịng phải có khả năng áp dụng
liên tục các log được cơ sở dữ liệu chính tạo ra. Khi đã đến lúc tiếp quản cơ sở dữ
liệu chính, cơ sở dữ liệu dự phịng có thể làm như vậy ngay lập tức, mà không phải
áp dụng tất cả các log tại thời điểm tiếp quản này.
Lệnh ROLLFORWARD DATABASE được sử dụng để áp dụng các tệp log được
cơ sở dữ liệu chính tạo ra cho cơ sở dữ liệu dự phòng. Trong thực tế, lệnh này phải

được gọi liên tục trên cơ sở dữ liệu dự phịng, sao cho các log đó được áp dụng khi
chúng trở nên sẵn sàng. Q trình này có thể được tạo kịch bản và sắp xếp để chạy
theo định kỳ. Sử dụng việc ghi log tư liệu trong một hệ thống HA. Việc ghi log
vịng trịn khơng thể được sử dụng vì nó khơng cung cấp khả năng khơi phục tiếp
(rollforward).
Câu hỏi đặt ra là: Làm thế nào để bạn có thể làm cho cơ sở dữ liệu chính tạo ra các
tệp log sẵn sàng cho các cơ sở dữ liệu dự phịng để cho bạn có thể áp dụng chúng
liên tục? Câu trả lời là: vận chuyển log.

Thiết lập vận chuyển log


Chìa khóa để thiết lập vận chuyển log là đặt cấu hình cơ sở dữ liệu chính sao cho
nó lưu trữ các log vào một vị trí mà cơ sở dữ liệu dự phịng có khả năng truy nhập.
Thiết lập vị trí lưu trữ log trên cơ sở dữ liệu chính bằng cách thiết lập tham số cơ
sở dữ liệu LOGARCHMETH1. Chọn một ví trí có thể truy cập từ máy chủ dự
phòng, chẳng hạn như một ổ đĩa mạng hoặc ổ chia sẻ được lắp sẵn.
Trên cơ sở dữ liệu dự phòng, hãy thiết lập tham số LOGARCHMETH1 với cùng
giá trị như trên cơ sở dữ liệu chính. Khi một lệnh ROLLFORWARD DATABASE
được dùng trên cơ sở dữ liệu dự phịng, DB2 kéo các log từ vị trí lưu trữ này và
đặt chúng vào cơ sở dữ liệu dự phịng.

Hình 1. Vận chuyển log

Để bảo đảm sự dư thừa, hãy đặt cấu hình tham số LOGARCHMETH2 trên cơ sở
dữ liệu chính. Khi LOGARCHMETH2 được thiết lập, các log được lưu trữ tới cả
hai vị trí được LOGARCHMETH1 và LOGARCHMETH2 thiết lập.
Để vận chuyển log hoạt động, cả hai hệ thống phải được chạy cùng một phiên bản
của DB2.



Một cách khác để thiết lập vận chuyển log là sử dụng một chương trình userexit
trên cơ sở dữ liệu dự phòng để tiếp tục lấy ra các tệp log đã lưu trữ từ cơ sở dữ liệu
chính. Nếu một userexit được sử dụng, cả cơ sở dữ liệu chính và cơ sở dữ liệu dự
phòng phải được đặt cấu hình với cùng chương trình userexit. Userexit là một tính
năng cũ và chức năng của nó đã được thay thế bằng LOGARCHMETH1 kể từ
phiên bản 8.2. Tuy nhiên, vì lý do tương thích ngược, phương thức của chương
trình userexit vẫn còn được hỗ trợ trong phiên bản 8.2 và phiên bản 9.

Tính sẵn sàng cao thơng qua nhân bản tách trực tuyến và trợ giúp I/O tạm dừng
Nhân bản tách và I/O tạm dừng
Trong hướng dẫn sao lưu và phục hồi, bạn đã biết rằng một phép sao lưu trực
tuyến cho phép những người dùng vẫn duy trì các kết nối của họ với cơ sở dữ liệu
trong khi cơ sở dữ liệu đang được sao lưu.
Mặc dù điều này đáp ứng các tiêu chí của một hệ thống sẵn sàng cao, những q
trình này có thể tốn thời gian đối với các cơ sở dữ liệu lớn. Cịn có một chiến lược
phục hồi sao lưu khác nhanh hơn so với các sao lưu trực tuyến -- đó là nhân bản
tách.
Với nhân bản tách, thay vì nhận một bản sao lưu của cơ sở dữ liệu bằng cách sử
dụng tiện ích sao lưu DB2, bạn tạo một bản sao đĩa của các thư mục cơ sở dữ liệu
và sau đó khôi phục lại bản sao đĩa này khi cần thiết. Q trình này có ưu điểm sau
trên phương pháp phục hồi sao lưu cơ sở dữ liệu truyền thống:


Nó giúp loại bỏ chi phí hoạt động sao lưu từ máy chính, thường tốn thời
gian với cơ sở dữ liệu lớn.





Q trình khơi phục lại khi sử dụng nhân bản tách nhanh hơn khi sử dụng
các tiện ích khơi phục lại.

Nhân bản tách
Chia tách một bản sao có nghĩa là tạo một bản sao "tức thời" của cơ sở dữ liệu
nguồn bằng cách ghi dữ liệu vào một đĩa cứng. Khi cần thiết, bản sao chép đĩa này
có thể được sử dụng để nhân bản một cơ sở dữ liệu mới, nhưng giống nhau hoặc
sử dụng như là một bản sao lưu để khôi phục lại cơ sở dữ liệu ban đầu.
Phương pháp bạn chọn để chia tách bản sao khơng phải trong sự kiểm sốt của
DB2. Hãy tạo ra bản sao hệ thống tệp của các thư mục cơ sở dữ liệu nếu bạn
muốn. Chúng tôi đề xuất sử dụng bất kỳ thiết bị lưu trữ thông minh nào như là
IBM Storage Server (ESS-máy chủ lưu trữ của IBM), được gọi là Shark và EMC
Symmetrix 3330. Khi sử dụng cơng nghệ FlashCopy, ESS có thể thiết lập các bản
sao gần như tức thời của dữ liệu hoàn toàn bên trong nó. Tính năng phân tách tức
thời của phần mềm EMC Symmetrix TimeFinder (Trình tìm kiếm thời gian EMC)
trên Symmetrix cũng có khả năng chia tách một bản sao nhân bản theo một cách
tương tự.
Một bản sao phân tách của một cơ sở dữ liệu bao gồm toàn bộ các nội dung của
thư mục cơ sở dữ liệu, tất cả các vùng chứa không gian bảng và thư mục cơ sở dữ
liệu cục bộ . Các thư mục log hoạt động có thể được bao gồm, tuỳ thuộc vào cách
bạn muốn sử dụng hình ảnh nhân bản tách này như thế nào. Hãy đọc thêm về chủ
đề này sau.
I/O tạm dừng
Khi chia tách một bản sao, điều quan trọng là đảm bảo rằng khơng có trang ghi
nào xảy ra trong cơ sở dữ liệu. Sự hỗ trợ I/O tạm dừng của DB2 cho phép bạn thực
hiện các phép nhân bản tách mà khơng cần phải đóng cơ sở dữ liệu. Ý tưởng là để


đặt cơ sở dữ liệu trong một chế độ tạm dừng ghi trước khi chia tách bản sao đó và
sau khi chia tách, tiếp tục lại các hoạt động I/O bình thường.

Trong khi cơ sở dữ liệu đang ở trong chế độ tạm dừng (treo) ghi, tất cả các không
gian bảng của nó được đặt trong trạng thái SUSPEND_WRITE. Mọi hoạt động
vẫn tiếp tục chạy bình thường. Tuy nhiên, một số giao dịch có thể phải chờ nếu
chúng yêu cầu vào/ra với đĩa. Các giao dịch tiến hành bình thường ngay khi các
phép ghi vào cơ sở dữ liệu được nối lại.
Các lệnh sau đây được sử dụng để tạm dừng và tiếp tục các phép ghi trên một cơ
sở dữ liệu:
Để tạm dừng các phép ghi, hãy dùng:

CONNECT TO database-alias
SET WRITE SUSPEND FOR DATABASE

Để tiếp tục các phép ghi, hãy dùng:

SET WRITE RESUME FOR DATABASE

Công cụ db2inidb
Bây giờ bạn có một bản sao nhân bản của cơ sở dữ liệu nguồn, nó chính là một
bản sao đĩa. Bạn khơng thể sử dụng lệnh RESTORE DATABASE trên bản sao đĩa


để khôi phục lại bất kỳ cơ sở dữ liệu nào vì đây khơng phải là một bản sao lưu cơ
sở dữ liệu DB2. Nó chỉ là một bản sao đĩa của các tệp cơ sở dữ liệu. Để khởi tạo
bản sao đĩa vào trong một cơ sở dữ liệu DB2 thích hợp cho sử dụng, hãy sử dụng
lệnh db2inidb:

DB2INIDB database-alias
AS {SNAPSHOT | STANDBY | MIRROR}
[RELOCATE USING config_file]


Bạn có thể khởi tạo một bản sao theo ba cách khác nhau:


Ảnh chụp: Tạo ra một bản sao rập khuôn cơ sở dữ liệu nguồn.



Dự phòng (Standby): Tạo ra một cơ sở dữ liệu dự phịng.



Nhân bản (Mirror): Khơi phục lại cơ sở dữ liệu nguồn ban đầu.

Cả hai tùy chọn Ảnh chụp và Dự phòng tạo ra một cơ sở dữ liệu mới, nhưng giống
hệt với cơ sở dữ liệu nguồn khi sử dụng hình ảnh nhân bản. Do đó, cơ sở dữ liệu
nhân bản tách không thể tồn tại trên cùng một hệ thống với cơ sở dữ liệu nguồn
bởi vì nó có cùng cấu trúc và sử dụng cùng tên thể hiện như cơ sở dữ liệu nguồn.
Nếu cơ sở dữ liệu nhân bản tách phải tồn tại trên cùng một hệ thống với cơ sở dữ
liệu nguồn, hãy xác định tùy chọn tệp cấu hình RELOCATE USING khi dùng
lệnh db2inidb.
Định dạng của tệp cấu hình định vị lại (tệp văn bản) như sau. Sử dụng tệp cấu hình
để định vị lại các cấu trúc thư mục cơ sở dữ liệu:


DB_NAME=oldName,newName
DB_PATH=oldPath,newPath
INSTANCE=oldInst,newInst
NODENUM=nodeNumber
LOG_DIR=oldDirPath,newDirPath
CONT_PATH=oldContPath1,newContPath1

CONT_PATH=oldContPath2,newContPath2

Nhân bản một cơ sở dữ liệu bằng cách sử dụng tùy chọn ảnh chụp db2inidb
Tùy chọn này tạo ra một bản sao tức thời của cơ sở dữ liệu nguồn tại thời điểm khi
I/O tạm dừng. Do đó, có tên là ảnh chụp (snapshot). Trong quá trình khởi tạo, cơ
sở dữ liệu nhân bản tách trải qua việc phục hồi sự cố. Sau khi việc hồi phục sự cố
hoàn thành, cơ sở dữ liệu sẵn sàng để sử dụng ngay. Bất kỳ hoạt động không cam
kết nào nổi bật tại thời điểm nhân bản tách được khôi phục.
Các bước để tạo ra một cơ sở dữ liệu sao chép rập khuôn khi sử dụng tùy chọn
snapshot db2inidb là:
1. Tạm dừng I/O trên cơ sở dữ liệu nguồn:


CONNECT TO source-database-alias
SET WRITE SUSPEND FOR DATABASE

2. Phân tách bản sao. Để phân tách bản sao, sử dụng phương pháp sao chép
tệp hệ thống hoặc bất kỳ các sản phẩm nào của nhà cung cấp được nói trên.
Nếu bạn chọn sử dụng một sản phẩm của nhà cung cấp, hãy đảm bảo bạn
tham khảo tài liệu có thể áp dụng cho các thiết bị của bạn về cách tạo ra
một nhân bản tách. Bất kể các sự thay đổi trong quá trình nhân bản tách, tất
cả những điều sau đây phải được nhân bản tách đồng thời :
o

Toàn bộ nội dung của thư mục cơ sở dữ liệu.

o

Tất cả các thùng chứa không gian bảng.


o

Thư mục cơ sở dữ liệu cục bộ.

o

Thư mục log đang hoạt động, nếu nó khơng nằm trong thư mục cơ
sở dữ liệu.

Tất cả các thông tin có trước được lưu trữ trước trong khung nhìn hệ thống
SYSIBMADM.DBPATHS. Hãy chạy câu lệnh select * from
sysibmadm.dbpaths để lấy thơng tin này. Bạn cũng có thể xem các nội dung
của khung nhìn này từ Trung tâm điều kiển. Hình dưới đây chỉ ra một nội
dung thí dụ về khung nhìn:


Hình 2. Khung nhìn SYSIBMADM.DBPATHS

Khung nhìn SYSIBMADM.DBPATHS cung cấp các thông tin sau:
o

Thư mục cơ sở dữ liệu là C:\DB2\NODE0000\SQL00001.

o

Các đường dẫn chứa không gian bảng là c:\db2\test1\userspace3 and
c:\db2\test1\userspace2.

o


Thư mục cơ sở dữ liệu cục bộ là C:\DB2\NODE0000\SQLDBDIR
(Điều này không được hiển thị trong hình, nhưng thư mục cơ sở dữ
liệu cục bộ là thư mục SQLDBDIR ở cùng mức với thư mục cơ sở
dữ liệu).

o

Thư mục log đang hoạt động là
C:\DB2\NODE0000\SQL00001\SQLOGDIR.

Tất cả những thư mục này phải được nhân bản tách.
3. Tiếp tục lại I/O trên cơ sở dữ liệu nguồn. Hãy dùng lệnh sau đây để tiếp tục
I/O trên cơ sở dữ liệu nguồn. Sử dụng cùng phiên kết nối bước 1 khi dùng
lệnh này:


SET WRITE RESUME FOR DATABASE

4. Làm cho bản sao phân tách có thể truy cập được:
a. Trên máy đích, tạo ra cùng cá thể DB2 như nó có trên máy nguồn.
b. Khôi phục lại nhân bản tách được lấy từ bước 2 đến cùng các đường
dẫn chính xác giống như chúng đã có trên máy nguồn. Nếu nhân bản
tách có trên một ổ đĩa mạng, hãy gắn ổ đĩa mạng tới máy đích.
c. Chạy lệnh sau đây để tạo danh mục cơ sở dữ liệu trên máy đích:

CATALOG DATABASE database-name AS database-alias ON path

d.
e.


ở đây:

f.

Cơ sở dữ liệu-các bí danh (database-alias) phải phù hợp với các bí danh cơ

sở dữ liệu của cơ sở dữ liệu nguồn.
g.

Đường dẫn (path) phải phù hợp với đường dẫn cơ sở dữ liệu của cơ sở dữ

liệu nguồn (Sử dụng lệnh LIST DB DIRECTORY để hiển thị đường dẫn cơ sở dữ
liệu hoặc kiểm tra trường DB_STORAGE_PATH trong khung nhìn
SYSIBMADM.DBPATHS, như chỉ ra trong Hình 2).


5. Khởi tạo cơ sở dữ liệu của nhân bản tách để có một cơ sở dữ liệu nhân bản
rập khn.
. Khởi động cá thể trên máy đích khi sử dụng lệnh db2start.
a. Khởi tạo cơ sở dữ liệu bản sao phân tách khi dùng tùy chọn ảnh
chụp (snapshot):

DB2INIDB database-alias AS SNAPSHOT

Lệnh db2inidb có trước khởi tạo một phép phục hồi sự cố, nó khơi
phục tất cả các giao dịch chưa được cam kết tại thời điểm nhân bản
tách, nhờ đó làm cho cơ sở dữ liệu bền vững. Điều cần thiết để có tất
cả các tệp log từ nguồn đã hoạt động tại thời điểm phân tách. Thư
mục log đang hoạt động không chứa bất kỳ tệp log nào không phải
là một phần của bản sao phân tách. Sau khi hoàn thành phép phục

hồi sự cố, cơ sở dữ liệu đã sẵn sàng cho các hoạt động.
Hình 3 tóm tắt quá trình nhân bản tách khi sử dụng tùy chọn ảnh
chụp:


Hình 3. Nhân bản tách khi sử dụng tùy chọn ảnh chụp

Tạo ra một cơ sở dữ liệu dự phòng bằng cách sử dụng tùy chọn dự phòng db2inidb
Tùy chọn dự phòng db2inidb tạo ra một cơ sở dữ liệu dự phòng của cơ sở dữ liệu
nguồn, cũng được gọi là cơ sở dữ liệu chính.
Khi một nhân bản tách được khởi tạo như là một cơ sở dữ liệu dự phịng, ngay lập
tức nó được đặt trong trạng thái chờ cam kết tiếp. Liên tục áp dụng các tệp log
chưa hoạt động từ cơ sở dữ liệu chính khi chúng trở nên sẵn sàng, duy trì cơ sở dữ
liệu dự phịng hiện tại với cơ sở dữ liệu chính. Phương pháp vận chuyển log đã
được thảo luận trước đó được sử dụng ở đây để tạo ra các log sẵn sàng cho cơ sở
dữ liệu dự phòng. Nếu một sự cố xảy ra trên cơ sở dữ liệu chính, hãy sử dụng cơ
sở dữ liệu dự phòng để đảm nhận vai trị của cơ sở dữ liệu chính.
Các bước để tạo một cơ sở dữ liệu dự phòng khi sử dụng tùy chọn dự phòng
db2inidb là:
1. Tạm dừng I/O trên cơ sở dữ liệu chính. Thực hiện cùng các bước như trong
kịch bản ảnh chụp để tạm dừng I/O trên cơ sở dữ liệu chính.


2. Phân tách nhân bản. Sử dụng phương pháp thích hợp để phân tách bản sao
cơ sở dữ liệu chính. Nhân bản tách bao gồm như sau:
o

Toàn bộ các nội dung của thư mục cơ sở dữ liệu.

o


Tất cả các thùng chứa không gian bảng.

o

Thư mục cơ sở dữ liệu cục bộ.

Bạn không cần phải phân tách thư mục log hoạt động trong kịch bản này.
Cách các log được xử lý được trình bày sau.
3. Tiếp tục I/O trên cơ sở dữ liệu nguồn. Thực hiện cùng các bước như trong
kịch bản ảnh chụp để tiếp tục I/O trên cơ sở dữ liệu chính.
4. Tạo ra bản sao phân tách có thể truy cập. Thực hiện cùng các bước như
trong kịch bản ảnh chụp để tạo ra bản sao phân tách có thể truy cập.
5. Khởi tạo cơ sở dữ liệu nhân bản tách như là một cơ sở dữ liệu dự phòng.
Lệnh sau khởi tạo cơ sở dữ liệu và đặt nó trong trạng thái chờ cam kết tiếp,
vì vậy có thể áp dụng các log từ cơ sở dữ liệu chính.

DB2INIDB database-alias AS STANDBY

6. Tiếp tục áp dụng các log đã được cơ sở dữ liệu chính lưu trữ cho cơ sở dữ
liệu dự phòng bằng cách sử dụng lệnh ROLLFORWARD DATABASE để
giữ cho cơ sở dữ liệu dự phòng càng giống như hiện tại càng tốt, các tệp log
chưa kích hoạt mới (đây là những log đã được lưu trữ) từ cơ sở dữ liệu


chính cần được tiếp tục áp dụng cho cơ sở dữ liệu dự phòng khi chúng trở
nên sẵn sàng. Thực hiện điều này bằng cách dùng lệnh ROLLFORWARD
DATABASE trên cơ sở dữ liệu dự phịng mà khơng cần dùng tùy chọn
STOP hoặc COMPLETE.
Để tạo ra các tệp các log có thể truy cập cho cơ sở dữ liệu dự phòng, sử

dụng phương pháp vận chuyển log đã thảo luận trong phần Thiết lập vận
chuyển log.
Tiếp tục áp dụng các log đã lưu trữ cho cơ sở dữ liệu dự phòng bằng cách
sử dụng lệnh ROLLFORWARD DATABASE:

ROLLFORWARD DB database-alias TO END OF LOGS

7. Đưa cơ sở dữ liệu dự phòng thành trực tuyến.
Trong trường hợp có sự cố hỏng hóc của cơ sở dữ liệu chính, bạn muốn cơ
sở dữ liệu dự phòng đảm nhận vai trò của cơ sở dữ liệu chính bằng cách
chuyển nó sang trực tuyến. Để chuyển cơ sở dữ liệu thành trực tuyến, hãy
thực hiện như sau:
a.

Tạo ra đường dẫn log hoạt động có thể truy cập cho cơ sở dữ liệu dự phòng.

Trong bước 6, bạn chỉ lấy ra và áp dụng các log đã lưu trữ do cơ sở dữ liệu chính
tạo ra cho cơ sở dữ liệu dự phịng. Bạn đã khơng áp dụng các log hoạt động. Khi
bạn đã sẵn sàng để đưa cơ sở dữ liệu dự phòng thành trực tuyến, hãy lấy các log
hoạt động ra khỏi cơ sở dữ liệu chính và đặt chúng vào cơ sở dữ liệu dự phịng.
Q trình lấy ra này có thể được làm thủ cơng, đó là, sao chép các log hoạt động
từ cơ sở dữ liệu chính vào thư mục LogPath của máy chủ dự phòng.


b. Khôi phục tiếp cơ sở dữ liệu đến cuối các log và dừng lại:

ROLLFORWARD DB database-alias TO END OF LOGS AND STOP

Sau khi quá trình cam kết tiếp đã hoàn thành, cơ sở dữ liệu đã sẵn
sàng cho sử dụng.

Hình sau đây tóm tắt q trình nhân bản tách bằng cách sử dụng các
tùy chọn dự phịng:

Hình 4. Nhân bản tách khi sử dụng tùy chọn dự phòng


Tạo một hình ảnh sao lưu của các cơ sở dữ liệu nguồn khi sử dụng tùy chọn nhân
bản db2inidb
Tùy chọn nhân bản của lệnh db2inidb được sử dụng để tạo ra một bản sao lưu tệp
nhân bản nhanh của cơ sở dữ liệu nguồn. Nhân bản tách có thể được dùng để khôi
phục lại cơ sở dữ liệu nguồn nếu cần. Thủ tục này có thể được dùng thay vì thực
hiện các phép sao lưu và khơi phục lại cơ sở dữ liệu trên cơ sở dữ liệu nguồn.
Các bước để tạo ra một hình ảnh sao lưu của các cơ sở dữ liệu nguồn khi sử dụng
tùy chọn nhân bản db2inidb là:
1. Tạm dừng I/O trên cơ sở dữ liệu nguồn. Thực hiện theo các bước tương tự
như trong kịch bản ảnh chụp để tạm dừng I/O trên cơ sở dữ liệu nguồn.
2. Phân tách bản sao. Sử dụng phương pháp thích hợp để phân tách bản sao cơ
sở dữ liệu nguồn. Hoạt động nhân bản tách phải bao gồm như sau:
o

Toàn bộ nội dung của thư mục cơ sở dữ liệu.

o

Tất cả các thùng chứa không gian bảng.

o

Thư mục cơ sở dữ liệu cục bộ.


Bạn không cần phải phân tách thư mục log đang hoạt động trong kịch bản
này.
3. Tiếp tục I/O trên cơ sở dữ liệu nguồn. Thực hiện theo các bước tương tự
như trong kịch bản ảnh chụp để tiếp tục I/O trên cơ sở dữ liệu nguồn.
4. Khôi phục lại các cơ sở dữ liệu nguồn bằng cách sử dụng nhân bản tách.
Khơng có cơ sở dữ liệu "đích" nào trong kịch bản này. Mục đích của các


tùy chọn nhân bản là sử dụng bản sao nhân bản để phục hồi cơ sở dữ liệu
nguồn khi cần thiết.
a. Dừng thể hiện dữ liệu bằng lệnh db2stop.
b. Sao chép các tệp dữ liệu của các cơ sở dữ liệu nhân bản tách lên cơ
sở dữ liệu ban đầu.
c. Khởi động thể hiện dữ liệu bằng lệnh db2start.
d. Dùng lệnh sau để khởi tạo cơ sở dữ liệu nhân bản tách. Việc này
thay thế cơ sở dữ liệu nguồn bằng hình ảnh nhân bản tách và đặt nó
vào trong một trạng thái chờ cam kết tiếp, vì vậy các log có thể được
áp dụng lại.

DB2INIDB database-alias AS MIRROR

e.

Khơi phục tiếp tiếp cơ sở dữ liệu đến cuối các log. Sau khi

việc cam kết tiếp đã hoàn thành, cơ sở dữ liệu đã sẵn sàng để sử
dụng.

ROLLFORWARD DB database-alias TO END OF LOGS AND STOP


5. Hình 5 tóm tắt một thủ tục nhân bản tách khi sử dụng tùy chọn nhân bản:


6.

Hình 5. Nhân bản tách khi sử dụng tùy chọn nhân bản

Nhân bản tách trong một môi trường phân vùng
Trong môi trường cơ sở dữ liệu phân vùng, cần tạm dừng I/O trên mỗi phân vùng
trong quá trình nhân bản tách. Sau đó tiếp tục I/O trên mỗi phân vùng. Cùng áp
dụng công cụ db2inidb, công cụ này phải được chạy trên mỗi phân vùng được
nhân bản để khởi tạo cơ sở dữ liệu.
Bởi vì mỗi phân vùng được xử lý độc lập, các phân vùng có thể được tạm dừng
hoạt động độc lập với nhau. Điều đó có nghĩa là bạn không cần phải dùng một
db2_all để tạm dừng hoạt động trên tất cả các phân vùng. Nếu mỗi phân vùng
được tạm dừng một cách độc lập, thì cuối cùng hãy tạm dừng hoạt động phân
vùng danh mục. Điều này là do một nỗ lực để tạm dừng I/O trên bất kỳ một trong
các nút khơng có danh mục yêu cầu cho phép một kết nối đến phân vùng danh
mục cho phép. Nếu phân vùng danh mục tạm dừng hoạt động, thì ý đồ kết nối bị
treo.


Công cụ db2inidb không yêu cầu bất kỳ kết nối nào tới cơ sở dữ liệu. Vì thế, bạn
có thể chạy công cụ này một cách độc lập trên mỗi bản sao phân tách hoặc sử
dụng db2_all để chạy nó đồng thời trên tất cả các phân vùng. Yêu cầu duy nhất
này để trình quản lý cơ sở dữ liệu được bắt đầu.
Tạm dừng các phép ghi trên một cơ sở dữ liệu có 3 phân vùng 0, 1, 2, với 0 là
phân vùng danh mục, hãy dùng các lệnh sau đây:

export DB2NODE=1

db2 terminate
db2 connect to database-alias
db2 set write suspend for database

export DB2NODE=2
db2 terminate
db2 connect to database-alias
db2 set write suspend for database

export DB2NODE=0
db2 terminate


db2 connect to database-alias
db2 set write suspend for database

Để chạy đồng thời db2inidb trên tất cả các phân vùng, dùng:

db2_all "db2inidb database-alias as db2inidb-option"

Tính sẵn sàng cao và khơi phục sau sự cố (HADR)
Tính sẵn sàng cao và khơi phục sau sự cố (HADR) của DB2 là một tính năng sao
chép cơ sở dữ liệu để tạo ra một giải pháp có tính sẵn sàng cao. HADR hiện tại có
sẵn chỉ trong môi trường cơ sở dữ liệu phân vùng đơn.
Hai máy, máy chính và máy dự phịng, đều tham gia vào việc thiết lập HADR:
Máy chính là máy ở đó cơ sở dữ liệu nguồn được lưu trữ. Khi giao dịch được xử lý
tại cơ sở dữ liệu nguồn, các log cơ sở dữ liệu sẽ được tự động chuyển đến máy chủ
dự phòng. Máy chủ dự phòng lưu trữ một cơ sở dữ liệu được nhân bản từ cơ sở dữ
liệu nguồn. Nó có thể được khởi tạo bằng cách sử dụng khôi phục lại cơ sở dữ liệu
hoặc bằng nhân bản tách. Khi HADR được khởi động, các tệp log được thu nhận

và chúng có vai trị trên máy dự phịng. Thơng qua việc sử dụng lại log liên tục, cơ
sở dữ liệu dự phịng duy trì một bản sao rập khuôn của các cơ sở dữ liệu chính và
hoạt động như một cơ sở dữ liệu dự phòng.


×