1. 程式人生 > >RMAN基於時間點回複數據

RMAN基於時間點回複數據

1、檢視資料庫是否歸檔

[[email protected] ~]$sqlplus / as sysdba

SQL> archive log list

2、實驗過程

2.1建立測試使用者

CREATE TABLESPACE qqqDATAFILE'/u01/app/oradata/yyy/qqq01.dbf' SIZE 50M

create user qqq identified by qqq defaultTABLESPACE qqq;

grant resource,connect,dba to qqq;

conn qqq/qqq

create table tb_SalGra(

pk_SalGra_ID number primary key,

losal number,

hisal number

);

insert into tb_SalGra values (1,700,1200);

insert into tb_SalGra values (2,1201,1400);

2.2在歸檔下對資料庫做RMAN全備

[[email protected] scripts]$ ./rman_bak_level0.sh

2.3刪除tb_SalGra表及qqq使用者

檢視當前時間

SQL> select to_char(sysdate,'yyyy-mm-ddhh24:mi:ss') time from dual;

TIME

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

2018-03-26 08:54:20

連線qqq使用者,刪除qqq使用者的tb_SalGra

SQL> conn qqq/qqq

Connected.

SQL> drop table tb_SalGra;

Table dropped.

檢視當前時間

SQL> select to_char(sysdate,'yyyy-mm-ddhh24:mi:ss') time from dual;

TIME

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

2018-03-26 08:57:20

連線sys使用者,刪除掉qqq使用者

SQL> conn / as sysdba

Connected.

SQL> drop user qqq cascade;

User dropped.

檢視使用者是否存在select username from all_users;

2.4基於時間點的恢復

在用RMAN恢復資料庫之前,我們先檢視一下資料庫的incarnation資訊

[[email protected] ~]$rman target /

using targetdatabase control file instead of recovery catalog

List of DatabaseIncarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN Reset Time

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

1       1      YYY      2086322433       PARENT 1          15-AUG-09

2       2      YYY      2086322433       CURRENT 945184     01-MAR-18

此時資料庫的狀態是DB Key=2

關庫、起庫到MOUNT狀態,連線到RMAN,做基於時間點的不完全恢復,恢復到刪除qqq使用者時間點之前(2018-03-26 08:57:20)的狀態,即恢復qqq使用者但不恢復tb_SalGra表。

SQL> shutdownimmediate;

[[email protected] ~]$ rman target /

RMAN> startupmount;          

RMAN> run{

2> allocatechannel d1 device type disk;

3> set until time"to_date('2018-03-26 08:57:20','yyyy-mm-ddhh24:mi:ss')";

4> restoredatabase;

5> recoverdatabase;}

using target database control file instead ofrecovery catalog

allocated channel: d1

channel d1: SID=1145 device type=DISK

executing command: SET until clause

Starting restore at 26-MAR-18

channel d1: starting datafile backup set restore

channel d1: specifying datafile(s) to restorefrom backup set

channel d1: restoring datafile 00001 to/u01/app/oradata/yyy/system01.dbf

channel d1: restoring datafile 00002 to/u01/app/oradata/yyy/sysaux01.dbf

channel d1: restoring datafile 00003 to/u01/app/oradata/yyy/undotbs01.dbf

channel d1: restoring datafile 00004 to/u01/app/oradata/yyy/users01.dbf

channel d1: restoring datafile 00005 to/u01/app/oradata/yyy/test_01.dbf

channel d1: restoring datafile 00006 to/u01/app/oradata/yyy/test02.dbf

channel d1: restoring datafile 00007 to/u01/app/oradata/yyy/test3_23.dbf

channel d1: restoring datafile 00008 to/u01/app/oradata/yyy/qqq01.dbf

channel d1: reading from backup piece/file/backup/rman/db0_YYY_20180326_4csuo4pk_1_1.bkp

channel d1: piecehandle=/file/backup/rman/db0_YYY_20180326_4csuo4pk_1_1.bkptag=TAG20180326T085204

channel d1: restored backup piece 1

channel d1: restore complete, elapsed time:00:04:24

Finished restore at 26-MAR-18

Starting recover at 26-MAR-18

starting media recovery

media recovery complete, elapsed time: 00:00:02

Finished recover at 26-MAR-18

released channel: d1

RMAN> alter databaseopen resetlogs;

database opened

連線到資料庫,檢視qqq使用者是否存在,以及表是否恢復

select username from all_users;

可見恢復qqq使用者成功,tb_SalGra表尚未恢復

2.5恢復tb_SalGra表:

關庫、起庫到MOUNT狀態,在剛成功恢復資料庫的基礎上,使用RMAN做基於時間點的不完全恢復,恢復到刪除qqq使用者tb_SalGra表之前的時間點(2018-03-2608:54:20)的狀態。

sql> shutdown immediate;

RMAN> startup mount;

RMAN> list incarnation;  檢視一下資料庫的incarnation資訊

RMAN>RESET DATABASE TO INCARNATION 2;

RMAN> run{

2> allocate channel d1 device type disk;

3> set until time "to_date('2018-03-2608:54:20','yyyy-mm-dd hh24:mi:ss')";

4> restore database;

5> recover database;}

RMAN> alter databaseopen resetlogs;

database opened

連線資料庫看看tb_SalGra表是否恢復!

相關推薦

RMAN基於時間複數

1、檢視資料庫是否歸檔 [[email protected] ~]$sqlplus / as sysdba SQL> archive log list 2、實驗過程 2.1建立測試使用者 CREATE TABLESPACE qqqDATAFILE'/u0

基於時間RMAN恢復

二. 恢復步驟: 1. 引數檔案恢復 [[email protected] ~]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Tue Sep 5 05:50:45 2017 Copyright

RMAN備份與恢復之基於時間的不完全恢復

一 不完全恢復講解         在上一篇文章(RMAN備份與恢復之UNDO表空間丟失)中,我們講到UNDO表空間丟失怎麼處理。UNDO表空間是不可離線的,同樣,SYSTEM表空間也是不可離線的,所以SYSTEM表空間丟失的處理辦法和UNDO表空間丟失的處理辦法類似,在

MySQL中基於mysqldump和二進制日誌log-bin二進制日誌進行邏輯備份以及基於時間的還原

總結 mysql-bin lin .sql bin -h eat log-bin 之前 本文出處:http://www.cnblogs.com/wy123/p/6956464.html 本文僅模擬使用mysqldump和log-bin二進制日誌進行簡單

時間的數變成時間段的數

nvl 創建 family eat color bsp bold 時間段 microsoft 已知數據如下:PC E D工 5 2016-09-01工 6 2016-09-30公 5 2016-09-01

Mysql的增量備份 及基於時間與位置的恢復

pre school 主從架構 http 二進制 全備 etc 復數 根據 增量備份的優點是沒有重復數據,備份量不大,時間短。缺點也很明顯,需要上次完全備份及完全備份之後所有的增量備份才能恢復,反推恢復,操作較為繁瑣。 Mysql沒有提供增量備份的方法,但是可以通過二進制日

MySQL增量備份恢復和基於時間與位置的恢復

local 間接 恢復 efault posit 創建 val etc 節點 為什麽使用增量備份? 完全備份有兩種方式,一種是使用tar打包數據文件,另一種是使用mysqldump進行完全備份。完全備份存在的問題很容易看到,每次都是把所有的數據內容進行備份,備份數據中有大量

MySQL 基於時間與位置恢復

開始 mark 文本 zhang map bin 完全 slave -o 基於時間點與位置恢復 利用二進制日誌可以實現基於時間與位置的恢復,例如由於誤操作刪除了一張表,這時候完全恢復是沒用的,因為日誌裏面還是存在錯誤語句,我們需要的是恢復到誤操作之前的狀態,然後跳過誤操作數

使用 mysqldump 實現 MySQL 5.7 基於時間的恢復

trigger result c89 ade cto ima RoCE out a10 創建測試數據全備數據庫 mysqldump --single-transaction --flush-logs --master-data=2 --all-databases --tri

13.基於時間的恢復

介紹 恢復完整備份後,您需要還原二進位制日誌以獲取時間點恢復。 備份提供備份可用的二進位制日誌位置。 操作 1 mysqldump or mysqlpump binary log資訊根據傳遞給mysqldump/mysqlpump的選項作為CHANGE MASTER TO命令

ARCHIVELOG模式下使用者管理的不完全恢復—基於時間的不完全恢復

基於時間點的恢復主要使用於以下情況:誤刪除表、誤截斷表、提交了錯誤的資料。(從oracle 10g利用閃回更easy!)   首先關閉資料庫執行一個冷全備份(冷備份的時候使用者u1的t表中是有3條記錄的。) [sql] view plai

12C-PDB基於時間恢復

RMAN>alter  pluggable database zaki1 close immediate; RMAN> run{ 2> set until time "TO_DATE('2016-10-31 12:03:08','yyyy-mm-dd hh

binlog-rollback.pl基於binlog位置時間恢復delete誤刪語句

基於位置點和時間點恢復delete誤刪一、基於binlog位置點的恢復 為了演示,刷新一個新的binlog文件,讓它單獨記錄delete刪除語句: MySQL [zhangyou]> flush logs Query OK, 0 rows affected (0.09 sec) MySQL [zhan

oracle數庫還原24小時內的時間

企業 直接 數據還原 表名 rom 導致 amp sele oracle數據 --首先查詢在某個時間點的數據 t_asn_dtl 為表名SELECT * FROM t_asn_dtl AS OF TIMESTAMP TO_TIMESTAMP(‘20180625 22:3

庫恢復至某個時間

fast ott acl ring rod 宋體 ice reset iat 實例詳解: 數據庫恢復到某個時間點 [oracle@lyo1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production o

DL之LSTM之UvP:基於TF利用LSTM基於DIY時間訓練1200個數預測後200個數狀態

DL之LSTM之UvP:基於TF利用LSTM基於DIY時間訓練1200個數據預測後200個數據狀態 輸出結果   設計思路   訓練記錄全過程 INFO:tensorflow:loss = 0.496935, step = 1 INFO:t

資料庫滾到某個時間(僅用於Oracle資料庫)

select * from cst_bse_inf as of timestamp to_timestamp('2018-08-01 09:20:00','yyyy-mm-dd hh24:mi:ss'); alter table cst_bse_inf enable row movement; fl

oracle update並commit誤操作後,利用閃方法 flashback可以還原上個時間的資料

今天在生產環境更新一個選單的URL時,用update更新資料,但是忘記加上where限定條件,將所有選單的URL都更新為同一個。一時間感覺我惹大事了,慌忙找了個以前的備份表將整個表替換掉。可是備份表與真是表之間存在一些差異,結果就只能一個一個查詢並修改了。 事後才淡定下來,

恢復到特定時間、scn、日誌序列號),rman不完全恢復

將資料庫、表空間、資料檔案等恢復至恢復備份集儲存時間中的任何一個時間點/SCN/日誌序列(一般是日誌挖掘找到誤操作點),但須謹慎,操作前一定需要做好備份,具備條件的情況下最好先恢復到異機,避免業務停機時間。 前提:已經有資料庫備份 (作者已經提前準備了備份,這裡不進行備

[RMAN]使用RMAN備份將資料庫不完全恢復到指定時間

RMAN作為Oracle強大的備份恢復工具,可以協助我們恢復資料庫到指定時間點,這便是Oracle不完全恢復的一種體現,通過這種方法可以找回我們曾經丟失的資料。這裡以找回誤TRUNCATE表資料為例給大家演示一下RMAN的不完全恢復功能。 1.調整資料庫為歸檔模式[emai