日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Oracle闪回技术(笔记)

發(fā)布時(shí)間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle闪回技术(笔记) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、設(shè)置SQL*Plus提示符

臨時(shí)設(shè)置

set sqlprompt "_user'@'_connect_identifier>"

永久設(shè)置

為了對(duì)所有SQL*Plus會(huì)話(huà)自動(dòng)設(shè)置sqlprompt.將上面的命令放置在ORACLE_HOME_HOME/sqlplus/admin目錄中的glogin.sql文件內(nèi)

2、查看是否啟用閃回臨視

SQL> select flashback_on from v$database;

?

FLASHBACK_ON

------------------

YES

3、查詢(xún)回收站

show recyclebin;會(huì)顯示當(dāng)前的用戶(hù)有三個(gè)刪除的表并顯示:原先的名稱(chēng)、回收站名稱(chēng)以及刪除的時(shí)間。

右要了解更詳細(xì)的信息,查詢(xún)數(shù)據(jù)字典視圖USER_RECYCLEBINDBA_RECYCLEBIN來(lái)查看全局視圖

select owner,original_name,type,droptime,can_undrop,space fromdba_recyclebin;

4PURGE命令永久性地清除刪除的對(duì)象

(1)刪除表并且不將它轉(zhuǎn)移到回收站

drop table <table_name> purge;

(2)從回收站中清除表,如果存在多個(gè)具有相同原始名稱(chēng)的對(duì)象,那么將清除時(shí)間最久的對(duì)象。也可以通過(guò)指定回收站名稱(chēng)來(lái)避免這種混淆

purge table <table_name>;

3)從回收站中清除索引

?purge index<index_name>;

?(4)從表空間中清除所有刪除的對(duì)象

?purge tablespace<tablespace_name>;

?(5)從表空間中清除屬于一個(gè)用戶(hù)的所有刪除的對(duì)象

?purge tablespace<tablespace_name> user <user_name>;

?(6)清除您刪除的所有對(duì)象

?purge user_recyclebin;

?7)清除所有刪除的對(duì)象,但是執(zhí)行它需要DBA權(quán)限。

?purge dba_recyclebin;

5、配置閃回?cái)?shù)據(jù)庫(kù)

1)確保數(shù)據(jù)庫(kù)處于歸檔日志模式

歸檔日志模式是啟用閃回?cái)?shù)據(jù)庫(kù)的先決條件

?

SQL> select log_mode from v$database;

?

LOG_MODE

------------

ARCHIVELOG

2)創(chuàng)建閃回恢復(fù)區(qū)

SQL> alter system setdb_recovery_file_dest='/opt/oracle/flash_recovery_area';

SQL> alter system set db_recovery_file_dest_size=8G;

3)設(shè)置閃回保留目標(biāo)時(shí)間

SQL> alter system set db_flashback_retention_target=240;

4)干凈地關(guān)閉并加載數(shù)據(jù)庫(kù)

SQL> shutdown immediate

SQL> startup mount;

5)啟用閃回日志記錄。

SQL> alter database flashback on;

6)打開(kāi)數(shù)據(jù)庫(kù)

SQL> alter database open;

6、創(chuàng)建閃回?cái)?shù)據(jù)歸檔

(1)創(chuàng)建一個(gè)供閃回?cái)?shù)據(jù)庫(kù)歸檔使用的表空間:

create tablespace fda datafile 'fda1.dbf'size 10m;

(2)在表空間創(chuàng)建一個(gè)保留時(shí)間為7年的閃回?cái)?shù)據(jù)歸檔:

create flashback archive fla1 tablespacefda retention 7 year;

(3)創(chuàng)建用于此練習(xí)的模式,并授予它DBA角色:

grant dba to fbdauser identified byfbdauser;

(4)授予用戶(hù)操作歸檔的必要權(quán)限:

grant flashback archive on fla1 tofbdauser;

(5)作為fbdauser進(jìn)行連接。創(chuàng)建一個(gè)表并為此表啟用閃回?cái)?shù)據(jù)歸檔:

conn fbdauser/fbdauser

create table t1 as select * from all_users;

alter table t1 flashback archive fla1;

(6)運(yùn)行這些查詢(xún)來(lái)確定歸檔創(chuàng)建的對(duì)象。可能必須等待幾分鐘,因?yàn)閷?duì)象不是立即創(chuàng)建的。

select object_name,object_type from user_objects;

select segment_name,segment_type from dba_segments wheretablespace_name='FDA';

(7)對(duì)保護(hù)的表執(zhí)行一些DML

delete from t1;

commit;

8)使用標(biāo)準(zhǔn)的閃回查詢(xún)語(yǔ)法對(duì)保護(hù)的表執(zhí)行閃回查詢(xún),然后查詢(xún)歸檔中的歷史表。

select count(*) from t1;

select count(*) from t1 as of timestamp(sysdate-20/1440);

select ENDSCN,USER_ID,CREATED from SYS_FBA_HIST_75307;

(9)嘗試對(duì)保護(hù)的表執(zhí)行一些DDL命令:

alter table t1 drop column created;

truncate table t1;

drop table t1;

作為SYSDBA連接,并嘗試執(zhí)行如下命令:

drop user fbdauser cascade;

drop tablespace fda including contents and datafiles;

注意,這些命令將會(huì)生成與歸檔和保護(hù)的表的存在有關(guān)的錯(cuò)誤。

10)刪除表的除歸檔保護(hù):

alter table fdbauser.t1 no flashbackarchive;

(11)刪除閃回?cái)?shù)據(jù)歸檔

drop flashback archive fla1;

(12)重新運(yùn)行步驟(9)中的所有命令。

7、閃回查詢(xún)實(shí)驗(yàn)

(1)記錄時(shí)間

SCOTT@orcl>select sysdate from dual;

?

SYSDATE

-------------------

2015-10-06 18:46:43

2)從表中刪除一些行,并提交更改。

SCOTT@orcl>delete from regions where region_name like 'A%';

?

2 rows deleted.

?

SCOTT@orcl>commit;

?

Commit complete.

3)查詢(xún)確認(rèn)表中只有兩行。

SCOTT@orcl>select * from regions;

?

?REGION_ID REGION_NAME

---------- --------------------------------------------------

?????? ?1 Europe

?????? ?4 Middle East and Africa

4)查詢(xún)針對(duì)以前某個(gè)時(shí)間的表

SCOTT@orcl>select * from regions as of timestampto_timestamp('2015-10-06 18:46:43','yyyy-mm-dd hh24:mi:ss');

?

?REGION_ID REGION_NAME

---------- --------------------------------------------------

?????? ?1 Europe

?????? ?2 Americas

?????? ?3 Asia

?????? ?4 Middle East and Africa

?

SCOTT@orcl>select * from regions as of timestampto_timestamp('2015-10-06 18:46:43','yyyy-mm-dd hh24:mi:ss') minus select * fromregions;

?

?REGION_ID REGION_NAME

---------- --------------------------------------------------

?????? ?2 Americas

?????? ?3 Asia

8、通過(guò)SQL*Plus使用閃回刪除

在本練習(xí)中創(chuàng)建一個(gè)新的模式并在該模式內(nèi)創(chuàng)建一個(gè)表,然后使用flashback drop恢復(fù)它

1)作為用戶(hù)SYSTEM使用SQL*Plus連接數(shù)據(jù)庫(kù)

2)創(chuàng)建一個(gè)用戶(hù)

SYS@orcl>create user dropper identified by dropper;

SYS@orcl>grant create session,resource to dropper;

SYS@orcl>conn dropper/dropper

3)創(chuàng)建一個(gè)帶有索引和約束的表,并插入一行:

DROPPER@orcl>create table names (name varchar2(10));

DROPPER@orcl>create index name_idx on names(name);

DROPPER@orcl>alter table names add (constraint name_uunique(name));

DROPPER@orcl>insert into names values('John');

DROPPER@orcl>commit;

4)確認(rèn)模式的內(nèi)容

DROPPER@orcl>select object_name,object_type from user_objects;

DROPPER@orcl>select constraint_name,constraint_type,table_namefrom user_constraints;

5)刪除該表:

DROPPER@orcl>drop table names;

6)重新運(yùn)行步驟(4)中的查詢(xún)。注意,已從user_objects中刪除了對(duì)象,但是仍存在采用系統(tǒng)生成的約束。

7)查詢(xún)回收站以查看原始的名稱(chēng)到回收站名稱(chēng)的映射:

DROPPER@orcl>select object_name,original_name,type fromuser_recyclebin;

注意,該視圖并沒(méi)有顯示約束

8)這表明可以查詢(xún)回收站但是無(wú)法對(duì)它執(zhí)行DML

DROPPER@orcl>select * from"BIN$IVfJDb9uy+zgVQAAAAAAAQ==$0";

?

NAME

----------

John

9)使用flashback drop恢復(fù)表:

DROPPER@orcl>flashback table names to before drop;


轉(zhuǎn)載于:https://blog.51cto.com/corasql/1700513

《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專(zhuān)家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的Oracle闪回技术(笔记)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。