在用户管理的备份(三)中,最后打开数据库时,用了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. Azure Cloud中的Log4Net设置

    这里的Cloud包含Worker Role和Web Role,Role是运行在云主机中的,这里的主机和VM有所不同,Windows Azure Role Architecture.我们并没有和本地服务 ...

  2. Uva 10007 / HDU 1131 - Count the Trees (卡特兰数)

     Count the Trees  Another common social inability is known as ACM (Abnormally Compulsive Meditation) ...

  3. How to install php evn on ubuntu

    1. How to install PHP EVN 打开终端,也就是命令提示符. 我们先来最小化组建安装,按照自己的需求一步一步装其他扩展.命令提示符输入如下命令: 1 sudo apt-get in ...

  4. 第三百三十四天 how can I 坚持

    I give up my dream that day,else,I coming on,the day my heart is die…… 那天,梦已碎,那天,心已死. 晚上看了个电影<奔爱& ...

  5. Axis2在Web项目中整合Spring

    一.说明: 上一篇说了Axis2与Web项目的整合(详情 :Axis2与Web项目整合)过程,如果说在Web项目中使用了Spring框架,那么又改如何进行Axis2相关的配置操作呢? 二.Axis2 ...

  6. POP3&SMTP&IMAP

    [POP3&SMTP&IMAP] IMAP是什么? IMAP,即Internet Message Access Protocol(互联网邮件访问协议),您可以通过这种协议从邮件服务器上 ...

  7. day09(sql基础01)

    SQL语言的分类 SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL.   1:数据查询语言DQL Q = Query 数据查询语言DQL用于检索 ...

  8. 对比AMD 890、AMD 880、 AMD 790、AMD 785、 AMD 780、AMD 7

    770无集显.中低端独显主流. 780G带集显.现在可以无视. 785G现在是带集显的主流. 790GX高端带集显. 790FX专高端,无集显. 790X带集显.基本无视. 870 大板,无集显 88 ...

  9. POJ1651Multiplication Puzzle(区间DP)

    比较好做的区间DP 状态转移方程:DP[i][j] 表示区间[i,j]最小的乘积和. DP[i][j] = MIN{DP[i][k-1]+DP[k+1][j] + a[k]*a[i-1]*a[j+1] ...

  10. CodeForces 710B Optimal Point on a Line (数学,求中位数)

    题意:给定n个坐标,问你所有点离哪个近距离和最短. 析:中位数啊,很明显. 代码如下: #pragma comment(linker, "/STACK:1024000000,10240000 ...