Home  >  Article  >  Database  >  ASM下裸设备的路径更改是否会影响数据库的运行

ASM下裸设备的路径更改是否会影响数据库的运行

WBOY
WBOYOriginal
2016-06-07 16:43:44853browse

通过asm来存储数据库文件,在linux下可以通过asmlib的方式来管理块设备,也可以直接使用裸设备来建立asm磁盘。在asmlib方式下,磁

通过asm来存储数据库文件,在linux下可以通过asmlib的方式来管理块设备,也可以直接使用裸设备来建立asm磁盘。在asmlib方式下,磁盘设备启动顺序和名称的改变不会影响到asm的使用,但如果直接使用裸设备会怎么样那?我们知道asm会在磁盘中存储与asm有关的元数据,通过这些元数据asm可以了解磁盘的相关信息,因此理论上裸设备名称的改变不会影响asm的正常使用。下面,通过实验来验证一下。

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2

Oracle 11g从入门到精通 PDF+光盘源代码

RHEL6 ASM方式安装Oracle 11g R2

Oracle 10g 手工创建ASM数据库

Oracle 10g R2创建ASM实例Step By Step

首先看以下,裸设备的配置文件

node1

[root@node1 ~]# cat /etc/udev/rules.d/60-raw.rules # Enter raw device bindings here. # # An example would be: #  ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N" # to bind /dev/raw/raw1 to /dev/sda, or #  ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m" # to bind /dev/raw/raw2 to the device with major 8, minor 1.

ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw3 %N" ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw4 %N" ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw5 %N" ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw6 %N" ACTION=="add", KERNEL=="sdb9", RUN+="/bin/raw /dev/raw/raw7 %N"

node2:

[root@node2 rules.d]# cat 60-raw.rules # Enter raw device bindings here. # # An example would be: #  ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N" # to bind /dev/raw/raw1 to /dev/sda, or #  ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m" # to bind /dev/raw/raw2 to the device with major 8, minor 1.

ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add", KERNEL=="sdb5", RUN+="/bin/raw /dev/raw/raw3 %N" ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw4 %N" ACTION=="add", KERNEL=="sdb7", RUN+="/bin/raw /dev/raw/raw5 %N" ACTION=="add", KERNEL=="sdb8", RUN+="/bin/raw /dev/raw/raw6 %N" ACTION=="add", KERNEL=="sdb9", RUN+="/bin/raw /dev/raw/raw7 %N"

asm下的磁盘信息如下:

[oracle@node1 ~]$ export ORACLE_SID=+ASM1 [oracle@node1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sun Aug 31 12:55:25 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options

SQL> col name for a30 SQL> col label for a30 SQL> col path for a30 SQL> set linesize 200 SQL> /

NAME          LABEL        PATH ------------------------------ ------------------------------ ------------------------------ DG1_0000            /dev/raw/raw3 DG2_0000            /dev/raw/raw4 DG3_0000            /dev/raw/raw5 DG3_0001            /dev/raw/raw6 DG4_0000            /dev/raw/raw7             /dev/raw/raw2             /dev/raw/raw1

7 rows selected.

SQL> ho ssh node2 Last login: Sat Aug 30 17:56:54 2014 from node1 [oracle@node2 ~]$ export ORACLE_SID=+ASM2 [oracle@node2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.5.0 - Production on Sun Aug 31 12:56:38 2014

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options

SQL> col name for a30 SQL> col label for a30 SQL> col path for a30 SQL> set linesize 200 SQL> select name,label,path from v$asm_disk order by 1;

NAME          LABEL        PATH ------------------------------ ------------------------------ ------------------------------ DG1_0000            /dev/raw/raw3 DG2_0000            /dev/raw/raw4 DG3_0000            /dev/raw/raw5 DG3_0001            /dev/raw/raw6 DG4_0000            /dev/raw/raw7             /dev/raw/raw2             /dev/raw/raw1

7 rows selected.

创建测试表:

SQL> select file_name,tablespace_name from dba_data_files;

FILE_NAME        TABLESPACE_NAME -------------------------------------------- ------------------------------ +DG4/easy/datafile/system.272.856543875      SYSTEM +DG4/easy/datafile/undotbs1.273.856543885    UNDOTBS1 +DG4/easy/datafile/sysaux.274.856543891      SYSAUX +DG4/easy/datafile/undotbs2.276.856543901    UNDOTBS2 +DG4/easy/datafile/users.277.856543905      USERS

SQL> create table t1 (id number,name varchar2(20)) tablespace users;

Table created.

SQL> insert into t1 values(1,111);

1 row created.

SQL> insert into t1 select * from t1;

1 row created.

SQL> /

2 rows created.

SQL> /

4 rows created.

SQL> /

8 rows created.

SQL> /

16 rows created.

SQL> /

32 rows created.

SQL> /

64 rows created.

SQL> commit;

Commit complete.

SQL> select count(*) from t1;

  COUNT(*) ----------       128

SQL> update t1 set id=rownum,name=rownum;

128 rows updated.

SQL> commit;

Commit complete.

修改裸设备的路径名称并重起集群

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn