Oracle—用户管理的完全恢复(四)
在用户管理的备份(三)中,最后打开数据库时,用了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—用户管理的完全恢复(四)的更多相关文章
- Oracle—用户管理的完全恢复(一)
一.分类 可以分为在非归档模式下和归档模式下的完全恢复,完全恢复主要是针对归档模式下的,在非归档模式下很难做到完全恢复,除非是在做恢复时,联机重做日志还没有被重写. 二.非归档的有关性质 1.在非归档 ...
- 四、oracle 用户管理(Profile)
oracle 用户管理 :profile + tablespace + role + user 一.使用profile管理用户口令概述:profile是口令限制,资源限制的命令集合,当建立数据库时, ...
- Oracle—用户管理的备份(二)
在用户管理的备份(一)中(详见:Oracle—用户管理的备份)对用户管理备份几种情况进行了说明:接下来说明几种特别情况和DBverify的使用. 一.如果在表空间在备份模式下,主机发生了异常关闭,会出 ...
- 三、oracle 用户管理一
三.oracle 用户管理一 一.创建用户概述:在oracle中要创建一个新的用户使用create user语句,一般是具有dba(数据库管理员)的权限才能使用.create user 用户名 ide ...
- Oracle 用户管理权限
Oracle 用户管理权限 一.创建用户的Profile文件 SQL> create profile student limit // student为资源文件名 FAILED_LOGIN_AT ...
- 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数据库的备份可以分为逻辑备份和物理备份. 逻辑备份的是通过数据导出对数据进行备份,主要方式有老式的IMP/EXP和数据泵灯方式.适合变化较少的数据库,而 ...
随机推荐
- PV3D学习笔记-导入DAE模型
网上关于PV3D导入DAE模型的例子都非常多,可惜我研究了半天,一个都没成功,或者是破面问题,或者是贴图不显示,再或者贴图乱掉了.今天晚上终于搞定,心得发上来. 制作模型的软件是SketchUp ...
- 用pdo实现的织梦后台留言板
<?php //ini_set("display_errors", "On"); include("data/common.inc.php&qu ...
- 如何调试最新的asp.net mvc源码
vs2013调试 一.源码当前为5.2.0.0,按下面改为5.0.0.1 二./web.config 版本为5.0.0.0 改为5.0.0.1 三.vs2013 x86 本机工具命令提示 sn.exe ...
- raspbian重置密码
将树莓派上的SD连到电脑,修改cmdline.txt在文件的的最后添加init=/bin/sh dwc_otg.lpm_enable= console=ttyAMA0, kgdboc=ttyAMA0, ...
- C# JackLib系列之Form窗体的ShowWithoutActivation属性及其作用
代码改变世界! 如果要显示顶级窗口,但又不希望由于将输入焦点从当前窗口移开而中断用户的工作,请使用此属性.它可以是一个信息性弹出窗口或浮动窗口,如“画图”应用程序中的“工具”调色板. 由于此属性为只读 ...
- 获取父进程ID
本程序主要功能是:获取某程序的ParentProcessID 直接上代码: // parent.cpp (Windows NT/2000) // // This example will show t ...
- “非常PHP学习网”(www.veryphp.cn)一期上线
制作“非常PHP学习网”花了国庆整个假期,其实是从电脑学习网(http://www.why100000.com,域名刚续费)改写盗版而来的. 起初主要修改界面布局和颜色花费了大量时间(好像制作网站80 ...
- 未能加载文件或程序集"System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"或它的某一个依赖项。系统找不到指定的文件。
sqlserver 2005打开出现无法正常访问数据,提示信息: 未能加载文件或程序集"System.Data,Version=2.0.0.0,Culture=neutral,PublicK ...
- C#中的Collection 1
Collection定义 Collection是个关于一些变量的集合,按功能可分为Lists,Dictionaries,Sets三个大类. Lists:是一个有序的集合,支持index look up ...
- 文件字符读写函数fscanf()和 fgets() 比较
一. 文件格式化读入函数 fscanf() int fscanf(文件指针,格式化字符串,输入列表); 返回值: 整形,输入列表中定义字符串的个数. 1, 例如读取字符串: char str1[ ...