设为首页 收藏本站
查看: 1134|回复: 0

[经验分享] RedHat AS3上安装ASM

[复制链接]

尚未签到

发表于 2018-5-13 06:45:31 | 显示全部楼层 |阅读模式
  单磁盘的RedHat Advanced Server上安装Oracle 10g R2 (10.2.0.1.0),建立ASM instance,然后在ASM上建立数据库。
  ==操作系统版本
[root@TCLUX3245 root]# uname -a

  Linux TCLUX3245 2.4.21-47.0.1.ELsmp #1 SMP Fri Oct 13 17:56:20 EDT 2006 i686 i686 i386 GNU/Linux
  ==去oracle网站下载相应的rpm包,其中oracleasm-2.4.21-47.0.1.ELsmp-1.0.5-1.i686.rpm 要跟根据#uname -r结果一致,其余两个包个版本之间通用。地址:http://www.oracle.com/technology/tech/linux/asmlib/index.html
[root@TCLUX3245 root]# uname -r

  2.4.21-47.0.1.ELsmp
[root@TCLUX3245 asm_lib]# pwd

  /10ginstaller/asm_lib
[root@TCLUX3245 asm_lib]# ls -l

  total 136
  -rw-r--r--    1 root     root        94176 Mar 28 23:42 oracleasm-2.4.21-47.0.1.ELsmp-1.0.5-1.i686.rpm
  -rw-r--r--    1 oracle   dba         13638 Mar 28 00:46 oracleasmlib-2.0.2-1.i386.rpm
  -rw-r--r--    1 oracle   dba         22402 Mar 28 00:46 oracleasm-support-2.0.3-1.i386.rpm
  ==安装包,中间不能有报错,否则在配置系统reboot后自动启动ASM kernel module时会出错(Loading module "oracleasm": Unable to load module "oracleasm"  [FAILED]')。其原因多半是因为oracleasm-2.4.21-47.0.1.ELsmp-1.0.5-1.i686.rpm没有下载对,卸载后重新安装正确的rpm包就可以解决。
[root@TCLUX3245 asm_lib]# rpm -ivh *.rpm

  ......
  ......
  ==配置system reboot后自动启动ASM kernel module
[root@TCLUX3245 asm_lib]# /etc/init.d/oracleasm configure

  Default user to own the driver interface []: oracle
  Default group to own the driver interface []: oinstall
  Start Oracle ASM library driver on boot (y/n) [n]: y
  Fix permissions of Oracle ASM disks on boot (y/n) [y]: y
  Writing Oracle ASM library driver configuration: [ OK ]
  Creating /dev/oracleasm mount point: [ OK ]
  Loading module "oracleasm": [ OK ]
  Mounting ASMlib driver filesystem: [ OK ]
  Scanning system for ASM disks: [ OK ]
  ==在unix/linux中,所有设备都是文件,所以我们可以建几个文件来模拟多块硬盘。先用dd建若干个文件,大小为1G
  root@TCLUX3245 dev]# mkdir /asmdisks
[root@TCLUX3245 dev]# dd if=/dev/sda2 of=/asmdisks/disk1 bs=1024k count=1000

  dd if=/dev/sda2 of=/asmdisks/disk2 bs=1024k count=1000
  dd if=/dev/sda2 of=/asmdisks/disk3 bs=1024k count=1000
  dd if=/dev/sda2 of=/asmdisks/disk4 bs=1024k count=1000
  dd if=/dev/sda2 of=/asmdisks/disk5 bs=1024k count=1000
  ==用losetup命令,使这些文件在linux看来是某个存储设备
[root@TCLUX3245 dev]# /sbin/losetup /dev/loop1 /asmdisks/disk1

  /sbin/losetup /dev/loop2 /asmdisks/disk2
  /sbin/losetup /dev/loop3 /asmdisks/disk3
  /sbin/losetup /dev/loop4 /asmdisks/disk4
  /sbin/losetup /dev/loop5 /asmdisks/disk5
  ==运行oracleasm命令,使这些存储设备变成asm的备用盘
  root@TCLUX3245 asm_lib]# /etc/init.d/oracleasm createdisk ASMD1 /dev/loop1
  Marking disk "/dev/loop1" as an ASM disk:                  [  OK  ]
  /etc/init.d/oracleasm createdisk ASMD2 /dev/loop2
  /etc/init.d/oracleasm createdisk ASMD3 /dev/loop3
  /etc/init.d/oracleasm createdisk ASMD4 /dev/loop4
  /etc/init.d/oracleasm createdisk ASMD5 /dev/loop5
  ******[root@TCLUX3245 bin]# pwd
  ******/ddms01/dms/oracle/10.2.0/bin
  ******[root@TCLUX3245 bin]# ./localconfig add
  ******/etc/oracle does not exist. Creating it now.
  ******Successfully accumulated necessary OCR keys.
  ******Creating OCR keys for user 'root', privgrp 'root'..
  ******Operation successful.
  ******Configuration for local CSS has been initialized
  ******Adding to inittab
  ******Startup will be queued to init within 90 seconds.
  ******Checking the status of new Oracle init process...
  ******Expecting the CRS daemons to be up within 600 seconds.
  ******CSS is active on these nodes.
  ******        tclux3245
  ******CSS is active on all nodes.
  ******Oracle CSS service is installed and running under init(1M)
  ==编辑asm init文件
[oracle@TCLUX3245 dbs]$ cat init+ASM.ora

  INSTANCE_TYPE=ASM
  DB_UNIQUE_NAME=+ASM
  LARGE_POOL_SIZE=8M
  ASM_DISKSTRING='ORCL:*'
  ==启动ASM Instance,并创建disk group
[oracle@TCLUX3245 dbs]$ export ORACLE_SID=+ASM

[oracle@TCLUX3245 dbs]$ sqlplus / as sysdba


  SQL*Plus:>  Copyright (c) 1982, 2005, Oracle.  All rights reserved.

  Connected to an>  SQL>
  SQL> startup nomount
  ASM instance started
  Total System Global Area   79691776 bytes

  Fixed>
  Variable>  ASM Cache                  25165824 bytes
  SQL> create diskgroup DGROUP1 normal redundancy disk 'ORCL:ASMD1','ORCL:ASMD2','ORCL:ASMD3','ORCL:ASMD4','ORCL:ASMD5';
  Diskgroup created.
  SQL> col path format a20
  SQL> select path,mount_status from v$asm_disk
  PATH                 MOUNT_S
  -------------------- -------
  ORCL:ASMD1           CACHED
  ORCL:ASMD2           CACHED
  ORCL:ASMD3           CACHED
  ORCL:ASMD4           CACHED
  ORCL:ASMD5           CACHED
  SQL> shutdown
  ASM diskgroups dismounted
  ==在init+ASM.ora中加入一行ASM_DISKGROUPS='DGROUP1',这样asm instance就可以直接启动了
  INSTANCE_TYPE=ASM
  DB_UNIQUE_NAME=+ASM
  LARGE_POOL_SIZE=8M
  ASM_DISKSTRING='ORCL:*'
  ASM_DISKGROUPS='DGROUP1'
  SQL> shutdown
  ASM diskgroups dismounted
  ASM instance shutdown
  SQL> startup
  ASM instance started
  Total System Global Area   79691776 bytes

  Fixed>
  Variable>  ASM Cache                  25165824 bytes
  ASM diskgroups mounted
  ==把创建asm备用磁盘的那些命令加到/etc/rc.local文件里,这样每次系统reboot后,那些/asmdisks/diski文件就自动变成asm备用磁盘了。
[root@TCLUX3245 etc]# cat /etc/rc.local

  #!/bin/sh
  #
  # This script will be executed *after* all the other init scripts.
  # You can put your own initialization stuff in here if you don't
  # want to do the full Sys V style init stuff.
  touch /var/lock/subsys/local
  /sbin/losetup /dev/loop1 /asmdisks/disk1
  /sbin/losetup /dev/loop2 /asmdisks/disk2
  /sbin/losetup /dev/loop3 /asmdisks/disk3
  /sbin/losetup /dev/loop4 /asmdisks/disk4
  /sbin/losetup /dev/loop5 /asmdisks/disk5
  /etc/init.d/oracleasm createdisk ASMD1 /dev/loop1
  /etc/init.d/oracleasm createdisk ASMD2 /dev/loop2
  /etc/init.d/oracleasm createdisk ASMD3 /dev/loop3
  /etc/init.d/oracleasm createdisk ASMD4 /dev/loop4
  /etc/init.d/oracleasm createdisk ASMD5 /dev/loop5
  ======================================================
  自此,完成了ASM instance和ASM diskgroup的创建,并且每次系统重启后ASM diskgroup都会自动创建。下面创建数据库。
  ======================================================
  ==创建initSID.ora文件
[oracle@TCLUX3245 dbs]$ pwd

  /ddms01/dms/oracle/10.2.0/dbs
[oracle@TCLUX3245 dbs]$ cat initO01DMS0.ora

  db_name=O01DMS0
  sga_target=256M
  db_create_file_dest=+DGROUP1
  ==创建spfile和数据库
[oracle@TCLUX3245 dbs]$ echo $ORACLE_SID

  O01DMS0
[oracle@TCLUX3245 dbs]$ sqlplus / as sysdba


  SQL*Plus:>  Copyright (c) 1982, 2005, Oracle.  All rights reserved.

  Connected to an>  SQL> create spfile from pfile;
  File created.
  SQL> startup nomount;
  ORACLE instance started.
  Total System Global Area  268435456 bytes

  Fixed>
  Variable>  Database Buffers          171966464 bytes
  Redo Buffers                7168000 bytes
  SQL> show parameter spfile
  NAME                                 TYPE        VALUE
  ------------------------------------ ----------- ------------------------------
  spfile                               string      /ddms01/dms/oracle/10.2.0/dbs/
  spfileO01DMS0.ora
  SQL> create database;
  Database created.
  SQL> create temporary tablespace TEMP;
  Tablespace created.
  SQL> create undo tablespace UNDOTBS1;
  Tablespace created.
  SQL> @?/rdbms/admin/catalog.sql
  .......
  SQL> @?/rdbms/admin/catproc.sql
  ......

  SQL>>
  Database>
  SQL>>
  System>
  SQL>>
  System>  SQL> startup force
  ORACLE instance started.
  Total System Global Area  268435456 bytes

  Fixed>
  Variable>  Database Buffers          163577856 bytes
  Redo Buffers                7168000 bytes
  Database mounted.
  Database opened.
  SQL> select file_name,bytes/1024/1024 MB from dba_data_files;
  FILE_NAME                                                  MB
  -------------------------------------------------- ----------
  +DGROUP1/o01dms0/datafile/system.259.618516577            200
  +DGROUP1/o01dms0/datafile/sysaux.260.618516593            100
  +DGROUP1/o01dms0/datafile/undotbs1.262.618516647          100
  SQL>  select file_name,bytes/1024/1024 MB from dba_temp_files;
  FILE_NAME                                                  MB
  -------------------------------------------------- ----------
  +DGROUP1/o01dms0/tempfile/temp.261.618516635              100
  SQL> select a.group#,MEMBER,bytes/1024/1024 MB from v$logfile a,v$log b
  2  where a.group#=b.group#;
  GROUP# MEMBER                                                     MB
  ---------- -------------------------------------------------- ----------
  1 +DGROUP1/o01dms0/onlinelog/group_1.257.618516495          100
  2 +DGROUP1/o01dms0/onlinelog/group_2.258.618516537          100
  SQL> select BLOCK_SIZE*FILE_SIZE_BLKS from v$controlfile;
  BLOCK_SIZE*FILE_SIZE_BLKS
  -------------------------
  6062080
  ==datafile, redo log file, control file一共所占空间为 705.78125MB
  SQL> select 200+100+100+100+100+100+6062080/1024/1024 MB  from dual;
  MB
  ----------
  705.78125
  SQL> exit

  Disconnected from Oracle Database 10g Enterprise Edition>  With the Partitioning, OLAP and Data Mining options
[oracle@TCLUX3245 oracle]$ export ORACLE_SID=+ASM

[oracle@TCLUX3245 oracle]$ sqlplus / as sysdba


  SQL*Plus:>  Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  Connected to:

  Oracle Database 10g Enterprise Edition>  With the Partitioning, OLAP and Data Mining options
  SQL>  select PATH,MOUNT_STATUS,NAME,TOTAL_MB,FREE_MB from v$asm_disk;
  PATH                 MOUNT_S NAME           TOTAL_MB    FREE_MB
  -------------------- ------- ------------ ---------- ----------
  ORCL:ASMD1           CACHED  ASMD1              1000        673
  ORCL:ASMD2           CACHED  ASMD2              1000        675
  ORCL:ASMD3           CACHED  ASMD3              1000        675
  ORCL:ASMD4           CACHED  ASMD4              1000        676
  ORCL:ASMD5           CACHED  ASMD5              1000        675
  ==DiskGroup中一共使用掉的空间为 1626MB
  SQL> select 5*1000-673-675-675-676-675 MB from dual;
  MB
  --------
  1626
  1626MB>2*705.78125MB
  注意前面创建diskgroup的脚本
  SQL> create diskgroup DGROUP1 normal redundancy disk ...;
  其中NORMAL REDUNDANCY: requires the existence of at least two failure groups。每个diskgroup里面的文件都有一份冗余,再加上创建asm备用盘时需要的一些额外空间,就造成了七百多兆文件占用了1.6G的空间。
  ==完
  转自:http://blog.itpub.net

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-459287-1-1.html 上篇帖子: 在VMware7.0安装Redhat Linux9.0无法上网的解决方法 下篇帖子: Redhat Linux创建本地YUM源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表