如何创建asm磁盘组

如何创建asm磁盘组,第1张

以下是我的安装文档,有些地方不太完善。

--oracle软件已经正确安装,具体安装步骤参考oracle安装文档:

--根据硬件配置对磁盘分区

fdisk /dev/sdb

--格式分区

mke2fs -j /dev/sdb1

mke2fs -j /dev/sdb2

mke2fs -j /dev/sdb3

mke2fs -j /dev/sdb5

--配置ocssd

以root用户运行$ORACLE_HOME/bin/localconfig

--安装oracleasm lib程序(程序可以从oracle网站上下载)

rpm -Uvh oracleasm-support-2.1.2-1.el4.i386.rpm

rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm

rpm -Uvh oracleasm-2.6.9-42.EL-2.0.3-1.i686.rpm

rpm -Uvh oracleasm-2.6.9-42.ELhugemem-2.0.3-1.i686.rpm

rpm -Uvh oracleasm-2.6.9-42.ELsmp-2.0.3-1.i686.rpm

--创建asm磁盘

/etc/init.d/oracleasm createdisk DG_SYSTEM01 /dev/sdb1

/etc/init.d/oracleasm createdisk DG_LOG01 /dev/sdb2

/etc/init.d/oracleasm createdisk DG_DATA01 /dev/sdb3

/etc/init.d/oracleasm createdisk DG_CTL /dev/sdb5

--查看oracle asm磁盘创建情况

ls /dev/oracleasm/disks

--创建相应目录

mkdir $ORACLE_BASE/admin/+ASM/bdump

mkdir $ORACLE_BASE/admin/+ASM/cdump

mkdir $ORACLE_BASE/admin/+ASM/pfile

mkdir $ORACLE_BASE/admin/+ASM/udump

--编写init+ASM.ora文件保存在$ORACLE_HOME/dbs目录

*.background_dump_dest='/oracle/app/admin/+ASM/bdump'

*.core_dump_dest='/oracle/app/admin/+ASM/cdump'

*.instance_type='asm'

*.large_pool_size=12M

*.remote_login_passwordfile='SHARED'

*.user_dump_dest='/oracle/app/admin/+ASM/udump'

*.asm_diskstring='/dev/oracleasm/disks/*'

--以ORACLE用户登录主机,设置环境变量

export ORACLE_HOME="/oracle/app/oracle/product/10.2.0/db_1"

export ORACLE_BASE="/oracle/app"

export ORACLE_SID=+ASM

--以sys as sysdba登录启动ASM实例

17:00:46 idle>startup

ASM instance started

Total System Global Area 83886080 bytes

Fixed Size 1217836 bytes

Variable Size 57502420 bytes

ASM Cache 25165824 bytes

--创建SPFILE

create spfile from pfile

--重启数据库

shutdown immediate

startup

--创建diskgroup

create diskgroup dg_system01 external redundancy disk '/dev/oracleasm/disks/DG_SYSTEM01'

create diskgroup dg_log01 external redundancy disk '/dev/oracleasm/disks/DG_LOG01'

create diskgroup dg_data01 external redundancy disk '/dev/oracleasm/disks/DG_DATA01'

create diskgroup dg_ctl external redundancy disk '/dev/oracleasm/disks/DG_CTL'

--查看asm_diskgroups

17:03:23 idle>show parameter asm

NAME TYPE VALUE

------------------------------ ---------------------- ------------------------------

asm_diskgroups string DG_SYSTEM01, DG_DATA01, DG_LOG

01, DG_CTL

asm_diskstring string /dev/oracleasm/disks/*

asm_power_limitinteger1

--重启数据库

shutdown immediate

startup

--创建目录(可以用SQL命令创建,也可用asmcmd命令处理)

--asm10g为即将新建数据库的SID

alter diskgroup dg_system01 add directory '+dg_system01/asm10g'

alter diskgroup dg_system01 add directory '+dg_system01/asm10g/oradata'

alter diskgroup dg_data01 add directory '+dg_data01/asm10g'

alter diskgroup dg_data01 add directory '+dg_data01/asm10g/oradata'

alter diskgroup dg_log01 add directory '+dg_log01/asm10g'

alter diskgroup dg_log01 add directory '+dg_log01/asm10g/online'

alter diskgroup dg_ctl add directory '+dg_ctl/asm10g'

alter diskgroup dg_ctl add directory '+dg_ctl/asm10g/control'

--新建asm10g的初始参数文件保存为:$ORACLE_HOME/dbs/initasm10g.ora

#cache and I/O

###########################################

db_block_size=8192

db_file_multiblock_read_count=16

###########################################

# Cursors and Library Cache

###########################################

open_cursors=100

###########################################

# Database Identification

###########################################

db_domain=world

db_name=asm10g

###########################################

# Diagnostics and Statistics

###########################################

background_dump_dest=/oracle/app/admin/asm10g/bdump

core_dump_dest=/oracle/app/admin/asm10g/cdump

user_dump_dest=/oracle/app/admin/asm10g/udump

###########################################

# File Configuration

###########################################

control_files=("+DG_CTL/asm10g/controlfile/control01.ctl", "+DG_CTL/asm10g/controlfile/control02.ctl", "+DG_CTL/asm10g/controlfile/control03.ctl")

db_recovery_file_dest=/u01/asm10g/flash_recovery_area

db_recovery_file_dest_size=268435456

###########################################

# Job Queues

###########################################

job_queue_processes=10

###########################################

# Miscellaneous

###########################################

compatible=10.2.0.1.0

###########################################

# NLS

###########################################

nls_language="SIMPLIFIED CHINESE"

nls_territory="CHINA"

###########################################

# Processes and Sessions

###########################################

processes=100

sessions=115

###########################################

# SGA Memory

###########################################

sga_target=523239424

###########################################

# Security and Auditing

###########################################

audit_file_dest=/oracle/app/admin/asm10g/adump

remote_login_passwordfile=EXCLUSIVE

###########################################

# Sort, Hash Joins, Bitmap Indexes

###########################################

pga_aggregate_target=174063616

###########################################

# System Managed Undo and Rollback Segments

###########################################

undo_management=AUTO

undo_tablespace=UNDOTBS1

--设置环境变量

export ORACLE_HOME="/oracle/app/oracle/product/10.2.0/db_1"

export ORACLE_BASE="/oracle/app"

export ORACLE_SID=asm10g

--启动SQL*Plus并以sys as sysdba登录

startup nomount

create spfile from pfile

shutdown immediate

startup nomount

--运行创建数据库脚本

CREATE DATABASE asm10g

USER SYS IDENTIFIED BY xssismine

USER SYSTEM IDENTIFIED BY xssismine

LOGFILE GROUP 1 ('+DG_LOG01/asm10g/online/redo01.log') SIZE 28m REUSE,

GROUP 2 ('+DG_LOG01/asm10g/online/redo02.log') SIZE 28M REUSE,

GROUP 3 ('+DG_LOG01/asm10g/online/redo03.log') SIZE 28M REUSE

MAXLOGFILES 5

MAXLOGMEMBERS 5

MAXLOGHISTORY 1

MAXDATAFILES 100

MAXINSTANCES 1

CHARACTER SET ZHS16GBK

NATIONAL CHARACTER SET AL16UTF16

DATAFILE '+dg_system01/asm10g/oradata/system01.dbf' SIZE 500M REUSE

EXTENT MANAGEMENT LOCAL

SYSAUX DATAFILE '+dg_system01/asm10g/oradata/sysaux01.dbf' SIZE 500M REUSE

DEFAULT TABLESPACE ttx datafile '+dg_data01/asm10g/oradata/ttx01.dbf' SIZE 500M REUSE

EXTENT MANAGEMENT LOCAL

DEFAULT TEMPORARY TABLESPACE tempts1

TEMPFILE '+dg_data01/asm10g/oradata/temp01.dbf'

SIZE 500M REUSE

UNDO TABLESPACE UNDOTBS1

DATAFILE '+dg_data01/asm10g/oradata/undotbs01.dbf'

SIZE 500M REUSE AUTOEXTEND on MAXSIZE UNLIMITED

--创建系统数据字黄

@?/rdbms/admin/catalog.sql

@?/rdbms/admin/catproc.sql

转载,仅供参考,祝你愉快,满意请采纳。

所有实例和服务的状态

$ srvctl status database d orcl

Instance orcl is running on node linux

Instance orcl is running on node linux

单个实例的状态

$ srvctl status instance d orcl i orcl

Instance orcl is running on node linux

在数据库全局命名服务的状态

$ srvctl status service d orcl s orcltest

Service orcltest is running on instance(s) orcl orcl

特定节点上节点应用程序的状态

$ srvctl status nodeapps n linux

VIP is running on node: linux

GSD is running on node: linux

Listener is running on node: linux

ONS daemon is running on node: linux

ASM 实例的状态

$ srvctl status a *** n linux

ASM instance +ASM is running on node linux

列出配置的所有数据库

$ srvctl config database

orcl

显示 RAC 数据库的配置

$ srvctl config database d orcl

linux orcl /u /app/oracle/product/ /db_

linux orcl /u /app/oracle/product/ /db_

显示指定集群数据库的所有服务

$ srvctl config service d orcl

orcltest PREF: orcl orcl AVAIL:

显示节点应用程序的配置 —(VIP GSD ONS 监听器)

$ srvctl config nodeapps n linux a g s l

VIP exists : /linux vip/ / /eth :eth

GSD exists

ONS daemon exists

Listener exists

显示 ASM 实例的配置

$ srvctl config a *** n linux

+ASM /u /app/oracle/product/ /db_

集群中所有正在运行的实例

SELECT

inst_id

instance_number inst_no

instance_name inst_name

parallel

status

database_status db_status

active_state state

host_name host

FROM gv$instance

ORDER BY inst_id

INST_ID INST_NO INST_NAME PAR STATUS DB_STATUS STATE HOST

orcl YES OPEN ACTIVE NORMAL rac

orcl YES OPEN ACTIVE NORMAL rac

位于磁盘组中的所有数据文件

select name from v$datafile

union

select member from v$logfile

union

select name from v$controlfile

union

select name from v$tempfile

NAME

+FLASH_RECOVERY_AREA/orcl/controlfile/current

+FLASH_RECOVERY_AREA/orcl/onlinelog/group_

+FLASH_RECOVERY_AREA/orcl/onlinelog/group_

+FLASH_RECOVERY_AREA/orcl/onlinelog/group_

+FLASH_RECOVERY_AREA/orcl/onlinelog/group_

+ORCL_DATA /orcl/controlfile/current

+ORCL_DATA /orcl/datafile/example

+ORCL_DATA /orcl/datafile/indx

+ORCL_DATA /orcl/datafile/sysaux

+ORCL_DATA /orcl/datafile/system

+ORCL_DATA /orcl/datafile/undotbs

+ORCL_DATA /orcl/datafile/undotbs

+ORCL_DATA /orcl/datafile/undotbs

+ORCL_DATA /orcl/datafile/undotbs

+ORCL_DATA /orcl/datafile/users

+ORCL_DATA /orcl/datafile/users

+ORCL_DATA /orcl/onlinelog/group_

+ORCL_DATA /orcl/onlinelog/group_

+ORCL_DATA /orcl/onlinelog/group_

+ORCL_DATA /orcl/onlinelog/group_

+ORCL_DATA /orcl/tempfile/temp

rows selected

属于 ORCL_DATA 磁盘组的所有 ASM 磁盘

SELECT path

FROM v$a *** _disk

WHERE group_number IN (select group_number

from v$a *** _diskgroup

where name = ORCL_DATA )

PATH

ORCL:VOL

ORCL:VOL

启动/停止RAC集群

确保是以 oracle UNIX 用户登录的 我们将从rac 节点运行所有命令

# su – oracle

$ hostname

Rac

停止 Oracle RAC g 环境

第一步是停止 Oracle 实例 当此实例(和相关服务)关闭后 关闭 ASM 实例 最后 关闭节点应用程序(虚拟IP GSD TNS 监听器和 ONS)

$ export ORACLE_SID=orcl

$ emctl stop dbconsole

$ srvctl stop instance d orcl i orcl

$ srvctl stop a *** n rac

$ srvctl stop nodeapps –n rac

启动 Oracle RAC g 环境

第一步是启动节点应用程序(虚拟 IP GSD TNS 监听器和 ONS) 当成功启动节点应用程序后 启动 ASM 实例 最后 启动 Oracle 实例(和相关服务)以及企业管理器数据库控制台

$ export ORACLE_SID=orcl

$ srvctl start nodeapps n rac

$ srvctl start a *** n rac

$ srvctl start instance d orcl i orcl

$ emctl start dbconsole

使用 SRVCTL 启动/停止所有实例

启动/停止所有实例及其启用的服务 我只是觉得有意思就把此步骤作为关闭所有实例的一种方法加进来了!

$ srvctl start database d orcl

lishixinzhi/Article/program/Oracle/201311/16967

某用户增加LUN到ASM DISKGROUP发现某个ASM Disk header KFBTYP_DISKHEAD被意外清除掉,导致该Diskgroup无法mount的问题, 后续DBA采用kfed merge等手法修复了KFBTYP_DISKHEAD block,但仍无法mount diskgroup,ALERT.log中出现如下的日志:

NOTE: F1X0 found on disk 0 fcn 0.0

NOTE: cache opening disk 1 of grp 1: VOL2 label:VOL2

NOTE: cache opening disk 2 of grp 1: VOL3 label:VOL3

NOTE: cache opening disk 3 of grp 1: VOL4 label:VOL4

NOTE: cache opening disk 4 of grp 1: VOL5 label:VOL5

NOTE: cache opening disk 5 of grp 1: VOL6 label:VOL6

NOTE: cache opening disk 6 of grp 1: VOL7 label:VOL7

NOTE: cache opening disk 7 of grp 1: VOL8 label:VOL8

NOTE: cache opening disk 8 of grp 1: VOL9 label:VOL9

NOTE: cache opening disk 9 of grp 1: VOL10 label:VOL10

NOTE: cache opening disk 10 of grp 1: VOL11 label:VOL11

NOTE: cache mounting (first) group 1/0x3A2C35D6 (DG)

* allocate domain 1, invalid = TRUE

kjbdomatt send to node 0

kjbdomatt send to node 2

Mon Jan 27 02:18:51 CST 2014

NOTE: attached to recovery domain 1

Mon Jan 27 02:18:51 CST 2014

NOTE: starting recovery of thread=1 ckpt=1712.152 group=1

NOTE: advancing ckpt for thread=1 ckpt=1712.153

NOTE: cache recovered group 1 to fcn 0.491275704

Mon Jan 27 02:18:51 CST 2014

NOTE: LGWR attempting to mount thread 1 for disk group 1

NOTE: LGWR mounted thread 1 for disk group 1

NOTE: opening chunk 1 at fcn 0.491275704 ABA

NOTE: seq=1713 blk=154

Mon Jan 27 02:18:51 CST 2014

NOTE: cache mounting group 1/0x3A2C35D6 (DG) succeeded

SUCCESS: diskgroup DG was mounted

Mon Jan 27 02:18:53 CST 2014

NOTE: recovering COD for group 1/0x3a2c35d6 (DG)

WARNING: cache read a corrupted block gn=1 dsk=0 blk=2817 from disk 0

NOTE: a corrupted block was dumped to the trace file

ERROR: cache failed to read dsk=0 blk=2817 from disk(s): 0

ORA-15196: invalid ASM block header [kfc.c:8281] [endian_kfbh] [2147483648] [2817] [173 != 1]

System State dumped to trace file /u01/app/oracle/admin/+ASM/bdump/+asm2_rbal_31204.trc

NOTE: cache initiating offline of disk 0 group 1

WARNING: process 31204 initiating offline of disk 0.3913073997 (VOL1) with mask 0x3 in group 1

WARNING: Disk 0 in group 1 in mode: 0x7,state: 0x2 will be taken offline

NOTE: PST update: grp = 1, dsk = 0, mode = 0x6

Mon Jan 27 02:18:54 CST 2014

ERROR: too many offline disks in PST (grp 1)

Mon Jan 27 02:18:54 CST 2014

WARNING: Disk 0 in group 1 in mode: 0x7,state: 0x2 was taken offline

Mon Jan 27 02:18:54 CST 2014

NOTE: halting all I/Os to diskgroup DG

NOTE: active pin found: 0x0x65faff60

NOTE: active pin found: 0x0x65fb0170

NOTE: active pin found: 0x0x65fb0010

NOTE: active pin found: 0x0x65fb0220

NOTE: active pin found: 0x0x65fb02d0

NOTE: active pin found: 0x0x65fb00c0

NOTE: active pin found: 0x0x65fb0380

Mon Jan 27 02:18:54 CST 2014

ERROR: ORA-15130 in COD recovery for diskgroup 1/0x3a2c35d6 (DG)

ERROR: ORA-15130 thrown in RBAL for group number 1

Mon Jan 27 02:18:54 CST 2014

Errors in file /u01/app/oracle/admin/+ASM/bdump/+asm2_rbal_31204.trc:

ORA-15130: diskgroup "DG" is being dismounted

Mon Jan 27 02:18:54 CST 2014

ERROR: PST-initiated MANDATORY DISMOUNT of group DG

NOTE: cache dismounting group 1/0x3A2C35D6 (DG)

Mon Jan 27 02:18:57 CST 2014

kjbdomdet send to node 0

detach from dom 1, sending detach message to node 0

kjbdomdet send to node 2

detach from dom 1, sending detach message to node 2

Mon Jan 27 02:18:57 CST 2014

Dirty detach reconfiguration started (old inc 23, new inc 23)

List of nodes:

0 1 2

Global Resource Directory partially frozen for dirty detach

* dirty detach - domain 1 invalid = TRUE

138 GCS resources traversed, 0 cancelled

6104 GCS resources on freelist, 6124 on array, 6124 allocated

Dirty Detach Reconfiguration complete

Mon Jan 27 02:18:57 CST 2014

freeing rdom 1

Mon Jan 27 02:18:57 CST 2014

WARNING: dirty detached from domain 1

Mon Jan 27 02:18:57 CST 2014

SUCCESS: diskgroup DG was dismounted

Mon Jan 27 02:18:57 CST 2014

WARNING: PST-initiated MANDATORY DISMOUNT of group DG not performed - group not mounted

Mon Jan 27 02:18:57 CST 2014

Errors in file /u01/app/oracle/admin/+ASM/bdump/+asm2_b001_31755.trc:

ORA-15001: diskgroup "DG" does not exist or is not mounted

ORA-15001: diskgroup "DG" does not exist or is not mounted

ORA-15001: diskgroup "DG" does not exist or is not mounted

Mon Jan 27 02:31:00 CST 2014

这里可以看到Diskgroup mount到了recovering COD for group 1/0x3a2c35d6 (DG)阶段时,发现了一个逻辑坏块WARNING: cache read a corrupted block gn=1 dsk=0 blk=2817 from disk 0 NOTE: a corrupted block was dumped to the trace file ERROR: cache failed to read dsk=0 blk=2817 from disk(s): 0,并因为该坏块引起了ORA-15196: invalid ASM block header [kfc.c:8281] [endian_kfbh] [2147483648] [2817] [173 != 1]。

这里2817是出错的ASM metadata的block number,173是实际从endian_kfbh位置读出的值,173!=1 这里的1是该位置理论上该有的值,由于读取到block中错误的字节序endian_kfbh信息,所以这里出现了ASM ORA-600错误。

这里recovering COD for group 1/0x3a2c35d6 (DG) 里的COD 指asm metadata file number 4 COD, Continuing Operation Directory (COD) 该metadata file 4 中记录的是在单个metadata block中无法完成的 *** 作记录到COD中,这样当ASM instance crash时可以恢复这些 *** 作。例如创建 删除和resize文件,这其中file number 4 blkn=1为KFBTYP_COD_RB 即回滚rollback数据,后面的数据为KFBTYP_COD_DATA。

可回滚的 *** 作opcodes包括:

1 - Create a file

2 - Delete a file

3 - Resize a file

4 - Drop alias entry

5 - Rename alias entry

6 - Rebalance space COD

7 - Drop disks force

8 - Attribute drop

9 - Disk Resync

10 - Disk Repair Time

11 - Volume create

12 - Volume delete

13 - Attribute directory creation

14 - Set zone attributes

15 - User drop

每次ASM diskgroup 尝试mount时都会读取FILE number 4 COD中的数据来保证 *** 作要么完成、要么回滚。

对于此类ASM file number 4 COD出现了源数据坏块的情况, 一般需要手动设置内部事件,并尝试手动Patch ASM metadata的手法才能修复。

建议遇到此类事件第一时间备份ASM disk header 100M的数据,保护现场,以便专业恢复人员介入恢复时现场不被破坏。

如果自己搞不定可以找ASKMACLEAN专业ORACLE数据库修复团队成员帮您恢复!


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11252845.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存