oracle asm windows,数据库-管理-WINDOWS平台下搭建ASM

浏览指引:

a4c26d1e5885305701be709a3d33442f.png

1. ASM介绍

1.1

主要功能

自动存储管理(ASM)提供一个数据镜像与条带化的管理平台。ASM 将文件分成1MB 大小的区(extent),并将所有文件的区平均分布到磁盘组的所有磁盘中。文件的镜像是通过区来体现的。ASM 在所有可用的资源中分布I/O 负载,在免除手动I/O 调节需要(通过分散数据库文件来避免热点)的同时优化性能

a4c26d1e5885305701be709a3d33442f.png图源:《Oracle

Database 10g:数据库管理 - 课堂练习 II 学生指南第 1 册》

1.2

RAID级别与ASM镜像模式

题外:选择RAID的级别

SYSTEM 和 UNDO 表空间因为经常用到,放到RAID1 上

联机重做日志因为有多路复用进行保护,更注重性能,放到 RADI0 卷上

而数据文件 可放到 RAID5 卷上

ASM镜像模式有三种:

HIGH(三向镜像,即3副本)

NORMAL(双向镜像,即双副本)

EXTERNAL(无副本)

1.3

故障组

另外当建立ASM磁盘组时,可以指定故障组,默认情况下,ASM将文件的一个主分配区分配到磁盘组中的一个磁盘时,会将该分配区的副本分配至该磁盘组的另一个磁盘中。如果指定了故障组,那么也确定了其镜像位置的范围。至于是默认还是制定故障组,看具体需要,有些磁盘是在硬件级别连接的,他们有共同的控制器,如果控制器损坏,整组磁盘将损坏,在这时不希望在同一控制器的磁盘组内部存放镜像,而采用另一控制器的磁盘组存放镜像。

a4c26d1e5885305701be709a3d33442f.png

图源:《Oracle

Database 10g:数据库管理 - 课堂练习 II 学生指南第 1 册》

以下是建立一个指定故障组的 ASM磁盘组

dgroup1 的例子

SQL> create diskgroup

dgroup1 normal redundancy

failgroup controller1 disk

‘/dev/rdsk/c2*’

failgroup controller2 disk

‘/dev/rdsk/c3*’

那么组controller1的镜像只能会存在于组controller2 的磁盘中,而不会在自己组内

2. 搭建ASM平台

2.1

创建ASM实例

(1) 配置CSS(Cluster Synchronization

Services)

在oracle_home/bin 目录下执行,添加css服务

C:\oracle\product\10.2.0\db_1\BIN>

localconfig add

检查css是否ok:

C:\>crsctl check

cssd

结果:

CSS appears healthy

(2) 运行oradim 创建一个ASM实例的服务

C:\> oradim -new

-asmsid +ASM -startmode manual

这样在系统服务里就存在 OracleASMService+ASM,之后可以设置让其自动启动

(3) 在oracle_home/database

目录下,创建INIT+ASM.ORA

内容为:

instance_name='+ASM'

instance_type='asm'

asm_diskstring='c:\asmdisks\*'

#asm磁盘的路径,如果不指定,asm实例将无法发现磁盘

_asm_allow_only_raw_disks=false

ASM_DISKGROUPS='DGROUP1',

'DGROUP2'#注意:此处为将要建立的两个磁盘组,若是重启计算机后启动asm实例有问题:ORA-00205 error in identifying

control file(发现是磁盘组没有加载),可能是这里没有添加的缘故

2.2

创建ASM磁盘组

(1)调用asmtool在c:\asmdisks目录下建立虚拟磁盘:

C:\ >asmtool

–create c:\asmdisks\disk1

1000;

C:\>asmtool

–create c:\asmdisks\disk2

1000;

C:\>asmtool

–create c:\asmdisks\disk3

1000;

C:\>asmtool

–create c:\asmdisks\disk4

1000;

C:\>asmtool

–create c:\asmdisks\disk5

1000;

C:\>asmtool

–create c:\asmdisks\disk6

1000;

(2)

创建磁盘组

1. 设置环境变量 ORACLE_HOME , ORACLE_SID

C:\> set

ORACLE_HOME=C:\oracle\product\10.2.0\db_1;

C:\> set

ORACLE_SID=+ASM;

2. 以sysdba登录,然后创建磁盘组

DGROUP1

C:\>sqlpuls

/nolog

Sql>conn as

sysdba

检查磁盘情况

Sql>select

path,mount_status from v$asm_disk;

先建立GROUP1,普通冗余(双镜像)

sql>create diskgroup

DGROUP1 normal redundancy disk

'c:\asmdisks\disk1','c:\asmdisks\disk2','c:\asmdisks\disk3','c:\asmdisks\disk4';

再建立GROUP2,外部冗余(无镜像)

sql>create diskgroup

DGROUP2 external redundancy

disk

'c:\asmdisks\disk5','c:\asmdisks\disk6';

2.3

利用INIT+ASM.ORA 重新生成spfile,启动ASM实例

先关闭实例:

Sql>shutdown

immediate;

重新生成spfile

Sql>create spfile from

pfile=’

C:\oracle\product\10.2.0\db_1\database\INIT+ASM.ORA’;

启动ASM实例

Sql>startup;

3. 数据库迁移(模拟数据库ORCLTEST迁移到ASM)

3.1

登录进ORCLTEST ,修改基础参数,然后关闭,将数据库置于 nomount 状态

C:\>set

ORACLE_SID=orcltest;

C:\>sqlplus

/nolog

SQL> conn

sys/oracle@orcltest as sysdba;

SQL> alter system set

db_create_file_dest='+DGROUP1' scope=spfile;

SQL> alter system set

db_recovery_file_dest='+DGROUP2' scope=spfile;

SQL> alter system set

db_recovery_file_dest_size=2000m scope=spfile;

SQL> alter system

reset control_files scope=spfile sid='*';

SQL> shutdown

immediate;

SQL> startup

nomount;

SQL> quit;

ALTER SYSTEM RESET命令用来在SPFILE中删除(unset)参数,此处用来删除control_file参数,因为移到ASM上后需要重建control file

3.2

启动RMAN,迁移数据库文件

C:\>rman target

sys/oracle@orcltest

注意,这里如果直接 rman target / 会报错:

RMAN-00554: 内部恢复管理器程序包初始化失败

RMAN-04005: 目标数据库中存在错误:

ORA-01017: 用户名/口令无效; 登录被拒绝

RMAN>restore

controlfile from

'c:\oracle\product\10.2.0\oradata\orcltest\CONTROL01.CTL';

RMAN> alter database

mount;

#迁移数据文件

RMAN> backup as copy

database format '+DGROUP1';

RMAN> switch database

to copy;

RMAN> alter database

open;

登录ORCLTEST实例,检查控制文件,数据文件,日志文件,临时文件

C:\ >sqlplus

/nolog

SQL> conn

sys/oracle@orcltest as sysdba;

#检查控制文件

SQL> select

name from v$controlfile;

NAME

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

+DGROUP1/orcltest/controlfile/backup.266.759515047

+DGROUP2/orcltest/controlfile/backup.262.759515049

#检查数据文件

SQL>

select name from v$datafile;

NAME

--------------------------------------------------------------+DGROUP1/orcltest/datafile/system.267.759515291

+DGROUP1/orcltest/datafile/undotbs1.269.759515351

+DGROUP1/orcltest/datafile/sysaux.268.759515327

+DGROUP1/orcltest/datafile/users.270.759515355

#检查日志文件

SQL> select member

from v$logfile;

MEMBER

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLTEST\REDO03.LOG

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLTEST\REDO02.LOG

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLTEST\REDO01.LOG

#检查临时文件

SQL> select name from

v$tempfile;

NAME

C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCLTEST\TEMP01.DBF

注意:

检查完各文件后,发现除了 日志文件,临时文件 没有迁移,其他文件都已经迁移进ASM磁盘组中

#要迁移临时文件,技巧是在磁盘组中创建新的文件,然后删除旧的临时文件

SQL> alter temporary

tablespace temp add tempfile '+DGROUP2';

SQL> alter database

default temporary tablespace temp;

SQL> drop tablespace

temp including contents and datafiles;

SQL> select name from

v$tempfile;

NAME

+DGROUP1/orcltest/tempfile/temp.273.759517129

#迁移日志文件,在磁盘组中创建新成员,并删除旧成员(只有当日志文件状态为INACTIVE 时才能删除,所以在删除第1 个日志时,先切换日志,然后关闭数据库,重启后再删除

#新增日志成员

SQL> alter database

add logfile size 50m;

SQL> alter database

add logfile size 50m;

SQL> alter database

add logfile size 50m;

#删除旧日志

SQL> select

group#,status form v$log order by group#;

SQL> alter database

drop logfile group 2;

SQL> alter database

drop logfile group 3;

SQL> alter system

switch logfile;

SQL> shutdown

immediate;

SQL>

startup;

SQL> select

group#,status form v$log order by group#;

SQL> alter database

drop logfile group 1;

SQL> select

group#,status form v$log order by group#;

4. ASMCMD实用程序

要运行ASMCMD程序,要先设置

ORACLE_HOME,ORACLE_SID

C:\>

set ORACLE_HOME=C:\ORACLE\PRODUCT\10.2.0\DB_1

C:\> set

ORACLE_SID=+ASM

C:\> asmcmd

查看ASM磁盘组内的文件

ASMCMD> ls

部分常用的ASMCMD命令列表

命令

说明

du

显示指定的ASM目录下ASM文件占用的所有磁盘空间

ls

列出ASM目录下的内容及其属性

lsct

列出当前ASM客户端的信息

lsdg

列出所有磁盘组及其属性

mkalias

为系统生成的文件名创建别名

rm

删除文件

cp

复制文件(oracle11g才有)

lsdsk

列出发现的磁盘(oracle11g才有)

5. 其他重要补充

ASM支持 数据文件、控制文件、归档日志文件、spfile、RMAN备份文件、Change

Tracking文件、数据泵Dump文件以及OCR文件。

注意,ASM不存储 二进制文件,预警日志,跟踪文件及口令文件

在 数据库实例 连接到ASM实例的情况下,是不允许关闭ASM实例的,若对该实例执行 shutdown

abort 命令,那么 数据库实例 也同时将关闭,并且报错。单单关闭 数据库实例 对

ASM实例不影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值