顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業只做數據庫實訓和認證的品牌機構

微信公眾號新浪微博
免費咨詢電話:400-0909-964
當前位置: 網站首頁 > DBA實戰 > DBA課程 > DBA基礎課程:Oracle備份恢復-手動不完全恢復

DBA基礎課程:Oracle備份恢復-手動不完全恢復

文章來源: 更新時間:2016/6/24 13:30:18

在線老師點擊咨詢:

最新學訊:近期OCP認證正在報名中,因考試人員較多請盡快報名獲取最近考試時間,報名費用請聯系在線老師,甲骨文官方認證,報名從速!

我要咨詢

dba基礎課程:Oracle備份恢復-手動不完全恢復

平臺:redhat linux as5,oracle10g

不完全恢復是指把數據庫恢復到備份點和失敗點之間某個時刻的狀態,而且不完全恢復只適用于archivelog模式,不完全恢復可以基于時間點,基于SCN,基于控制文件或基于取消.下面用實例演示一下四種不完全恢復的用法.

一.基于時間的不完全恢復

一般當用戶誤刪除表,誤載斷表,提交了錯誤數據后,DBA可以基于時間把數據庫恢復到提交數據前的某一個狀態

現在數據庫中有一個表chenxy

SQL> select * from chenxy;

I

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

10

20

先做個全備份(數據文件)

SQL> shutdown immediate;

SQL> ! cp /u01/oradata/denver/*.dbf /u01/backup

現看當前時間并載斷表

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

TO_CHAR(SYSDATE,'YY

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

2009-05-05 23:23:11

SQL> truncate table t;

Table truncated.

現在我們把表chenxy恢復到2009-05-05 23:23:11

1.關閉數據庫

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

2.裝載數據庫

SQL> startup mount;

ORACLE instance started.

Total System Global Area 420549952 bytes

Fixed Size 451904 bytes

Variable Size 385875968 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

3.復制所有數據文件備份

SQL> ! cp /u01/backup/*.dbf /u01/oradata/denver/

注意備份的時間點要在2009-05-05 23:23:11之前,查看備份時間

SQL> select file#,to_char(time,'yyyy-mm-dd hh24:mi:ss') from v$recover_file;

FILE# TO_CHAR(TIME,'YYYY-

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

1 2009-05-05 23:20:18

2 2009-05-05 23:20:18

3 2009-05-05 23:20:18

4 2009-05-05 23:20:18

5 2009-05-05 23:20:18

6 2009-05-05 23:20:18

4.恢復到特定時間點

SQL> recover database until time '2009-05-05 23:23:24';

Media recovery complete.

5.以resetlogs方式打開數據庫,并查看表chenxy

SQL> alter database open resetlogs;

Database altered.

SQL> select * from chenxy;

I

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

10

20

當以resetlogs方式打開數據庫時,會重新建立重做日志,清空原有重做日志的內容(同時歸檔日志也全部刪除了),而且過去的備份也不能直接使用了,現在重新備份所有數據文件和控制文件,并歸檔當前日志組

SQL> shutdown immediate;

SQL> ! cp /u01/oradata/denver/*.dbf /u01/backup

SQL> ! cp /u01/oradata/denver/*.ctl /u01/backup

SQL>startup

SQL> alter system switch logfile;

6.簡單排錯

因為選項resetlogs要清空重做日志,當出現如下錯誤ORA-00338時可用resetlogs打開數據庫

SQL> startup

ORACLE instance started.

Total System Global Area 420549952 bytes

Fixed Size 451904 bytes

Variable Size 385875968 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

ORA-00338: log 2 of thread 1 is more recent than controlfile

ORA-00312: online log 2 thread 1: '/u01/oradata/denver/redo02.log'

使用resetlogs打開后一定要做備份.

SQL> alter database open resetlogs;

Database altered.

SQL> select status from v$instance;

STATUS

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

OPEN

二.基于SCN恢復

1.查看當前SCN號

SQL> select current_scn from v$database;

#或

SQL> select dbms_flashback.get_system_change_number scn from dual;

SCN

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

1673513

1.關閉數據庫

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

2裝載數據庫

SQL> startup mount;

ORACLE instance started.

Total System Global Area 420549952 bytes

Fixed Size 451904 bytes

Variable Size 385875968 bytes

Database Buffers 33554432 bytes

Redo Buffers 667648 bytes

Database mounted.

3.復制所有數據文件備份

SQL> ! cp /u01/backup/*.dbf /u01/oradata/denver/

注意備份的SCN號要小于1673513,查看備份的SCN

SQL> select file#,change# from v$recover_file;

FILE# CHANGE#

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

1 1673087

2 1673087

3 1673087

4 1673087

5 1673087

6 1673087

7 1673087

4.恢復到特定SCN

SQL> recover database until change 1673513;

Media recovery complete.

5.以resetlogs方式打開數據庫,并查看表chenxy

SQL> alter database open resetlogs;

Database altered.

SQL> select * from chenxy;

I

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

10

20

6.重新備份所有數據文件和控制文件,并歸檔當前日志組

SQL> shutdown immediate;

SQL> ! cp /u01/oradata/denver/*.dbf /u01/backup

SQL> ! cp /u01/oradata/denver/*.ctl /u01/backup

SQL>startup

SQL> alter system switch logfile;

三.基于取消不完全恢復

其于取消恢復主要適用于因歸檔日志丟失,只能恢復到某一個時間的情況,恢復方法和前面兩種一樣,只是恢復時點不同.

恢復

SQL>shutdown immediate;

SQL>startup mount;

SQL>! cp /u01/backup/*.dbf /u01/oradata/denver/

SQL> recover database until cancel;

Media recovery complete.

SQL>alter database open resetlogs;

四.基于備份控制文件恢復

原理:當用戶誤刪除一個表空間時,當前的控制文件就把此表空間的信息都刪了,但是在備份的控制文件里還是它的信息,所以可以用備份的控制文件恢復表空間

刪除一個表空間

SQL> drop tablespace chenxy including contents;

Tablespace dropped.

SQL> select * from chenxy;

select * from chenxy

ERROR at line 1:

ORA-00942: table or view does not exist

到alter日志找到刪除時間

SQL> show parameter background_dump_dest

NAME TYPE VALUE

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

background_dump_dest string /u01/admin/denver/bdump

SQL>! less /u01/admin/denver/bdump/alert_denver.log

Wed May 6 00:10:19 2009

drop tablespace chenxy including contents

Completed: drop tablespace chenxy including contents

恢復

SQL>shutdown immediate;

SQL>startup mount;

#此時把控制文件也復制過來

SQL>! cp /u01/backup/*.dbf /u01/oradata/denver/

SQL>! cp /u01/backup/*.bak /u01/oradata/denver/

SQL>recover database until time '2009-05-05 23:50:24' using backup controlfile

SQL>alter database open resetlogs

最后最好再做一個全備份.

本文地址:http://www.mudan321.com/dba/kecheng/12299582116.html 轉載請注明!


PostgreSQL入門到精通 100+ 個學習資料

Oracle培訓機構

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級講師、Unix/Linux 資深專家...[詳細了解老師]

免費咨詢上課流程 客服在線中

陳衛星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復、性能優化 11年Ora...[詳細了解老師]

免費咨詢上課流程 客服在線中

選學校如何選擇適合自己的學校

CUUG -CHINA UNIX USER GROUP,是國際UNIX組織UNIFORUM的中國代表,是國內悠久的專業UNIX培訓機構,被譽為中國UNIX 的搖籃。多年來,以提高教學質量為本,強調素質教育,積極引進、消化國外的新技術,有效的結合中國....[詳情]

一站式服務(從入學到就業一幫到底)

入學

學習

就業

實操

食宿
地址:北京市海淀區田村山南路35號院17號樓
課程咨詢: 400-0909-964
企業服務:137 1818 8639(陳經理)
部分信息來源于網絡,如有錯誤請聯系指正!
版權所有@北京神腦資訊技術有限公司 (CUUG,中國UNIX用戶協會) Copyright 2016 ALL Rights Reserved 京ICP備11008061號-1