ORACLE备份与恢复的示例分析

74次阅读
没有评论

共计 3093 个字符,预计需要花费 8 分钟才能阅读完成。

这篇文章主要介绍了 ORACLE 备份与恢复的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

经常听到有人说,某数据库备份方法好,某备份方法不好,或者说现在都流行用 rman 来备份了,逻辑备份已经过时了,冷备份就更不值一提了,其实数据库的备份从来没有什么好坏之分、没有过时之说,合适才是最重要的,自己好才是真的好。各种方法各有长短,谁也代替不了谁,只有根据实际情况搭配使用,才能发挥最大的作用,否则只能是东施效颦。

1. oracle 的备份,包括 noarchivelog 模式的备份 (冷备份)、archivelog 模式的备份(热备份、rman 备份)、逻辑备份(不分模式)。
1.1. 冷备份:
— 1) 关闭数据库
  shutdown; 
— 2) 备份数据文件、控制文件、重做日志文件
  — A、查找备份文件的位置
  SELECT * FROM V$DATAFILE;  – 查数据文件
  select * from v$controlfile;  – 查控制文件
  select * from v$logfile;  – 查日志文件
  — B、备份数据文件、控制文件、重做日志文件
  $ copy D:\oracle\oradata\ora9\*.dbf d:\bak\*.*;
  $ copy D:\oracle\oradata\ora9\*.ctl d:\bak\*.*;
  $ copy D:\oracle\oradata\ora9\*.log d:\bak\*.*;

1.2. 热备份:
 — 1)查询备份的数据文件与哪一个表空间有关
  SELECT V$TABLESPACE.NAME,V$DATAFILE.NAME
  FROM V$TABLESPACE JOIN V$DATAFILE USING(TS#);
 — 2) 备份数据文件
  alter tablespace 表空间 BEGIN BACKUP;
  $ COPY 数据文件   存放路径  
  ALTER TABLESPACE 表空间 END BACKUP;
 — 3) 查询是否还有表空间处于备份模式
  SELECT * FROM V$BACKUP;  –STATUS 不是 ACTIVE 即可以
  SELECT V$TABLESPACE.NAME,V$BACKUP.STATUS,V$DATAFILE.NAME
  FROM V$TABLESPACE JOIN V$DATAFILE USING (TS#) JOIN V$BACKUP USING (FILE#);
 — 4) 备份控制文件
  ALTER DATABASE BACKUP CONTROLFILE TO 目标路径及文件名;

1.3. rman 备份:
  — 1)一个简单的 rman 全库备份:
  rman nocatalog target sys/sys
  RMAN restore controlfile from autobackup;
  RMAN configure controlfile autobackup on;
  RMAN backup database;

  — 2)备份数据文件、控制文件、归档日志
  RMAN BACKUP DATAFILE 数据文件名;
  RMAN BACKUP CURRENT CONTROLFILE;
  RMAN BACKUP ARCHIVELOG ALL;

 — 3)备份控制文件 trace
  SQL alter session set tracefile_identifier=system ;
  SQL alter database backup controlfile to trace;
  SQL alter database backup controlfile to d:\temp\controlfile.bak
 
 — 4)备份表空间
  RMAN   backup  tablespace 表空间名;
  — rman 备份比较复杂,只举些简单的例子。

1.4. 逻辑备份
  — 1) 数据库方式 (导出用户要具有 exp_full_database 权限)
  exp scott/tiger@ora9  full=y file= D:\full.dmp
  — 2) 用户方式
  exp userid=scott/tiger@ora9 owner=scott file=d:\scott.dmp log=d:\scott.log
  — 3) 表方式
  exp scott/tiger@ora9 tables=(emp,dept) file= d:\emp.dmp

2. oracle 的恢复(简单举例):
2.1 冷备份的恢复,
  1). STARTUP MOUNT;
  2). ALTER DATABASE DATAFILE 数据文件 OFFLINE DROP; 
  3). ALTER DATABASE OPEN;

2.2 热备份恢复:
  1). STARTUP MOUNT;
  2). ALTER DATABASE DATAFILE 数据文件 OFFLINE; — //system01.dbf 不能设置未 OFFLINE 状态
  3). ALTER DATABASE OPEN;

2.3 rman 备份恢复:
— 1)使用 rman 恢复归档数据库:
rman target /
rman startup mount
rman restore database;
rman recover database;
rman alter database open;

–2)使用 rman 恢复表空间:
rman restore tablespace
rman recover tablespace
rman
run{
sql alter tablespace users offline immediate
restore tablespace users;
recover tablespace users;
sql alter tablespace users online
}

2.4 . 逻辑恢复
  –1) 数据库方式 (导入用户要具有 exp_full_database 权限)
  imp system/system@ora10 full=y file= f:\full.dmp
  –2) 用户方式
  imp userid=scott/tiger@ora10 fromuser=scott  touser=scott file=d:\scott.dmp log=d:\scott.log
  –3) 表方式
  imp system/system@ora10 fromuser=scott touser=scott file= f:\emp.dmp
  – 注意:导出用户要和导入用户相同可以用上面的方法,否则用
  imp scott/tiger@ora10 full=y file= f:\emp.dmp

3. oracle 备份与恢复方法的选择:
  1). 对于一些小系统、小数据量、没有在线要求的数据库,采用冷备份,简单方便、可靠(所有文件时间点一致),但如果是这类系统个人觉得使用 oracle 就是一种浪费,学习除外。
  2). 对于 7X24 小时的大系统、帐营支撑系统、客服系统的数据库,使用归档模式运行,采用全库备份与逻辑备份相结合的方式。
  3). 对于经营分析系统、BI 系统、查询系统等数据库,可采用逻辑备份与表空间备份相结合的方式,对变化数据进行增量备份。
  4). 对于一些字典数据库、静态数据较多的数据库,可采用逻辑备份,定期备份相关重要数据。
 
  对于上面提到的方法,只是个表面的东西而已,要想保证数据库高效、安全、稳定的运行,必须要有完整的、切实可行的数据库运行管理制度,并且严格执行实施,否则再好的方法都是水中月、镜中花。

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“ORACLE 备份与恢复的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-25发表,共计3093字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)