###############################################################################################
# [
###############################################################################################
SQL> alter tablespace users begin backup;
表空間已更改
SQL> host copy D:\oracle\oradata\USERS
已復制
SQL> conn scott/tiger
已連接
SQL> create table empcopy as select * from emp;
表已創建
SQL> commit;
提交完成
SQL> alter system switch logfile;
alter system switch logfile
*
ERROR 位於第
ORA
SQL> conn sys/oracle as sysdba;
已連接
SQL> alter system switch logfile;
系統已更改
SQL> shutdown abort
ORACLE 例程已經關閉
SQL> startup mount
ORACLE 例程已經啟動
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
數據庫裝載完畢
SQL> alter database open;
alter database open
*
ERROR 位於第
ORA
ORA
SQL> alter database datafile D:\ORACLE\ORADATA\USERS
alter database datafile D:\ORACLE\ORADATA\USERS
*
ERROR 位於第
ORA
SQL> alter database datafile
數據庫已更改
SQL> alter database open;
數據庫已更改
#################################################################################
# [
#################################################################################
參見控制文件恢復部分
#################################################################################
# [
#################################################################################
~~~~~~~~~~~
官方文檔:
~~~~~~~~~~~
Recovering Individual Data Blocks
You can use RMAN to recover one or more corrupted data blocks
trace files or results of SQL queries
BLOCKRECOVER DATAFILE
You can also use BLOCKRECOVER to repair all corrupted blocks listed in V$BACKUP_CORRUPTION and V$COPY_CORRUPTION
These views are filled whenever RMAN performs a complete scan of a file for a backup
listed in the views:
BLOCKRECOVER CORRUPTION LIST;
~~~~~~~~~~~
場景
~~~~~~~~~~~
SQL> create table empblock tablespace users as select * from emp;
表已創建
SQL> insert into empblock select * from empblock;
已創建
SQL> select owner
where segment_name=
做一次數據的全庫備份
RMAN> backup database;
手工地用ultraedit破壞datafile
SQL> select count(*) from empblock;
select count(*) from empblock
*
ERROR 位於第
ORA
ORA
恢復壞塊
RMAN> BLOCKRECOVER DATAFILE
啟動 blockrecover 於
使用通道 ORA_DISK_
通道 ORA_DISK_
通道 ORA_DISK_
正在恢復數據文件
通道 ORA_DISK_
段 handle=D:\ORACLE\ORA
通道 ORA_DISK_
正在開始介質的恢復
完成介質的恢復
完成 blockrecover 於
SQL> select count(*) from empblock;
COUNT(*)
#########################################################
# [測試
#########################################################
SQL> startup
ORACLE 例程已經啟動
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
ORA
SQL> alter database open;
數據庫已更改
SQL> create table arch
表已創建
SQL> alter system switch logfile;
系統已更改
SQL> insert into arch
已創建
SQL> commit;
提交完成
SQL> insert into arch
已創建
SQL> /
已創建
SQL> /
已創建
SQL> /
已創建
SQL> commit;
提交完成
SQL> alter system switch logfile;
系統已更改
SQL> insert into arch select
已創建
SQL> commit;
提交完成
SQL> select GROUP#
GROUP# SEQUENCE# ARC STATUS
SQL> shutdown
數據庫已經關閉
已經卸載數據庫
ORACLE 例程已經關閉
SQL> exit
從Oracle
With the Partitioning
JServer Release
C:\Documents and Settings\lifeng
C:\Documents and Settings\lifeng
RMAN> backup format
啟動 backup 於
分配的通道: ORA_DISK_
通道 ORA_DISK_
通道 ORA_DISK_
通道 ORA_DISK_
在備份集中包含當前的 SPFILE
備份集中包括當前控制文件
輸入數據文件 fno=
輸入數據文件 fno=
輸入數據文件 fno=
輸入數據文件 fno=
輸入數據文件 fno=
通道 ORA_DISK_
通道 ORA_DISK_
段 handle=C:\BLOCKRECOVER_
通道 ORA_DISK_
完成 backup 於
SQL> insert into arch select * from arch
已創建
SQL> select count(*)
COUNT(*) ST
SQL> select SEGMENT_NAME
SEGMENT_NAME HEADER_BLOCK
ARCH
SQL> select to_char(
TO_CHAR
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我現在用ultraedit修改arch表的頭塊
在地址
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SQL> INSERT INTO ARCH
INSERT INTO ARCH
*
ERROR 位於第
ORA
ORA
RMAN> BLOCKRECOVER DATAFILE
啟動 blockrecover 於
分配的通道: ORA_DISK_
通道 ORA_DISK_
通道 ORA_DISK_
通道 ORA_DISK_
正在恢復數據文件
通道 ORA_DISK_
段 handle=C:\BLOCKRECOVER_
通道 ORA_DISK_
正在開始介質的恢復
完成介質的恢復
完成 blockrecover 於
SQL> select count(*)
COUNT(*) ST
#################################################################################
# [
#################################################################################
#################################################################################
# [
#################################################################################
####################################################
# [
####################################################
RMAN> backup database;
RMAN> report schema;
數據庫方案報表
文件 KB 表空間 RB segs 數據文件名稱
SQL> select sysdate from dual;
SYSDATE
SQL>create table empcopy
SQL>alter system switch logfile;
SQL>startup mount
RMAN> run {
####################################################
# [
####################################################
SQL> select * from swap_p
ID NAME HIRE_DATE SALARY
SQL> insert into swap_p
已創建
SQL> commit;
提交完成
SQL> conn sys/oracle as sysdba
已連接
SQL> alter system switch logfile;
系統已更改
SQL> shutdown abort
ORACLE 例程已經關閉
SQL> startup mount
ORACLE 例程已經啟動
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
數據庫裝載完畢
SQL> recover database ;
完成介質恢復
SQL> alter database open;
數據庫已更改
SQL> conn scott/tiger
已連接
SQL> select * from swap_p
ID NAME HIRE_DATE SALARY
已選擇
####################################################
# [
####################################################
SQL> conn scott/tiger
已連接
SQL> select * from swap_p
未選定行
SQL> insert into swap_p
已創建
SQL> commit;
提交完成
SQL> conn sys/oracle as sysdba
已連接
SQL> shutdown abort
ORACLE 例程已經關閉
SQL> startup mount
ORACLE 例程已經啟動
Total System Global Area
Fixed Size
Variable Size
Database Buffers
Redo Buffers
數據庫裝載完畢
SQL> alter database datafile
數據庫已更改
SQL> alter database open;
數據庫已更改
SQL> recover tablespace test
完成介質恢復
SQL> alter tablespace test
數據庫已更改
SQL> conn scott/tiger
已連接
SQL> select * from swap_p
ID NAME HIRE_DATE SALARY
已選擇
####################################################
# [
####################################################
RMAN> backup database;
RMAN> report schema;
數據庫方案報表
文件 KB 表空間 RB segs 數據文件名稱
D:\>rman target sys/oracle nocatalog
從copy的備份中恢復
RMAN> run {
####################################################
# [
####################################################
~~~~~~~~~
~~ 場景
~~~~~~~~~
RMAN> report schema;
數據庫方案報表
文件 KB 表空間 RB segs 數據文件名稱
由於redo文件損壞
文件中
RMAN> backup database;
啟動 backup 於
RMAN
RMAN
RMAN
RMAN
RMAN
~~~~~~~~~
~~ 恢復數據文件
~~~~~~~~~
SQL> ALTER DATABASE OPEN RESETLOGS;
SQL> alter database rename file
數據庫已更改
SQL> alter database rename file
數據庫已更改
SQL> alter database rename file
數據庫已更改
SQL> alter database rename file
數據庫已更改
RMAN> reset database;
在恢復目錄中注冊的數據庫的新實體化
正在啟動全部恢復目錄的 resync
完成全部 resync
MAN> backup database;
####################################################
# [
####################################################
方法一:
STARTUP MOUNT
RMAN> run {
方法二:
RMAN> run {
####################################################
# [
####################################################
一)用戶表空間
錯誤:
在啟動數據庫時出現ORA
在關閉數據庫(使用shutdown normal或shutdown immediate) 時將導致錯誤ORA
解決:
以下有兩種解決方案:
即最近導出的對象是可用的或表空間中的對象可以被輕易地重建等
這種情況下
重建表空間以及所有的對象
svrmgrl> startup mount
svrmgrl> alter database datafile filename offline drop;
svrmgrl> alter database open;
svrmgrl> drop tablespace tablespace_name including contents;
重建表空間及所有對象
在大多數情況下
質恢復
在online redo log中方可被恢復
步驟如下:
>from v$log v
svrmgrl> select file#
如果 CHANGE# 大於最小的FIRST_CHANGE#則數據文件可以被恢復
如果 CHANGE# 小於最小的FIRST_CHANGE#則數據文件不可恢復
次的全備份或采用方案一
表空間在最後一次備份後被改為read
表空間在最後一次備份後被改為read
在這種情況下
二)臨時表空間
臨時表空間並不包含真正的數據
三)系統表空間
如果備份不可用
From:http://tw.wingwit.com/Article/program/Oracle/201311/16608.html