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 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库如何使用ASM(8)在线全文阅读。
相关推荐: