Oracle backup and recover

模拟冷备份 ,热备份进行backup &recover

1:冷备份

关闭数据库后对 数据文件、控制文件和联机重做日志进行备份。
SQL> archive log list
数据库日志模式             非存档模式
自动存档             禁用
存档终点            F:\oracle\11gr2\RDBMS
最早的联机日志序列     3
当前日志序列           5
SQL> select 'xcopy '||name || ' E:\backup\'    from v$datafile;

'XCOPY'||NAME||'E:\BACKUP\'
--------------------------------------------------------------------------------
xcopy F:\ORACLE\ORADATA\ACE\SYSTEM01.DBF E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\SYSAUX01.DBF E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\UNDOTBS01.DBF E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\USERS01.DBF E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\ACE01.DBF E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\INDEX_NEW01.DBF E:\backup\

已选择6行。

SQL> select 'xcopy '||member || ' E:\backup\'     from v$logfile;

'XCOPY'||MEMBER||'E:\BACKUP\'
--------------------------------------------------------------------------------
xcopy F:\ORACLE\ORADATA\ACE\REDO03.LOG E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\REDO02.LOG E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\REDO01.LOG E:\backup\

SQL> select 'xcopy '||name || ' E:\backup\'   from v$controlfile;

'XCOPY'||NAME||'E:\BACKUP\'
--------------------------------------------------------------------------------
xcopy F:\ORACLE\ORADATA\ACE\CONTROL01.CTL E:\backup\
xcopy F:\ORACLE\ORADATA\ACE\CONTROL02.CTL E:\backup\

2:热备份
联机数据库 数据文件、控制文件进行备份,需要开启archivelog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 3月 8 10:49:38 2013

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

SQL> conn /as sysdba
已连接。
SQL> archive log list
数据库日志模式            存档模式
自动存档             启用
存档终点            F:\oracle\11gr2\RDBMS
最早的联机日志序列     26
下一个存档日志序列   28
当前日志序列           28
SQL>  alter tablespace ACE begin backup;

表空间已更改。

SQL> select * from v$backup;

     FILE# STATUS                CHANGE# TIME
---------- ------------------ ---------- --------------
         1 NOT ACTIVE                  0
         2 NOT ACTIVE                  0
         3 NOT ACTIVE                  0
         4 NOT ACTIVE                  0
         5 ACTIVE                1008301 08-3月 -13
         6 NOT ACTIVE                  0

已选择6行。
SQL> select * from v$backup;

     FILE# STATUS                CHANGE# TIME
---------- ------------------ ---------- --------------
         1 NOT ACTIVE                  0
         2 NOT ACTIVE                  0
         3 NOT ACTIVE                  0
         4 NOT ACTIVE                  0
         5 ACTIVE                1008301 08-3月 -13
         6 NOT ACTIVE                  0

已选择6行。

SQL> host  xcopy F:\ORACLE\ORADATA\ACE\ACE01.DBF E:\hotbackup\
F:\ORACLE\ORADATA\ACE\ACE01.DBF
复制了 1 个文件

SQL> alter tablespace ACE end backup;

表空间已更改。

SQL> alter system archive log current;

系统已更改。

SQL> alter database backup controlfile to 'e:\hotbackup\controlfile.ctl';

数据库已更改。



3:RMAN 


3:备份还原
     场景1:数据文件损坏后,利用冷备数据库文件进行恢复
     
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

SQL> host del F:\oracle\oradata\ace\ACE01.DBF

SQL> host dir f:\oracle\oradata\ace
 驱动器 F 中的卷是 data
 卷的序列号是 7E1D-4A13

 f:\oracle\oradata\ace 的目录

2013/03/08  11:12    <DIR>          .
2013/03/08  11:12    <DIR>          ..
2013/03/08  11:12         9,748,480 CONTROL01.CTL
2013/03/08  11:12         9,748,480 CONTROL02.CTL
2013/03/08  11:12       104,865,792 INDEX_NEW01.DBF
2013/03/08  11:11        52,429,312 REDO01.LOG
2013/03/08  11:11        52,429,312 REDO02.LOG
2013/03/08  11:11        52,429,312 REDO03.LOG
2013/03/08  11:12       513,810,432 SYSAUX01.DBF
2013/03/08  11:12       713,039,872 SYSTEM01.DBF
2013/03/07  17:23        30,416,896 TEMP01.DBF
2013/03/08  11:12        73,408,512 UNDOTBS01.DBF
2013/03/08  11:12         5,251,072 USERS01.DBF
              11 个文件  1,617,577,472 字节
               2 个目录 14,984,110,080 可用字节

SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1043886080 bytes
Fixed Size                  2182344 bytes
Variable Size             612369208 bytes
Database Buffers          423624704 bytes
Redo Buffers                5709824 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 5 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 5: 'F:\ORACLE\ORADATA\ACE\ACE01.DBF'

SQL> alter database datafile 5 offline;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> host  xcopy e:\backup\ACE01.DBF F:\oracle\oradata\ace\
E:\backup\ACE01.DBF
复制了 1 个文件

SQL> recover datafile 5;-----删除后未生成归档
完成介质恢复。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1043886080 bytes
Fixed Size                  2182344 bytes
Variable Size             612369208 bytes
Database Buffers          423624704 bytes
Redo Buffers                5709824 bytes
数据库装载完毕。
数据库已经打开。
SQL>
SQL> alter database datafile 5 online;

数据库已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1043886080 bytes
Fixed Size                  2182344 bytes
Variable Size             612369208 bytes
Database Buffers          423624704 bytes
Redo Buffers                5709824 bytes
数据库装载完毕。
数据库已经打开。
SQL〉select t.name as "TB_NAME", d.file# as "DF#", d.name as "DF_NAME", b.status,dt.status
FROM   V$DATAFILE d, V$TABLESPACE t, V$BACKUP b,dba_tablespaces dt
where  d.ts#=t.ts#
and    b.file#=d.file# and dt.tablespace_name=t.name
SYSTEM	1	F:\ORACLE\ORADATA\ACE\SYSTEM01.DBF	NOT ACTIVE	ONLINE
SYSAUX	2	F:\ORACLE\ORADATA\ACE\SYSAUX01.DBF	NOT ACTIVE	ONLINE
UNDOTBS1	3	F:\ORACLE\ORADATA\ACE\UNDOTBS01.DBF	NOT ACTIVE	ONLINE
USERS	4	F:\ORACLE\ORADATA\ACE\USERS01.DBF	NOT ACTIVE	ONLINE
ACE	5	F:\ORACLE\ORADATA\ACE\ACE01.DBF	NOT ACTIVE	ONLINE
INDEX_NEW	6	F:\ORACLE\ORADATA\ACE\INDEX_NEW01.DBF	NOT ACTIVE	ONLINE

场景2:数据文件损毁,未备份,但保留所有建立表空间之后的归档
SQL> create tablespace newuser datafile 'F:\ORACLE\ORADATA\ACE\newuser01.dbf' size 100M;
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del F:\ORACLE\ORADATA\ACE\newuser01.dbf

SQL> conn /as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。

Total System Global Area 1043886080 bytes
Fixed Size                  2182344 bytes
Variable Size             612369208 bytes
Database Buffers          423624704 bytes
Redo Buffers                5709824 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 7: 'F:\ORACLE\ORADATA\ACE\NEWUSER01.DBF'


SQL> alter database datafile 7 offline;
SQL> recover datafile 7 ;
ORA-00279: 更改 1052450 (在 03/08/2013 13:34:22 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ORACLE\11GR2\RDBMS\ARC0000000009_0809453950.0001
ORA-00280: 更改 1052450 (用于线程 1) 在序列 #9 中


指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: 更改 1052722 (在 03/08/2013 13:34:38 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ORACLE\11GR2\RDBMS\ARC0000000010_0809453950.0001
ORA-00280: 更改 1052722 (用于线程 1) 在序列 #10 中


ORA-00279: 更改 1052732 (在 03/08/2013 13:34:57 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ORACLE\11GR2\RDBMS\ARC0000000011_0809453950.0001
ORA-00280: 更改 1052732 (用于线程 1) 在序列 #11 中


ORA-00279: 更改 1052736 (在 03/08/2013 13:35:00 生成) 对于线程 1 是必需的
ORA-00289: 建议: F:\ORACLE\11GR2\RDBMS\ARC0000000012_0809453950.0001
ORA-00280: 更改 1052736 (用于线程 1) 在序列 #12 中


已应用的日志。
完成介质恢复。
SQL>
SQL> alter database datafile 7 online;


数据库已更改。
select t.name as "TB_NAME", d.file# as "DF#", d.name as "DF_NAME", b.status,dt.status
FROM   V$DATAFILE d, V$TABLESPACE t, V$BACKUP b,dba_tablespaces dt
where  d.ts#=t.ts#
and    b.file#=d.file# and dt.tablespace_name=t.name
SYSTEM		1	F:\ORACLE\ORADATA\ACE\SYSTEM01.DBF		NOT ACTIVE	ONLINE
SYSAUX		2	F:\ORACLE\ORADATA\ACE\SYSAUX01.DBF		NOT ACTIVE	ONLINE
UNDOTBS1	3	F:\ORACLE\ORADATA\ACE\UNDOTBS01.DBF		NOT ACTIVE	ONLINE
USERS		4	F:\ORACLE\ORADATA\ACE\USERS01.DBF		NOT ACTIVE	ONLINE
ACE		5	F:\ORACLE\ORADATA\ACE\ACE01.DBF			NOT ACTIVE	ONLINE
INDEX_NEW	6	F:\ORACLE\ORADATA\ACE\INDEX_NEW01.DBF		NOT ACTIVE	ONLINE
NEWUSER	7	F:\ORACLE\ORADATA\ACE\NEWUSER01.DBF	NOT ACTIVE	ONLINE

场景3:控制文件丢失,但是之前备份过controlfile
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ACE" NORESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'F:\ORACLE\ORADATA\ACE\REDO01.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 'F:\ORACLE\ORADATA\ACE\REDO02.LOG'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 'F:\ORACLE\ORADATA\ACE\REDO03.LOG'  SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE

DATAFILE
  'F:\ORACLE\ORADATA\ACE\SYSTEM01.DBF',
  'F:\ORACLE\ORADATA\ACE\SYSAUX01.DBF',
  'F:\ORACLE\ORADATA\ACE\UNDOTBS01.DBF',
  'F:\ORACLE\ORADATA\ACE\USERS01.DBF',
  'F:\ORACLE\ORADATA\ACE\INDEX_NEW01.DBF',
  'F:\ORACLE\ORADATA\ACE\NEWUSER01.DBF',
   'F:\ORACLE\ORADATA\ACE\ACE01.DBF'
CHARACTER SET ZHS16GBK
;






猜你喜欢

转载自blog.csdn.net/oracle_baidu/article/details/8648421