Thứ Năm, 30 tháng 8, 2018

Recover dữ liệu do commit nhầm

Mục đích: Cần restore lại dữ liệu đã commit

Chú ý: Cần đảm bảo restore gần nhất vì dữ liệu đã commit lưu trong tablespace UNDOTBS hữu hạn thời gian (default 900s ~ 15 phút)

1. Ứng dụng chạy nhầm
UPDATE com_owner.table1
         SET PROCESS_DATE = TO_DATE (p_process_date, 'DD/MM/YYYY HH24:MI:SS'),
             RESULT_CONTENT = '<br/><b>DDH:</b>' ||p_content,
             dep_id = p_dep_id
             WHERE p_id = p_id; -- 0 = 0
Commit;
--> Update toàn bộ dữ liệu của bảng và đã commit
Yêu cầu bên UD cung cấp khoảng thời điểm cập nhật sai dữ liệu (VD 16h34')


2. Xác định thời điểm thay đổi dữ liệu
select /*flashback*/* from com_owner.table1 as of timestamp(to_timestamp('2013/03/19 16:40:40','YYYY/MM/DD HH24:MI:ss'))

Thay đổi tham số phút, giây xung quang thời điểm UD cung cấp với tham số là thay đổi trường RESULT_CONTENT
Trường hợp này là thay đổi hết nên nếu thời điểm thấy dữ liệu thay đổi sẽ dịch chuyển dần dần để xác định

3. Tạo bảng dữ liệu sát thời điểm thay đổi dữ liệu
Create table com_owner.table1 as
select /*flashback*/* from com_owner.table1 as of timestamp(to_timestamp('2013/03/19 16:40:40','YYYY/MM/DD HH24:MI:ss'))

=====================
Hãy kết nối với tôi để được hỗ trợ tốt nhất về Oracle Database, RAC, ASM, Security, Tunning, Troubleshooting, DataGuard, GoldenGate, Solaris, Linux, AIX và WebLogic:

👨‍👩‍👧‍👦  KHUYẾN MẠI 50% khóa học online "Quản trị CSDL Oracle 12c cơ bản" tại Unica, sở hữu  trọn đời, học mọi lúc mọi nơi, ƯU ĐÃI ĐẶC BIỆT CHO 100 bạn đầu tiên với giá  399K (giá gốc 800Khttp://Bit.ly/2pq9Pxx

📧 Mail: tranbinh48ca@gmail.com
☎️ Mobile: 090.29.12.888
⚡️ Skype: tranbinh48ca
👨‍ Messenger: https://m.me/101036604657441
👨‍👩‍👧‍👦 Group FB: https://www.facebook.com/groups/413698089218929
Hãy comment những nội dung mà bạn quan tâm xuống bên dưới✏️✏️✏️, tôi sẽ ở bên cạnh và hỗ trợ cho bạn trên con đường trở thành DBA Oracle Expert 👨‍🏫👨‍🏫👨‍🏫

Cảm ơn các bạn 😎😎😎 
 

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master