oracle闪回表详解
--- 说明闪回数据库 --- 使用闪回表将表内容还原到过去的特定时间点 --- 从删除表中进行恢复 --- 使用闪回查询查看截止到任一时间点的数据库内容 --- 使用闪回版本查询查看某一行在一段时间内的各个版本 --- 使用闪回事务查询查看事务处理历史记录 或行 优点
--- 说明闪回数据库
--- 使用闪回表将表内容还原到过去的特定时间点
--- 从删除表中进行恢复
--- 使用闪回查询查看截止到任一时间点的数据库内容
--- 使用闪回版本查询查看某一行在一段时间内的各个版本
--- 使用闪回事务查询查看事务处理历史记录
优点:
闪回技术由于只能处理更改数据,所以从根本上改变了恢复技术。使用这个技术时,从错误中恢复花费的时间等于制造错误所花费的时间。当闪回技术使用时,它与介质恢复相比,在易用性、可用性和还原时间方面有明显的优势。
闪回数据库使用闪回日志执行闪回。闪回删除使用回收站。其他所有功能都使用还原数据。
闪回数据库 -----这个功能可撤销导致逻辑数据损坏的更改
就是当出现逻辑错误时,能够将整个数据库回退到出错前的那个时间点上,
闪回数据库的日志文件不是由传统的Log Writer (LGWR)进程写入,而是由一个称为RecoVery WRiter (RVWR)的新进程写入,闪回日志文件由RCWR进程在恢复区中自动创建和维护。
[Z喎�"" target="_blank" class="keylink">vcmFjbGVAdHlnZXIgfl0kIHBzIC1lZg=="grep rvwr|grep -v grep
oracle 8414 1 0 14:33 ? 00:00:00 ora_rvwr_ORCL
可以使用闪回数据库的场景包括
1. 用户截断了表(trucate)
2. 系统管理员误删除了用户
3. 用户错误的执行了某个批处理任务,或者该批处理任务的脚本编写错误,使得多个表的数据发生混乱,我们无法采用闪回表的方式进行恢复
实现闪回数据库的基础是闪回日志,只要我们配置了闪回数据库,就会自动创建闪回日志。这时,只要数据库里的数据发生变化,oracle就会将数据被修改前的旧值保存在闪回日志里,当我们需要闪回数据库时,oracle就会读取闪回日志里的记录,并应用到数据库上,从而将数据库回退到历史的某个时间点上。
闪回数据库:减少还原时间
闪回数据库比使用还原文件和重做日志文件的传统时间点恢复的速度要更快。随着数据库规模的增加,通过还原所有数据文件来执行传统的时间点恢复所需的时间长度变得不太现实。使用闪回数据库时,因为不要需要还原数据文件,所以恢复数据库的时间与需要回退的更改数目(而不是数据库大小)成比例。
闪回数据库是通过使用一类被称为闪回数据库日志的日志文件来实施的。oracle数据库会定期将数据块的“前像”记录在闪回数据库日志中。为了快速将数据文件更改回退到捕获闪回日志的时间(就在所需目标时间之前),可以重用块前像。然后,应用重做日志文件中的更改来填充间隔。在快速恢复区中会自动创建和管理闪回数据库日志。
在不能使用闪回数据库功能的情况下,必须使用不完全恢复操作将数据库返回到特定时间。闪回数据库操作完成后,可在只读模式下打开数据库,验证是否使用了正确的目标时间或系统更改号(SCN)。如果没有,可以再次闪回数据库,或者通过执行恢复操作来前滚数据库。因此,要撤销闪回数据库操作,必须向前恢复数据库。
注:闪回保留目标并不能绝对保证闪回可用。如果闪回恢复区中必须存在的文件需要占用空间,可能会自动删除闪回日志。
闪回数据库操作完成后,必须使用以下一种方法打开数据库:
· 在只读模式下验证是否使用了正确的目标时间或SCN
· 使用RESETLOGS 参数才允许进行更新
闪回数据库限制:(不能使用闪回数据库)
· 已还原或重新创建了控制文件
· 已删除了表空间
· 已收缩了数据文件
不能使用闪回数据库恢复自闪回目标时间以来已删除的数据文件。
删除的数据文件会添加到控制文件中且标记为脱机,但是不会闪回。
闪回数据库不能闪回自闪回目标时间以来已收缩的数据文件,这种数据文件必须先脱机,才能执行闪回操作。
实验1:启用闪回数据库
1. 设置闪回恢复区保留时间3天
SYS@ORCL>show parameter flashback
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
db_flashback_retention_target integer 1440 //db_flashback_retention_target 用于定义一个时间上限 单位是分钟
SYS@ORCL>alter system set db_flashback_retention_target=4320;
SYS@ORCL>show parameter flashback
NAME TYPE VALUE
------------------------------------ -------------------------------- ------------------------------
db_flashback_retention_target integer 4320
2. 查看当前闪回状态,未开启闪回,开启闪回(mount状态开启闪回)
SYS@ORCL>select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
SYS@ORCL>alter database flashback on;
alter database flashback on
*
ERROR at line 1:
ORA-38759: Database must be mounted by only one instance and not open.
SYS@ORCL>shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ORCL>startup mount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219160 bytes
Variable Size 121636264 bytes
Database Buffers 188743680 bytes
Redo Buffers 2973696 bytes
Database mounted.
3. 开启闪回,必须在归档模式下开启
SYS@ORCL>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 29
Next log sequence to archive 31
Current log sequence 31
SYS@ORCL>alter database flashback on;
Database altered.
4. 打开数据库,,查看闪回状态
SYS@ORCL>alter database open;
Database altered.
SYS@ORCL>select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
SYS@ORCL>
实验2:闪回数据库用途 -----实验参考eygle 的循序渐进oracle
SYS@ORCL>conn tyger/tyger
Connected.
TYGER@ORCL>select count(*) from tyger;
COUNT(*)
----------
1
TYGER@ORCL>select count(*) from test;
COUNT(*)
----------
14
TYGER@ORCL>alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss';
Session altered.
TYGER@ORCL>select sysdate from dual;
SYSDATE
-------------------
2014-03-11 15:47:14
TYGER@ORCL>truncate table tyger;
Table truncated.
TYGER@ORCL>select sysdate from dual;
SYSDATE
-------------------
2014-03-11 15:47:38
TYGER@ORCL>truncate table test;
Table truncated.
TYGER@ORCL>select sysdate from dual;
SYSDATE
-------------------
2014-03-11 15:48:03
闪回需要在Mount状态下进行,可以指定Timestamp/SCN/Sequence进行闪回。
首先将数据库闪回到第一时间点,以Redo only的方式打开数据库:
SYS@ORCL>startup mount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219160 bytes
Variable Size 130024872 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
Database mounted.
SYS@ORCL>flashback database to timestamp
2 to_timestamp('2014-03-11 15:47:14','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
SYS@ORCL>alter database open read only; //以read only原因:如果数据恢复的不够理想,可以关闭数据库继续进行恢复
Database altered.
SYS@ORCL>select count(*) from tyger.tyger;
COUNT(*)
----------
1
SYS@ORCL>select count(*) from tyger.test;
COUNT(*)
----------
14
数据恢复不理想,继续进行恢复 ---前提:以redo only打开数据库
SYS@ORCL>startup mount;
ORACLE instance started.
Total System Global Area 314572800 bytes
Fixed Size 1219160 bytes
Variable Size 130024872 bytes
Database Buffers 180355072 bytes
Redo Buffers 2973696 bytes
Database mounted.
SYS@ORCL>flashback database to timestamp
2 to_timestamp('2014-03-11 15:47:38','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
SYS@ORCL>alter database open read only;
Database altered.
SYS@ORCL>select count(*) from tyger.tyger;
COUNT(*)
----------
0
SYS@ORCL>select count(*) from tyger.test;
COUNT(*)
----------
14
如果数据恢复确认完成,就可以以resetlogs打开数据库,恢复工作 ------重置日志,不能再flashback至resetlogs之前的时间点
SYS@ORCL>alter database open resetlogs;
Database altered.
oracle闪回表详解:

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Oracle 打不開的解決辦法包括:1. 啟動數據庫服務;2. 啟動監聽器;3. 檢查端口衝突;4. 正確設置環境變量;5. 確保防火牆或防病毒軟件未阻止連接;6. 檢查服務器是否已關閉;7. 使用 RMAN 恢復損壞的文件;8. 檢查 TNS 服務名稱是否正確;9. 檢查網絡連接;10. 重新安裝 Oracle 軟件。

解決 Oracle 游標關閉問題的方法包括:使用 CLOSE 語句顯式關閉游標。在 FOR UPDATE 子句中聲明游標,使其在作用域結束後自動關閉。在 USING 子句中聲明游標,使其在關聯的 PL/SQL 變量關閉時自動關閉。使用異常處理確保在任何異常情況下關閉游標。使用連接池自動關閉游標。禁用自動提交,延遲游標關閉。

Oracle 中,FOR LOOP 循環可動態創建游標, 步驟為:1. 定義游標類型;2. 創建循環;3. 動態創建游標;4. 執行游標;5. 關閉游標。示例:可循環創建游標,顯示前 10 名員工姓名和工資。

可以通過 EXP 實用程序導出 Oracle 視圖:登錄 Oracle 數據庫。啟動 EXP 實用程序,指定視圖名稱和導出目錄。輸入導出參數,包括目標模式、文件格式和表空間。開始導出。使用 impdp 實用程序驗證導出。

Oracle 日誌文件寫滿時,可採用以下解決方案:1)清理舊日誌文件;2)增加日誌文件大小;3)增加日誌文件組;4)設置自動日誌管理;5)重新初始化數據庫。在實施任何解決方案前,建議備份數據庫以防數據丟失。

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

要停止 Oracle 數據庫,請執行以下步驟:1. 連接到數據庫;2. 優雅關機數據庫(shutdown immediate);3. 完全關機數據庫(shutdown abort)。
