怎样才能对Oracle数据库进行备份?如何才能对删除的数据再进行恢复?这是困扰着很多人的问题.大家都知道,任何数据库在长期使用过程中,都会存在一定的安全隐患.对于数据库管理员来说不能仅寄希望于计算机操作系统的安全运行,而是要建立一整套的数据库备份与恢复机制.当数据库发生故障后,希望能重新建立一个完整的数据库,该处理称为数据库恢复.恢复子系统是数据库管理系统的一个重要组成部分.恢复处理随所发生的故障类型所影响的结构而变化.Oracle数据库使用几种结构来保护数据:数据库后备.日志.回滚段和控制文件…
1. 环境描写叙述 操作系统版本号:SUSE Linux Enterprise Server 10 sp2 (x86_64) 数据库版本号:Oracle 11.1.0.7.16 VCS版本号:5.1 blog地址:http://blog.csdn.net/hw_libo/article/details/41171561 2. 问题现象及分析 凌晨3:46左右.手机短信收到数据库异常告警. (1)查看数据库alert日志 Sun Nov 16 03:46:51 2014 Stopping back…
比較全然恢复和不全然恢复: 一.全然恢复:将数据库恢复到当前最新状态,包含直至请求恢复时进行的全部已提交的数据更改 二.不全然恢复:将数据库恢复到请求恢复操作之前指定的过去时间点 一.全然恢复过程 以下的步骤说明了运行全然恢复期间要採取的操作: 1. 通过备份还原损坏或丢失的文件. 2. 依据须要应用增量备份.归档重做日志文件和联机重做日志文件里的更改.将重做日志更改应用于数据文件,直到到达当前联机日志,而且又一次输入了最新的事务处理.在整个过程中会生成还原块.这称为前滚或快速缓存恢复. 3.…
某一张表被应用软件里误操作把数据都清空了,现在想恢复到清空之间,比如2013年8月13日14点以前,应该怎样操作? 通过这个问题可以引发一系列的知识点串联. 1.如果开启闪回可以使用闪回表. 怎样查看我的数据库有没有开启flashback flashback database要求数据库必须处于归档模式,且闪回之后必须使用resetlogs打开数据库 查看数据库的归档模式及闪回是否启用 SQL> select log_mode,open_mode,flashback_on from v$datab…
数据库备份恢复.巡检须要关注的对象设置: 1.数据库名称,以及DBID:  --dbid在v$database中     SYS@ORCL>select dbid,name from v$database; DBID NAME     ---------- ---------     1385095721 ORCL 2.控制文件的位置:     show parameter control_files;     select name from v$controlfile; 3.日志文件的位置以…
场       景:客户的服务器是在虚拟机上,结果虚拟机的服务器的硬盘坏掉了.硬盘换掉后,系统成功恢复出来,但是登录虚拟机后,数据库无法启动. 解决方案:通过冷恢复将数据库还原.在自己的电脑上搭建一个和虚拟机系统一致的环境,包括操作系统.数据库版本.数据库安装目录都和虚拟机一致: 再将虚拟机的数据文件路径中的文件全部覆盖到新系统的相同目录中:最后通过sqlplus命令启动数据库. 操作步骤: 数据库A无法启动,将数据库A的数据冷恢复到数据库B. 操作步骤如下: 1>创建数据库B,操作系统.数据库…
一.表的恢复 对误删的表,只要没有使用PURGE永久删除选项,那么从flash back区恢复回来希望是挺大的.一般步骤有: 1.从flash back里查询被删除的表 select * from recyclebin 2.执行表的恢复 flashback table tbName to before drop; 这里的tbName代表你要恢复的表的名称. 二.表数据恢复 对误删的表记录,只要没有truncate语句,就可以根据事务的提交时间进行选择恢复,一般步骤有: 1.先从flashback…
一.如果只是误删部分数据或者某条数据可以通过 1.select * from 误删除的表明 as of timestamp to_Date('恢复年月日  时分秒', '恢复时间格式')       where  查询条件; 如:select * from emp as of timestamp to_Date('2014-11-27 16:20:00', 'yyyy-mm-dd hh24:mi:ss')  where ename='scott'           //查询到误删除的数据 2.…
因为更新的时候忘记添加条件,导致数据混乱. 用此方法,把数据恢复. --首先查询在某个时间点的数据 t_asn_dtl 为表名; SELECT * FROM t_asn_dtl AS OF TIMESTAMP TO_TIMESTAMP('20180625 22:30:00','YYYYMMDD HH24:MI:SS'); --把这个时间点的数据,赋值到一个新的表内,tab_bal;最好新建两张表,算是一个备份 create table tab_bak as SELECT * FROM T_ASN…
首先要确保数据库实例的完整性,包括控制文件,日志文件,表空间(系统表空间.用户表空间等). 新建同名数据库实例(表空间.用户等不需要). Sql>shutdown immediate关闭数据库 然后COPY原有文件到新实例文件夹中,也可以将新实例文件夹改名,然后将原有实例文件夹放入同目录下 Sql>startup mount加载原有实例,可能出现控制文件不要可写等相关错误,这时可设置文件权限为可读可写可执行(3个均需设置),加载成功后 Sql>select * from v$tables…