Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
332,71 KB
Nội dung
www.updatesofts.com Chương QUẢN LÝ REDO LOG FILES 8.1.S? DNG CÁC REDO LOG FILES 8.1.1 Redo log file Oracle server sử dụng online redo log files để giảm thiểu việc mát liệu database Redo log files ghi lại tất thay đổi database buffer cache trừ vài ngoại lệ ghi liệu trực tiếp Redo log files sử dụng đến instance gặp cố ta muốn khôi phục lại liệu commit chưa kịp ghi lên data files Redo log files sử dụng trường hợp khôi phục liệu Quản trị viên cần thiết lập online redo log files database để tránh việc mát thông tin database việc sử dụng file Hình vẽ 26 Nhóm redo log 8.1.2 Online Redo Log Groups Là nhóm riêng biệt online redo log files gọi online redo log group Background process LGWR thực việc ghi đồng thời thông tin tương tự vào member thuộc group Khi group đầy tiếp tục chuyển sang ghi liệu group Oracle server, thơng thường, cần 02 online redo log file groups để vận hành database 8.1.3 Online Redo Log Members Mỗi online redo log file group gọi member (thành viên) Mỗi member nhóm có số thứ tự (log sequence numbers) phân biệt member có kích thước Số thứ tự gán Oracle server bắt đầu ghi liệu vào log group để phân biệt redo log file Số log sequence number lưu trữ control file phần header tất data files ORACLE 9i – Kiến trúc Quản trị Trang 79 www.updatesofts.com 8.1.4 Nội dung Online Redo Log Files (Members) Online redo log files lưu trữ redo records hay gọi redo entries Mỗi redo record nhóm change vectors (vector thay đổi liệu), vector đặc trưng cho thay đổi block liệu thuộc database Ví dụ, ta thay đổi giá trị lương bảng employee, Oracle tạo redo record lưu trữ lại việc thay đổi liệu data segment block, rollback segment block transaction table tương ứng với thay đổi liệu nói Các redo entries lưu trữ lại liệu để từ ta tái tạo lại thay đổi liệu database, bao gồm rollback segments Khi thực phục hồi (recover) database sử dụng redo data, Oracle đọc change vectors có redo records áp thay đổi vào blocks tương ứng Các redo records lưu trữ nhớ đệm SGA Mỗi thực commit transaction, LGWR ghi lại redo records transaction từ redo log buffer thuộc SGA vào online redo log file, gán số hiệu system change number (SCN) cho transaction commit Chi redo records thuộc transaction lưu trữ an tồn đĩa user process nhận thông báo: transaction has been committed Các redo records ghi vào online redo log file trước transaction tương ứng commit Khi redo log buffer đầy, transaction commit, LGWR đẩy tất redo log entries redo log buffer online redo log file, redo records chưa commit để cần, Oracle khôi phục (roll back) lại thay đổi 8.1.5 Active Inactive Online Redo Log Files Tại thời điểm, Oracle sử dụng số online redo log files để lưu trữ redo records có redo log buffer Online redo log file trạng thái sẵn sàng cho việc ghi liệu, gọi current online redo log file Các online redo log files cần thiết cho việc khôi phục instance gọi active online redo log files Trái lại, online redo log files không cần thiết cho việc khôi phục instance gọi inactive Khi quản trị viên database đặt chế độ enable archiving, Oracle tái sử dụng hay ghi đè lên active online log file ARCn lưu trữ hết nội dung Trong trường hợp disable archiving, online redo log file cuối điền đầy, việc lưu file tiếp tục thực active file 8.1.6 Thiết lập Redo Log Files khởi tạo Việc khởi tạo ban đầu tập hợp online redo log file bao gồm groups members thực trình tạo database Các tham số xác định giới hạn số lượng online redo log files: Tham số MAXLOGFILES lệnh CREATE DATABASE xác định số lượng tối đa online redo log groups Số lượng tối đa cho MAXLOGFILES 255 Tham số MAXLOGMEMBERS lệnh CREATE DATABASE quy định số lượng tối đa members có group Tham số khởi tạo LOG_FILES xác định số lượng tối đa log groups mở database thời điểm thời Giá trị không vượt giá trị MAXLOGFILES*MAXLOGMEMBERS ORACLE 9i – Kiến trúc Quản trị Trang 80 www.updatesofts.com 8.2.LGWR, LOG SWITCHES VÀ CHECKPOINTS Hình vẽ 27 Tổ chức redo log files 8.2.1 Redo Log Buffer Background process LGWR Oracle Server ghi lại thay đổi database có redo log buffer Redo log buffer sử dụng theo kiểu xoay vịng Theo đó, redo entries tiên trình LGWR ghi vào online redo log groups gọi online redo log group thời (current) theo tình sau: Khi commit transaction Khi redo log buffer đầy Khi LGWR vượt thời gian timeout (3 giây) Trước DBWR ghi blocks bị thay đổi database buffers cache vào data files Các members redo log group tiến trình LGWR ghi lên với nội dung liệu Cho nên khơng có khác biệt members log group mà có khác members log group khác 8.2.2 Log Switches LGWR ghi liệu lên online redo log files cách tuần tự, tức online redo log group ghi đầy, LGWR lại chuyển sang ghi lên group Khi online redo log file cuối ghi đầy, LGWR lại quay trở online redo log group lại bắt đầu trình ghi Log switch kiện xảy LGWR dừng việc ghi online redo log group chuyển sang ghi online redo log group khác Quản trị viên database thực log switches tay Mỗi xảy log switch, LGWT ghi liệu lên log group gán số hiệu để xác định redo entries vừa lưu giữ Mỗi xảy kiện log switch đồng thời kiện checkpoint khởi tạo ORACLE 9i – Kiến trúc Quản trị Trang 81 www.updatesofts.com 8.2.3 Checkpoints Khi có checkpoints thì: Tất liệu database buffers bị thay đổi, tính thời điểm xảy checkpoint, Background process DBWR ghi lên datafiles Background process CKPT cập nhật phần headers data files control files Checkpoints xảy tất data files database xảy với data files cụ thể Checkpoint xảy theo tình sau: Mỗi có log switch Khi shut down instance với chế độ trừ chế độ abort Xảy theo thời gian quy định tham LOG_CHECKPOINT_INTERVAL LOG_CHECKPOINT_TIMEOUT Khi có yêu cầu trực tiếp quản trị viên số khởi tạo Thông tin checkpoint lưu trữ Alert file trường hợp tham số khởi tạo LOG_CHECKPOINTS_TO_ALERT đặt TRUE Và ngược lại với giá trị FALSE 8.3.LÊN K HO*CH S? DNG REDO LOG FILES 8.3.1 Xác định số lượng Online redo log files Để xác định số lượng online redo log files sử dụng cho phù hợp với database ta cần phải kiểm tra với nhiều cầu hình khác Trong số trường hợp, database instance cần tới 02 groups Tuy nhiên, số trường hợp khác, database instance lại cần tới nhiều groups để ln đảm bảo có groups sẵn dùng cho LGWR Ví dụ, thông điệp ghi trace file hay Alert file cho biết LGWR thường xuyên phải chờ group chưa kết thúc checkpoint, group chưa lưu trữ (archived) lúc lúc ta cần thêm groups Mặc dù Oracle server cho phép sử dụng nhiều groups với số lượng members khác nhau, ta nên cố gắng xây dựng cấu hình cân đối (số lượng members group nên nhau) 8.3.2 Nơi đặt Online Redo Log Files Khi sử dụng đồng thời nhiều online redo log files, ta nên đặt members group phần đĩa khác Một điều lưu ý member khơng sẵn dùng (available) mà members khác sẵn dùng instance khơng thể shut down Việc tách biệt archive log files online redo log files phần đĩa khác nhau, làm giảm bớt xung đột background process ARCH LGWR Các data files online redo log files nên đặt phần đĩa khác để giảm bớt xung đột LGWR DBWR hạn chế việc liệu data files online redo log files trường hợp hỏng ổ đĩa ORACLE 9i – Kiến trúc Quản trị Trang 82 www.updatesofts.com 8.3.3 Xác định kích thước cho Online Redo Log Files Kích thước tối thiểu online redo log file 50 K cịn kích thước tối đa tuỳ thuộc vào hệ điều hành Các members thuộc groups khác có kích thước khác nhau; Tuy nhiên ta nên đặt kích thước giống members Việc sử dụng groups có kích thước khác nên thực cách tạm thời ta muốn thay đổi kích thước members Trong trường hợp này, ta cần tạo online redo log groups với kích thước khác, sau loại bỏ (remove) groups cũ Một số tình ảnh hưởng tới cấu hình online redo log files: Số lượng log switches checkpoints Số lượng độ lớn redo entries Độ lớn vùng không gian lưu trữ thứ cấp 8.3.4 Lưu trữ redo log files Quản trị viên database cần phải định đặt chế độ ARCHIVELOG hay chế độ NOARCHIVELOG cho database Chế độ NOARCHIVELOG Với chế độ NOARCHIVELOG, online redo log files bị ghi đè online redo log file ghi đầy xảy log switches LGWR không ghi đè lên redo log group kết thúc checkpoint group Hình vẽ 28 Lưu trữ liệu chế độ NOARCHIVING Chế độ ARCHIVELOG Trong trường hợp database thiết lập chế độ ARCHIVELOG, groups đầy, trạng thái inactive lưu giữ Do tất thay đổi database ghi lại online redo log files, quản trị viên database sử dụng phương pháp chép vật lý (physical backup) khôi phục lại liệu commit database mà không sợ bị liệu ORACLE 9i – Kiến trúc Quản trị Trang 83 www.updatesofts.com Hình vẽ 29 Lưu trữ liệu chế độ ARCHIVING Có hai hình thức lưu trữ online redo log files: Thực lưu trữ tay (manually) Lưu trữ redo log file đầy theo lệnh quản trị viên database Lưu trữ tự động (automatically) Lưu trữ redo log file đầy xảy log switch Tham số LOG_ARCHIVE_START parameter file xác định chế độ lưu trữ LOG_ARCHIVE_START = TRUE, thực lưu trữ chế độ tự động LOG_ARCHIVE_START = FALSE, thực lưu trữ chế độ manually 8.4.ĐI7U KHIBN L)U TR" SAU ĐI VI PRIMARY/STANDBY Oracle cung cấp chế điều khiển switch online redo log group dựa theo thời gian (time-based) Trong cấu hình primary/standby, tất noncurrent logs primary site lưu trữ vận chuyển tới standby database Việc hiệu hạn chế số lượng redo records Việc thực lưu trữ sau standby database cho tất thay đổi online redo log primary database lưu trữ sau Để điều khiển việc lưu trữ sau này, ta cần sử dụng tham số ARCHIVE_LAG_TARGET Việc thiết lập tham số cho phép ta hạn chế, xác định khoảng thời gian sử dụng cho lưu trữ sau 8.4.1 Thiết lập tham số ARCHIVE_LAG_TARGET Khi thiết lập tham số khởi tạo ARCHIVE_LAG_TARGET, Oracle kiểm tra theo định kỳ thời gian online redo log instance thời phát sinh log switch theo điều kiện sau: Giả sử ban đầu, current log tạo sau n giây sau lại m giây để lưu current log đĩa Khi khoảng thời gian n + m tương ứng với giá trị tham số ARCHIVE_LAG_TARGET Current log chứa redo records ORACLE 9i – Kiến trúc Quản trị Trang 84 www.updatesofts.com Tham số ARCHIVE_LAG_TARGET cho biết giới hạn thời gian (tính theo đơn vị giây) mà current log cần sử dụng Do thời gian lưu trữ khơng xác khoảng thời gian log switch Tham số khởi taon nên thiết lập với giá trị khoảng 30 giây ARCHIVE_LAG_TARGET = 1800 Giá trị tương ứng với việc không thực chức log switching Đây giá trị thiết lập mặc định Ta đặt giá trị cho tham số ARCHIVE_LAG_TARGET database không chế độ lưu (standby database) Ví dụ, tham số ARCHIVE_LAG_TARGET thiết lập để bắt buộc logs phải thực thao tác switch lưu trữ lên ổ đĩa ARCHIVE_LAG_TARGET tham số động ta thay đổi giá trị tham số thông qua câu lệnh ALTER SYSTEM SET 8.4.2 Các yếu tố ảnh hưởng tới tham số ARCHIVE_LAG_TARGET Có số yếu tố cần xem xét ta thiết lập giá trị cho tham số ARCHIVE_LAG_TARGET Tổng thời gian switch (xem thời gian lưu trữ) logs Tần suất thực switch log đầy Lượng liệu redo bị database làm việc chế độ standby Tham số ARCHIVE_LAG_TARGET trở nên không hữu dụng log switch khoảng thời gian ngắn Tuy nhiên, trường hợp redo tạo với tốc độ không nhau, khoảng thời gian ngắt quãng (interval) đưa giới hạn current log Khi database trạng thái nghỉ (idle) redo records khơng tạo thì, sau khoảng thời gian interval, log switch xảy đẩy ghi tất redo records lên standby database Trong trường hợp ARCHIVE_LAG_TARGET thiết lập với giá trị thấp khơng tốt cho hệ thống mặt hiệu suất Là hệ thống liên tục phải thực log switches Do ta nên chọn giá trị hợp lý để nâng cao hiệu suất hệ thống 8.5.XÁC ĐNH CH ĐD L)U TR" Để biết thông tin việc lưu trữ, ta sử dụng số cách sau: 8.5.1 Sử dụng lệnh Server Manager Câu lệnh cho biết chế độ log database Ví dụ: SVRMGR> ARCHIVE LOG LIST Database log mode No Archive Mode Automatic archival Disabled Archive destination ?/dbs/arch Oldest online log sequence 688 Current log sequence 689 ORACLE 9i – Kiến trúc Quản trị Trang 85 www.updatesofts.com 8.5.2 Sử dụng thơng tin data dictionary Ta sử dụng thông tin data dictionary views: V$DATABASE V$INSTANCE Ví dụ: SVRMGR> SELECT name, log_mode 2> FROM v$database; NAME LOG_MODE U15 NOARCHIVELOG row selected SVRMGR> SELECT archiver 2> FROM v$instance; ARCHIVE STOPPED row selected Ta xem thơng tin liên quan đến groups members thông qua views data dictionary V$THREAD, V$LOG Các thông tin cần quan tâm: V$THREAD: GROUPS, CURRENT_GROUP#, SEQUENCE# V$LOG: GROUP#, MEMBERS, STATUS, SEQUENCE#, BYTES Ví dụ: SVRMGR>SELECT groups, current_group#,sequence# 2>FROM v$thread; GROUPS CURRENT_GR SEQUENCE# - -2 689 row selected SVRMGR>SELECT group#,sequence#,bytes,members,status 2>FROM v$log; GROUP# SEQUENCE# BYTES MEMBERS STATUS - - 688 1048576 CURRENT 689 1048576 INACTIVE rows selected Trong câu lênh trên, giá trị cột STATUS biểu sau: UNUSED online redo log group chưa sử dụng Trạng thái tương ứng với việc online redo log file thêm vào CURRENT online redo log group sử dụng Nó ngầm đinh trạng thái active online redo log group ACTIVE: trạng thái ứng với the online redo log group sử dụng online redo log group thời INACTIVE online redo log group khơng cịn cần thiết cho việc khôi phục instance ORACLE 9i – Kiến trúc Quản trị Trang 86 www.updatesofts.com Để xác định tên tất member group, ta tra cứu thơng tin V$LOGFILE: GROUP#, STATUS, MEMBER Ví dụ: SVRMGR>SELECT * 2>FROM v$logfile; GROUP# STATUS -1 MEMBER /DISK3/log1a.rdo /DISK4/log2a.rdo 8.6.ĐI7U KHIBN CÁC LOG SWITCHS VÀ CHECKPOINTS 8.6.1 Thực log switches Log switches checkpoint kiện xảy cách tự động online redo log group đầy Tuy nhiên, ta phát sinh Log switchs thơng qua lệnh Server Manager SVRMGR>ALTER SYSTEM SWITCH LOGFILE; Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chọn Subsystem Chọn Logfile > Switch logfile 8.6.2 Thực checkpoint Ta phát sinh Checkpoints thơng qua lệnh: SVRMGR>ALTER SYSTEM CHECKPOINT; Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chọn Subsystem Chọn Logfile > Force checkpoint 8.6.3 Điều chỉnh ngắt quãng checkpoints Trong trường hợp database sử dụng online redo log files lớn, ta điều chỉnh lại ngắt quãng online redo log file thơng qua tham số: LOG_CHECKPOINT_INTERVAL: Số lượng blocks (tính theo số block hệ điều hành) lớn để thực checkpoint LOG_CHECKPOINT_TIMEOUT: Khoảng thời gian lớn (tính theo đơn vị giây) để thực checkpoint ORACLE 9i – Kiến trúc Quản trị Trang 87 www.updatesofts.com 8.7.QUN TR CÁC REDO LOG FILES 8.7.1 Bổ sung online redo log groups Trong vài trường hợp, ta cần tới việc nạp thêm log groups hay log members Cú pháp: ALTER DATABASE [database] ADD LOGFILE [GROUP integer] filespec [, [GROUP integer] filespec] ] Hình vẽ 30 Bổ sung online redo log groups Với câu lệnh trên, ta cần tên đường dẫn members group cụ thể Giá trị tham số GROUP chọn tương ứng với redo log file group Trong trường hợp bỏ qua tham số này, Oracle server tự động sinh giá trị thích hợp Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chọn Subsystem Chọn Logfile > Add Logfile Group ORACLE 9i – Kiến trúc Quản trị Trang 88 www.updatesofts.com 8.7.2 Bổ sung online redo log members Hình vẽ 31 Bổ sung online redo log members Tương tự group, ta thêm member cho group câu lệnh SQL ALTER DATABASE [database] ADD LOGFILE MEMBER [ 'filename' [REUSE] [,'filename' [REUSE]] TO {GROUP integer |('filename'[, 'filename'] ) } ] Lưu ý: tên file cần kèm theo đường dẫn đầy đủ Trong trường hợp khơng có đường dẫn, file xem đặt thư mục mặc định Nếu file thêm tồn tại, ta cần thêm vào tuỳ chọn REUSE Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chọn Subsystem Chọn Logfile > Add Logfile Member 8.7.3 Định lại chỗ cho redo log file Trong vài trường hợp, ta cần phải dịch chuyển file redo log tới vị trí khác, để đảm bảo an toàn chẳng hạn Khi này, ta cần thực theo bước sau: Tắt database Sao chép online redo log files tới địa điểm Restart database chế độ mount Thực lệnh ALTER DATABASE RENAME FILE để thay đổi trỏ control file, trỏ tới đường dẫn file Mở lại database (Lệnh: ALTER DATABASE OPEN) ORACLE 9i – Kiến trúc Quản trị Trang 89 www.updatesofts.com Câu lệnh đổi tên file: ALTER DATABASE [database] RENAME FILE 'filename'[, 'filename'] TO 'filename'[, 'filename'] Lưu ý: Phải tồn file đường dẫn Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chuyển tới nút Logfile Group Chọn log file group tương ứng Thay đổi tên file trường thuộc tính 8.7.4 Ngừng sử dụng Online redo log groups Để thay đổi kích thước online redo log groups, ta thêm online redo log group xoá bỏ online redo log group có Sử dụng lệnh Server Manager để ngưng sử dụng online redo log group: ALTER DATABASE [database] DROP LOGFILE {GROUP integer|('filename'[, 'filename'] )} [,{GROUP integer|('filename'[, 'filename'] )}] Hình vẽ 32 Ngừng sử dụng Online redo log groups Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chuyển tới nút Logfile Group Chọn log file group tương ứng Chọn Logfile > Drop Logfile Group Bấm nút OK ORACLE 9i – Kiến trúc Quản trị Trang 90 www.updatesofts.com Một số điểm cần lưu ý xố log groups Một instance cần hai nhóm (group) online redo log files Khơng thể huỷ (drop) group trạng thái active Khi huỷ online redo log group, thực chất ta huỷ mặt logic mà Oracle không tiếp tục quản lý Tuy nhiên, file cịn khơng bị xố hệ điều hành 8.7.5 Ngừng sử dụng Online redo log members Tương tự log group, log members ta ngưng sử dụng Sử dụng lệnh Server Manager để ngưng sử dụng online redo log member: ALTER DATABASE [database] DROP LOGFILE MEMBER 'filename'[, 'filename'] Hình vẽ 33 Ngừng sử dụng Online redo log members Trong Oracle Enterprise Manager – OEM, ta làm theo bước sau: Sử dụng Backup Manager Chuyển tới nút Logfile Group Chọn log file group tương ứng Chọn Logfile > Drop Logfile Member Bấm nút OK Một số điểm cần lưu ý xoá log members Không thể ngừng sử dụng member group mà có trạng thái VALID Nếu group trạng thái active, ta cần phải thực log switch để chuyển sử dụng sang log group khác trước ngưng sử dụng member group thời Khi huỷ online redo log member, thực chất ta huỷ mặt logic file khơng bị xố hệ điều hành ORACLE 9i – Kiến trúc Quản trị Trang 91 www.updatesofts.com 8.7.6 Xoá rỗng Online redo log file Trong vài trường hợp members bị lỗi, quản trị viên database xử lý cách khởi tạo lại log file thông qua lệnh SQL để khởi tạo lại: ALTER DATABASE CLEAR LOGFILE Cú pháp: ALTER DATABASE [database] CLEAR [UNARCHIVED] LOGFILE {GROUP integer|('filename'[, 'filename'] )} [,{GROUP integer|('filename'[, 'filename'] )}] Sử dụng lệnh tương đương với việc thêm online redo log file xoá bỏ redo log file thời Lưu ý: Khi xoá rỗng logfile mà khơng dùng để lưu trữ, ta cần bổ sung từ khoá UNARCHIVED ORACLE 9i – Kiến trúc Quản trị Trang 92 ... redo records ghi vào online redo log file trước transaction tương ứng commit Khi redo log buffer đầy, transaction commit, LGWR đẩy tất redo log entries redo log buffer online redo log file, redo. .. đổi 8.1.5 Active Inactive Online Redo Log Files Tại thời điểm, Oracle sử dụng số online redo log files để lưu trữ redo records có redo log buffer Online redo log file trạng thái sẵn sàng cho... ghi liệu, gọi current online redo log file Các online redo log files cần thiết cho việc khôi phục instance gọi active online redo log files Trái lại, online redo log files không cần thiết cho việc