数据库的备份与恢复分析及实例


归档模式:可以进行一致性备份(冷备)和非一致性备份(热备)。
非归档模式:一致性备份(冷备)
 
一致性备份(冷备份):在数据库正常关闭情况下做备份,数据库处于一致性状态。
(可以用于归档和非归档),所有SCN号一致。缺点:数据库需要关闭。
非一致性备份(热备份):数据库在open状态下备份(用于归档模式),
使用alter database/tablespace xxx begin backup开始备份。
优点:数据库不需要关闭,用于7x24事务处理的数据库。
 
一般手工备份主要备份控制文件,数据文件,以及参数文件等。
首先查看控制文件,数据文件,以及参数文件的位置:
sys@TEST0910> select name from v$controlfile;
 
NAME
------------------------------------------------------------
/u01/app/oracle/oradata/test0910/control01.ctl
/u01/app/oracle/fast_recovery_area/test0910/control02.ctl
 
sys@TEST0910> select file#,name from v$datafile;
 
     FILE# NAME
---------- ------------------------------------------------------------
         1 /u01/app/oracle/oradata/test0910/system01.dbf
         2 /u01/app/oracle/oradata/test0910/sysaux01.dbf
         3 /u01/app/oracle/oradata/test0910/undotbs01.dbf
         4 /u01/app/oracle/oradata/test0910/users01.dbf
         5 /u01/app/oracle/oradata/test0910/example01.dbf
 
sys@TEST0910> col file_name for a50
sys@TEST0910> col tablespace_name for a10
sys@TEST0910> select file_id,file_name,tablespace_name,bytes/1024/1024 m from dba_data_files;
 
   FILE_ID FILE_NAME                                          TABLESPACE          M
---------- -------------------------------------------------- ---------- ----------
         4 /u01/app/oracle/oradata/test0910/users01.dbf       USERS               5
         3 /u01/app/oracle/oradata/test0910/undotbs01.dbf     UNDOTBS1          100
         2 /u01/app/oracle/oradata/test0910/sysaux01.dbf      SYSAUX            650
         1 /u01/app/oracle/oradata/test0910/system01.dbf      SYSTEM            720
         5 /u01/app/oracle/oradata/test0910/example01.dbf     EXAMPLE       345.625
 
 
sys@TEST0910> show parameter spfile;
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string      /u01/app/oracle/product/11.2.0
                                                 /dbhome_1/dbs/spfiletest0910.o
                                                 ra
 
热备份必须在归档模式下进行,不然会报错。
先来看看数据库是否为归档模式:
sys@TEST0910> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     24
Next log sequence to archive   26
Current log sequence           26
sys@TEST0910> select log_mode from v$database;
 
LOG_MODE
------------
ARCHIVELOG
 
手工热备份步骤:
开库备份只用于归档模式,而且热备之前先执行命令:
热备步骤:
alter database/tablespace  XXX begin backup 这句话会导致锁块头,scn号不会变化。
cp files
alter database/tablespace XXX end backup
 
实验备份users表空间,并测试删除文件并恢复:
1、首先开始备份users表空间
sys@TEST0910> alter tablespace users begin backup;
 
Tablespace altered.
 
2、操作系统命令拷贝文件:
[oracle@rtest ~]$ cd /u01/app/oracle
[oracle@rtest oracle]$ mkdir hot_dir
[oracle@rtest oracle]$ cp /u01/app/oracle/oradata/test0910/users01.dbf  /u01/app/oracle/hot_dir/users01.dbf
 
3、结束users表空间的备份:
sys@TEST0910> alter tablespace users end backup;
 
Tablespace altered.
 
4、此时删除users01.dbf文件
[oracle@rtest oracle]$ ls /u01/app/oracle/oradata/test0910/users01.dbf
ls: /u01/app/oracle/oradata/test0910/users01.dbf: No such file or directory
 
5、关库,再启库,报错:
sys@TEST0910> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@TEST0910> startup
ORACLE instance started.
 
Total System Global Area 2505338880 bytes
Fixed Size                  2230952 bytes
Variable Size             587203928 bytes
Database Buffers         1895825408 bytes
Redo Buffers               20078592 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/app/oracle/oradata/test0910/users01.dbf'
 
6、通过操作系统拷贝到正确的位置,(也可以通过rman恢复,这里用拷贝方式)
[oracle@rtest oracle]$ cp /u01/app/oracle/hot_dir/users01.dbf /u01/app/oracle/oradata/test0910/users01.dbf
[oracle@rtest oracle]$ ls /u01/app/oracle/oradata/test0910/users01.dbf
/u01/app/oracle/oradata/test0910/users01.dbf
 
7、再开库,报错,需要介质恢复:
sys@TEST0910> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/u01/app/oracle/oradata/test0910/users01.dbf'
 
8、介质恢复:
sys@TEST0910> recover datafile 4;
Media recovery complete.
 
9、再开库,成功:
sys@TEST0910> alter database open;
 
Database altered.
 
恢复成功

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29196873/viewspace-1090234/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29196873/viewspace-1090234/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值