Oracle数据库基于用户管理的备份与恢复

数据库 Oracle
本文主要介绍了Oracle数据库基于用户管理的备份与恢复方式,希望能够对您有所帮助。

Oracle数据库中,数据库文件的备份与恢复可以有很多的方式来实现,本文我们介绍一种基于用户管理的备份与恢复。基于用户管理的备份是指使用OS命令来备份数据库物理文件。

 

备份数据库

 

数据库一致性备份:关闭数据库以后备份数据库物理文件,这时数据文件scn值完全一致,所以称之为数据库的一致性备份或冷备份,适用于归档模式与非归档模式。

 

对基于用户管理的冷备份的暂时理解:在数据库shutdown状态下使用OS命令直接拷贝数据库物理文件。

数据库非一致性备份:在open状态下备份数据库物理文件,这时数据库内容可能会改变导致数据文件scn不一致,所以称之为数据库的非一致性备份或热备份,只适用于归档模式。

基于用户管理的完全恢复(归档模式下)

1.在open状态下备份数据库物理文件(数据库非一致性备份,热备份,不影响业务运行)

2.删除数据文件来模拟文件丢失(只是删除了所有的数据文件;控制文件等其它文件处于正常状态)

3.对数据文件进行恢复

4.应用归档日志

5.查看数据是否完全恢复

 

  1. SQL> conn evan/evan  
  2.  
  3. Connected.  
  4.  
  5. SQL> insert into t_evan values('oracle');  
  6.  
  7. 1 row created.  
  8.  
  9. SQL> insert into t_evan values('java');  
  10.  
  11. 1 row created.  
  12.  
  13. SQL> commit;  
  14.  
  15. Commit complete.  
  16.  
  17. SQL> select * from t_evan;  
  18.  
  19. TEXT  
  20.  
  21. --------------------------------------------------------------------------------  
  22.  
  23. oracle  
  24.  
  25. java  
  26.  
  27. --sysdba执行备份  
  28.  
  29. SQL> conn / as sysdba  
  30.  
  31. Connected.  
  32.  
  33. SQL> select name from v$datafile;  
  34.  
  35. NAME  
  36.  
  37. --------------------------------------------------------------------------------  
  38.  
  39. /oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf  
  40.  
  41. /oracle/10g/oracle/product/10.2.0/oradata/oralife/undotbs01.dbf  
  42.  
  43. /oracle/10g/oracle/product/10.2.0/oradata/oralife/sysaux01.dbf  
  44.  
  45. /oracle/10g/oracle/product/10.2.0/oradata/oralife/users01.dbf  
  46.  
  47. /oracle/10g/oracle/product/10.2.0/oradata/oralife/example01.dbf  
  48.  
  49. SQL> alter database begin backup;  
  50.  
  51. Database altered.  
  52.  
  53. SQL> host cp /oracle/10g/oracle/product/10.2.0/oradata/oralife/*.dbf /oracle/10g/oracle/bakup/database/   --备份所有数据文件  
  54.  
  55. SQL> alter database backup controlfile to '/oracle/10g/oracle/bakup/database/oralife.ctl';  --备份控制文件  
  56.  
  57. Database altered.  
  58.  
  59. -----------------------------------------------------------------------------------------------------------------------------------------  
  60.  
  61. 忘记了alter database end backup;  
  62.  
  63. -----------------------------------------------------------------------------------------------------------------------------------------  
  64.  
  65. SQL> alter system archive log current; --归档当前日志组  
  66.  
  67. System altered. 

 

使用rm删除所有数据文件(*.dbf);

 

  1. SQL> conn evan/evan  
  2.  
  3. Connected.  
  4.  
  5. SQL> select * from t_evan;  
  6.  
  7. TEXT  
  8.  
  9. --------------------------------------------------------------------------------  
  10.  
  11. oracle  
  12.  
  13. java  
  14.  
  15. SQL> insert into t_evan values('spring');  
  16.  
  17. 1 row created.  
  18.  
  19. SQL> commit;  
  20.  
  21. Commit complete.  
  22.  
  23. SQL> ALTER SYSTEM CHECKPOINT; --将已修改的数据从高速缓存刷新到磁盘,并更新控制文件和数据文件  
  24.  
  25. System altered.  
  26.  
  27. SQL> ALTER SYSTEM SWITCH LOGFILE;  --日志切换  
  28.  
  29. System altered. 

 

查看alter_oralife.log出现错误信息:某些文件不存在

进行完全恢复

copy备份的数据文件到指定的目标位置,进行恢复:

 

  1. SQL> recover database --open状态  
  2.  
  3. ORA-00283: recovery session canceled due to errors  
  4.  
  5. ORA-01124: cannot recover data file 1 - file is in use or recovery  
  6.  
  7. ORA-01110: data file 1:  
  8.  
  9. '/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf'  
  10.  
  11. SQL> shutdown immediate --open状态  
  12.  
  13. ORA-01122: database file 1 failed verification check  
  14.  
  15. ORA-01110: data file 1: '/oracle/10g/oracle/product/10.2.0/oradata/oralife/system01.dbf'  
  16.  
  17. ORA-01208: data file is an old version - not accessing current version  
  18.  
  19. SQL> startup force mount;  --进入mount状态进行恢复  
  20.  
  21. ORACLE instance started.  
  22.  
  23. Total System Global Area  528482304 bytes  
  24.  
  25. Fixed Size                  1220360 bytes  
  26.  
  27. Variable Size             163578104 bytes  
  28.  
  29. Database Buffers          356515840 bytes  
  30.  
  31. Redo Buffers                7168000 bytes  
  32.  
  33. Database mounted.  
  34.  
  35. SQL> recover database  
  36.  
  37. Media recovery complete.  
  38.  
  39. SQL> alter database open;  
  40.  
  41. Database altered.  
  42.  
  43. SQL> conn evan/evan --使用evan登录查看恢复情况  
  44.  
  45. Connected.  
  46.  
  47. SQL> select * from t_evan;  
  48.  
  49. TEXT  
  50.  
  51. --------------------------------------------------------------------------------  
  52.  
  53. oracle  
  54.  
  55. java  
  56.  
  57. spring 

 

没有出现应用归档日志,应用归档日志有几种方式:

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

当在open状态下对数据文件进行恢复时,应该将其offline,恢复完成后,再将其online;所有的恢复应该尽量在open状态下完成。

要理解checkpoint, alter system archive log current;,ALTER SYSTEM SWITCH LOGFILE。

关于Oracle数据库基于用户管理的备份与恢复就介绍到这里,希望通过本次的介绍能够带给您一些收获。

【编辑推荐】

  1. SQL Server 2008的BI组件SSAS使用详解
  2. Oracle数据库如何增加scott用户与相关的表
  3. 关于SQL Server数据库主键与索引的几点区别
  4. SQL Server数据同步Merge的一个BUG及解决方法
  5. 如何将SQL Server 2008的数据降级到SQL Server 2005
责任编辑:赵鹏 来源: CSDN博客
相关推荐

2011-08-03 18:42:21

Oracle数据库重做日志

2011-08-02 08:59:52

Oracle控制文件

2009-04-03 10:54:49

Oracle备份恢复

2010-04-13 11:09:21

Oracle数据库

2009-10-13 09:43:43

Oracle数据库备份

2011-05-20 09:35:24

Oracle数据库恢复备份

2009-03-17 16:00:47

Oracle数据库备份

2010-04-12 10:40:49

Oracle数据库

2011-08-04 10:31:43

归档日志参数文件

2023-11-15 09:38:49

Oracle数据库

2011-04-11 13:46:17

Oracle数据库备份

2009-04-17 11:28:16

Oracle备份恢复

2010-04-12 14:19:00

Oracle数据库备份

2011-07-26 13:55:01

MongoDB备份与恢复

2010-03-30 10:05:02

Oracle数据库

2011-08-02 16:03:47

Oracle数据库冷备份冷备份异地恢复

2010-03-31 10:39:40

RMANOracle

2010-08-12 09:18:48

DB2用户密码修改

2019-02-28 21:20:50

MySQL备份与恢复数据库

2011-08-30 09:35:10

OracleRMAN不完全恢复基于时间恢复
点赞
收藏

51CTO技术栈公众号