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

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

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的恢复

linux

推荐阅读
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文介绍了MySQL窗口函数的基本概念、应用场景及常见函数的使用方法。窗口函数在处理复杂查询时非常有用,例如计算每个用户的订单排名、环比增长率、以及动态聚合等。 ... [详细]
  • 解决Linux中wget无法解析主机的问题
    本文介绍了如何通过修改/etc/resolv.conf文件来解决Linux系统中wget命令无法解析主机名的问题,通过添加Google的公共DNS服务器地址作为解决方案。 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 春季职场跃迁指南:如何高效利用金三银四跳槽季
    随着每年的‘金三银四’跳槽高峰期的到来,许多职场人士都开始考虑是否应该寻找新的职业机会。本文将探讨如何制定有效的职业规划、撰写吸引人的简历以及掌握面试技巧,助您在这关键时期成功实现职场跃迁。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • 一文详解Linux
    Linuxnetfilter与VRF实验环境如下图所示:配置如下:#!binbashsudoipnetnsaddns1sudoiplinkaddns1veth1typevethpe ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • Linux系统中Boot分区空间不足的处理方案
    在Linux系统的默认安装过程中,Boot分区通常分配的空间为200MB左右,理论上这个大小足以满足日常需求。然而,随着系统的频繁更新,尤其是内核的不断升级,如果不及时清理过期的内核版本,Boot分区很容易出现空间不足的问题。 ... [详细]
  • 想把一组chara[4096]的数组拷贝到shortb[6][256]中,尝试过用循环移位的方式,还用中间变量shortc[2048]的方式。得出的结论:1.移位方式效率最低2. ... [详细]
  • 本文详细介绍了Linux系统中常用的文件操作命令,包括echo用于输出内容至屏幕或文件,cat用于显示或合并文件内容,sed用于流编辑器功能,以及wc命令用于统计文件中的字节、行数和单词数量。通过具体示例加深理解。 ... [详细]
  • 本文深入探讨了Linux内核中进程地址空间的设计与实现,包括虚拟地址空间的概念、内存描述符`mm_struct`的作用、内核线程与用户进程的区别、进程地址空间的分配方法、虚拟内存区域(VMA)的结构以及地址空间与页表之间的映射机制。 ... [详细]
  • Ubuntu系统下的GIF动画录制解决方案
    在撰写文章或教程时,GIF动态图能够有效地传达信息。对于Windows用户而言,ScreenToGif是一款非常实用的工具。而在Ubuntu系统中,用户同样拥有多种选择来创建GIF动画,本文将重点介绍两款录屏工具——Byzanz和Peek。 ... [详细]
author-avatar
PHPdudu
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有