也谈ORACLE备份与恢复
经常听到有人说,某数据库备份方法好,某备份方法不好,或者说现在都流行用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).对于一些字典数据库、静态数据较多的数据库,可采用逻辑备份,定期备份相关重要数据。
对于上面提到的方法,只是个表面的东西而已,要想保证数据库高效、安全、稳定的运行,必须要有完整的、切实可行的数据库运行管理制度,并且严格执行实施,否则再好的方法都是水中月、镜中花。
本文出自 “srsunbing” 博客,请务必保留此出处http://srsunbing.blog.51cto.com/3221858/635830
也谈ORACLE备份与恢复相关推荐
- 浅谈Oracle服务器归档日志,oracle服务器运行时管理归档日志文件不管理联机重做日志文件...
<Oracle数据库管理与维护实战>--2.4 Oracle后台进程结构 本节书摘来自异步社区出版社<Oracle数据库管理与维护实战>一书中的第2章,第2.4节,作者: 何伟 ...
- oracle hash join outer,CSS_浅谈Oracle中的三种Join方法,基本概念
Nested loop join:
Outer - phpStudy...
浅谈Oracle中的三种Join方法 基本概念 Nested loop join: Outer table中的每一行与inner table中的相应记录join,类似一个嵌套的循环. Sort mer ...
- Oracle备份与恢复 关于expdp导出远程数据到本地的使用
Oracle备份与恢复 关于expdp导出远程数据到本地的使用 对于数据的导出,导入.对于exp/imp可以实现把远程数据导入到客户端,但是功能没有expdp/impdp强大 对于expdp/impd ...
- Oracle备份与恢复 expdp/impdp数据泵远程导入导出
Oracle备份与恢复 expdp/impdp数据泵远程导入导出 Oracle在10g的时候有一个很好用的导出工具expdp(数据泵) 但是这个工具好用的同时,有一个局限,就是必须用本地的用户才可以导 ...
- 也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小
也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 参考文章: (1)也谈Oracle异常: ORA-06502: PL/SQL: 数字或值错误 : 字符 ...
- 浅谈Oracle RAC --集群管理软件GI
浅谈Oracle RAC --集群管理软件GI基本架构 今天周五,想想可以过周末,心情大好.一周中最喜欢过的就是周五晚上,最不喜欢过的是周日晚上和周一,看来我不是个热爱劳动的人啊.趁着现在心情愉悦,赶 ...
- 内外兼修:Oracle ACED熊军谈Oracle学习
编辑手记:熊军是中国西部第一位,也是到目前为止唯一的Oracle ACE总监,在这篇文章中熊军描述了他的学习过程和理念供大家参考. ORACLE 的学习,就好比武侠小说中学武功.要从三方面入手: 1. ...
- 转载:内外兼修:Oracle ACED熊军谈Oracle学习
内外兼修:Oracle ACED熊军谈Oracle学习 熊军是中国西部第一位,也是到目前为止唯一的Oracle ACE总监,在这篇文章中熊军描述了他的学习过程和理念供大家参考. ORACLE 的学习, ...
- 浅谈oracle树状结构层级查询
oracle树状结构查询即层次递归查询,是sql语句经常用到的,在实际开发中组织结构实现及其层次化实现功能也是经常遇到的,虽然我是一个java程序开发者,我一直觉得只要精通数据库那么对于java开发你 ...
最新文章
- Linux下Mysql的查询用法
- Java 洛谷 P1035 级数求和
- python 循环添加array_Python的备忘细节小抄
- 解决ZF2_PATH environment
- vue中实现国际化--语言切换(转载)
- 人工智能 信道估计 深度学习_深度学习人体姿态估计算法综述
- 行内元素(HTML、CSS)
- java项目之人事管理系统|HRM(java毕业设计Struts2、mybatis框架项目
- HP MSL6030 磁带库异常fault code:3106
- PHP删除多选checkbox,php一次性删除前台checkbox多选内容的简单示例
- Feign与Gateway
- vb.net产生随机数
- 基于UDP/IP协议的聊天室
- 用青龙面板跑闲趣赚(趣闲赚)脚本(收益超级稳定)
- DDR4两根4G组的双通道跟1根8G单通道有什么区别?
- 自定义邮箱和手机号码的校验规则
- 【BP靶场portswigger-服务端4】操作系统命令注入-5个实验(全)
- C++上机实验二第2题
- Pandas数据分析库(2)Python数据分析
- 如何使用 Redis 实现 “附近的人” 这个功能?
热门文章
- 看漫画学python 豆瓣_看漫画就能学好python?
- ios android 发东西,Android、IOS主动发事件给React Native
- android javamail获取邮件太多太慢_java 实现 email 邮件发送最简单优雅的方式(网易 163 为例)
- shields 徽标_所有徽标看起来都一样
- 4个月高效备考信息系统项目管理师经验分享【57,49,49】
- 笔记-项目配置管理-配置项
- 笔记-项目配置管理-创建基线或发行基线的主要步骤
- 到底能不能做一辈子的程序员——大龄程序员将何去何从
- 【Python】编程笔记5
- go系列之利用Gin框架获取form参数