oracle备份,恢复基础

备份分类:

1.完全脱机备份(关掉数据库拷贝文件)

shutdown immediate;

os copy;

2.部分脱机备份(offline表空间 但system,undo表空间不能offline)

alter tablespace users offline;

os copy;

3.部分联机备份

alter tablespace system begin backup;

os copy;

alter tablespace system end backup;

alter database begin backup;

alter database end backup;

select  * from v$backup;查询哪些表空间处于联机备份模式

4:rman备份



恢复基础:

1.完全恢复

2.不完全恢复

恢复的起点:select file#,checkpoint_change# from v$datafile_header; 来至数据头文件

恢复的终点:select file#,checkpoint_change# from v$datafile;来只控制文件


模拟日志文件丢的恢复:

1:非当前日志文件丢失,就新建一组日志文件就可以了.

       alter database drop logfile group 2;从控制文件中删除日志的记录信息

       alter database add logfile group 2 '/u01/app/oracle/oradata/orc1/redo02.log' size 50m;添加一组新的日志文件

2:当前日志文件丢失的恢复

      SQL> select * from v$log;

      GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------
         1          1          2   52428800          1 YES INACTIVE                364409 18-MAY-13
         2          1          3   52428800          1 YES INACTIVE                364414 18-MAY-13
         3          1          4   52428800          1 NO  CURRENT                 364420 18-MAY-13

     由上可以看出第3组是当前日志文件然后操作系统删除第3组日志文件

     [root@localhost orc1]# rm redo03.log
     rm: remove regular file `redo03.log'? y   然后shutdown immediate数据库 ,启动的时候会报错:

      SQL> startup
ORACLE instance started.

Total System Global Area 1224736768 bytes
Fixed Size                  2020384 bytes
Variable Size             301992928 bytes
Database Buffers          905969664 bytes
Redo Buffers               14753792 bytes
Database mounted.
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: '/u01/app/oracle/oradata/orc1/redo03.log'

SQL> select status from v$instance;
STATUS
------------
MOUNTED

SQL> recover database until cancel;  做不完全恢复;
Media recovery complete.

SQL> alter database open resetlogs; 打开数据库的时候需要resetlogs,会自动生存日志文件的。
Database altered.

附加:

alter database add logfile member '/app/oracle/oradata/TEST/redo03_3.log' to  group 3;增加镜像日志

alter database drop logfile member '/app/oracle/oradata/TEST/redo03_3.log';删除镜像日志


2:模拟控制文件丢失的恢复

首先备份下控制文件:

SQL> alter database backup controlfile to trace as '/home/oracle/con.bak';
Database altered.
然后删除3个控制文件

[root@localhost orc1]# ll cont*
-rw-r----- 1 oracle oinstall 7192576 May 18 23:12 control01.ctl
-rw-r----- 1 oracle oinstall 7192576 May 18 23:12 control02.ctl
-rw-r----- 1 oracle oinstall 7192576 May 18 23:12 control03.ctl
[root@localhost orc1]# rm cont* -rf

然后shutdown abort关闭oracle,启动的时候就会报错:

SQL> startup
ORACLE instance started.

Total System Global Area 1224736768 bytes
Fixed Size                  2020384 bytes
Variable Size             301992928 bytes
Database Buffers          905969664 bytes
Redo Buffers               14753792 bytes
ORA-00205: error in identifying control file, check alert log for more info

然后根据备份的控制文件重建控制文件的代码进行重建控制文件,有2个一种不需要resetlogs,一种需要resetlogs的。

 SQL> CREATE CONTROLFILE REUSE DATABASE "ORC1" RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/oradata/orc1/redo01.log'  SIZE 50M,
  GROUP 2 '/u01/app/oracle/oradata/orc1/redo02.log'  SIZE 50M,
  GROUP 3 '/u01/app/oracle/oradata/orc1/redo03.log'  SIZE 50M
DATAFILE
  '/u01/app/oracle/oradata/orc1/system01.dbf',
  '/u01/app/oracle/oradata/orc1/undotbs01.dbf',
  '/u01/app/oracle/oradata/orc1/sysaux01.dbf',
  '/u01/app/oracle/oradata/orc1/users01.dbf',
  '/u01/app/oracle/oradata/orc1/test.dbf',
  '/u01/app/oracle/oradata/orc1/test11.dbf'
CHARACTER SET WE8ISO8859P1
;

Control file created.

SQL> alter database open resetlogs;因为上面重建的代码是选择的需要resetlogs.

Database altered.


如果控制控制文件不一致,启动数据库的时候会报错:

SQL> startup
ORACLE instance started.

Total System Global Area 1224736768 bytes
Fixed Size                  2020384 bytes
Variable Size             301992928 bytes
Database Buffers          905969664 bytes
Redo Buffers               14753792 bytes
ORA-00214: control file '/u01/app/oracle/oradata/orc1/control02.ctl' version 1440 inconsistent with file '/u01/app/oracle/oradata/orc1/control01.ctl'
version 1432

这种情况处理如下:

alter system set control_files='/u01/app/oracle/oradata/orc1/control03.ctl' scope=spfile;

然后关闭数据库,在启动就ok了。

    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值