Oracle—用户管理的完全恢复(一)
一.分类
可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写。
二.非归档的有关性质
1.在非归档模式下,在丢失数据文件后唯一的选择是执行完整的数据库还原,而不能进行恢复;
2.还原完整的数据库是还原所用的数据文件和控制文件;
3.还原前提是要备份,因为是非归档模式所以只能进行冷备份,主要备份所有的数据文件和控制文件。对于联机重做日志文件,在正常关闭数据库的情况下,可以不备份它,但是在不正常关闭数据库的情况下要进行备份,建议备份下来,这样就可以不用重建了。
有关备份可以查看:Oracle—用户管理的备份(一)
三.非归档模式下的恢复
1.如果放数据文件的磁盘没有损坏,只是某种原因导致某些数据文件的丢失,那么只要把备份的数据库(所有数据文件和控制文件),复制到原来的地方即可。
2.如果是磁盘损坏,则不能放到原来的位置了,必须放到新的磁盘下。这样就要修改参数文件和控制文件的信息, 才能正常打开数据库。
3..现在模拟第二种情况(即磁盘损坏),首先对数据库进行冷备份,新建个目录/u01/ubackup,在/u01/oradata/wilson下的所有文件(数据文件,控制文件和联机重做日志文件)复制到ubackup目录下。命令如下,
[oracle@oracle11g ubackup]$ cp /u01/oradata/wilson/* /u01/ubackup
现在假设挂载在/u01/oradata/wilson目录上的磁盘损坏了,
[oracle@oracle11g wilson]$ rm -f *.dbf (删除数据文件,模拟磁盘损坏)
现在因为这个磁盘损坏了,所以原来冷备份的数据库不能再还原到这个磁盘上了,必须加一个新的磁盘。在虚拟机上可以添加个新的磁盘(8G),然后在/u01/oradata/下新建个目录md用于挂载新的磁盘。
[oracle@oracle11g oradata]$ mkdir md
(1)给新的磁盘进行分区,
[root@oracle11g ~]# fdisk /dev/sdb
Command (m for help): n
Partition number (1-8): 1
First cylinder (0-1866): 1
Last cylinder or +size or +sizeM or +sizeK (1-1866, default 1866): 1866
Command (m for help): p
Disk /dev/sdb (Sun disk label): 7 heads, 80 sectors, 1866 cylinders
Units = cylinders of 560 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sdb1 1 1866 522200 83 Linux native
因为磁盘较小,所以直接划分为一个分区。可以在目录/dev下看到多了一个sdb1。
(2)对sdb1做系统文件,命令如下,
[root@oracle11g dev]# mkfs.ext3 sdb1
(3)把这个磁盘挂载到/u01/oradata/md目录山,命令如下,
[root@oracle11g oradata]# mount /dev/sdb1 /u01/oradata/md
(4)在/u01/oradata目录下可以看到,
[oracle@oracle11g oradata]$ ll
total 17
drwxr-xr-x 3 root root 1024 Aug 29 23:10 md
drwxr-x--- 3 oracle oinstall 4096 Aug 25 17:09 wilson
md属于root,用户oralce不能使用,故修改一下权限,命令如下,
[root@oracle11g oradata]# chown -R oracle:oinstall md
(5)切换到oracle用户(su - oracle),把冷备份的数据库复制到/u01/oradata/md目录下,
[oracle@oracle11g md]$ cp /u01/ubackup/* /u01/oradata/md/
(6)修改spfile,先将spfile转换为pfile,因为pfile为文本类型,可以直接修改。
SQL> create spfile from pfile;
File created.
把pfile 中原来和/u01/oradata/wilson/目录有关的,改为/u01/oradata/md。修改好了,再转换为spfile,命令如下,
SQL> create spfile from pfile;
File created.
(7)在控制文件中有关数据文件,联机重做日志文件和临时文件还在原来的位置,所有修改控制文件。 因为spfile修改好了,所以数据库可以进入mount状态了。
—— 这个时候可以通过查看v$datafile动态性能视图来看到数据文件的位置和名称。
SQL> select file#,name from v$datafile;
FILE# NAME
---------- -----------------------------------
1 /u01/oradata/wilson/system01.dbf
2 /u01/oradata/wilson/sysaux01.dbf
3 /u01/oradata/wilson/undotbs01.dbf
4 /u01/oradata/wilson/users01.dbf
5 /u01/oradata/wilson/example01.dbf
6 /u01/oradata/wilson/paul01.dbf
7 /u01/oradata/wilson/sun01.dbf
8 /u01/oradata/wilson/smallundo1.dbf
9 /u01/oradata/wilson/assm_1.dbf
10 /u01/oradata/wilson/mssm_1dbf
11 /u01/oradata/wilson/paul02.dbf
FILE# NAME
- --------- -----------------------------------
12 /u01/oradata/wilson/appl_01.dbf
12 rows selected.
修改控制文件中数据文件的名称,命令如下,
SQL> alter database rename file '/u01/oradata/wilson/system01.dbf' to '/u01/oradata/md/system01.dbf';
把每个数据文件都修改一下,或者做个批量修改。
——通过查看v$logfile动态性能视图来看联机重做日志文件的位置和名称。
SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- -----------------------------------
3 /u01/oradata/wilson/redo03.log
1 /u01/oradata/wilson/redo01.log
2 /u01/oradata/wilson/redo02.log
修改控制文件中联机重做日志文件的名称,命令如下,
SQL>alter database rename file '/u01/oradata/wilson/redo01.log' to '/u01/oradata/md/redo01.log' ;
把每个联机重做日志文件都修改一下。
——通过查看v$tempfile动态性能视图来看临时文件的位置和名称。
SQL> select file#,name from v$tempfile;
FILE# NAME
---------- -----------------------------------
1 /u01/oradata/wilson/temp01.dbf
2 /u01/oradata/wilson/mytemp01.dbf
修改控制文件中临时文件的名称,命令如下,
SQL>alter database rename file ‘/u01/oradata/wilson/temp01.dbf' to ‘/u01/oradata/md/temp01.dbf';
把每个临时文件都修改一下。
(8)可以打开数据库了,命令如下,
SQL> alter database open;
四.在前面说明了备份了联机重做日志文件的情况,下面来说明如果没有备份联机重做日志的情况。(非归档模式中)
1.恢复步骤:
(1)关闭数据库;
(2)从备份中还原数据文件和控制文件;
(3)基于cancel的恢复;
(4)在打开数据库时,带上resetlogs选项。
2.前两步参照上面介绍的,现在在目录/u01/oradata/md下删除联机重做日志文件,命令如下,
[oracle@oracle11g md]$ rm -f redo0*
然后进入mount状态,恢复命令如下,
SQL> recover database until cancel using backup controlfile;
提示输入cancel,使用如下命令,可以重新创建联机重做日志,
SQL> alter database open resetlogs;
这样既可正常打开数据库了。
Oracle—用户管理的完全恢复(一)的更多相关文章
- Oracle—用户管理的完全恢复(四)
在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令? 一.resetlogs的作用 1.将当前的日志 ...
- Oracle 用户管理与权限控制
Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...
- Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理
1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...
- Oracle—用户管理的备份(一)
用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...
- Oracle—用户管理的备份(二)
在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...
- 四、oracle 用户管理(Profile)
oracle 用户管理 :profile + tablespace + role + user 一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...
- 三、oracle 用户管理一
三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...
- Oracle 用户管理权限
Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...
- ORACLE用户管理方式下备份数据和复制数据库
首先要明确的是,oracle数据库的备份可以分为逻辑备份和物理备份. 逻辑备份的是通过数据导出对数据进行备份,主要方式有老式的IMP/EXP和数据泵灯方式.适合变化较少的数据库,而 ...
随机推荐
- iOS 并发:NSOperation 与调度队列入门(1)
一直以来,并发都被视为 iOS 开发中的「洪水猛兽」.许多开发者都将其视为危险地带,唯恐避之而不及.更有谣传认为,多线程代码应该尽力避免.笔者同意,如果你对并发的了解不够深入,就容易造成危险.但是,危 ...
- Java 开发者不容错过的 12 种高效工具
Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松.目前,市面上涌现出越来越多的高效编程工具.所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用.正在使用或 ...
- Jmeter Constant Throughput Timer 使用
Jmeter提供了一个非常有用的定时器,称为Constant Throughput Timer (常数吞吐量定时器),该定时器可以方便地控制给定的取样器发送请求的吞吐量. 右键点击fnng.cnblo ...
- 关于安装完Node.js 出现node is not dedined 问题
今天想来接触下Node.js 神奇 怀着揣揣的心 从官网下载了windows 的64位mis版本 几个下一步就顺利安装完毕了 接着跟着新手教程走 不懂教程里的 苹果shell 是什么 反正就是检 ...
- [jobdu]矩形覆盖
推导一下,就是斐波那契数列那样的.但是要注意的是,int存不下,算一下需要long long才行,因为是指数级上升的. #include <cstdio> #define LEN 75 # ...
- .NET事件的指导原则
C#允许编写所需的各种类型的事件.但是,为了与.NET Framwork的组件相兼容,开发人员必须遵循微软为此建立的一系列指导原则.这些指导原则的核心是,事件处理程序必须拥有两个参数.第一个参数是一个 ...
- WPF 3D 小小小小引擎 - ·WPF 3D变换应用
原文:WPF 3D 小小小小引擎 - ·WPF 3D变换应用 WPF可以提供的3D模型使我们可以轻松地创建3D实体,虽然目前来看还很有一些性能上的问题,不过对于一些简单的3D应用应该是可取的,毕竟其开 ...
- Android Studio 快捷键 for Mac OS X 10.5+
Action Mac OSX Win/Linux 注释代码(//) Cmd + / Ctrl + / 注释代码(/**/) Cmd + Option + / Ctrl + Alt + / 格式化代码 ...
- 屏幕尺寸,屏幕分辨率,屏幕密度,各种长宽单位(px,sp,dp,in.pt,mm)
常见长宽单位表 名称 单位缩写 单位全拼 介绍 屏幕尺寸 '' 或 in inch 屏幕的大小,通常用屏幕对角线的长度表示.单位是寸 屏幕分辨率 px pixels 整个屏幕的像素数,一般用屏幕的像素 ...
- 应付描述性弹性域 Description Flexfield
(N) AP > Setup > Flexfield > Description > Segments To define your descriptive flexfield ...