如何使用ASM(8)

2019-04-22 08:16

11.4 创建部分表

SQL> grant dba to test; SQL> conn test/test

SQL> create table testseg tablespace asmtest as select * from dba_segments tablespace; SQL> select count(*) from testseg; COUNT(*) ---------- 3796

11.5 数据库做备份

[oracle@server1 bdump]$ rman target / nocatalog RMAN> CONFIGURE CONTROLFILE AUTOBACKUP on; run {

allocate channel 'dev_1' type disk; backup incremental level 0 tag node1_full_back_sun

(database include current controlfile channel 'dev_1'); sql 'alter system archive log current'; backup

(archivelog until time 'SYSDATE' delete input channel 'dev_1'); release channel 'dev_1'; }

11.6 使用kfed实用程序来查看ASM Disk header

cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ikfed

- 36 -

kfed read /dev/sdc text=/tmp/sdc1.out

我们来破坏一个磁盘设备

有时候一个ASM Disk由于故障,导致我们删也删不掉,加也加不进去,通常现象是磁盘的header status状态不正确但是disk header中仍然保留了部分磁盘组的信息。此时我们就需要clear这个磁盘,然后再将它重新加入磁盘组中。

[oracle@server1 tmp]$ dd if=/dev/zero of=/dev/sdc bs=8k count=100000 [oracle@server1 tmp]$ kfed read /dev/sdc text=/tmp/sdc2.out

比较两个文件内容

SQL> drop tablespace asmtest including contents and datafiles; drop tablespace asmtest including contents and datafiles *

ERROR at line 1:

ORA-01122: database file 10 failed verification check

ORA-01110: data file 10: '+DSKGRP1/orcl/datafile/asmtest.256.669772693' ORA-01251: Unknown File Header Version read for file number 10 SQL> select file#,recover,error from v$datafile_header;

FILE# REC ERROR

---------- --- ----------------------------------------------------------------- 1 NO 2 NO 3 NO

- 37 -

4 NO 5 NO 6 NO 7 NO 8 NO 9 NO

10 WRONG FILE TYPE

SQL> ALTER DISKGROUP DSKGRP1 drop disk 'DSKGRP1_0000';

SQL> alter database datafile '+DSKGRP1/orcl/datafile/asmtest.256.669772693' offline; [oracle@server1 ~]$ rman target / nocatalog RMAN> restore datafile 10; RMAN> recover datafile 10;

SQL> select file_name from dba_data_files;

FILE_NAME

-------------------------------------------------------------------------------- /oradata/orcl/system01.dbf /oradata/orcl/undotbs01.dbf /oradata/orcl/sysaux01.dbf /oradata/orcl/undotbs02.dbf /oradata/orcl/users01.dbf /oradata/orcl/tbsdata101.dbf /oradata/orcl/tbsdata201.dbf /oradata/orcl/tbsdata301.dbf /oradata/orcl/tbsdata401.dbf

+DSKGRP1/orcl/datafile/asmtest.256.669775875

SQL> alter database datafile '+DSKGRP1/orcl/datafile/asmtest.256.669775875' online;

- 38 -

12 解决一个ORA-15063问题

先前通过dd命令破坏了一个磁盘设备信息。

[oracle@server1 tmp]$ dd if=/dev/zero of=/dev/sdc bs=8k count=100000

创建了磁盘组DSKGRP1使用了设备/dev/sdc,/dev/sdd,由于/dev/sdc被破坏,在MOUNT磁盘组的时候报下列错误

SQL> alter diskgroup dskgrp1 mount; alter diskgroup dskgrp1 mount *

ERROR at line 1:

ORA-15032: not all alterations performed

ORA-15063: ASM discovered an insufficient number of disks for diskgroup \

表空间asmtest使用了DSKGRP1,查询时报下列错误

SQL> conn test/test Connected.

SQL> select * from testseg; select * from testseg * ERROR at line 1:

ORA-01115: IO error reading block from file 10 (block # 81)

ORA-01110: data file 10: '+DSKGRP1/orcl/datafile/asmtest.256.669775875' ORA-15078: ASM diskgroup was forcibly dismounted

在 Oracle 数据库 10g 中,您可以使用一种变通方法 — 使用 dd 命令擦除磁盘表头:

- 39 -

$ dd if=/dev/zero of=/dev/raw/raw13 bs=1024 count=4

13 参数考虑

db_cache_size shared_pool large_pool processes = 25 + (10 + [max number of concurrent database file creations,and file extend operations possible])*n 14 如何使用kfed

14.1 prepare

参考文档284646.1,417687.1,553639.1,551257.1

为了进一步了解asm内部结构,这里简单介绍学习下kfed的时候和分析kfed分析结果

编译kfed

cd $ORACLE_HOME/rdbms/lib make -f ins_rdbms.mk ikfed

select name,path,total_mb,free_mb,failgroup from v$asm_disk order by name

查询有哪些磁盘

SQL> select name,path,total_mb,free_mb,failgroup from v$asm_disk order by name;

[oracle@server1 lib]$ which kfed

~/app/oracle/product/10.2.0/db_1/bin/kfed

读取磁盘头信息

- 40 -


如何使用ASM(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:有机化合物的鉴别

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: