rong Library Cache và các thông tin nội tại trong Data dictionary. Shared rất quan trọng vì nếu không cấp đủ bộ nhớ cho nó thì đó có thể là nguyên nhân giảm hiệu quả thực hiện công việc. Kích thước của vùng này được đặt trong tham số shared_pool_size. Shared pool bao gồm Library Cache và Data Dictionary Cache: Library Cache Library Cache được sử dụng để chứa các câu lệnh SQL. ở đây lưu giữ các cây phân tích cú pháp (Parse tree) và các phương án thực hiện cho mọi câu lệnh SQL. Shared SQL Area cũng được dùng để lưu các thủ tục phân tích, biên dịch các khối PLSQL và chúng được các tiến trình người dùng chia sẻ trrong cùng một instance. Nếu có nhiều chương trình ứng dụng đồng thời đưa ra một câu lệnh SQL thì vùng này sẽ được truy nhập nhằm làm giảm dung lượng bộ nhớ cần thiết cũng như giảm thời gian phân tích và thời gian lập phương án thực hiện. Data Dictionary Cache Data Dictionary chứa tập hợp các bảng (tables) và các bảng logic (views) được Oracle sử dụng để tham chiếu đến CSDL. Oracle dùng Data Dictionary lưu giữ các thông tin cấu trúc logic và cấu trúc vật lý của CSDL, gồm các thông tin như: Thông tin về người dùng (các đặc quyền của người dùng). Định nghĩa các ràng buộc toàn vẹn cho các bảng CSDL. Phân loại tên và dữ liệu cho tất cả các cột trong bảng CSDL Oracle dùng Data Dictionary để phân tích các câu lệnh SQL. Điều này rất cần thiết cho các thao tác của Oracle. Vì vậy, nếu không có đủ bộ nhớ cho vùng Data Dictionary Cache, chúng ta sẽ gặp phải một số vấn đề xấu khi thực hiện công việc. Database buffer cache Chứa tập hợp các buffer chứa phần lớn các dữ liệu được sử dụng ở lần gần nhất. Do có nhiều người sử dụng, nên để đảm bảo tính toàn vẹn cho CSDL, Oracle sinh ra các bản sao. Vùng này lưu giữ các bản sao dữ liệu. Database buffer cache được tổ chức thành hai danh sách: Danh sách nháp (dirty list): Chứa vùng đệm đã sửa mà không được viết vào đĩa. Danh sách này được điều khiển bởi tiến trình DBWR để định ra khối dữ liệu nào được viết vào Database file. Danh sách được sử dụng tại thời điểm gần nhất (Least Recently Used LRU): Nội dung của danh sách này gồm: + Vùng đệm rỗi. + Vùng đệm đã sử dụng. + Vùng đệm nháp. Redo log buffer Oracle sử dụng các Redo log file ghi lại tất cả những thay đổi đối với các đối tượng của người dùng và các đối tượng của hệ thống. Trước khi những thay đổi này được ghi vào các file đó, Oracle lưu chúng vào Redo log buffer. Chẳng hạn, các thông tin trong Redo log buffer được viết vào trong các Redo log file khi vùng nhớ đệm đầy hoặc khi một giao tác đưa ra một câu lệnh. Tiến trình nền LGWR là tiến trình duy nhất ghi lại các thông tin từ Redo log buffer ra các Redo log file. b) Program Global Area PGA. PGA là vùng bộ nhớ chứa dữ liệu và các thông tin điều khiển cho các quá trình của Oracle Server. Một vùng PGA được Oracle tạo ra khi một tiến trình phục vụ bắt đầu. Kích thước và nội dung của PGA phụ thuộc vào các tuỳ chọn của Oracle Server mà ta cài đặt. Vùng PGA gồm các thành phần sau: Stack space: Vùng này lưu giữ các biến, mảng của một session. Session information: Nếu chúng ta vận hành Server đa dòng thì session information được chứa trong PGA, nếu chúng ta vận hành thì session information được chứa trong SGA. Private SQL Area: Đây là vùng trong PGA, nơi lưu trữ các thông tin kiểu như về các biến kết nối và thời gian thực hiện các buffer. 2.2.2 Các tiến trình Tiến trình (process) là một dòng điều khiển hay cơ chế trong điều hành hệ thống mà thực hiện một dãy công việc nào đó. Oracle có 3 kiểu tiến trình: User process, Background process, Server process. Trong đó background process và server process được gọi chung là Oracle process. a) Tiến trình người dùng (User process) User process hay còn gọi là Client process là sự kết nối của người dùng với hệ quản trị CSDL. Nó được tạo ra khi người dùng chạy một chương trình ứng dụng truy nhập đến CSDL qua giao diện chương trình của Oracle (khi đó Oracle cũng tạo ra các tiến trình phục vụ (Server process) để đáp ứng các yêu cầu từ phía tiến trình người dùng). Giữa tiến trình người dùng và tiến trình phục vụ luôn có sự liên hệ với nhau. Nhiệm vụ của User process là giao tiếp với người sử dụng để lấy câu lệnh SQL và PLSQL, gửi các câu lệnh lên Server, nhận kết quả và trình diễn thông tin theo yêu cầu người dùng. b) Tiến trình nền (Background process) Mỗi khi Oracle instance bắt đầu, vùng nhớ hệ thống toàn cục (System Global Area SGA) được định vị và các tiến trình nền được bắt đầu. Các tiến trình nền tương ứng với các công việc khác nhau phục vụ cho tất cả mọi người dùng CSDL. Đây là tiến trình dị bộ (xử lý ngầm) để thực hiện một số nhiệm vụ riêng. Tiến trình này bắt đầu khi CSDL start và kết thúc khi CSDL shut down. Có các loại tiến trình nền sau: Database Write (DBWR): Các khối dữ liệu đã được sửa đổi trong vùng nhớ đệm CSDL (Database buffer cache) được viết trở lại đĩa bởi một tiến trình nền DBWR. Khi một giao tác (transaction) thay đổi dữ liệu trong một khối dữ liệu, khối dữ liệu này không cần phải ngay lập tức được ghi lên đĩa. Thường thì DBWR ghi dữ liệu lên đĩa theo một cáhoặc hiệu quả hơn. Đó là DBWR chỉ ghi khi cần đọc đến dữ liệu của vùng nhớ đệm CSDL chứ không ghi ngay mỗi khi kết thúc một giao tác. Tiến trình này quản lý vùng Database buffer. Cho nên các tiến trình của người dùng luôn luôn có thể tìm được vùng đệm rỗi. Đối với các hệ thống sử dụng vào ra dị bộ thì chỉ có một tiến trình DBWR, còn hệ thống không sử dụng vào ra dị bộ thì sự thực hiện có thể được tăng cường hơn vì có tăng thêm nhiều tiến trình DBWR. Log Write (LGWR): ghi lại tất cả những thay đổi tới CSDL trong vùng Redo log buffer tới đĩa bởi một itến trình nền có tên LGWR, một tiến trình nền khác là ARCH (Archiver) có thể được bắt đầu để lưu giữ các thông tin đăng nhập lại trên một thiết bị cất giữ đã định trước (tape, disk) dùng cho việc khôi phục bị thất bại. LGWR viết Redo log buffer vào Redo log file khi: user đưa ra chỉ thị commit. vùng Redo log buffer vượt quá 13 kích cỡ cho phép của vùng. DBWR cần để xoá sạch các khối đệm cho một điểm kiểm tra hoặc quá thời gian xuất hiện. System Monitor (SMON): Tự động thực hiện việc khôi phục instance, tái tạo kiểu không gian bảng. Tiến trình này bao gồm việc loại bỏ các segment tạm thời và khôi phục các giao tác đã mất khi hệ thống gặp sự cố. Process Monitor (PMON): Kiểm soát tiến trình người dùng và tự động thực hiện việc khôi phục một tiến trình người dùng thất bại. Đây là bốn tiến trình mang tính chất bắt buộc của hệ thống. Ngoài ra còn một số tiến trình tuỳ chọn sau: Checkpoint (CKPT): Bảo đảm rằng CSDL được sửa ghi vào datafile. Tiến trình thực hiện việc gửi tín hiệu cho tiến trình DBWR nhằm thi hành việc kiểm soát và cập nhật tất cả các datafile và các control file của CSDL. Việc kiểm soát này là một sự kiện mà DBWR sẽ ghi vào datafile tất cả các database buffer đã được sửa đổi. Nếu tiến trình này không được dùng thì tiến trình LGWR sẽ đảm nhận chức năng này. Archiver (ARCH): Viết dữ liệu từ Redo log file ra thiết bị lưu trữ trực tuyến nếu có yêu cầu. Tiến trình ARCH chỉ được kích hoạt khi hệ quản trị CSDL hoạt động trong chế độ ARCHIVELOG. Nếu hệ thống không làm việc trong chế độ này thì tiến trình ARCH không phục hồi được dữ liệu nếu xảy ra hỏng hóc trong hệ thống. Trong một số trường hợp nào đó nó có thể chạy dưới chế độ NOARCHIVELOG song đặc thù vẫn là chế độ ARCHIVELOG. Recovery (RECO): Được sử dụng để dọn dẹp các giao tác chưa thực hiện trong một CSDL phân tán và giải quyết sự tranh chấp giữa các giao tác. LOCK (LCKn): Các tiến trình LCKn (LCK0,..., LCK9) thực hiện việc khoá thể hiện giao nhau trong hệ thống phục vụ song song của Oracle (xử lý tình trạng bế tắc giữa các instance trong hệ tiến trình song song). Dispatcher (Dnnn): Đây là các tiến trình nền tuỳ chọn, nó chỉ có mặt khi sử dụng cấu hình phục vụ đa dòng (Multithreathded server configuration). ít nhất sẽ có một tiến trình này (D000,...,Dnnn) được tạo ra để sử dụng đối với mọi giao thức truyền thông. Mỗi tiến trình Dispatcher có chức năng gửi các yêu cầu từ các tiến trình người dùng đến tiến trình phục vụ dùng chung và gửi hồi đáp tới các tiến trình người dùng phù hợp. Job Queue (SNPn): Trong cấu hình CSDL phân tán, có tất cả 36 tiến trình Job Queue (SNP0,..., SNP9, SNPA,..., SNPZ) có thể làm tươi các table snapshot. Các tiến trình này nhận biết và làm tươi bất kỳ một snapshot nào có trong lịch trình làm tươi tự động. Nếu sử dụng nhiều hơn một tiến trình Job Queue thì các tiến trình này sẽ phân chia nhau công việc làm tươi các snapshot. Các tiến trình này cũng thực hiện các công việc theo yêu cầu của DBMS_JOB package và truyền thông điệp đã xếp hàng tới các hàng khác trong CSDL khác. Queue Monitor (QMNn): Là các tiến trình nền tự chọn thực hiện việc giám sát các thông điệp cho Oracle Advanced Queuing (Oracle AQ). Chúng ta có thể định cấu hình cho mười tiến trình Queue Monitor. c) Tiến trình phục vụ (Server process) Server process (còn gọi là Shadow process) giao tiếp với người dùng và tương tác với Oracle nhằm thực hiện các yêu cầu của người dùng. Khi một user chạy một ứng dụng tương ứng hoặc một hỏi đáp dữ liệu thì các tiến trình người dùng được sử dụng. Oracle sẽ đưa ra một tiến trình phục vụ để trao đổi yêu cầu với các tiến trình người dùng. User process Server process Các tiến trình phục vụ sau khi thi hành các yêu cầu của người sử dụng và đưa trở lại kết quả cho họ. Trước khi dữ liệu có thể truy cập được thì tiến trình phục vụ phải được thể hiện để đưa dữ liệu lên vùng nhớ đệm dùng chung. Các khối dữ liệu sau khi được thao tác, sửa đổi sẽ được viết trở lại bộ nhớ ngoài nhờ tiến trình nền DBWR. Do việc cập nhật lại dữ liệu từ vùng nhớ chung SGA ra đĩa rất tốn thời gian cho nên tiến trình CKPT sẽ đảm bảo việc cập nhật dữ liệu sẽ thực hiện vào thời điểm cần thiết. Cũng do việc cập nhật xảy ra không liên tục nên tiến trình LGWR sẽ cập nhật lại các thay đổi của Redo log buffer ra các Redo log file. Nếu lưu trữ trực tuyến thì các Redo log file sẽ được cập nhật trực tuyến sang vùng lưu trữ khác (offline storage) để phòng sự cố xảy ra đối với hệ thống. Tiến trình phục vụ xử lý lệnh SQL thông qua những thông tin của vùng nhớ chung SGA. Program Global Area (PGA) là vùng nhớ chứa dữ liệu và thông tin điều khiển cho đơn người dùng hoặc cho tiến trình người dùng. PGA được cấp phát bởi Oracle Server khi tiến trình người dùng kết nối với CSDL Oracle và một session được thiết lập. Các thông báo của SQL sẽ được thi hành bởi các tiến trình phục vụ, các tiến trình phục vụ sẽ đọc khối dữ liệu từ đĩa vào vùng nhớ dữ liệu được dùng chung của SGA (vùng Shared pool). Sau đó đưa ra kết quả từ các thông báo SQL. Các tiến trình phục vụ có ba giai đoạn: Giai đoạn phân tích: Kiểm tra cú pháp, kiểm tra quyền truy nhập, đường dẫn tìm kiếm có hiệu quả nhất rồi xác định cây phân tích...Cây phân tích sẽ được cất giữ trong vùng Shared SQL Area (thuộc một phần của Share pool trong SGA), vùng này chứa các thông tin cho việc thi hành các thông báo SQL. User processes Server processes SGA Giai đoạn thi hành các thông báo: gắn cây phân tích tới vùng đệm dữ liệu SGA Shared pool Database buffer Server processes Giai đoạn nhận lại: nhận giữ liệu từ các thông báo của server. User processes Server processes SGA Như vậy, cứ khi có tiến trình người dùng thì sinh ra tiến trình phục vụ. Chẳng hạn, nếu tiến trình người dùng yêu cầu truy nhập một phần dữ liệu chưa có trong SGA, tiến trình phục vụ được sinh ra có nhiệm vụ đọc các khối dữ liệu đó từ các datafile và trong SGA. Đó là sự tương quan 1 1 giữa tiến trình người dùng và tiến trình phục vụ, mặc dù một phần tiến trình phục vụ có thể đồng thời kết nối với nhiều tiến trình người dùng. Cách thực hiện này làm giảm đi sự sử dụng tài nguyên của hệ thống. Từ đó ta có thể đưa ra kết luận rằng hai kiểu tiến trình background process và server process đều là các Oracle process nhưng chúng khác nhau trong phạm vi tiến trình của mình. Các server process trao đổi các yêu cầu từ phía người dùng, còn các background process thi hành những công việc của một instance. Các tính năng của Hệ quản trị cơ sở dữ liệu Oracle Oracle là một hệ quản trị cơ sở dữ liệu do hãng Oracle phát triển. Hệ này hoạt động trong môi trường clientserver trong đó các ứng dụng chạy trên các các trạm làm việc (client), còn hệ quản trị cơ sở dữ liệu chạy trên máy chủ (server). Oracle được đánh giá là hệ quản trị cơ sở dữ liệu mạnh với các tính năng: Lưu trữ các thông tin trong cơ sở dữ liệu, các phép tìm kiếm và thao tác dữ liệu phục vụ cho các ứng dụng được hệ quản trị thực hiện một cách hiệu quả với các kỹ thuật tối ưu hóa. Oracle thực sự đạt được các tiêu chuẩn của một hệ quản trị dữ liệu theo mô hình quan hệ, một mô hình được coi như chuẩn cho các cơ sở dữ liệu: + Bảo đảm tính nhất quán của dữ liệu, ngay cả trong môi trường đa người dùng. + Có các cơ chế đảm bảo tính toàn vẹn của cơ sở dữ liệu: các khai báo toàn vẹn tham chiếu, các ràng buộc khai báo (Constrains),các Trigger. + Có cơ chế bảo mật dữ liệu đối với các người dùng khác nhau. + Cho phép cài đặt các cơ sở dữ liệu phân tán và kèm theo là các cơ chế để đảm bảo tính nhất quán và tối ưu hóa việc thực hiện các câu hỏi phân tán. Các công cụ phát triển của Oracle cho phép thực hiện các câu lệnh SQL để tìm kiếm và thao tác dữ liệu chứa trong hệ quản trị CSDL. Có khả năng lưu trữ các đối tượng cơ sở dữ liệu để phục vụ cho các ứng dụng. Các đối tượng này thường chứa các chương trình của ngôn ngữ thủ tục PLSQL. Đây là phương tiện rất hữu ích giúp cho người phát triển hệ thống có thể cài đặt được các quy tắc nghiệp vụ và các kiểm tra toàn vẹn dữ liệu nhất là các ràng buộc phức tạp. Đảm bảo tính nhất quán của cơ sở dữ liệu (trong môi trường đa người dùng) và thực hiện việc tối ưu hoá các thao tác trên cơ sở dữ liệu. 3.1 An toàn và bảo mật trong Oracle 3.1.1 Quản lý người dùng Cơ sở dữ liệu Oracle cho phép nhiều người cùng một lúc truy nhập vào một CSDL. Vì vậy, vấn đề bảo mật là hết sức quan trọng. Mỗi CSDL có một danh sách người dùng tương ứng. Việc quản lý người dùng gồm khai báo tên người dùng (username) và mật khẩu (password) hợp lệ; chứng thực cho phép người dùng có thể truy cập cơ sở dữ liệu, giới hạn không gian đĩa được cấp phát thời gian CPU... Để khai báo người dùng trong Oracle có thể dùng hộp thoại của SQLDBA hoặc câu lệnh SQL. 3.1.2 Cơ chế phân quyền Sau khi tạo ra user, người quản trị Database phải gán quyền cho user để họ có thể truy nhập được vào CSDL. Quyền truy cập trong Oracle được chia thành quyền hệ thống và quyền với các đối tượng. Quyền hệ thống là quyền cho phép user tác động lên một kiểu đối tượng nào đó. Ví dụ như quyền tạo Table, Index trên bất kỳ một Tablespace nào, quyền tạo user, quyền cập nhật, tra hỏi dữ liệu trên bất kỳ table nào,... Trong Oracle có hơn 60 quyền hệ thống khác nhau. Quyền với các đối tượng cho phép user tác động lên một đối tượng cụ thể nào đó. Ví dụ quyền cập nhật dữ liệu trên table có tên EMP quyền đọc dữ liệu từ một View có tên XYZ. .. Role là một tập các quyền, có tác dụng lớn trong việc gán một nhóm quyền cho một nhóm người dùng. Để thay đổi quyền hạn của người dùng ta chỉ cần thay đổi Role. Ngoài việc gán quyền cho người dùng, ta cũng gán được quyền cho một Role. Tuy nhiên phải tạo ra Role bằng lệnh CREATE ROLE trước khi có thể gắn quyền cho nó. Ngoài ra có thể bảo vệ Role bằng một mật khẩu ở mức CSDL hay hệ điều hành. Ta có thể làm cho Role có hiệu lực (enable) hay vô hiệu hoá (disable) nó. 3.2 Tính toàn vẹn dữ liệu và cơ chế khoá 3.2.1 Toàn vẹn dữ liệu Một bảng có thể được nhiều người dùng truy cập đồng thời, để đảm bảo tính toàn vẹn dữ liệu. Oracle đã đưa ra các phương tiện để áp đặt các ràng buộc trong thao tác dữ liệu và các cơ chế khoá cho việc truy cập đồng thời. áp đặt các ràng buộc toàn vẹn: đảm bảo cho dữ liệu trong CSDL luôn tuân theo các ràng buộc định trước, phù hợp với yêu cầu của hệ thống và yêu cầu nghiệp vụ. Các yêu cầu toàn vẹn dữ liệu chính trong Oracle: giá trị Null, đảm bảo không có hai hàng nào trong cùng một bảng giống nhau, toàn vẹn khi tham chiếu và đảm bảo các yêu cầu nghiệp vụ phức tạp. Để đáp ứng được các yêu cầu về toàn vẹn dữ liệu, Oracle cung cấp các phương tiện như các ràng buộc kiểu khai báo (Constraint), các Triggers và mã chương trình (ít dùng). Ràng buộc kiểu khai báo (Constraint): Thông thường, khi áp đặt các toàn vẹn dữ liệu, người ta tận dụng tối đa các Constraint. Constraint rất đơn giản, nó được khai báo ngay khi tạo bảng hay được thêm vào một bảng sẵn có. Tuy nhiên, Constraint không có khả năng tham chiếu dữ liệu khi hai bảng ở trên hai trạm khác nhau. Các Constraint được đặt tên để dễ cho việc quản lý, nếu không đặt thì Oracle sẽ tự động đặt tên. Constraint được chia thành mức cột (được khai báo trong phần khai báo cột của một bảng) và mức bảng (được khai báo sau phần khai báo cột của một bảng, áp đặt ở mức bảng hay được dùng vì có thể được sửa đổi một cách dễ dàng). Các Constraint được phân chia thành: NOT NULL, UNIQUE, CHECK (kiểm tra giá trị của một cột có thuộc một miền nhất định hay một danh sách nhất định hay không. Có thể so sánh giá trị của các cột với nhau, tham chiếu đến một hay nhiều cột. Tuy nhiên, CHECK không thể có các tham chiếu con mà tham chiếu đến các trường giả trong bảng và không dùng được các hàm SYSDATE, UID... vì giá trị của chúng biến đổi thường xuyên, NOT NULL là một dạng của constraint CHECK, DEFAULT, PRIMARY KEY và FOREIGN KEY. Các Trigger: dùng để áp đặt các ràng buộc phức tạp về nghiệp vụ trong CSDL. Đây là đối tượng của CSDL và được kích hoạt khi thực hiện các câu lệnh thao tác dữ liệu Insert, Update, Delete. Nó có khả năng tham chiếu tới các bảng ở xa, trong khi ràng buộc khai báo không làm được cũng như khi bảng chủ và bảng tớ ở trên hai trạm khác nhau. 3.2.2 Cơ chế khoá (lock) Mục đích: đảm bảo việc truy cập đồng thời tới dữ liệu (người muốn đọc dữ liệu không phải chờ đợi người đang thực hiện các thay đổi lên dữ liệu đó, người muốn viết không phải đợi người đang đọc cùng dữ liệu, người muốn thực hiện thay đổi lên dữ liệu chỉ phải đợi người đang nắm quyền thay đổi nó mà thôi); đảm bảo tính nhất quán khi đọc dữ liệu (trong quá trình thực hiện một câu lệnh, một người luôn nhìn được dữ liệu nguyên bản chứ không phải dữ liệu đang bị người khác thay đổi; khi một người commit những thay đổi của mình thì cũng không ảnh hưởng tới người khác đang trong quá trình thực hiện câu lệnh của mình). Các lớp khoá: khoá dữ liệu có tác dụng bảo vệ dữ liệu khi thực hiện các lệnh thao tác dữ liệu; khoá từ điển bảo vệ cấu trúc của các đối tượng trong cơ sở dữ liệu. Các mức khoá: mức bản ghi, mức bảng (được chia thành EXCLUSIVE, SHARES, ROW SHARES, ROW EXCLUSIVE và SHARE ROW EXCLUSIVE (SRX). Ngoài ra, câu lệnh SQL cũng có tác dụng gây ra khoá (ví dụ LOCK TABLE IN ). Khoá chết: Hiện tượng khoá chết có thể xảy ra, tuy nhiên nó sẽ được dò tìm bởi tiến trình nền PMON và giải quyết. Cách tốt nhất để tránh khoá chết là quy định thứ tự truy cập vào cùng một bảng trong ứng dụng. Liên kết dữ liệu Khi dữ liệu từ nhiều hơn một bảng trong CSDL được yêu cầu, một điều kiện join được sử dụng. Các dòng trong một bảng có thể được join tới các dòng trong bảng khác theo các giá trị chung tồn tại trong các cột tương ứng. Điều kiện join đó là các cột khoá chính và khoá ngoại. Có hai loại điều kiện join chính là Equijoins và Nonequijoins. Ngoài ra còn có các phương pháp khác như: Outer joins, Selfjoins, Set operators. 4.1 Equijoins Đây là cách liên kết dữ liệu giữa hai hay nhiều bảng mà quan hệ giứa hai bảng có phần bổ xung là khoá chính và khoá ngoại. Điều kiện join là phép toán eqal (=). 4.2 Nonequijoins Nonequijoins xảy ra khi không có cột nào
SAO LƯU VÀ PHỤC HỒI Giảng viên: Ngô Thùy Linh Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng 6-2 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng 6-3 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng 6-4 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Thực thi Backup & Recovery User managed Oracle Back and recovery RMAN (Recovery Manager) Import/ Export 6-5 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng SAO LƯU – BACKUP 6-6 Các khái niệm Các phương án backup Tự động backup Quản lý backup Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Các khái niệm • Chiến lược backup: – Backup tồn database – Backup phần • Loại backup: – Full (đầy đủ): backup tồn thơng tin data file – Incremental (tăng tiến): backup thông tin thay đổi kể từ lần backup trước • Chế độ backup: – Cold/Consistent (nguội): tiến hành database đóng – Hot/Inconsistent (nóng): tiến hành database mở 6-7 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Hai loại Backup 6-8 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Phân loại Backup BACKUP LOGICAL IMPORT 6-9 EXPORT PHYSICAL COLD (Offline) (Consistent) Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng HOT (Online) Inconsistent Logical Backup Formato Binario Proprietario Data Base Data Base 6-10 Exp File *.dmp Imp Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng RMAN: Chiến lược backup 6-19 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng RMAN: đặt lịch backup 6-20 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng RMAN: quản lý backup 6-21 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng PHỤC HỒI - RECOVERY Các bước khởi động database Nguyên nhân gây lỗi database Cách khắc phục 6-22 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Nguyên nhân gây lỗi Database Có thể có lỗi sau: • • • • • • 6-23 Statement failure User process failure Network failure User or application error Instance failure Media failure Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Khởi động database Để mở database cần: • • • 6-24 Có đủ control file Có đủ data file Có redo log file Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Khởi động database… Dùng EM để khởi động 6-25 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Nguyên nhân gây lỗi database Database (đang mở) bị lỗi mất: • • • 6-26 Control file Data file thuộc tablespace system undo Một nhóm redo log Khoa Hệ thống thơng tin quản lý – Học viện Ngân Hàng Cách khắc phục: control file • • • Tắt database, mở Khôi phục lại control file cách copy control file backup Khởi động lại database Control files 6-27 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Cách khắc phục: redo log Khi file redo log (khơng phải group) • • • 6-28 Các hoạt động database diễn bình thường DBA nhận thơng báo khơng tìm thấy redo log file Khôi phục cách copy số redo log file group backup Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Cách khắc phục: data file (bất kì) Nếu database chế độ NOARCHIVELOG, data file thực bước sau: • • • Tắt database, mở Phục hồi lại toàn database, bao gồm: data file, control file Mở database User 6-29 User User User Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng User Cách khắc phục: data file (không thuộc tablespace system & undo) Nếu database chế độ ARCHIVELOG , tiến hành recovery data file Users 6-30 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Cách khắc phục: data file (thuộc tablespace system & undo) Nếu database chế độ ARCHIVELOG , tiến hành bước sau: • Tắt database theo chế độ SHUTDOWN ABORT • • • Mount database Phục hồi data file bị Mở lại database Users 6-31 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng Restore a database to Point in Time using RMAN 6-32 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng 6-33 Khoa Hệ thống thông tin quản lý – Học viện Ngân Hàng