这次验证分别oracle 11.2.0.2 RAC与oracle 11.2.0.4 RAC中进行验证。
隐藏参数‘_datafile_write_errors_crash_instance’是在Oracle 11.2.0.1开始导入的,
主要的机能是在,数据文件(sysytem以外表空间)I/O读写错误被发现时,对实例的down进行管理。
Oracle 11.2.0.1 的初始值是
_datafile_write_errors_crash_instance = FALSE
数据文件(sysytem以外表空间)I/O读写错误被发现时,在归档模式下,发生错误的数据文件
被OFFLINE,实例不会down。
Oracle 11.2.0.2开始初始值变成TRUE
_datafile_write_errors_crash_instance = TRUE
因为I/O错误,数据文件读写失败被发现时,ORA-63999错误出力,实例down。
但是,在我的验证环境重新验证之后,发现在Oracle 11.2.0.2 RAC环境与Oracle 11.2.0.3 RAC环境中
就算这个隐藏参数=FALSE,数据库也会被down。
可是,在Oracle 11.2.0.4 RAC环境中,就不会发生这个现象。只有发生错误的数据文件被OFFLINE,
其它数据文件可以使用,实例不会发生任何问题。
实例再启动后,对指定的数据文件进行recover datafile与alter database datafile‘’ONLINE。
验证:
(客户验证环境为日语系统)
--验证环境准备
SQL> conn use1/pwdora
接続されました。
SQL> create table tal01 (id number,t01 varchar2(20)) tablespace user2;
表が作成されました。
SQL> declare
2 temp varchar2(20):='aaa';
3 i number;
4 begin
5 for i in 1..1000 loop
6 insert into tal01 (id,t01) values (i,temp);
7 end loop;
8 end;
9 /
PL/SQLプロシージャが正常に完了しました。
SQL> commit;
コミットが完了しました。
SQL> alter system switch logfile;
システムが変更されました。
SQL> conn / as sysdba
接続されました。
SQL> select
x.ksppinm name,
y.ksppstvl value,
y.ksppstdf isdefault,
decode(bitand(y.ksppstvf,2),2,'TRUE','FALSE') isadj
from
sys.x$ksppi x,
sys.x$ksppcv y
where
x.inst_id = userenv('Instance') and
y.inst_id = userenv('Instance') and
x.indx = y.indx and
x.ksppinm='_datafile_write_errors_crash_instance'; 2 3 4 5 6
7 8 9 10 11 12 13
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
ISDEFAULT ISADJ
--------------------------- ---------------
_datafile_write_errors_crash_instance
FALSE
FALSE FALSE
SQL> exit
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing optionsとの接続が切断されました。
--1.磁盘组强制dismount
[grid@ol655v11rac1 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on 金 12月 13 00:28:21 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
に接続されました。
SQL> alter diskgroup CRS2 dismount force;
Diskgroup altered.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit
Production
With the Real Application Clusters and Automatic Storage Management options
[grid@ol655v11rac2 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Fri Dec 13 00:28:57 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Real Application Clusters and Automatic Storage Management options
SQL> alter diskgroup CRS2 dismount force;
Diskgroup altered.
SQL>
[grid@ol655v11rac1 ~]$ crsctl status res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS1.dg
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
ora.CRS2.dg
OFFLINE OFFLINE ol655v11rac1 ★
OFFLINE OFFLINE ol655v11rac2 ★
ora.DATA.dg
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
ora.LISTENER.lsnr
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
ora.LISTENER_TEST.lsnr
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
ora.REC.dg
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
ora.asm
ONLINE ONLINE ol655v11rac1 Started
ONLINE ONLINE ol655v11rac2 Started
ora.gsd
OFFLINE OFFLINE ol655v11rac1
OFFLINE OFFLINE ol655v11rac2
ora.net1.network
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
ora.ons
ONLINE ONLINE ol655v11rac1
ONLINE ONLINE ol655v11rac2
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE ol655v11rac2
ora.cvu
1 OFFLINE OFFLINE
ora.oc4j
1 OFFLINE OFFLINE
ora.ol655v11rac1.vip
1 ONLINE ONLINE ol655v11rac1
ora.ol655v11rac2.vip
1 ONLINE ONLINE ol655v11rac2
ora.racdb.db
1 ONLINE ONLINE ol655v11rac1 Open
2 ONLINE ONLINE ol655v11rac2 Open
ora.scan1.vip
1 ONLINE ONLINE ol655v11rac2
--2.对于强制dismount的磁盘组管理的表空间的表,进行插入操作时,错误发生
[oracle@ol655v11rac1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 金 12月 13 00:30:50 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
に接続されました。
SQL> conn use1/pwdora
接続されました。
SQL> insert into tal01(id,t01) values (1234,4321);
insert into tal01(id,t01) values (1234,4321)
*
行1でエラーが発生しました。:
ORA-01115: ファイル(ブロック番号)からの読取りI/Oエラーが発生しました。 ORA-01110:
データファイル10: '+CRS2/racdb/datafile/user2.257.834020569'
ORA-15078: ASMディスクグループが強制ディスマウントされました
SQL> conn / as sysdba
接続されました。
SQL> alter system checkpoint;
システムが変更されました。
SQL> exit
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing optionsとの接続が切断されました。
[oracle@ol655v11rac1 ~]$
--DBを再起動する
[grid@ol655v11rac1 ~]$ crsctl stop res ora.racdb.db
CRS-2673: 'ora.racdb.db'('ol655v11rac1')の停止を試行しています
CRS-2673: 'ora.racdb.db'('ol655v11rac2')の停止を試行しています
CRS-2677: 'ora.racdb.db'('ol655v11rac1')の停止が成功しました
CRS-2677: 'ora.racdb.db'('ol655v11rac2')の停止が成功しました
[grid@ol655v11rac1 ~]$ crsctl start res ora.racdb.db
CRS-2672: 'ora.CRS2.dg'('ol655v11rac1')の起動を試行しています
CRS-2672: 'ora.CRS2.dg'('ol655v11rac2')の起動を試行しています
CRS-2676: 'ora.CRS2.dg'('ol655v11rac2')の起動が成功しました
CRS-2672: 'ora.racdb.db'('ol655v11rac2')の起動を試行しています
CRS-2676: 'ora.CRS2.dg'('ol655v11rac1')の起動が成功しました
CRS-2672: 'ora.racdb.db'('ol655v11rac1')の起動を試行しています
CRS-2676: 'ora.racdb.db'('ol655v11rac2')の起動が成功しました
CRS-2676: 'ora.racdb.db'('ol655v11rac1')の起動が成功しました
--3.双节点的实例再启动后,V$datafile确认
[oracle@ol655v11rac1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 金 12月 13 00:34:42 2013
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
に接続されました。
SQL> select NAME,STATUS from v$datafile;
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+DATA/racdb/datafile/system.290.825681213
SYSTEM
+DATA/racdb/datafile/sysaux.291.825681213
ONLINE
+DATA/racdb/datafile/undotbs1.292.825681215
ONLINE
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+DATA/racdb/datafile/users.293.825681215
ONLINE
+DATA/racdb/datafile/undotbs2.298.825681663
ONLINE
+DATA/racdb/datafile/users2.302.829645083
ONLINE
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+DATA/racdb/datafile/users3.303.829699671
ONLINE
+DATA/racdb/datafile/users6.304.829700059
ONLINE
+CRS2/racdb/datafile/user2.256.833962583
RECOVER
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+CRS2/racdb/datafile/user2.257.834020569
RECOVER
10行が選択されました。
SQL> recover datafile '+CRS2/racdb/datafile/user2.256.833962583';
ORA-00279: 変更9796286(12/13/2013 00:00:14で生成)にはスレッド2が必要です ORA-00289:
検討すべきログファイル:/oracle/app/oracle/product/11.2.0.4/dbs/arch2_232_82568
1360.dbf
ORA-00280: 変更9796286(スレッド2)は順序番号232に存在します。
ログの指定: {=suggested | filename | AUTO | CANCEL}
auto
ログが適用されました。
メディアリカバリが完了しました。
SQL> recover datafile '+CRS2/racdb/datafile/user2.257.834020569';
ORA-00279: 変更9796305(12/13/2013 00:00:14で生成)にはスレッド2が必要です ORA-00289:
検討すべきログファイル:/oracle/app/oracle/product/11.2.0.4/dbs/arch2_232_82568
1360.dbf
ORA-00280: 変更9796305(スレッド2)は順序番号232に存在します。
ログの指定: {=suggested | filename | AUTO | CANCEL}
auto
ログが適用されました。
メディアリカバリが完了しました。
SQL> select count(*) from use1.tal01;
select count(*) from use1.tal01
*
行1でエラーが発生しました。:
ORA-00376: ファイル10を読み込むことはできません。 ORA-01110:
データファイル10: '+CRS2/racdb/datafile/user2.257.834020569'
SQL> select NAME,STATUS from v$datafile;
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+DATA/racdb/datafile/system.290.825681213
SYSTEM
+DATA/racdb/datafile/sysaux.291.825681213
ONLINE
+DATA/racdb/datafile/undotbs1.292.825681215
ONLINE
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+DATA/racdb/datafile/users.293.825681215
ONLINE
+DATA/racdb/datafile/undotbs2.298.825681663
ONLINE
+DATA/racdb/datafile/users2.302.829645083
ONLINE
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+DATA/racdb/datafile/users3.303.829699671
ONLINE
+DATA/racdb/datafile/users6.304.829700059
ONLINE
+CRS2/racdb/datafile/user2.256.833962583
OFFLINE
NAME
--------------------------------------------------------------------------------
STATUS
---------------------
+CRS2/racdb/datafile/user2.257.834020569
OFFLINE
10行が選択されました。
--4.数据文件ONLINE后,对象表可以正常访问
SQL> alter database datafile '+CRS2/racdb/datafile/user2.256.833962583' online;
データベースが変更されました。
SQL> alter database datafile '+CRS2/racdb/datafile/user2.257.834020569' online;
データベースが変更されました。
SQL> select count(*) from use1.tal01;
COUNT(*)
----------
1000
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26552866/viewspace-1063441/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26552866/viewspace-1063441/