
--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
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数据库修复团队成员帮您恢复!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)