ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KINH TẾ- LUẬT
KHOA TIN HOC QUẢN LÝ
BÁO CÁO MÔN AN TOÀN VÀ BẢO MẬT
HỆ THỐNG THÔNG TIN
AN TOÀN THÔNG TIN VỚI KỸ THUẬT
FLASHBACK TRONG ORACLE
Đề tài:
Mục lục
Mục lục 2
Phần 1: Lý do lựa chọn đề tài 1
Phần 2: Tổng quan 2
Phần 3. Các tính năng phân tích lỗi 3
3.2.Oracle Flashback Query 4
3.2.1.Mục đích 4
3.3.2. Đặc điểm 7
5.1.Flashback Data Archive (Oracle Total Recall) 30
5.1.1. CREATE FLASHBACK ARCHIVE 30
5.1.1.1. Mục đích 30
5.1.1.3. Cú pháp: 30
5.1.1.4. Ngữ nghĩa 31
5.1.2. ALTER FLASHBACK ARCHIVE 33
5.1.2.1. Mục đích 33
5.1.2.2. Điều kiện tiên quyết 33
5.1.2.3. Cú pháp 33
5.1.2.4. Ngữ nghĩa: 34
5.1.3. DROP FLASHBACK ARCHIVE 35
5.1.3.1. Mục tiêu ( PURPOSE ) 35
5.1.3.2. Điều kiện tiên quyết 35
5.1.3.3. Cú pháp 35
5.2.1. CREATE RESTORE POINT 36
Các tính năng Flashback cung cấp khả năng truy vấn dữ liệu lịch sử, thực hiện phân tích sự thay
đổi, và thực hiện các dịch vụ sửa chữa tự để phục hồi từ những sai lầm trong khi cơ sở dữ liệu
trực tuyến. Với Công nghệ Flashback Oracle, bạn thực sự có thể lùi lại quá khứ.
Tất cả những vấn đề trên sẽ được giải quyết bằng Oracle Flashback.Đây là một trong những
tính năng mới nổi bật của phiên bản Oracle. Để hiểu rõ hơn về công nghệ Flashback và các ứng
dụng thực tiện của nó nhóm đã quyết định chọn đề tài “ Kĩ Thuật Flashback Trong Oracle”.
1
Phần 2: Tổng quan
Cơ sở dữ liệu Oracle cung cấp kỹ thuật Oracle flashback: là một nhóm các tính năng hỗ trợ
để xem trạng thái dữ liệu quá khứ và phục hồi dữ liệu về thời điểm trước. Với kỹ thuật này, giúp
người dùng phân tích các lỗi và phục hồi dữ liệu sai. Các user thực hiện commit những thay đổi
gây ra lỗi,
Sử dụng các tính năng sau để phân tích lỗi:
Oracle Flashback Query: Xem những dữ liệu đã commit, các trạng thái dữ liệu trong 1 số điểm
trong quá khứ. Sử dụng câu lệnh SELECT với mệnh đề AS OF để chỉ ra thời điểm trong quá khứ
thông qua 1 time stamp hoặc SCN
Oracle Flashback Versions Querry: Xem lịch sử của các dữ liệu đã commit cho 1 mốc thời
gian cụ thể. Sử dụng mệnh đề VERSIONS BETWEEN trong câu lệnh SELECT ()
Oracle Flashback Transaction Query: xem tất cả các thay đổi của cơ sở dữ liệu ở mức
transaction.
Hỗ trợ giải pháp để phục hồi từ các lỗi người dùng:
Oracle Flashback Transaction Backout: Rollback một transaction cụ thể và các transaction
phụ thuộc.
Oracle Flashback Table: phục hồi một hoặc nhiều bảng trở lại một thời điểm trước mà không
ảnh hưởng đến các đối tượng khác trong cơ sở dữ liệu.
Oracle Flashback Drop: Đảo ngược sự ảnh hưởng của câu lệnh drop đến các bảng bằng cách
khôi phục các bảng bị drop từ thùng rác cho đến cơ sở dữ liệu cùng với các đối tượng bị ảnh
hưởng như là các index và các trigger.
Oracle Flashback Database: Khôi phục cơ sở dữ liệu đến 1 thời điểm trong quá khứ hoặc SCN
2
VERSIONS_XID Định danh của giao dịch đã tạo ra phiên bản hàng.
VERSIONS_OPERATIO
N
Nỗi dung thực hiện transaction: I để chèn, D để xóa,
hoặc U để cập nhật. Phiên bản này là dòng đã được
INSERT,DELETE, hoặc UPDATE, có nghĩa là dòng
3
sau khi một thao tác INSERT, dòng trước khi một hoạt
động DELETE, hoặc dòng bị ảnh hưởng bởi một hoạt
động UPDATE.
Đối với người sử dụng cập nhật chỉ số khóa, Oracle
Flashback Version Query có thể ghi một hoạt động
UPDATE là hai hoạt động, DELETE cộng INSERT,
biểu diễn như là hai dòng với một D theo sau bởi một
VERSIONS_OPERATION I.
Một phiên bản dòng có hiệu lực bắt đầu vào ngày VERSIONS_START trở đi, thời gian kết thúc
VERSIONS_END. Như vậy có nghĩa là dòng này có giá trị cho bất kỳ thời điểm t mà
VERSIONS_START<= t < VERSIONS_END. Ví dụ, dòng dưới chỉ ra mức lương 10.243 từ
ngày 9/9/2002 đến ngày 25/11/2003 (không bao gồm ngày 25/11/2003)
VERSIONS_START_TIME VERSIONS_END_TIME SALARY
09-SEP-2003 25-NOV-2003 10243
Dưới đây là 1 trường hợp sử dụng điển hình của Oracle Flashback Version Query
SELECT versions_startscn, versions_starttime,
versions_endscn, versions_endtime,
versions_xid, versions_operation,
last_name, salary
FROM employees
VERSIONS BETWEEN TIMESTAMP
TO_TIMESTAMP('2008-12-18 14:00:00', 'YYYY-MM-DD HH24:MI:SS')
SELECT * FROM employees
AS OF TIMESTAMP
TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
WHERE last_name = 'Chung';
Khôi phục 1 dòng dữ liệu
INSERT INTO employees (
SELECT * FROM employees
AS OF TIMESTAMP
TO_TIMESTAMP('2004-04-04 09:30:00', 'YYYY-MM-DD HH:MI:SS')
5
WHERE last_name = 'Chung'
);
3.2.3. Hướng dẫn cho Oracle Flashback Query
Bạn có thể chỉ ra hoặc bỏ qua mệnh đề AS OF cho mỗi bảng và chỉ ra thời gian khác nhau
cho các bảng khác nhau.
Lưu ý: Nếu 1 bảng là Flashback Data Archive và bạn chỉ ra thời gian sớm hơn thời gian bảng
này được tạo ra, truy vấn sẽ trả về kết quả 0 dòng, hơn nữa đó có thể là nguyên nhân gây ra lỗi.
Sử dụng mệnh đề AS OF trong các truy vấn để thực thi các lệnh DDL (data definition
language – như là CREATE và TRUNCATE) hoặc các lệnh DML (Data Manipulation Language
- như là INSERT hoặc DELETE).
Để sử dụng kết quả của Oracle Flashback Query trong các câu lệnh DDL hoặc DML mà các
câu lệnh này tác động đến trạng thái hiện tại của cơ sở dữ liệu, thì sử dụng mệnh đề AS OF bên
cạnh các câu lệnh INSERT hoặc CREATE TABLE AS SELECT.
Có thể tạo 1 View liên quan đến dữ liệu quá khứ bằng cách sử dụng mệnh đề AS OF trong
câu lệnh SELECT đễ định nghĩa View này.
Nếu chỉ định 1 thời gian tương đối bằng cách trừ từ thời gian hiện tại trên máy chủ của cơ sở
dữ liệu thì thời gian quá khứ sẽ được tính toán lại cho mổi truy vấn. Ví dụ:
CREATE VIEW hour_ago AS
SELECT * FROM employees
AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '60' MINUTE);
12. UNDO_SQL
XID là ID của Transaction, ta có thể nhận XID từ FLASBACK VERSION QUERY
Ví dụ:
Do nhầm lẫn mà user Scott xóa một dòng từ bảng TAJ và bây giờ người sử dụng hệ thống
muốn biết chính xác Transaction cho dòng đã được xóa.
Đầu tiên kiểm tra TRANSACTION_ID của dòng đã xóa thông qua FLASHBACK VERSION
QUERY
select versions_xid
from scott.taj
versions between timestamp
to_timestamp ( '2008-05-17 09:18:00','YYYY-MM-DD HH24:MI:SS') and
7
to_timestamp ( '2008-05-17 09:22:00','YYYY-MM-DD HH24:MI:SS');
VERSIONS_XID
050017007C070000
SQL> select logon_user,operation,undo_sql
from flashback_transaction_query
where xid = HEXTORAW ('050017007C070000');
LOGON_USER OPERATION UNDO_SQL
SCOTT DELETE insert into "SCOTT"."TAJ"("NAME","NO") values ('TAJ','4');
Trên đây là hoạt động DELETE bởi user Scott và UNDO_SQL đã được tạo ra.
Giả sử chúng ta không biết chính xác thời điểm ta có thể sử dụng SCN (system change number)
khi commit cuối cùng được thực hiện.
Chúng ta có thể nhận SCN từ cột ORA_ROWSCN, ORA_ROWSCN là thể hiện SCN của lần
thay đổi gần nhất của dòng, đó là hoạt động COMMIT gần nhất của dòng
Giả sử với ví dụ phía trên nếu như không biết chính xác thời điểm mà dòng đó đã bị xóa trong
bảng TAJ. Vậy có thể biết được từ cột ORA_ROWSCN
SQL> select ORA_ROWSCN, taj.* from scott.taj;
bảng.
*Lưu ý:
Oracle khuyến cáo rằng bạn chạy cơ sở dữ liệu của bạn ở chế độ tự động hoàn tác bằng cách để lại
AUTO UNDO_MANAGEMENT tham số khởi tạo thiết lập mặc định.Ngoài ra, thiết lập các tham
số khởi tạo UNDO_RETENTION một khoảng thời gian đủ lớn để bao gồm các dữ liệu cũ nhất mà
bạn dự kiến cần.
4.1.2. Điều kiện tiên quyết
Để phục hồi lại một bảng tại một SCN hoặc Timestamp, bạn phải có đặc quyền đối tượng trên bảng
hoặc hệ thống đặc quyền Flashback any table. Ngoài ra, bạn phải cần có quyền SELECT , INSERT ,
DELETE , và ALTER đặc quyền đối tượng trên bảng.
Rowmovement phải được kích hoạt cho tất cả các bảng trong danh sách Flashback trừ khi bạn đang
khôi phục tại To Before Dropiv. Hoạt động khôi phục sử dụng dữ liệu bị bỏ trong thùng rác chứ
không phải lùi lại dữ liệu.
Để khôi phục lại một bảng tại một điểm khôi phục, bạn phải có Select Any Dictionary hoặc
Flashback Any Table hoặc Select_Catalog_Role
Để khôi phục lại một bảng trước khi một Drop Table hoạt động, bạn chỉ cần các đặc quyền cần thiết
để Drop các bảng.
4.1.3. Cú pháp
10
4.1.4. Ngữ nghĩa
Trong một hoạt động Oracle Flashback table, Cơ sở dữ liệu Oracle thu hồi DML khóa độc quyền
trên tất cả các bảng quy định trong danh sách Flashback. Các khóa ngăn chặn bất kỳ hoạt động trên
các bảng trong khi chúng đang quay trở lại trạng thái trước đó của chúng.
Flashback table hoạt động được thực hiện trong một transaction duy nhất, bất kể số lượng các bảng
quy định trong danh sách Flashback.Hoặc là tất cả các bảng trở lại trạng thái trước đó hoặc không
bảng nào được phục hồi.Nếu các hoạt động Flashback table không thành công trên bất kỳ bảng nào
thì sau đó toàn bộ câu lệnh không thành công.
Sau khi hoàn tất các hoạt động Flashback table, các dữ liệu trong bảng là phù hợp với bảng ở thời
gian trước đó. Tuy nhiên, Flashback Table To SCN hoặc TIMESTAMP không bảo quản rowids và
Flashback Table To Before Drop không phục hồi ràng buộc tham chiếu.
và tiếp tục gây nên kích hoạt trong quá trình Flashback
Điều khoản này chỉ ảnh hưởng đến những cơ sở dữ liệu kích hoạt được xác định trên bảng đã
được kích hoạt.Để kích hoạt tính vô hiệu hóa gây nên chọn lọc, sử dụng ALTER TABLE
enable_disable_clause trước khi bạn thực hiện FLASHBACK TABLE với mệnh đề ENABLE
TRIGGERS.
Mệnh đề TO BEFORE DROP
Sử dụng điều khoản này để lấy từ thùng rác một bảng đã bị xóa, cùng với tất cả các đối
tượng phụ thuộc có thể.Bảng phải nằm trong một tablespace cục bộ quản lý khác hơn SYSTEM
tablespace.
Hệ thống tạo ra thùng rác tên đối tượng là duy nhất. Vì vậy, nếu bạn chỉ định tên hệ thống
tạo ra, khi đó cơ sở dữ liệu lấy theo đối tượng quy định.
Để xem các nội dung của thùng rác, truy vấn dữ liệu từ điển xem xét USER_RECYCLEBIN.
Bạn có thể sử dụng RecycleBin từ đồng nghĩa thay thế. Hai câu sau đây trả lại 2 hàng như nhau:
SELECT * FROM RECYCLEBIN;
12
SELECT * FROM USER_RECYCLEBIN;
Nếu bạn chỉ định tên người dùng, và nếu thùng rác chứa nhiều hơn một đối tượng của tên đó,
sau đó cơ sở dữ liệu khôi phục các đối tượng đã được di chuyển vào thùng rác gần đây nhất. Nếu
bạn muốn lấy một phiên bản cũ của bảng, sau đó làm một trong những điều này:
Xác định hệ thống tạo ra tên thùng rác của bảng bạn muốn lấy.
Thực hiện thêm FLASHBACK TABLE TO BEFORE DROP báo cáo cho đến khi bạn lấy
các bảng mà bạn muốn.
Cơ sở dữ liệu Oracle cố gắng để bảo vệ tên bảng ban đầu. Nếu một bảng mới có cùng tên đã
được tạo ra trong cùng một lược đồ kể từ khi bảng ban đầu đã bị bỏ, sau đó cơ sở dữ liệu trả về
một lỗi trừ khi bạn cũng xác định các mệnh đề RENAME TO.
Mệnh đề RENAME TO sử dụng điều khoản này để chỉ định một tên mới cho bảng được lấy
từ thùng rác.
Ghi chú Flashing Back Dropped Tables các ghi chú sau đây áp dụng cho Flashing back
dropped tables:
Cơ sở dữ liệu Oracle lấy tất cả các chỉ số được xác định trên bảng lấy ra từ thùng rác, ngoại
SALARY
2400
2200
2100
2400
2200
Lưu ý:
Để cho phép thời gian cho SCN để truyền cho bảng vẽ bản đồ được sử dụng bởi
FLASHBACK TABLE câu lệnh, chờ tối thiểu là 5 phút trước khi thực hiện báo cáo sau đây.
Chờ đợi này sẽ không cần thiết nếu một bảng đã tồn tại trước đó đã được sử dụng trong ví dụ
này.
Bật row movement cho bảng:
ALTER TABLE employees_test
ENABLE ROW MOVEMENT;
Ban hành tăng lương 10% cho những nhân viên có thu nhập dưới 2500:
Cập nhật employees_test
14
UPDATE employees_test
SET salary = salary * 1.1
WHERE salary < 2500;
5 rows updated.
COMMIT;.
Như một điểm chuẩn thứ hai, danh sách những tiền lương vẫn còn dưới 2500 sau khi tăng 10%:
SELECT salary
FROM employees_test
WHERE salary < 2500;
SALARY
2420
của bạn sẽ khác biệt với những gì được hiển thị ở đây.)
SELECT object_name, droptime FROM user_recyclebin
WHERE original_name = 'PRINT_MEDIA';
OBJECT_NAME DROPTIME
RB$$45703$TABLE$0 2003-06-03:15:26:39
RB$$45704$TABLE$0 2003-06-12:12:27:27
RB$$45705$TABLE$0 2003-07-08:09:28:01
4.2. Flashback Drop
Phần này giải thích làm thế nào để khôi phục lại các đối tượng từ thùng rác với lệnh
FLASHBACK TABLE TO BEFORE DROP.
4.2.1. Mục đích
Flashback Drop đảo ngược những ảnh hưởng của thao tác DROP TABLE.Flashback Drop
nhanh hơn so với cơ chế phục hồi khác có thể được sử dụng, chẳng hạn như point- in-time
recovery, và không dẫn đến thời gian chết hoặc mất các giao dịch mới.
Khi bạn xóa một bảng, cơ sở dữ liệu không loại bỏ các không gian liên kết với bảng ngay lập
tức.Thay vào đó, bảng được đổi tên cùng với các đối tượng liên quan, nằm trong thùng rác.Hệ
thống thùng rác tạo ra tên đối tượng là duy nhất.Bạn có thể truy vấn các đối tượng trong thùng
rác, cũng giống như bạn có thể truy vấn các đối tượng khác.
Hoạt động flashback phục hồi lại bảng từ thùng rác. Khi phục hồi bảng bị xóa, bạn có thể chỉ
định tên gốc của bảng do người dùng quy định ban đầu hoặc tên hệ thống tạo ra.
16
Khi bạn drop một bảng, bảng và tất cả các đối tượng phụ thuộc của nó cùng được đặt vào
thùng rác. Tương tự như vậy, khi bạn thực hiện Flashback Drop, các đối tượng thường được
phục hồi lại toàn bộ. Khi bạn khôi phục lại một bảng từ thùng rác, các đối tượng phụ thuộc như
tên của các indexes không được phục hồi như ban đầu, nó giữ lại tên của thùng rác đã tạo ra. Cơ
sở dữ liệu Oracle phục hồi tất cả các index được xác định trên bảng trừ bitmap kết hợp với
index, và tất cả trigger và constraint được xác định trên bảng trừ các ràng buộc toàn vẹn tham
chiếu đến các bảng tham chiếu khác.
Một số đối tượng phụ thuộc như các index có thể đã bị thu hồi vì áp lực không gian. Trong
giới hạn quyền truy cập bằng cách chọn một số hàng của cột. ) các quyền hạn xác định trên bảng
không được bảo vệ bởi thùng rác.
Phân vùng bảng index được sắp xếp không được bảo vệ bởi thùng rác.
Bảng không phải đã bị purge hoặc là bởi một người dùng hay bởi Cơ sở dữ liệu oracle bởi vì
hoạt động thu hồi không gian.
Sử dụng lệnh FLASHBACK TABLE TO BEFORE DROP để phục hồi các đối tượng từ
thùng rác. Bạn có thể chỉ định tên của bảng trong thùng rác hoặc tên bảng ban đầu.
Phần này giả định một kịch bản trong đó bạn xóa bảng sai.Nhiều lần bạn đã được yêu cầu xóa
các bảng trong cơ sở dữ liệu thử nghiệm, nhưng trong trường hợp này, bạn kết nối với cơ sở dữ liệu
sản xuất thay vì xóa hr.employee_demo.Bạn quyết định sử dụng FLASHBACK TABLE để phục
hồi các đối tượng bị xóa.
Phục hồi bảng đã xóa
Kết nối SQL * Plus đến cơ sở dữ liệu mục tiêu và nhận tên của bảng bị bỏ trong thùng rác.
Bạn có thể sử dụng SQL * Plus RecycleBin Show lệnh như sau:
SHOW RECYCLEBIN;
ORIGINAL NAME RECYCLEBIN NAME TYPE DROP TIME
EMPLOYEE_DEMO BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0 TABLE 2005-04-11:17:08:54
Cột Original Name cho biết tên ban đầu của đối tượng, trong khi cột RecycleBin NAME cho
biết tên của đối tượng tồn tại trong thùng rác.
Ngoài ra, bạn có thể truy vấn USER_RECYCLEBIN hoặc DBA_RECYCLEBIN để có được
tên bảng. Ví dụ sau đây truy vấn các View để xác định tên ban đầu của các đối tượng bị xóa:
SELECT object_name AS recycle_name, original_name, type
FROM recyclebin;
18
RECYCLE_NAME ORIGINAL_NAME TYPE
BIN$gk3lsj/3akk5hg3j2lkl5j3d==$0 EMPLOYEE_DEMO TABLE
BIN$JKS983293M1dsab4gsz/I249==$0 I_EMP_DEMO INDEX
Nếu bạn có kế hoạch để tự khôi phục lại tên gốc cho các đối tượng phụ thuộc thì đảm bảo rằng bạn
ALTER INDEX "BIN$JKS983293M1dsab4gsz/I249==$0" RENAME TO I_EMP_DEMO;
Nếu bảng được phục hồi có ràng buộc tham chiếu trước khi nó bị đưa vào thùng rác, sau đó tạo lại
chúng.
Bước này phải tự thực hiện bởi vì thùng rác không bảo toàn ràng buộc tham chiếu trên một
bảng.
Retrieving Objects When Multiple Objects Share the Same Original Name
Bạn có thể tạo ra, và sau đó xóa, đối tượng với cùng tên gốc.Tất cả các đối tượng bị xóa được lưu
trữ vào thùng rác.Ví dụ, hãy xem xét các câu lệnh SQL trong ví dụ sau đây.
Ví dụ: Dropping Multiple Objects with the Same Name
CREATE TABLE temp_employees ( columns ); # temp_employees version 1
DROP TABLE temp_employees;
CREATE TABLE temp_employees ( columns ); # temp_employees version 2
DROP TABLE temp_employees;
CREATE TABLE temp_employees ( columns ); # temp_employees version 3
DROP TABLE temp_employees;
Trong ví dụ trên, mỗi bảng temp_employees được gán một tên duy nhất trong thùng rác khi nó bị
xóa. Bạn có thể sử dụng lệnh FLASHBACK TABLE TO BEFORE DROP với tên gọi ban đầu
của bảng, như thể hiện trong ví dụ này:
FLASHBACK TABLE temp_employees TO BEFORE DROP;
Bảng gần nhất bị xóa với tên ban đầu được khôi phục từ thùng rác, với tên ban đầu của nó.Ví dụ 2
cho thấy việc khôi phục từ thùng rác của cả ba bảng từ các ví dụ trước bị xóa temp_employees, với
mỗi bảng chỉ định một tên mới.
Ví dụ 2:
FLASHBACK TABLE temp_employees TO BEFORE DROP
RENAME TO temp_employees_VERSION_3;
FLASHBACK TABLE temp_employees TO BEFORE DROP
RENAME TO temp_employees_VERSION_2;
20
FLASHBACK TABLE temp_employees TO BEFORE DROP
RENAME TO temp_employees_VERSION_1;
RMAN phải được kết nối như là TARGET vào một cơ sở dữ liệu và từ phiên bản 10g và các phiên
bản sau. Cơ sở dữ liệu mục tiêu phải được gắn kết với một tập tin điều khiển hiện tại, nghĩa là, các
tập tin điều khiển không thể là một bản sao lưu hoặc tái tạo. Cơ sở dữ liệu phải chạy trong chế độ
ARCHIVELOG.
Bạn không thể sử dụng FLASHBACK DATABASE để quay trở lại một điểm trong thời gian trước
khi khôi phục hoặc tái tạo của một tập tin điều khiển. Nếu các tập tin cơ sở dữ liệu kiểm soát được
khôi phục từ bản sao lưu hoặc tái tạo, khi đó tất cả các thông tin đăng nhập hiện tại bị loại bỏ.
Khu vực phục hồi nhanh chóng phải được cấu hình để cho phép thực hiện khôi phục. Bản ghi
Flashback được lưu trữ trong Oracle để quản lý các tập tin trong khu vực phục hồi nhanh chóng và
không thể được tạo ra nếu không có khu vực phục hồi nhanh chóng được cấu hình. Bạn phải cho
phép khôi phục đăng nhập trước thời gian mục tiêu để hồi tưởng bằng cách sử dụng câu lệnh
SQL ALTER DATABASE FLASHBACK ON . QueryV $ DATABASE.FLASHBACK_ON để
xem thực hiện khôi phục đã được kích hoạt.
Cơ sở dữ liệu phải chứa tablespaces không trực tuyến vì chức năng phục hồi đã được vô hiệu hóa
với các câu lệnh SQL ALTER TABLESPACE FLASHBACK OFF .
4.3.3.Ghi chú
Một hoạt động Flashback cơ sở dữ liệu áp dụng cho toàn bộ cơ sở dữ liệu. Bạn không thể khôi phục
lại tablespaces cá nhân. Một hoạt động Flashback cơ sở dữ liệu là tương tự như phục hồi một điểm
trong thời gian cơ sở dữ liệu (DBPITR) thực hiện với Recocover , nhưng RMAN sử dụng flashback
log lùi lại thay đổi đến một điểm trước thời gian mục tiêu hoặc SCN. RMAN tự động khôi phục lại
từ bản sao lưu bất kỳ tập tin redo log, lưu trữ là cần thiết và phục hồi cơ sở dữ liệu để làm cho nó
phù hợp. RMAN không bao giờ khôi phục lại dữ liệu cho các tablespaces tạm thời.
SCN sớm nhất có thể được sử dụng cho một hoạt động cơ sở dữ liệu Flashback phụ thuộc vào các
thiết lập của DB_FLASHBACK_RETENTION_TARGET khởi tạo tham số, và trên thực tế việc lưu
giữ các bản ghi hồi tưởng đĩa đã được cho phép. Xem SCN cơ sở dữ liệu hiện tại trongV $
DATABASE.CURRENT_SCN .
Ảnh hưởng của hoạt động NOLOGGING trên cơ sở dữ liệu Flashback
FLASHBACK DATABASE với một thời gian mục tiêu nào đó một NOLOGGING hoạt động đã
được tiến hành, ngăn chặn hư hỏng có khả năng trong các đối tượng cơ sở dữ liệu và các file dữ liệu
bị ảnh hưởng bởi các hoạt động NOLOGGING . Ví dụ, giả sử rằng bạn INSERT trên đường dẫn
lại lệnh FLASHBACK DATABASE . Các tập tin dữ liệu không quay trở
lại. Khi đó, bạn có thể khôi phục và phục hồi các tập tin dữ liệu cùng một
lúc hoặc SCN.
Thực hiện offline Bỏ qua các hoạt động. Các tập tin dữ liệu vẫn giữ được tình trạng hiện tại
23