在用户管理的备份(三)中,最后打开数据库时,用了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. ZOJ-3349 Special Subsequence 线段树优化DP

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3349 题意:给定一个数列,序列A是一个满足|Ai-Ai-1| & ...

  2. C_functions

    1.C常用函数分为如下几大类!! 1,字符测试函数. 2,字符串操作 3,内存管理函数 4,日期与时间函数 5,数学函数 6,文件操作函数 7,进程管理函数 8,文件权限控制 9,信号处理 10,接口 ...

  3. Android NDK调试C++源码(转)

    [原创文章,转载请保留或注明出处,http://download.csdn.net/download/bigmaxim/5474055] 1. 相关软件 adt-bundle-windows-x86. ...

  4. Linux下的sort排序命令详解(二)

    有时候学习脚本,你会发现sort命令后面跟了一堆类似-k1,2,或者-k1.2 -k3.4的东东,有些匪夷所思.今天,我们就来搞定它—-k选项! 1 准备素材 [root@FDMdevBI opt]# ...

  5. EntityFramework简单例子

    @(编程) 这个例子是用vs2013连接mysql数据库. 1. NuGet安装EF和mysql 略 2. 对象 namespace EFDemo { class Student { public s ...

  6. hdu 5475 An easy problem(暴力 || 线段树区间单点更新)

    http://acm.hdu.edu.cn/showproblem.php?pid=5475 An easy problem Time Limit: 8000/5000 MS (Java/Others ...

  7. 什么是IntelAMT

    IntelAMT 全称为INTEL主动管理技术,该技术允许IT经理们远程管理和修复联网的计算机系统,而且实施过程是对于服务对象完全透明的,从而节省了用户的时间和计 算机维护成本.释放出来的iAMT构架 ...

  8. 实时监控MySql状态

    大多网站的性能瓶颈都会出在数据库上,所以想把Mysql监控起来,就搜索了下相关资料. 后来和同事讨论了下cacti和nagios有些老套和过时,graphite比较时尚,然后就搜了下相关的资料,最后搞 ...

  9. Python输入输出(IO)

    程序会有输入和输出,输入可以从标准输入或是从一个文件读入数据,程序的输出可以以一种友好可读的方式(human-readable)打印出来,或是写进一个文件,而标准输入和标准输出(键盘和显示器)在程序的 ...

  10. CCF 201403-2 窗口 (STL模拟)

    问题描述 在某图形操作系统中,有 N 个窗口,每个窗口都是一个两边与坐标轴分别平行的矩形区域.窗口的边界上的点也属于该窗口.窗口之间有层次的区别,在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的 ...