在用户管理的备份(三)中,最后打开数据库时,用了alter database open resetlogs;的命令,这里为什么用resetlogs命令?

一.resetlogs的作用

1.将当前的日志序列号重置为1,抛弃以前所有日志信息,你可以在操作系统上删除它们;

2.在非归档模式下,如果联机重做日志丢失,则可以创建它;参考:Oracle—用户管理的完全恢复(一)

3.更新控制文件里面的信息;

4.更新所有当前的数据文件,联机重做日志文件和相关的归档日志文件并用新的SCN号开始。

所以你使用备份的控制文件或者不完全恢复,则必须使用resetlogs来打开数据库。

在归档文件名格式中有个参数%r,它就是表示incarnation号的。

二.数据在数据库中的位置

在commit后数据会被放在联机重做日志中;如果发生检查点,则把数据放在数据文件中;若触发归档,则数据会放在归档日志中。

下面来实验证明一下,上面的结论,

1.创建个表,插入数据,

SQL> create table t3(id int,name char(10))  tablespace app1;

Table created.

SQL> insert into t3 values(0,'apple');

1 row created.

2.查看当前的联机重做日志文件

SQL> select group#,members,status from  v$log;

GROUP#    MEMBERS STATUS

---------- ---------- ----------------

1          1 CURRENT

2          1 INACTIVE

3          1 ACTIVE

可以看到当前的联机重做日志文件是1号,再通过查看视图v$logfile可以看到1号是哪个。

SQL> select * from v$logfile;

GROUP# STATUS  TYPE    MEMBER                              IS_

---------- ------- ------- ----------------------------------- ---

1         ONLINE  /u01/oradata/wilson/redo01.log      NO

3         ONLINE  /u01/oradata/wilson/redo03.log      NO

2         ONLINE  /u01/oradata/wilson/redo02.log      NO

3.查看联机重做文件

因为还没有提交,来查看一下redo01.log ,

[oracle@oracle11g wilson]$ strings  redo01.log  |   grep apple

看不到数据,

然后提交数据,可以看到

[oracle@oracle11g wilson]$ strings redo01.log | grep apple

apple

有了插入的数据了。

4.查看数据文件

[oracle@oracle11g wilson]$ strings  app1_01.dbf  |  grep apple

在内存中的脏数据没有写到数据文件中之前是没有结果的,

手动发生检查点,

SQL> alter system  checkpoint;

System altered.

再次查看数据文件,

[oracle@oracle11g wilson]$ strings app1_01.dbf | grep apple

apple     ,

可以查看到数据了。

5.查看归档日志文件

因为联机重做日志文件还没归档,所有手动归档一下,

SQL> alter system archive log current;

System altered.

查看新归档的日志文件,

[oracle@oracle11g arch]$ strings sun_1_0000000004_824956547.arc |  grep apple

apple

可以看到有数据在,从而很清楚了每个步骤数据会在什么地方。

三.只读表空间的恢复

1.如果一直是只读表空间,损坏了则直接还原就可以;

2.备份时候是只读表空间,然后改为可读可写表空间,损坏了则还原和恢复即可;

3.备份时候是可读可写表空间,然后改为只读表空间,损坏了则还原和恢复即可;

特别注意是,只读表空间会影响到控制文件,当使用重建的控制文件,使用备份的控制文件时(不含有只读表空间的信息)或者是重命名数据文件时,要使用命令alter database rename ‘......’ to ‘........’;来修改控制文件。

下面通过备份控制文件的脚本来查看在有无只读表空间时,控制文件有什么不同。

备份控制文件,

SQL> alter database backup controlfile to trace as '/tmp/t1.sql';

Database altered.

将app2表空间改为只读表空间,

SQL> alter  tablespace app2 read only;

Tablespace altered.

再备份控制文件,

SQL> alter database backup controlfile to trace as '/tmp/t2.sql';

Database altered.

对比在有无只读表空间下的控制文件备份,备份是创建控制文件的脚本。

[oracle@oracle11g tmp]$ diff t1.sql t2.sql

70d69

<   '/u01/oradata/wilson/app2_01.dbf',

98a98,103

> -- Files in read-only tablespaces are now named.

> ALTER DATABASE RENAME FILE 'MISSING00006'

>   TO '/u01/oradata/wilson/app2_01.dbf';

>

> -- Online the files in read-only tablespaces.

> ALTER TABLESPACE "APP2" ONLINE;

140d144

<   '/u01/oradata/wilson/app2_01.dbf',

165a170,175

> -- Files in read-only tablespaces are now named.

> ALTER DATABASE RENAME FILE 'MISSING00006'

>   TO '/u01/oradata/wilson/app2_01.dbf';

>

> -- Online the files in read-only tablespaces.

> ALTER TABLESPACE "APP2" ONLINE;

可以看到控制文件中的差异。

Oracle—用户管理的完全恢复(四)的更多相关文章

  1. Oracle—用户管理的完全恢复(一)

    一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...

  2. 四、oracle 用户管理(Profile)

    oracle 用户管理 :profile + tablespace + role + user  一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...

  3. Oracle—用户管理的备份(二)

    在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...

  4. 三、oracle 用户管理一

    三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...

  5. Oracle 用户管理权限

    Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...

  6. Oracle 用户管理与权限控制

    Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...

  7. Oracle的学习一:安装与卸载、sql *plus常用命令、Oracle用户管理

    1.为什么学习oracle? 性能优越: 小型数据库 中型数据库 大型数据库 acess.foxbase mysql.sql server.informix sybase.oracle.db2 复杂量 ...

  8. Oracle—用户管理的备份(一)

    用户管理的备份(一) 一.首先要知道数据库中表空间和文件的信息,有几个性能视图,v$datafile,v$tablespace,v$tempfile,v$logfile,v$controlfile,d ...

  9. ORACLE用户管理方式下备份数据和复制数据库

    首先要明确的是,oracle数据库的备份可以分为逻辑备份和物理备份.           逻辑备份的是通过数据导出对数据进行备份,主要方式有老式的IMP/EXP和数据泵灯方式.适合变化较少的数据库,而 ...

随机推荐

  1. 1、Hadoop架构

    1.Hadoop 是一个能够对大量数据进行分布式处理的软件框架,实现了Google的MapReduce编程模型和框架,能够把应用程序分割成许多小的工作单元放到任何集群节点上执行. 作业(job):一个 ...

  2. ipmotool

    ipmitool 命令收集 ipmitool 命令收集 from:http://blog.chinaunix.net/u2/70049/showart_1850139.html IPMI远程管理实验 ...

  3. mysql基础知识(5)--视图

    视图 单词:view 什么是视图: 视图可以看作是一个“临时存储的数据所构成的表”(非真实表),其实本质上只是一个select语句.只是将该select语句(通常比较复杂)进行一个“包装”,并设定了一 ...

  4. SpringMVC处理Date类型的成员变量方法

    原文链接:http://www.tuicool.com/articles/aYfaqa 在使用 SpringMVC 的时候,我们可能需要将一个对象从 View 传递给 Controller .而当这个 ...

  5. Good Number

    Time Limit: 1000ms Problem Description: Let's call a number k-good if it contains all digits not exc ...

  6. error日志

    2016/06/15 微信调核心时通用意外险 2016-06-15 11:44:23,771>>INFO >> com.isoftstone.core.service.comm ...

  7. mv命令

    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...

  8. 显示MYSQL数据库信息

    显示所有的数据库:show databases 显示一个数据库所有表用:show tables from DatabaseName SELECT table_name FROM information ...

  9. [转]Torch是什么?

    Torch是一个广泛支持机器学习算法的科学计算框架.易于使用且高效,主要得益于一个简单的和快速的脚本语言LuaJIT,和底层的C / CUDA实现:Torch | Github 核心特征的总结:1. ...

  10. POJ 3170 Knights of Ni (暴力,双向BFS)

    题意:一个人要从2先走到4再走到3,计算最少路径. 析:其实这个题很水的,就是要注意,在没有到4之前是不能经过3的,一点要注意.其他的就比较简单了,就是一个双向BFS,先从2搜到4,再从3到搜到4, ...