首頁 資料庫 mysql教程 rman数据库恢复;关键/非关键文件、影像副本、控制文件、还原点

rman数据库恢复;关键/非关键文件、影像副本、控制文件、还原点

Jun 07, 2016 pm 04:03 PM
關鍵 副本 影像 恢復 控制 資料庫 文件

执行完全恢复:在 ARCHIVELOG 模式下 丢失了系统关键数据文件: 如果某个数据文件丢失或损坏,且该文件属于 SYSTEM 或 UNDO 表空间,请执行以下步骤: 1. 实例可能会也可能不会自动关闭。 2.如果未自动关闭,请使用 SHUTDOWN ABORT 关闭实例。 3. 装载数据库

执行完全恢复:在 ARCHIVELOG 模式下 丢失了系统关键数据文件:

如果某个数据文件丢失或损坏,且该文件属于 SYSTEM 或 UNDO 表空间,请执行以下步骤:

1.
实例可能会也可能不会自动关闭。
2.如果未自动关闭,请使用 SHUTDOWN ABORT 关闭实例。
3.
装载数据库。
4.
还原并恢复缺失的数据文件。

5.打开数据库。

1.归档模式丢失非关键数据文件 完全恢复

第一种方法:

shutdown abort;

startup mount;

alter database create datafile '/home/oracle/test.dbf' as '/home/oracle/test.dbf';

recover datafile;

第二种方法:

create tablespace test datafile '/home/oracle/test.dbf' size 10m;

rman target /

backup datafile 5;

rm test.dbf

sq> alter database datafile 5 offline;

restore datafile 5;

recover datafile 5;

sq> alter database datafile 5 online;

select FILE#,STATUS from v$datafile;

2. 归档模式丢失关键数据文件 完全恢复

利用备份,同上第二种方法。

--------------------------------------------------------------------------------------------------------------
恢复映像副本:
RMAN> recover copy of database with tag 'daily_inc';

RMAN> backup incremental level 1 for recover of copy
with tag 'daily_inc' database;

RECOVER BACKUP
第 1 天 无 创建映像副本
第 2 天 无 创建 1 级增量备份
第 3 天和以后 根据增量备份恢复副本 创建 1 级增量备份


恢复映像副本:示例
如果每天都运行以上命令,则可以随时获得所有数据库数据文件的连续更新的映像副本。
图表显示了每次运行所发生的操作。请注意,这种算法需要一段准备期间;到第 3 天后策略才会起作用。

第 1 天
RECOVER 命令没有执行任何操作。尚不存在要恢复的映像副本。BACKUP 命令可用于创建映像副本。

第 2 天
RECOVER 命令仍没有执行任何操作。因为尚不存在增量备份。由于已在第 1 天创建了基准映像副本,BACKUP 命令会创建增量备份。
第 3 天
RECOVER 命令将增量备份中的更改应用于映像副本。BACKUP 命令将执行另一个增量备份,该备份将在第 4 天用于恢复映像副本,依此进行循环。

执行到映像副本的快速切换
执行以下步骤

可以使用数据文件的映像副本进行快速恢复:

1.使数据文件脱机。
2.使用 SWITCH TO ...COPY 命令指向这些文件的映像副本。

3.恢复数据文件。
4.使数据文件联机。

此时,数据库是可用的,且数据文件已恢复。但是,如果您希望将数据文件放回其原始位置,请继续执行以下步骤:

5.使用 BACKUP AS COPY 命令在原始位置创建数据文件的映像副本。

6.使数据文件脱机。

7.使用 SWITCH TO COPY 命令切换到在步骤 5 中创建的副本。

8.恢复数据文件。

9.使数据文件联机。
可以使用此命令来恢复数据文件、表空间、临时文件或整个数据库。切换到的目标文件必须为映像副本。

3. 映像副本的快速切换

backup as copy datafile 6;

rm a.dbf

sql:alter database datafile 6 offline;

rman >switch datafile '/home/oracle/test.dbf' to copy;

recover datafile 6;

--回复后数据文件的路径和名称为 '/home/oracle/test.dbf';

alter database datafile 4 online;

select FILE#,STATUS from v$datafile;

select file_name from dba_data_files;

backup as copy datafile 4 format '/u01/app/oracle/oradata/orcln/users01.dbf';

alter database datafile 4 offline;

switch datafile ' /home/oracle/backup/db_data_D-ORCL_I-4115975543_TS-TEST_FNO-6_38otbf5q.bak' to copy;

switch datafile 4 to copy;

recover datafile 4;

alter database datafile 4 online;

select file_name from dba_data_files;

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

4. set newname 改名字

backup as copy datafile 6;

list copy of datafile 6;

select FILE#,STATUS from v$datafile;

run{

allocate channel c1 device type disk;

sql "alter database datafile 6 offline";

set newname for datafile '/home/oracle/test.dbf' to '/home/oracle/test_new.dbf';

restore datafile 6;

switch datafile all;

recover datafile 6;

sql "alter database datafile 6 online";

}
--------------------------------------------------------------------------------------------------------------
从自动备份还原控制文件:

RMAN> STARTUP NOMOUNT;

RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;

RMAN> ALTER DATABASE MOUNT;

RMAN> RECOVER DATABASE;

RMAN> ALTER DATABASE OPEN RESETLOGS;

 

7. 丢失控制文件,参数文件 --数据库必须在nomount状态

查看文件信息:

SQL>select name from v$controlfile;

SQL>show parameter spfile;

SQL> select name from v$datafile;

配置控制文件自动备份恢复控制文件

rman target /

connected to target database: ORCL (DBID=1353286769)

RMAN>show all;

RMAN>CONFIGURE CONTROLFILE AUTOBACKUP ON;

数据库全备份:

RMAN>backup as compressed backupset full database;

删除,参数文件,控制文件,数据文件

rm /opt/oracle/oradata/orcl/control01.ctl

rm /opt/oracle/flash_recovery_area/orcl/control02.ctl

rm /opt/oracle/oradata/orcl/control03.ctl

rm /opt/oracle/product/11.2.2/dbs/spfileorcl.ora

rm /opt/oracle/oradata/orcl/system01.dbf

rm /opt/oracle/oradata/orcl/sysaux01.dbf

rm /opt/oracle/oradata/orcl/undotbs01.dbf

rm /opt/oracle/oradata/orcl/users01.dbf

rm /home/oracle/tbs_ctl01.dbf

rman target /

RMAN> set dbid 1353286769 --如果备份在

startup nomount --虽然没有参数文件但是也可以启动实例

恢复参数文件:

restore spfile from '/data/backup/ctl_c-1353286769-20131102-04.bak';

/* 从快速恢复区恢复参数文件:

run {

restore spfile from autobackup

recovery area = 'flash recovery area destination'

db_name = 'db_name';

}

*/

查看是否有需要改的参数:主要看文件位置

SQL> create pfile from spfile;

恢复控制文件:

restore controlfile to '/opt/oracle/oradata/orcl/control01.ctl' from '/data/backup/ctl_c-1353286769-20131102-04.bak';

恢复数据文件:

RMAN> shutdown immediate

RMAN> startup mount

RMAN> restore database;

RMAN> recover database;

RMAN> alter database open;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of alter db command at 11/02/2013 12:10:46

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

RMAN> alter database open resetlogs;
--------------------------------------------------------------------------------------------------------------
使用增量备份恢复处于 NOARCHIVELOG 模式的数据库:

STARTUP FORCE NOMOUNT;

RESTORE CONTROLFILE;

ALTER DATABASE MOUNT;

RESTORE DATABASE;

RECOVER DATABASE NOREDO;

ALTER DATABASE OPEN RESETLOGS;

8. 使用增量备份恢复处于NOARCHIVELOG 模式的数据库

1) 撤销数据库archivelog模式

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter database noarchivelog;

SQL>alter database open;

SQL>archive log list; 

2) 创建测试用表及数据

conn zhuxy/zhuxy

create table c (id number);

insert into c values(1);

commit; 

3) 在noarchivelog模式下,0级备份

RMAN> run{

shutdown immediate;

startup mount;

backup as backupset incremental level 0 database;

alter database open;

4) 在noarchivelog模式下,1级备份

insert into c values(2);

commit; 

RMAN> run{

shutdown immediate;

startup mount;

backup as backupset incremental level 1 database;

alter database open;

6) 删除所有日志文件, 某些数据文件 

7) 执行恢复

rman target /

RMAN>startup mount; 

--执行全库的还原

RMAN> restore database; 

-- 使用noredo子句进行恢复

RMAN> recover database noredo; 

--恢复完成,resetlogs方式打开数据库,完成所有文件丢失的恢复

RMAN> alter database open resetlogs; 

8)验证在测试前(增量备份前)插入的数据

select * from c; 

6.非归档丢失文件

不完全恢复: SCN, 时间,还原点,或日志序列号

1确定目标还原点:SCN、时间、还原点或日志序列号。

2设置 NLS 环境变量。

3装载数据库。

4使用 SET UNTIL、RESTORE 和 RECOVER 命令准备并运行 RUN 块。

5用 RESETLOGS 打开数据库。 

-----不完全恢复之--基于时间的恢复

1) 准备环境:RMAN全库备份

RMAN> backup as compressed backupset full database;

2) 准备环境:测试表及数据

alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

create table d (c date);

insert into d values(sysdate);

commit;

create table ff (c date);

insert into ff values(sysdate);

commit; 

启动到mount模式,进行基于时间的恢复

shutdown immediate;

startup mount; 

run

{sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';

set until time = ' 2014-03-30 00:39:34';

restore database;

recover database;

alter database open resetlogs;

}

时间也可以这么写:

set until time="to_date('2013-11-01 15:29:34','yyyy-mm-dd hh24:mi:ss')";

-----还原点:

select count(*) from copy_emp;

创建还原点:

create restore point before_delete;

delete from copy_emp where ID >=10;

commit;

alter table copy_emp enable row movement;

flashback table copy_emp to restore point b; 

--------------------------------------------------------------------------------------------------------------
将数据库还原到新主机:

为了还原数据库,请在还原主机上执行以下步骤:

1.配置 ORACLE_SID 环境变量。

2.启动 RMAN 并在 NOCATALOG 模式下连接到目标实例。

3.设置数据库标识符 (DBID)。

4.在 NOMOUNT 模式下启动实例。
5.
从备份集中还原服务器参数文件。

6.关闭实例。
7.
编辑还原的初始化参数文件。
8.
在 NOMOUNT 模式下启动实例
9.创建 RUN 块以执行下列任务:

--还原控制文件
--
装载数据库

10.创建 RMAN 恢复脚本以还原和恢复数据库。

11.执行 RMAN 脚本。

12.使用 RESETLOGS 选项打开数据库。

9 利用备份将数据库还原到新主机:目标库需要有oracle软件 

1)准备工作

源库数据库全备及控制文件自动备份,当然也包括参数文件

RMAN> backup as backupset database; 

2)拷贝RMAN备份文件到目标库

可以用scp 

3)配置目标库

目标库设置环境变量

export ORACLE_SID=new_orcl 

启动rman到nomount状态,设置dbid(即源库dbid)

$ rman target /

RMAN> set dbid 1357901988

RMAN> startup nomount; --没有参数文件,会报错,但是可以启动实例 

4)恢复参数文件 

RMAN> restore spfile to pfile '' from ''; 

编辑pfile参数文件:文件位置,数据库实例名..,创建相应的目录 

5) 启动数据库到nomount模式

SQL> create spfile from pfile;

SQL> startup nomount; 

6)还原控制文件

$ rman target / 

RMAN> restore controlfile to '' from ''; 

RMAN> alter database mount; 

7) 还原数据文件

run{

SET NEWNAME FOR DATAFILE 1 TO '/u01/app/oracle/oradata/orcl/system01.dbf';

SET NEWNAME FOR DATAFILE 2 TO '/u01/app/oracle/oradata/orcl/sysaux01.dbf';

SET NEWNAME FOR DATAFILE 3 TO '/u01/app/oracle/oradata/orcl/undotbs01.dbf';

SET NEWNAME FOR DATAFILE 4 TO '/u01/app/oracle/oradata/orcl/users01.dbf';

SET NEWNAME FOR DATAFILE 5 TO '/u01/app/oracle/oradata/orcl/example01.dbf';

SET NEWNAME FOR DATAFILE 6 TO '/u01/app/oracle/oradata/orcl/test.dbf';

RESTORE DATABASE;

SWITCH DATAFILE ALL;

RECOVER DATABASE;} 

--rename日志文件

run{

SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo01.log'' TO

''/u01/app/oracle/oradata/orcl/redo01.log'' ";

SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo02.log'' TO

''/u01/app/oracle/oradata/orcl/redo02.log'' ";

SQL "ALTER DATABASE RENAME FILE ''/u01/app/oracle/oradata/ENMOEDU/redo03.log'' TO

''/u01/app/oracle/oradata/orcl/redo03.log'' ";

RMAN> alter database open resetlogs; 

8)临时文件位置不对

SQL> select file_name from dba_temp_files;

SQL>create temporary tablespace tempa tempfile

'/u01/app/oracle/oradata/orcl/tempa01.dbf' size 10m reuse autoextend on maxsize 200m;

SQL>alter database default temporary tablespace tempa;

SQL>drop tablespace temp;

SQL>select file_name from dba_temp_files; 

注:这个测试改变了实例名
--------------------------------------------------------------------------------------------------------------
执行灾难恢复 :

灾难意味着丢失了整个目标数据库、恢复目录数据库、所有当前控制文件、所有联机重做日志文件和所有参数文件。

灾难恢复包括还原和恢复目标数据库。

备份集的最低要求:

1.数据文件的备份
2.
相应的归档重做日志文件
3.
至少一个控制文件自动备份

基本过程:
1.
还原服务器参数文件的自动备份。

2.启动目标数据库实例。

3.从自动备份还原控制文件。

4.装载数据库。

5.还原数据文件。

6.恢复数据文件。

7.使用 RESETLOGS 选项打开数据库。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

華為影像XMAGE:十大趨勢定調未來移動影像新走向 華為影像XMAGE:十大趨勢定調未來移動影像新走向 Jun 01, 2024 pm 12:27 PM

P系列的發展史,就是移動影像的發展史。 P系列誕生12週年之際,華為帶著對行動影像的深刻理解與未來規劃,再一次出發。從移動影像的概念出現,到逐漸發展壯大,成為千千萬萬用戶記錄生活的主要方式,華為始終扮演著引領者的重要角色。時至今日,當業界都在堆疊硬體、拼畫質、捆綁傳統影像品牌風格三個維度拼命內捲的時候,我們清晰地看到,同質化的硬體堆疊和演算法優化無法真正拉開各品牌的影像實力差距,更重要的是,特定的影像風格已經難以適應消費者的個人需求。站在更高的維度,思考移動影像接下來的發展方向,對華為來說是引領者

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

OPPO Find X7 絕絕子!用影像定格你的每一刻 OPPO Find X7 絕絕子!用影像定格你的每一刻 Aug 07, 2024 pm 07:19 PM

在這個快節奏的時代,OPPOFindX7可以用它的影像力量,讓我們去細細品味生活中的每一個美好時刻。無論是壯麗的山川湖海,還是溫馨的家庭聚會,亦或是街頭的偶遇與驚喜,它都能以"絕絕子"的畫質,幫你記錄下來。從外頭看,在相機Deco的設計上,FindX7與Ultra版如出一轍,採用了同心圓弧的造型,參考了專業相機鏡頭的全棱線設計,還有經典的哈蘇"H"大logo,整體看起來很有辨識度,也很有高級感。而內裡也是一絕,首先是基礎的硬體配置。 FindX7維持了上一

前華為首席影像工程師羅巍加入榮耀:公開曬照 前華為首席影像工程師羅巍加入榮耀:公開曬照 Jul 29, 2024 am 09:01 AM

消息稱,曾經擔任華為首席影像工程師的羅巍,已經低調加入榮耀的影像團隊,必將為榮耀手機影像表現帶來一個質的提升。就在今天,羅巍個人微博發了一組黃花水長城主題的照片,來自榮耀Magic6至臻版、榮耀Magic5Pro,並配文稱“測試一下”。這無疑從側面佐證了羅巍已經加盟榮耀的說法,並已開始工作。在微博評論中,還有網友詢問榮耀Magic6Pro的微距問題,靠近拍攝時廣角、長焦鏡頭衝突,會反覆橫跳切換鏡頭。對此,羅巍很快給出回應,表示升級版本之後就不會有問題了。另外,榮耀MagicV3推送了

肇慶暴走 30000 步,沉浸式體驗努比亞 Z60 Ultra 影像魅力 肇慶暴走 30000 步,沉浸式體驗努比亞 Z60 Ultra 影像魅力 Aug 10, 2024 pm 09:34 PM

拍照時最喜歡的鏡頭是?我的答案是35mm定焦(以等效全片幅焦距計算,下同)。而在手機市場,配備原生35mm主攝的,只有努比亞這一家。在各家都以"影像旗艦"自稱的時候,努比亞Z60Ultra領先版是我們今年用過的手機中最有相機感的,低畸變18mm超廣角、35mm人文主攝和85mm長焦這三顆鏡頭素質都很不錯,配合滑動鍵可以快速開啟/關閉相機,很有卡片機的感覺。因為這台手機很特別,所以這次體驗也會有點特別,我將用這台努比亞Z60Ultra領先版,記錄在肇慶渡過的一個週末。鬆弛

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

See all articles