国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Oracle數(shù)據(jù)庫的閃回技術(shù)

這篇具有很好參考價值的文章主要介紹了Oracle數(shù)據(jù)庫的閃回技術(shù)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

當(dāng) Oracle 數(shù)據(jù)庫發(fā)生邏輯損壞時,可以使用閃回技術(shù)簡單快捷地進(jìn)行數(shù)據(jù)庫的恢復(fù)。

閃回數(shù)據(jù)庫使用閃回日志執(zhí)行閃回。閃回刪除使用回收站。其它所有技術(shù)都使用還原數(shù)據(jù)。并不
是所有閃回功能都會修改數(shù)據(jù)庫。有些功能只是一些用來查詢數(shù)據(jù)以往版本的方法

一、閃回數(shù)據(jù)庫
使用閃回數(shù)據(jù)庫,通過還原自先前某個時間點以來發(fā)生的所有更改,可快速將數(shù)據(jù)庫恢復(fù)到過去
的某個時間點上的狀態(tài)。使用閃回數(shù)據(jù)庫功能時,不需要還原備份。閃回數(shù)據(jù)庫功能可以方便地
撤消導(dǎo)致邏輯數(shù)據(jù)損壞的更改。如果數(shù)據(jù)庫發(fā)生介質(zhì)丟失或物理損壞,則必須使用傳統(tǒng)的方法進(jìn)
行恢復(fù)。
1. 配置閃回數(shù)據(jù)庫的方法
SQL>shutdown immediate;
SQL>startup mount exclusive;
SQL>alter system set db_flashback_retention_terget=2880 scope=both;
SQL>alter system set DB_RECOVERY_FILE_DEST_SIZE=20G scope=both;
SQL>alter system set db_recovery_file_dest='+FRA' scope=both;
SQL>alter database flashback on;
SQL>alter database open;

注意:DB_FLASHBACK_RETENTION_TARGET 初始化參數(shù)用來設(shè)置保留目標(biāo),可指定數(shù)據(jù)庫所
能閃回的上限(以分鐘為單位)。此參數(shù)只是一個目標(biāo),并不提供任何保證,閃回時間間隔取決
于在快速恢復(fù)區(qū)中保存的閃回日志的數(shù)據(jù)量。
查詢確認(rèn)閃回數(shù)據(jù)庫是否已經(jīng)啟用:
SQL>select flashback_on from v$database;

2. 閃回數(shù)據(jù)庫的方法
閃回數(shù)據(jù)庫必須以 EXCLUSIVE 模式裝載才能執(zhí)行 FLASHBACK DATABASE 命令,而且在完成時
必須使用 RESETLOGS 選項打開數(shù)據(jù)庫。
在使用 RMAN 命令 FLASHBACK DATABASE 命令執(zhí)行閃回數(shù)據(jù)庫操作時,可以使用 SEQUENCE
和 THREAD 指定作為下限的重做日志序列號和線程號,RMAN 只選擇可用于閃回到指定序列號(但
不包括指定序列號)的文件。
也可以使用 FLASHBACK DATABASE 的 SQL 命令將數(shù)據(jù)庫恢復(fù)到過去的某個時間或 SCN. 如果

使用 TO SCN 子句,則必須提供一個編號。如果指定 TO TIMESTAMP, 則必須提供一個時間戳
值。還可以指定還原點名稱,例如:
RMAN> FLASHBACK DATABASE TO TIME="TO_DATE('2013-05-27 09:00:00',
'YYYY-MM-DD HH24:MI:SS')";
RMAN> FLASHBACK DATABASE TO SCN=23565;
RMAN> FLASHBACK DATABASE TO SEQUENCE=223 THREAD=1;
或者:
SQL> FLASHBACK DATABASE TO TIMESTAMP(SYSDATE-1/24);
SQL> FLASHBACK DATABASE TO SCN 53943;
SQL> FLASHBACK DATABASE TO RESTORE POINT b4_load;
3. 閃回數(shù)據(jù)庫測試
本節(jié)實驗測試基于時間戳的數(shù)據(jù)庫閃回。
1) 創(chuàng)建用于實驗的測試表 hr.t_obj:
SQL>create table hr.t_obj as select * from dba_objiects;
SQL>select count(*) from hr.t_obj;

2) 獲取當(dāng)前系統(tǒng)時間:
SQL>select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') tm from dual;

3) 刪除 hr 用戶及其對象:
SQL>drop user hr cascade;
SQL>select count(*) from hr.t_obj;
4) 建立對照表
SQL>select count(*) from system.tab1;
5) 執(zhí)行閃回數(shù)據(jù)庫操作,恢復(fù) hr
SQL>shutdown immediate;
SQL>startup mount;
SQL>flashback database to timestamp to_timestamp
? ? 2? ?('2014-11-03 10:48:48','yyyy-mm-dd hh24:mi:ss');
SQL>alter database open resetlogs;

6) 驗證
SQL>select count(*) from hr.t_obj;
SQL>select count(*) from system tab1;

可以看到,執(zhí)行閃回數(shù)據(jù)庫時間戳之前的更改都得到了恢復(fù),之后的更改不再有效。因此,閃回
數(shù)據(jù)庫是對數(shù)據(jù)庫的整體回退。
?二、表的刪除閃回
表刪除(drop)閃回的原理是使用回收站技術(shù),被刪除的對象會臨時放入回收站中并且仍屬于其
所有者。當(dāng)刪除的表移到回收站時,會使用系統(tǒng)生成的名稱重命名該表及其關(guān)聯(lián)對象和約束條件。
回收站本身也是一個數(shù)據(jù)字典表,它用來維護(hù)刪除對象的原始名稱與其系統(tǒng)生成名稱之間的關(guān)系。
使用 DBA_RECYCLEBIN, USER_RECYCLEBIN 視圖可查詢回收站的內(nèi)容。
要使用閃回刪除功能,必須將 FLASHBACK TABLE 或 FLASHBACK ANY TABLE 系統(tǒng)權(quán)限授予
使用閃回表功能的用戶。此外,還必須將 SELECT, INSERT, DELETE 和 ALTER 對象權(quán)限授予
用戶。
1. 表的刪除閃回語法
FLASHBACK TABLE table_name TO BEFORE DROP [RENAME TO new_name];
2. 表的刪除閃回測試
1) 刪除 hr.t_obj 表:
SQL>conn hr/hr
SQL>select count(*) from hr.t_obj;
SQL>drop table hr.t_obj;
SQL>select count(*) from hr.t_obj;

2) 查詢回收站并執(zhí)行閃回刪除:
SQL>select object_name, original_name, can_undrop, base_object
? ? 2? ?from user_recyclebin;
SQL>flashback table hr.t_obj to before drop;
SQL>select count(*) from hr.t_obj;

三、閃回查詢
閃回查詢通常用于檢索一條記錄的所有歷史版本,回溯單獨的事務(wù)或者回溯從指定時間以來對特
定表的所有變化。
1. 閃回查詢的語法
SELECT <column_name_list> FROM <table_name>?
AS OF <SCN> --- 使用 as of scn
或 AS OF <TIMESTAMP> --- 使用 as of timestamp
?
[WHERE <filter_conditions>]
[GROUP BY <unaggregated columns>]
[HAVING <group_filter>]
[ORDER BY <column_positions_or_name>]
2. 閃回查詢測試
1) 創(chuàng)建實驗用測試表 tab1:
SQL>create table hr.tab1 as select user_id, username?from dba_users where 1=0;
SQL>insert into hr.tab1 select user_id, username from dba_users where user_id < 10;
SQL>commit;
SQLselect * from hr.tab1;

2) 對表進(jìn)行刪除操作,并進(jìn)行閃回查詢:
SQL>conn hr/hr;
SQL>select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') tm from dual;
SQL>delect tab1 where username='SYS';
SQL>select * from tab1;
SQL>seelct *from tab1 as of timestamp to_timestamp ('2022-08-01 11:00:00', 'yyyy-mm-dd hh24:mi:ss');


四、閃回表
1. 表閃回的方法
使用閃回表的先決條件是必須啟用表的行遷移:
ALTER TABLE schema_name.table_name ENABLE ROW MOVEMENT;
表閃回的語法:
FLASHBACK TABLE schema_name.table_name TO SCN <scn_number>
-- 基于 SCN 的表閃回
或 TO TIMESTAMP <timestamp> -- 基于 TIMESTAMP 的表閃回
或 TO RESTORE POINT <restore_point> -- 基于 RESTORE POINT 的表閃回
[<ENABLE | DISABLE> TRIGGERS]
2. 表閃回測試
本節(jié)實驗基于 RESTORE POINT 的表閃回。
基于 RESTORE POINT 的表閃回首先要創(chuàng)建適當(dāng)?shù)倪€原點,創(chuàng)建還原點的語法為:
CREATE RESTORE POINT point_name;
對于閃回成功之后無用的閃回點可以及時刪除掉,刪除閃回點的語法為:
DROP RESTORE POINT point_name;
1) 創(chuàng)建用于閃回表的測試表 hr.tab2,并創(chuàng)建還原點 p1:
SQL>create table hr.tab2 as select user_id, username from dba_users where 1 = 0;
SQL>alter table hr.tab2 enanle row movement;
SQL>insert into hr.tab2 seelct user_id, username from dba_users where user_id < 10;
SQL>select * from hr.tab2;
SQL>create restore point p1;

2) 對表 hr.tab2 進(jìn)行插入操作,并創(chuàng)建還原點 p2:
SQL>insert into hr.tab2 select user_id, username from dba_users
? ? 2? ?where user_id >= 10 and user_id < 20;
SQL> select * from hr.tab2;
SQL>select * from hr.tab2;
SQL>create restore point p2;
?

3) 從表 hr.tab2 進(jìn)行刪除,創(chuàng)建還原點 p3:
SQL>delect hr.tab2 where user_id = 5;
SQL>seelct * from hr.tab2;
SQL>create restore point p3;


4) 開始執(zhí)行閃回表操作:
SQL>flashback table hr.tab2 to restore point p1;
SQL>select * from hr.tab2;
SQL>flashback table hr.tab2 to restore point p2;
SQL>select * from hr.tab;
SQL>flashback table hr.tab2 to restore point p3;
SQL>select * from hr.tab2;


5) 刪除還原點:
SQL>fdrop restore point p1;
SQL>drop restore point p2;
SQL>drop restore point p3;

五、閃回版本查詢
閃回版本查詢指的是 Oracle 可以針對特定的對象來查詢某一特定時段內(nèi)該對象變化的所有情
況,也可以根據(jù)特定的需要來將該對象修正到特定的時刻。
閃回版本查詢同閃回查詢、閃回表一樣,都是使用了 UNDO 段的數(shù)據(jù),即數(shù)據(jù)變更的歷史副本,
當(dāng) UNDO 段的數(shù)據(jù)由于空間變化而被清除后,則無法進(jìn)行閃回。
1. 閃回版本查詢語法
SELECT <columns> FROM <schema_name.table_name>
VERSIONS BETWEEN SCN <minimum_scn> AND <maximum_scn>
-- 基于 SCN 的版本查詢
或者:
SELECT <columns> FROM <schema_name.table_name>
VERSIONS BETWEEN timestamp?
to_timestamp('start_timestamp') and to_timestamp('end_timestamp')
-- 基于 TIMESTAMP 的版本查詢
2. 閃回版本查詢測試
使用上節(jié)課閃回表查詢創(chuàng)建的測試表 hr.tab2:
SQL>col USER_ID format 99999
SQL>col USERNAME format a10
SQL>seelct user_ID, username, versions_xid, versions_startscn,
? ?2? ? versions_endscn, versions_operation
? ?3? ? from hr.tab2 versions between scn minvalue and maxvalue;

其中:
versions_xid - 記錄指定版本事務(wù)的唯一標(biāo)識符。
versions_startscn - 記錄的起始 SCN 號。
versions_endscn -- 記錄的終止 SCN 號。
versions_operation - 記錄的操作類型(I 表示插入,U 表示更新,D 表示刪除)。

閃回事務(wù)查詢是對閃回版本查詢的擴(kuò)展。從某種程度上來說,閃回版本查詢通常用于更細(xì)粒度的
查詢,如針對特定的記錄。而閃回事務(wù)則是針對某一事務(wù)進(jìn)行閃回,是基于事務(wù)級別的。閃回事
務(wù)查詢是通過查詢視圖 flashback_transaction_query 來獲得某個或多個特定事務(wù)信息,
同時可根據(jù)該視圖中提供的 undo_sql 列中的語句來反轉(zhuǎn)事務(wù),從而保證數(shù)據(jù)的完整性。
要使用閃回事務(wù)查詢,必須要啟用補(bǔ)充日志記錄功能并建立正確的權(quán)限。例如,要對上一節(jié)閃表
操作創(chuàng)建的測試表 tab2 使用閃回事務(wù)處理,就要以 SYSDBA 權(quán)限在 SQL*Plus 中執(zhí)行下列設(shè)
置步驟:

SQL>alter database add supplemental log data;
SQL>alter database add supplemental log data (primary key)? columns;
SQL>grant execute on dbms_flashback to hr;
SQL>grant select any transaction to hr;

然后對 hr.tab2 進(jìn)行增刪改操作,然后按照十六進(jìn)制的行 ID 進(jìn)行閃回事務(wù)查詢了:文章來源地址http://www.zghlxwxcb.cn/news/detail-613664.html

到了這里,關(guān)于Oracle數(shù)據(jù)庫的閃回技術(shù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Oracle】收集Oracle數(shù)據(jù)庫內(nèi)存相關(guān)的信息

    【Oracle】收集Oracle數(shù)據(jù)庫內(nèi)存相關(guān)的信息

    【聲明】文章僅供學(xué)習(xí)交流,觀點代表個人,與任何公司無關(guān)。 編輯|SQL和數(shù)據(jù)庫技術(shù)(ID:SQLplusDB) Oracle數(shù)據(jù)庫包含多個內(nèi)存區(qū)域,每個區(qū)域都包含多個子組件。 Oracle Database Memory Structures 根據(jù)具體問題的需要,可以通過如下命令收集Oracle數(shù)據(jù)庫內(nèi)存相關(guān)的信息。 例: 注:SET

    2024年01月21日
    瀏覽(30)
  • Oracle數(shù)據(jù)庫面試題 精選 Oracle 面試題

    1.解釋冷備份和熱備份的不同點以及各自的優(yōu)點 冷備份 發(fā)生在數(shù)據(jù)庫已經(jīng)正常關(guān)閉的情況下,將關(guān)鍵性文件拷貝到另外位置的一種說法。適用于所有模式的數(shù)據(jù)庫。 優(yōu)點 1. 是非??焖俚膫浞莘椒ǎㄖ恍杩截愇募?2. 容易歸檔(簡單拷貝即可) 3. 容易恢復(fù)到某個時間點上(只

    2024年02月05日
    瀏覽(25)
  • 【Oracle】使用 SQL Developer 連接 Oracle 數(shù)據(jù)庫

    SQL Developer 是 Oracle 官方推出的一款免費的數(shù)據(jù)庫開發(fā)工具,它提供了豐富的數(shù)據(jù)庫開發(fā)功能,其中包括連接 Oracle 數(shù)據(jù)庫的功能。 在本文中,我們將從多個方面詳細(xì)闡述如何使用 SQL Developer 連接 Oracle 數(shù)據(jù)庫。 在連接 Oracle 數(shù)據(jù)庫前,需要需要做一些準(zhǔn)備工作,包括安裝 SQ

    2024年02月06日
    瀏覽(24)
  • Oracle數(shù)據(jù)庫

    Oracle數(shù)據(jù)庫

    ①層次型數(shù)據(jù)庫 ②網(wǎng)狀型數(shù)據(jù)庫 ③關(guān)系型數(shù)據(jù)庫(主要介紹) E-R圖:屬性(橢圓形),實體(矩形),聯(lián)系(菱形-一對一、一對多、多對多) 注:有的聯(lián)系也有屬性 關(guān)系型數(shù)據(jù)庫的設(shè)計范式: 第一范式(1NF):屬性不可再分,字段保證原子性 第二范式(2NF):在滿足1

    2024年02月08日
    瀏覽(33)
  • Oracle 開發(fā)篇+Java通過HiKariCP訪問Oracle數(shù)據(jù)庫

    Oracle 開發(fā)篇+Java通過HiKariCP訪問Oracle數(shù)據(jù)庫

    標(biāo)簽:HikariCP、數(shù)據(jù)庫連接池、JDBC連接池、 釋義:HikariCP 是一個高性能的 JDBC 連接池組件,號稱性能最好的后起之秀,是一個基于BoneCP做了不少的改進(jìn)和優(yōu)化的高性能JDBC連接池。 ★ Java代碼 ※ 如果您覺得文章寫的還不錯,?別忘了在文末給作者點個贊哦 ~

    2024年02月13日
    瀏覽(22)
  • oracle數(shù)據(jù)庫巡檢腳本

    用于Oracle數(shù)據(jù)庫巡檢的示例腳本:?

    2024年02月14日
    瀏覽(24)
  • 快速監(jiān)控 Oracle 數(shù)據(jù)庫

    Oracle 數(shù)據(jù)庫在行業(yè)內(nèi)應(yīng)用廣泛,通常存放的非常重要的數(shù)據(jù),監(jiān)控是必不可少的,本文使用 Cprobe 采集 Oracle 監(jiān)控數(shù)據(jù),極致簡單,分享給大家。 安裝配置 Oracle 簡單起見,我使用 Docker 啟動 Oracle,命令如下: 如上命令啟動之后,Oracle 的監(jiān)聽端口是 1521,用戶名/密碼是 syst

    2024年01月20日
    瀏覽(61)
  • Oracle數(shù)據(jù)庫完整卸載

    Oracle數(shù)據(jù)庫完整卸載

    進(jìn)入計算機(jī)管理,在服務(wù)中,找到oracle開頭的所有服務(wù),右擊選擇停止。 快捷鍵:ctrl+shift+esc打開任務(wù)管理器 點擊開始菜單找到Oracle,然后點擊Oracle安裝產(chǎn)品,再點擊Universal Installer。 點擊之后稍等一會然后會進(jìn)入進(jìn)入下圖界面,點擊卸載產(chǎn)品。 單擊“卸載產(chǎn)品”,選中除“Or

    2024年01月16日
    瀏覽(29)
  • ORACLE數(shù)據(jù)庫 開窗函數(shù)

    開窗函數(shù) 2.1開窗函數(shù)的定義及語法 開窗函數(shù)(又名:分析函數(shù),窗口函數(shù),OLAP函數(shù)) 聚合函數(shù):將數(shù)據(jù)按照一定的規(guī)則分組,統(tǒng)一分析各組的某項情況,每個分組返回一行結(jié)果 開窗函數(shù):將數(shù)據(jù)按照一定的規(guī)則分組,統(tǒng)一分析各組的某項情況,每行數(shù)據(jù)返回一行結(jié)果 (

    2024年02月11日
    瀏覽(29)
  • Oracle數(shù)據(jù)庫概念簡介

    Oracle數(shù)據(jù)庫概念簡介

    一般意義上的數(shù)據(jù)庫包含兩個部分 庫:就是一個存儲一堆文件的文件目錄 數(shù)據(jù)庫管理系統(tǒng):管理庫的系統(tǒng) 數(shù)據(jù)庫管理系統(tǒng)(Database Management System),是一種操縱和管理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護(hù)數(shù)據(jù)庫,簡稱 DBMS ; 它對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)

    2024年02月09日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包