测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程

最近系统出现问题,由于数据库产生的日志量太大无法开启归档模式,导致offline的数据文件无法online!

数据库在启动的时候不检查offline的数据文件!

下面进行测试

数据库版本

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

1.新建一个test表空间,add 10个数据文件,每个数据文件1M

SQL> create tablespace tb_test datafile '+data/db11/datafile/test01.dbf' size 1M autoextend off;

Tablespace created.

alter tablespace tb_test add datafile '+data/db11/datafile/test02.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test03.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test04.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test05.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test06.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test07.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test08.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test09.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test10.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test11.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test12.dbf' size 1M autoextend off;
alter tablespace tb_test add datafile '+data/db11/datafile/test13.dbf' size 100M autoextend off; SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME,BYTES from dba_data_files where TABLESPACE_NAME='TB_TEST'; FILE_NAME FILE_ID TABLESPACE_NAME BYTES
-------------------------------------------------- ---------- ------------------------------ ----------
+DATA/db11/datafile/test01.dbf 6 TB_TEST 1048576
+DATA/db11/datafile/test02.dbf 7 TB_TEST 1048576
+DATA/db11/datafile/test03.dbf 8 TB_TEST 1048576
+DATA/db11/datafile/test04.dbf 9 TB_TEST 1048576
+DATA/db11/datafile/test05.dbf 10 TB_TEST 1048576
+DATA/db11/datafile/test06.dbf 11 TB_TEST 1048576
+DATA/db11/datafile/test07.dbf 12 TB_TEST 1048576
+DATA/db11/datafile/test08.dbf 13 TB_TEST 1048576
+DATA/db11/datafile/test09.dbf 14 TB_TEST 1048576
+DATA/db11/datafile/test10.dbf 15 TB_TEST 1048576
+DATA/db11/datafile/test11.dbf 16 TB_TEST 1048576
+DATA/db11/datafile/test12.dbf 17 TB_TEST 1048576
+DATA/db11/datafile/test13.dbf 18 TB_TEST 104857600 13 rows selected.

2.创建用户,默认表空间为test

SQL> create user test identified by test default tablespace tb_test;

User created.

SQL> grant dba to test;

Grant succeeded.

SQL> select username,DEFAULT_TABLESPACE from dba_users where username='TEST';

USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
TEST TB_TEST 查看表空间大小
TS_NAME PIECES TS_SIZE LARGESTPC TOTALFREE PCT_FREE WHATSUSED PCT_USED PROBL
------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- -----
SYSTEM 2 720 9 9.69 1.35 710.31 98.65 +++++
UNDOTBS1 1 95 4 4 4.21 91 95.79 +++
SYSAUX 1 580 33.31 33.31 5.74 546.69 94.26 +++
UNDOTBS2 2 25 7 7.13 28.52 17.87 71.48
USERS 1 5 3.69 3.69 73.8 1.31 26.2
TB_TEST 13 112 99 110.25 98.44 1.75 1.56

3.创建表

SQL> conn test/test
Connected.
SQL> create table test as select * from dba_objects; Table created. SQL> insert into test select * from dba_objects; 74555 rows created. SQL> / 74555 rows created. SQL> / 74555 rows created. SQL> commit; Commit complete. SQL> select distinct FILE_ID,RELATIVE_FNO,OWNER,SEGMENT_NAME,SEGMENT_TYPE from dba_extents where SEGMENT_NAME='TEST' and OWNER='TEST'; FILE_ID RELATIVE_FNO OWNER SEGMENT_NAME SEGMENT_TYPE
---------- ------------ ------------------------------ ------------------------------ ------------------
10 10 TEST TEST TABLE
18 18 TEST TEST TABLE
9 9 TEST TEST TABLE

4.数据文件offline

SQL> select count(*) from test;

  COUNT(*)
----------
820105 SQL> alter database datafile 9 offline;
alter database datafile 9 offline
*
ERROR at line 1:
ORA-01145: offline immediate disallowed unless media recovery enabled SQL> alter database datafile 9 offline drop; Database altered. SQL> select count(*) from test;
select count(*) from test
*
ERROR at line 1:
ORA-00376: file 9 cannot be read at this time
ORA-01110: data file 9: '+DATA/db11/datafile/test04.dbf' SQL> alter database datafile 10 offline drop; Database altered. SQL> alter system switch logfile; ---切换日志,让日志覆盖 System altered. SQL> /
/
/
/ System altered. SQL> /
System altered. SQL> System altered. SQL> System altered. SQL> select FILE#,name,STATUS from v$datafile; FILE# NAME STATUS
---------- -------------------------------------------------- -------
1 +DATA/db11/datafile/system.256.869601781 SYSTEM
2 +DATA/db11/datafile/sysaux.257.869601783 ONLINE
3 +DATA/db11/datafile/undotbs1.258.869601783 ONLINE
4 +DATA/db11/datafile/users.259.869601783 ONLINE
5 +DATA/db11/datafile/undotbs2.264.869602055 ONLINE
6 +DATA/db11/datafile/test01.dbf ONLINE
7 +DATA/db11/datafile/test02.dbf ONLINE
8 +DATA/db11/datafile/test03.dbf ONLINE
9 +DATA/db11/datafile/test04.dbf RECOVER
10 +DATA/db11/datafile/test05.dbf RECOVER
11 +DATA/db11/datafile/test06.dbf ONLINE
12 +DATA/db11/datafile/test07.dbf ONLINE
13 +DATA/db11/datafile/test08.dbf ONLINE
14 +DATA/db11/datafile/test09.dbf ONLINE
15 +DATA/db11/datafile/test10.dbf ONLINE
16 +DATA/db11/datafile/test11.dbf ONLINE
17 +DATA/db11/datafile/test12.dbf ONLINE
18 +DATA/db11/datafile/test13.dbf ONLINE 尝试online
SQL> alter database datafile 9 online;
alter database datafile 9 online
*
ERROR at line 1:
ORA-01113: file 9 needs media recovery
ORA-01110: data file 9: '+DATA/db11/datafile/test04.dbf' SQL> recovery datafile 9;
SP2-0734: unknown command beginning "recovery d..." - rest of line ignored.
SQL> recover datafile 9
ORA-00279: change 1098981 generated at 01/21/2015 21:23:54 needed for thread 1
ORA-00289: suggestion : /u01/app/oracle/product/11.2.0/dbs/arch1_5_869601908.dbf
ORA-00280: change 1098981 for thread 1 is in sequence #5 Specify log: {<RET>=suggested | filename | AUTO | CANCEL} ORA-00308: cannot open archived log '/u01/app/oracle/product/11.2.0/dbs/arch1_5_869601908.dbf' -----日志已覆盖,不能恢复
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3 由于是非归档模式,日志被覆盖,不可恢复。

5.重启数据库

db111@testdb11a  /u01/app/oracle/datafile$ srvctl stop database -d db11 -o immediate
db111@testdb11a /u01/app/oracle/datafile$ srvctl status database -d db11
Instance db111 is not running on node testdb11a
Instance db112 is not running on node testdb11b
db111@testdb11a /u01/app/oracle/datafile$ srvctl start database -d db11 -o open
db111@testdb11a /u01/app/oracle/datafile$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 21 22:02:27 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options SQL> select name,open_mode from v$database; NAME OPEN_MODE
--------- --------------------
DB11 READ WRITE SQL> select instance_name,status from gv$instance; INSTANCE_NAME STATUS
---------------- ------------
db111 OPEN
db112 OPEN ----------成功

6.操作系统删除offline的数据文件后重启数据库

ASMCMD> ls
SYSAUX.257.869601783
SYSTEM.256.869601781
TB_TEST.268.869606509
TB_TEST.269.869606563
TB_TEST.270.869606635
TB_TEST.271.869606635
TB_TEST.272.869606635
TB_TEST.273.869606635
TB_TEST.274.869606635
TB_TEST.275.869606635
TB_TEST.276.869606637
TB_TEST.277.869606637
TB_TEST.278.869607073
TB_TEST.279.869607073
TB_TEST.280.869607275
UNDOTBS1.258.869601783
UNDOTBS2.264.869602055
USERS.259.869601783
test01.dbf
test02.dbf
test03.dbf
test04.dbf
test05.dbf
test06.dbf
test07.dbf
test08.dbf
test09.dbf
test10.dbf
test11.dbf
test12.dbf
test13.dbf
ASMCMD>
ASMCMD>
ASMCMD> rm test04.dbf
ASMCMD> rm test05.dbf
ASMCMD> ls
SYSAUX.257.869601783
SYSTEM.256.869601781
TB_TEST.268.869606509
TB_TEST.269.869606563
TB_TEST.270.869606635
TB_TEST.273.869606635
TB_TEST.274.869606635
TB_TEST.275.869606635
TB_TEST.276.869606637
TB_TEST.277.869606637
TB_TEST.278.869607073
TB_TEST.279.869607073
TB_TEST.280.869607275
UNDOTBS1.258.869601783
UNDOTBS2.264.869602055
USERS.259.869601783
test01.dbf
test02.dbf
test03.dbf
test06.dbf
test07.dbf
test08.dbf
test09.dbf
test10.dbf
test11.dbf
test12.dbf
test13.dbf db111@testdb11a /u01/app/oracle/datafile$ srvctl stop database -d db11 -o immediate
db111@testdb11a /u01/app/oracle/datafile$ srvctl status database -d db11
Instance db111 is not running on node testdb11a
Instance db112 is not running on node testdb11b
db111@testdb11a /u01/app/oracle/datafile$ srvctl start database -d db11 -o open
db111@testdb11a /u01/app/oracle/datafile$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 21 22:10:12 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options SQL> select instance_name,status from gv$instance; INSTANCE_NAME STATUS
---------------- ------------
db111 OPEN
db112 OPEN

测试Oracle 11gr2 RAC 非归档模式下,offline drop数据文件后的数据库的停止与启动测试全过程的更多相关文章

  1. Oracle之rman数据库在非归档模式下的备份和恢复

    1.数据库在非归档模式下的备份 SQL> archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 ...

  2. oracle非归档模式下的冷备份和恢复

    查看归档的相关信息 SQL> archive log list数据库日志模式             非存档模式自动存档             禁用存档终点            USE_DB ...

  3. 使用alter database datafile 'XXX' offline drop 是否能够恢复(非归档模式下)

    今天在群里面听到一位网友在说使用了alter database datafile 'XXX' offline drop命令是否能够恢复数据,在非归档模式下,下面是用一个实验来验证一下 ######## ...

  4. Oracle非归档模式下脱机数据文件

    正常情况下,要想对数据文件脱机,必须在归档模式下,这是ORACLE自动保护的一种措施,防止在非归档模式下对数据文件脱机,造成数据丢失.如果想在非归档模式下执行数据文件脱机操作,则需要加上“for dr ...

  5. 非归档模式下使用Rman进行备份和恢复

    实验环境: 一.首先进行全库数据备份: 在非归档模式下,rman备份需要在mount模式下进行 SQL> select status from v$instance; STATUS ------ ...

  6. ORACLE10G非归档模式下RMAN异机迁库

    环境信息: 源库 目标库 操作系统 WIN7 WIN SVR 2012 R2 IP x.x.x.216 x.x.x.112 数据库版本 10.2.0.4.0 - 64bi 10.2.0.4.0 - 6 ...

  7. ORACLE10G非归档模式下异机迁库(文件迁移)

    环境信息: 源库 目标库 操作系统 WIN7 WIN SVR 2012 R2 系统盘符 C,D,E,F C,D IP x.x.x.216 x.x.x.112 数据库版本 10.2.0.4.0 - 64 ...

  8. RMAN备份之非归档模式下的备份

    Backing Up a Database in NOARCHIVELOG Mode:1.Log into RMAN2.Shutdown immediate from RMAN3.Startup mo ...

  9. 07 oracle 非归档模式 inactive/active/current redo log损坏的恢复

    在非归档模式下缺失Redo Log后的恢复 将之前的归档模式修改为非归档 SQL> shutdown immediate; SQL> startup mount SQL> alter ...

随机推荐

  1. 基于CentOS-7.2.15的Mono+jexus镜像

    公司开发及测试的linux环境为CentOS-7.X,因此以CentOS-7.2.15作为基础镜像,镜像尺寸确实比较大,最终Mono-4.6.0.125+Jexus-5.8.1.10镜像尺寸已将近1G ...

  2. ssh中org.springframework.orm.hibernate4.support.OpenSessionInViewFilter的作用及配置

     org.springframework.orm.hibernate4.support.OpenSessionInViewFilter 是Spring为我们解决Hibernate的Session的关闭 ...

  3. ETL基础1(概念)

    抽取(Extract): 一般抽取过程需要连接到不同的数据源,以便为随后的步骤提供数据.这一部分看上去简单而琐碎,实际上它是 ETL 解决方案的成功实施的一个主要障碍. 转换(Transform): ...

  4. BZOJ3771: Triple

    额我不是来发题解的,只是非常郁闷= =,这题的答案最大是1.2e9/6左右,所以用ntt的话要在模意义下除以6,不能最后除,否则刚好爆掉= = #include<bits/stdc++.h> ...

  5. HTML a标签、4个伪类、常用属性(下载)、锚链接(待扩展:邮件、电话、短信、GPS)

    HTML 超链接<a> 1.超链接可以是一个字.一个词.一组词.一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分. 2.当您把鼠标指针移动到网页中的某个链接上时,箭头会 ...

  6. 说一说ASCLL和Unicode

    关于字符编码这个展开来说有太多东西了,这里主要是想说一说最常说的ASCLL和Unicode字符编码的问题,这样至少你在用相关函数的时候,可以搞明白参数的真正含义. ASCLL编码 计算机就是0和1的世 ...

  7. 4Struts2标签库----青软S2SH(笔记)

    这里弄错了,这一堆属性是<datetimepicker>标签的,不是<doubleselect>标签的 输出错误信息这个不错,挺方便的. 这个树形标签,也用了好多网络,分析如下 ...

  8. 【Json】关于json解析时异常org.json.JSONException: A JSONObject text must begin with '{' at character 1 of {的解决方法

    遇到这种异常有几种情况: 1.JSON格式有问题,检查一下格式. 2.格式没问题,仍然报错,这个是因为你的json文件头里带有编码字符(如UTF-8等),读取字符串时json串是正常的,但是解析就有异 ...

  9. func_get_arg、func_get_args、func_num_args实现PHP伪重载

    今天在看书的时候,发现书上有这么一条:函数重载的替代方法——伪重载 确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数在看到了func_ge ...

  10. MySQL Where 条件

    WHERE 条件 有时候操作数据库时,只操作一些有条件限制的数据,这时可以在SQL语句中添加WHERE子句来规定数据操作的条件. 语法: SELECT column,… FROM tb_name WH ...