oracle冷備份恢復和oracle異機恢復使用方法
一、冷備份
1、 冷備份發(fā)生在數(shù)據(jù)庫已經(jīng)正常關閉的情況下,在進行冷備份之前通常要知道需要進行備份文件的名稱以及路徑
SQL>select name from v$datefile;
SQL>select name from v$controlfile;
SQL>select member from v$logfile;
2、冷備份所需備份的文件包括以下幾種:
所有數(shù)據(jù)文件、所有控制文件、所有聯(lián)機REDO LOG 文件
3、冷備份的步驟
①正常關閉要備份的實例(instance)
②拷貝所有重要文件到備份目錄下
③完成備份后啟動數(shù)據(jù)庫
4、用冷備份進行數(shù)據(jù)庫恢復
無歸檔模式:將備份文件拷貝回原來的目錄即可,然后啟動數(shù)據(jù)庫。
歸檔模式:
①將數(shù)據(jù)文件、控制文件拷貝回原來目錄
②SQL>startup mount;
SQL>recover database using backup controlfile;
③將相應的歸檔日志和聯(lián)機日志拖到CMD命令窗口進行跑日志。
④SQL>alter database open resetlogs;
二、異機恢復
冷備份恢復方式
A、不創(chuàng)建實例:(源機上的數(shù)據(jù)庫名字為orcl)
①在目標機上的oradata目錄下建立orcl文件夾,拷貝源機的所有data文件和聯(lián)機redo文件到此目錄下。
②在目標機上的admin目錄下建立orcl文件夾,然后在orcl里面再建立adump、bdump、cdump、udump、dpdump、pfile六個文件夾
③把源機的密碼文件拷貝到目標機的database目錄下。
④使用oradim命令在cmd下oradim -new -sid orcl 表示建立一個服務,sid為orcl(最好名字和源機備份的數(shù)據(jù)庫名字一致,就不需要重建密碼文件)
⑤拷貝源機的pfile到目標機的一個目錄下,修改pfile里面相關文件的路徑,然后通過SQL>create spfile from pfile=‘文件路徑'來創(chuàng)建參數(shù)文件。
⑥重建控制文件命令:SQL>alter database backup controlfile to trace;然后會在udump文件夾下產(chǎn)生一個追蹤文件,打開文件找到如下一段,復制到文本中,修改相應路徑然后保存為:createctl.sql文件(sql腳本文件),復制到目標機上。
注意:SQL>alter database backup controlfile to trace as 'aa.txt';linux系統(tǒng)中會在dbs目錄下建立
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' SIZE 50M,
GROUP 2 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' SIZE 50M,
GROUP 3 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',
'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\BANK_DATA02.DBF'
CHARACTER SET ZHS16GBK;
⑦ c:\>set ORACLE_SID=orcl
c:\>sqlplus "/as sysdba"
SQL>create spfile from pfile='c:\pfile.txt';
SQL>@c:\createctl.sql;
SQL>shutdown immediate;
SQL>startup;
SQL>alter database open resetlogs;
⑧在network\admin下的tnsnames.ora中添加如下片段
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
⑨用net configuration為orcl實例新建監(jiān)聽
B、創(chuàng)建實例(實例SID與源機數(shù)據(jù)庫SID一致)
①刪除目標機的oradata\orcl底下的所有文件,把源機的所有data文件、redo文件拷貝到此目錄下
②刪除目標機的密碼文件,拷貝源機密碼文件到目標機下。
③在源機上重建目標機的控制文件:SQL>alter database backup controlfile to trace;然后會在udump文件夾下產(chǎn)生一個追蹤文件,打開文件找到上面那段,復制到文本中,修改相應路徑然后保存為:createctl.sql文件(sql腳本文件),復制到目標機上。
④
c:\>sqlplus "/as sysdba"
SQL>@c:\createctl.sql;
SQL>shutdown immediate;
SQL>startup;
SQL>alter database open resetlogs;
⑤在network\admin下的tnsnames.ora中添加如下片段
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
⑥用net configuration為orcl實例新建監(jiān)聽
- Oracle數(shù)據(jù)塊損壞之10231內部事件不完全恢復
- [Oracle] 解析在沒有備份的情況下undo損壞怎么辦
- ORACLE檢查找出損壞索引(Corrupt Indexes)的方法詳解
- Oracle數(shù)據(jù)庫的備份與恢復
- Oracle誤刪除表數(shù)據(jù)后的數(shù)據(jù)恢復詳解
- oracle如何恢復被覆蓋的存儲過程
- Oracle數(shù)據(jù)庫數(shù)據(jù)丟失恢復的幾種方法總結
- oracle drop table(表)數(shù)據(jù)恢復方法
- ORACLE 數(shù)據(jù)庫RMAN備份恢復
- Oracle數(shù)據(jù)庫不同損壞級別的恢復教程
相關文章
oracle表空間不足ORA-01653的問題:?unable?to?extend?table
這篇文章主要介紹了oracle表空間不足ORA-01653:?unable?to?extend?table的問題?,出現(xiàn)這種表空間不足的問題一般有兩種情況:一種是表空間的自動擴展功能沒有打開,另一種確實是表空間確實不夠用了,已經(jīng)達到了擴展的極限,本文給大家分享解決方法,需要的朋友參考下2022-08-08