热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle教程:用户管理的完全恢复

adump一般是auditdumpbdump是backgrounddumpudump是userdumpcdump是coredump恢复的步骤1.还原数据文件2.应用redo3.数据库包

adump一般是audit dumpbdump是background dumpudump是user dumpcdump是core dump 恢复的步骤1.还原数据文件2.应用redo3.数据库包

adump一般是audit dump
bdump是background dump
udump是user dump
cdump是core dump

恢复的步骤
1.还原数据文件
2.应用redo
3.数据库包含提交的和未提交的事务
4.应用UNDO
5.恢复完成的数据库

恢复:用操作系统命令还原文件,用SQL*PLUS recover命令恢复文件

非归档模式的恢复
必须还原所有的datafile和control files,也可以还原参数文件、redo log files和口令文件。
优点:操作容易,低错误风险,恢复时间为拷贝文件时间。
缺点:数据丢失时必须手动重应用,整个数据库只能恢复到上一次冷备的时间点。

冷备的linux下磁盘损坏与数据恢复
[Oracle@ora10g ubackup]$ cp /u01/oradate/orcl/* . //先用操作系统命令备份文件
用虚拟机创建一个虚拟磁盘sdb
fdisk sdb格式磁盘
Command (m for help):n 增加新分区
Command (m for help):p 1 1 1044 w // 增加主分区操作代码,p为主分区,1为分区数,1为第一个柱面数, 1044为该分区柱面数 w为写分区表到磁盘。
mkfs.ext3 sdb1 //在分区增加ext3文件系统
[oracle@ora10g oradata]$ mount /dev/sdb1 md //挂载到md文件夹
[oracle@ora10g oradata]$ chown -R oracle:oinstall md //赋权
[oracle@ora10g md]$ cp /u01/ubackup/* . //拷贝备份到md文件夹

SQL>create pfile from spfile //创建pfile
修改pfile里面的控制文件路径
SQL>create spfile from pfile;
SQL>startup mount
然后把控制文件里面的datafile目录修改
SQL>alter database rename file '/u01/oradata/morewood/system01.dbf' to '/u01/oradata/md/system01.dbf';
....(省略其他的修改操作)
再把控制文件里面的tempfile目录修改
SQL>alter database rename file '/u01/oradata/morewood/temp01.dbf' to '/u01/oradata/md/temp01.dbf';
再把控制文件里面的redo log file目录修改
SQL>alter database rename file '/u01/oradata/morewood/redo01.dbf' to '/u01/oradata/md/redo01.dbf';
...省略其他log目录修改

自动恢复redo log file(没备份redo log)
1.shutdown实例
2.还原datafile和控制文件
3.执行可取消的恢复
4.open数据库with resetlogs选项
操作代码:
startup mount
recover database until cancel using backup controlfile;//模拟不完全恢复
cancel
alter database open resetlogs;


归档模式的恢复
1.完全恢复
确保要还原的datafile是离线状态
只还原丢失或损坏的datafile
不还原其他文件
恢复datafile
优点:只需还原丢失的文件、恢复所有的数据到出错时间、恢复时间为还原丢失文件和应用所有归档日志文件的时间。
缺点:必须包含所有的归档日志文件
v$recover_file:需恢复的datafile,该信息是控制文件的信息。
v$recovery_log:恢复时需要的归档日志文件
数据库MOUNT状态下
SQL>recover database或recover datafile '/oradata/orcl/xxwz_data.dbf'
数据库OPEN状态下
SQL>recover tablespace xxwz_data;或recover datafile '/oradata/orcl/xxwz_data.dbf'

1.1冷备(直接把文件拷贝到其他盘)+热备(先用alter tablespace xxwz_data begin backup)
在不打开数据库情况下恢复(可以恢复系统表空间和UNDO表空间)
shutdown abort;//当数据库打开时datafile突然丢失,只有shutdown abort才能关闭数据库
拷贝冷备的datafile到原数据文件目录下;
startup mount;
select * from v$recover_file;//查看需要恢复的数据文件
set autorecovery off //关闭自动恢复
SQL>recover database或recover datafile 1;

在打开数据库情况下数据突然丢失的恢复(丢失时数据库没意识到)
提示:数据文件突然丢失,数据库才有在alter system checkpoint后才能用select * from v$recover_file查到要恢复的文件。
alter database datafile 1 offline;
拷贝备份文件;
recover datafile 1;
alter database datafile 1 online;

数据文件在关闭时已丢失,但要求在打开数据库实行恢复(丢失时数据库已意识到)
startup mount;
alter database datafile 1 offline;
alter database open;
拷贝备份文件;
recover datafile 1;
alter database datafile 1 online;

1.2 数据文件没备份(不能是SYSTEM表空间的数据文件,,控制文件不能被重建)
前提:自数据文件创建后的所有的归档日志文件都有;控制文件包含丢失文件的名字。
alter database datafile 7 offline;
SQL>alter database create datafile 'd:\oracle\oradata\xxwz_data.dbf'或alter database create datafile 'd:\oracle\oradata\xxwz_data.dbf' AS 'e:\oracle\oradata\xxwz_data.dbf';
recovery datafile 7;
alter database datafile 7 online;


控制文件的checkpoint的SCN小于数据文件的checkpoint的SCN,则会报控制文件太旧错误,相反则需要介质恢复。
查询数据文件的checkpoint的SCN
select file#,checkpoint_change# from v$datafile_header;
查询控制文件的checkpoint的SCN
select file#,checkpoint_change# from v$datafile;

控制文件的恢复
1.控制文件没有全部丢失
create pfile from spfile;
删除pfile中丢失的控制文件的路径
create spfile from pfile;

cp control02.ctl control01.ctl

2.控制文件全部丢失
丢失之前把控制文件备份成trace脚本
alter database backup controlfile to trace as 'd:\c1.trc';
cp c1.trc c1.sql
修改sql脚本
执行sql脚本

或者
丢失之前把控制文件备份
alter database backup controlfile to 'd:\c1.trc';
然后我又新建一个表空间并且插入数据;
丢失后
先把备份的控制文件拷贝到指定的目录并重命名
cp d:\c1.trc control01.ctl
cp d:\c1.trc control02.ctl
cp d:\c1.trc control03.ctl
用控制文件恢复数据
recover database using backup controlfile;
数据可能在日志文件的其中一个当中,要一个一个试试
'd:\oracle\oradata\orcl\redo01.log' // 指定用redo01日志文件进行数据恢复
由于备份的控制文件没有记录新的数据文件的路径,执行上面命令后,数据库会自动指定表空间对应的数据文件路径到其他地方,这个在执行下面的命令时会有提示。
recover database using backup controlfile;
这时我们要把控制文件中自动指定的路径改成我们数据文件的真实路径
alter database rename file 'xxxx' to 'd:\oracle\oradata\orcl\xxwz_data1.dbf' //xxx是数据库指定的路径,后面的真实数据文件路径在第一次recover报错的时候有提示,也可以从alter_{sid}.log日志文件查到。
改完后执行恢复命令
recover database using backup controlfile until cancel;
然后继续一个一个试试redo文件。成功后输入
alter database open resetlogs;

resetlogs:
resetlogs选项被需要在进行不完全恢复或者用备份控制文件进行恢复时。
resetlogs所做的事情:
1.归档当前的redo日志文件(如果他们可访问),然后清除redo日志文件的内容,重设log sequence number为1.(例如当前的日志文件sequence为1000和1001,重设为1和2)
2.如果redo日志文件不存在则重建他们。
3.重新初始化控制文件中online redo logs和redo thread的metadata。
4.更新所有当前的数据文件和联机重做日志文件和所有后来已归档的重做日志文件with a new resetlogs SCN and time stamp。

只读表空间的恢复:
只读表空间的控制文件trace脚本重构时先不装载该表空间,而是在恢复时通过rename file和alter online要实现。具体可以通过对比只读和普通表空间的控制文件trace脚本。

incarnation:对应物
归档日志命名格式%s为log sequence number,%t为thread number,%r为incarnation。
通过reset incarnation实现跨resetlogs的恢复


推荐阅读
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 学习SLAM的女生,很酷
    本文介绍了学习SLAM的女生的故事,她们选择SLAM作为研究方向,面临各种学习挑战,但坚持不懈,最终获得成功。文章鼓励未来想走科研道路的女生勇敢追求自己的梦想,同时提到了一位正在英国攻读硕士学位的女生与SLAM结缘的经历。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文主要讨论了在xps15上安装双系统win10和MacOS后,win10无法正常更新的问题。分析了可能的引导问题,并提供了解决方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 树莓派Linux基础(一):查看文件系统的命令行操作
    本文介绍了在树莓派上通过SSH服务使用命令行查看文件系统的操作,包括cd命令用于变更目录、pwd命令用于显示当前目录位置、ls命令用于显示文件和目录列表。详细讲解了这些命令的使用方法和注意事项。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • Python语法上的区别及注意事项
    本文介绍了Python2x和Python3x在语法上的区别,包括print语句的变化、除法运算结果的不同、raw_input函数的替代、class写法的变化等。同时还介绍了Python脚本的解释程序的指定方法,以及在不同版本的Python中如何执行脚本。对于想要学习Python的人来说,本文提供了一些注意事项和技巧。 ... [详细]
author-avatar
四-没-之-女
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有