久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Oracle閃回數據庫怎么實現

157次閱讀
沒有評論

共計 4470 個字符,預計需要花費 12 分鐘才能閱讀完成。

本文丸趣 TV 小編為大家詳細介紹“Oracle 閃回數據庫怎么實現”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Oracle 閃回數據庫怎么實現”文章能幫助大家解決疑惑,下面跟著丸趣 TV 小編的思路慢慢深入,一起來學習新知識吧。

在 Oracle Database 12.1 中,閃回數據庫操作僅限于根容器,因此會影響與根容器關聯的所有可插拔數據庫(PDB)。Oracle Database 12.2 現在支持可插拔數據庫的閃回,使閃回數據庫在多租戶架構中再次相關。

1 啟用閃回

將數據庫啟動到 mount 階段,開啟閃回,然后 open,再啟用 FLASHBACK

SQL  shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL  STARTUP MOUNT
ORACLE instance started.

Database altered.

指定閃回恢復區目錄和大小

SQL  alter system set db_recovery_file_dest_size=5G;
System altered.
SQL  alter system set db_recovery_file_dest= /home/oracle/archivelog 
System altered.
SQL  alter database flashback on;
Database altered.

關閉閃回

SQL  alter database flashback off;
Database altered.

查看結果

SQL  SELECT flashback_on FROM v$database;
FLASHBACK_ON
------------------------------------
YES

閃回日志保留的數量是受參數 DB_FLASHBACK_RETENTION_TARGET 控制的,該參數表示保留時間 (分鐘),默認為 7 天。

SQL  show parameter DB_FLASHBACK_RETENTION_TARGE 
NAME TYPE VALUE
 ------------------------------------ ---------------------- ------------------------------ 
 db_flashback_retention_target integer 1440

2 創建還原點

恢復點實際上是記錄當時的 SCN。要想恢復到之前創建的還原點,要保證還原點之后的閃回日志是完整的。

在 CDB 級別創建恢復點與 non-CDB 相同。以下示例在 CDB 級別分別創建和刪除正常,保證的還原點。

正常的還原點

CREATE RESTORE POINT cdb1_before_changes;
 DROP RESTORE POINT cdb1_before_changes;

保證的還原點 (Guaranteed restore point)

CREATE RESTORE POINT cdb1_before_changes GUARANTEE FLASHBACK DATABASE;
 DROP RESTORE POINT cdb1_before_changes;

下面是在 PDB 級別創建還原點的幾個選項。

SQL  show pdbs;
 CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
 2 PDB$SEED READ ONLY NO
 3 ORCLPDB MOUNTED

–切換到 PDB

SQL  alter session set container=orclpdb;
 Session altered.
 SQL  startup
 Pluggable Database opened.

–正常的還原點

SQL  create restore point pdb1_point1;
 Restore point created.
SQL  drop restore point pdb1_point1;
 Restore point dropped.

–保證的還原點 (Guaranteed restore point)

SQL  create restore point pdb1_point1 GUARANTEE FLASHBACK DATABASE;
 Restore point created.
SQL  drop restore point pdb1_point1;
 Restore point dropped.

2.1 創建一個干凈的還原點

注:如果容器數據庫是以本地模式運行的就不用看這個章節。

本地模式運行的容器數據庫,閃回 PDB 不依賴它。但是如果 CDB 再共享模式下運行,那么閃回到干凈的還原點將更有效。這些是當可插拔數據庫關閉的時候沒有未完成的事務。

語法和上面相似,只是多加了個單詞。而且要關閉 PDB

如:

切換到 PDB 下執行:

SQL  alter session set container=orclpdb;
SQL  shutdown immediate;

– 干凈正常的還原點

SQL  CREATE CLEAN RESTORE POINT cdb1_before_changes;
SQL  DROP RESTORE POINT cdb1_before_changes;

– 干凈保證的還原點 (Guaranteed restore point)

SQL  CREATE CLEAN RESTORE POINT cdb1_before_changes GUARANTEE FLASHBACK DATABASE;
SQL  DROP RESTORE POINT cdb1_before_changes;

CDB ROOT 下執行:

SQL  ALTER PLUGGABLE DATABASE orclpdb CLOSE;

– 干凈正常的還原點

SQL  CREATE CLEAN RESTORE POINT cdb1_before_changes FOR PLUGGABLE DATABASE orclpdb ;
SQL  DROP RESTORE POINT cdb1_before_changes ;FOR PLUGGABLE DATABASE orclpdb ;

– 干凈保證的還原點 (Guaranteed restore point)

SQL  CREATE CLEAN RESTORE POINT cdb1_before_changes GUARANTEE FLASHBACK DATABASE FOR PLUGGABLE DATABASE orclpdb;SQL  DROP RESTORE POINT cdb1_before_changes ;FOR PLUGGABLE DATABASE orclpdb ;
SQL  ALTER PLUGGABLE DATABASE orclpdb OPEN;

可以通過查看 V$RESTORE_POINT 視圖中的 CLEAN_PDB_RESTORE_POINT 列所示。

3 閃回 CDB 和閃回 PDB

閃回 CDB 如下:

SQL SHUTDOWN IMMEDIATE;
SQL STARTUP MOUNT;
SQL FLASHBACK DATABASE TO RESTORE POINT cdb1_before_changes;
ALTER DATABASE OPEN RESETLOGS;

– 打開所有 PDB

SQL ALTER PLUGGABLE DATABASE ALL OPEN RESETLOGS;

閃回還支持多種形式的閃回,如按時間,SCN, 或者某個時間點之前。

如:

FLASHBACK DATABASE TO TIMESTAMP my_date;
FLASHBACK DATABASE TO BEFORE TIMESTAMP my_date;
FLASHBACK DATABASE TO SCN my_scn;
FLASHBACK DATABASE TO BEFORE SCN my_scn;
FLASHBACK DATABASE TO RESTORE POINT my_restore_point;

根據數據庫運行的模式不同,操作也會有所不同。下面是本地 UNDO 模式的操作步驟:

SQL ALTER PLUGGABLE DATABASE orclpdb CLOSE;
SQL FLASHBACK PLUGGABLE DATABASE orclpdb TO RESTORE POINT pdb1_before_changes;
SQL ALTER PLUGGABLE DATABASE orclpdb OPEN RESETLOGS;

如果使用的共享 UNDO 模式,語法有點不同,就是你需要制定輔助實例的位置。

SQL FLASHBACK PLUGGABLE DATABASE orclpdb TO SCN my_scn AUXILIARY DESTINATION  /u01/auxiliary 
SQL FLASHBACK PLUGGABLE DATABASE orclpdb TO RESTORE POINT my_restore_point AUXILIARY DESTINATION  /u01/auxiliary

4 具體例子:

–創建還原點

SQL CREATE RESTORE POINT pdb1_before_changes FOR PLUGGABLE DATABASE pdb1;

–創建表

SQL CREATE TABLE t1 (
 id NUMBER
SQL INSERT INTO t1 VALUES (1);
SQL COMMIT;
SQL SELECT * FROM t1;
 ID
----------
 1

閃回到指定還原點

SQL Flashback the PDB to the restore point.
SQL ALTER PLUGGABLE DATABASE pdb1 CLOSE;
SQL FLASHBACK PLUGGABLE DATABASE pdb1 TO RESTORE POINT pdb1_before_changes;
SQL ALTER PLUGGABLE DATABASE pdb1 OPEN RESETLOGS;

–檢查數據是否存在

SQL SELECT * FROM t1;
SELECT * FROM t1
 *
ERROR at line 1:
ORA-00942: table or view does not exist

可以看到已經閃回到創建表之前的那個狀態了。

讀到這里,這篇“Oracle 閃回數據庫怎么實現”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注丸趣 TV 行業資訊頻道。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-13發表,共計4470字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 怀远县| 新竹市| 睢宁县| 右玉县| 合川市| 临高县| 沐川县| 洛宁县| 分宜县| 延吉市| 乌鲁木齐市| 潮安县| 鸡东县| 天峨县| 曲沃县| 巴南区| 七台河市| 阿合奇县| 商河县| 广南县| 贺兰县| 昆山市| 绥化市| 长泰县| 钟祥市| 淮滨县| 大竹县| 濮阳县| 利津县| 东台市| 临桂县| 内黄县| 安乡县| 阳信县| 井冈山市| 张北县| 峨眉山市| 金沙县| 绥芬河市| 申扎县| 周宁县|