zoukankan      html  css  js  c++  java
  • Linux RH5平台下使用Oracle ASM创建数据库

    一、安装配置先决条件

    1.安装oracleasm支持包

    创建asm数据库,首先需要ASMLib驱动程序包,可以从相关的网站下载到和操作系统对应的rpm文件,分别为oracleasm-support- 2.0.3-1、oracleasm-2.6.18-8.el5- 2.0.4-1.el5、oracleasmlib-2.0.3-1.el5。

    # rpm -Uvh oracleasm*.rpm

    # rpm -qa|grep oracleasm
    oracleasm-support-2.0.3-1
    oracleasm-2.6.18-8.el5-2.0.4-1.el5
    oracleasmlib-2.0.3-1.el5

    2.添加磁盘

    关闭VMware,添加一块磁盘并格式化。

    # fdisk /dev/sdb
    Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
    Building a new DOS disklabel. Changes will remain in memory only,
    until you decide to write them. After that, of course, the previous
    content won't be recoverable.

    The number of cylinders for this disk is set to 1044.
    There is nothing wrong with that, but this is larger than 1024,
    and could in certain setups cause problems with:
    1) software that runs at boot time (e.g., old versions of LILO)
    2) booting and partitioning software from other OSs
    (e.g., DOS FDISK, OS/2 FDISK)
    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

    Command (m for help): n
    Command action
    e   extended
    p   primary partition (1-4)
    p
    Partition number (1-4): 1
    First cylinder (1-1044, default 1):
    Using default value 1
    Last cylinder or +size or +sizeM or +sizeK (1-1044, default 1044):
    Using default value 1044

    Command (m for help): w
    The partition table has been altered!

    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@server oracleasmlib]# fdisk -l

    Disk /dev/sda: 17.1 GB, 17179869184 bytes
    255 heads, 63 sectors/track, 2088 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id System
    /dev/sda1   *           1          13      104391   83 Linux
    /dev/sda2              14        2088    16667437+ 8e Linux LVM

    Disk /dev/sdb: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot      Start         End      Blocks   Id System
    /dev/sdb1               1        1044     8385898+ 83 Linux

    3.配置rawdevices

    因为rh5中取消了rawdevices服务,要使用裸设备创建asm,需要做以下配置。

    # vi /etc/udev/rules.d/60-raw.rules

    添加以下部分的内容

    ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
    ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"

    # start_udev
    Starting udev: [ OK ]


    4.配置oracleasm

    以root用户登陆,执行
    # /etc/init.d/oracleasm configure
    Configuring the Oracle ASM library driver.

    This will configure the on-boot properties of the Oracle ASM library
    driver. The following questions will determine whether the driver is
    loaded on boot and what permissions it will have. The current values
    will be shown in brackets ('[]'). Hitting <ENTER> without typing an
    answer will keep that current value. Ctrl-C will abort.

    Default user to own the driver interface [oracle]:
    Default group to own the driver interface [dba]:
    Start Oracle ASM library driver on boot (y/n) [y]:
    Fix permissions of Oracle ASM disks on boot (y/n) [y]:
    Writing Oracle ASM library driver configuration: [ OK ]
    Loading module "oracleasm": [ OK ]
    Mounting ASMlib driver filesystem: [ OK ]
    Scanning system for ASM disks:
    [ OK ]

    # /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1
    Marking disk "/dev/sdb1" as an ASM disk: [ OK ]
    #
    [root@server oracleasmlib]# /etc/init.d/oracleasm listdisks
    VOL1
    [root@server oracleasmlib]# /etc/init.d/oracleasm scandisks
    Scanning system for ASM disks:
    [ OK ]

    二、创建ASM实例

    1.创建初始化文件

    $ su – oracle
    $ cd $ORACLE_HOME/dbs
    $ vi init+ASM.ora

    *.asm_diskstring='ORCL:VOL*'
    *.background_dump_dest='/oracle/admin/+ASM/bdump'
    *.core_dump_dest='/oracle/admin/+ASM/cdump'
    *.instance_type='asm'
    *.large_pool_size=12M
    *.remote_login_passwordfile='SHARED'
    *.user_dump_dest='/oracle/admin/+ASM/udump'

    2.创建密码文件

    $ su – oracle
    $ cd $ORACLE_HOME/dbs
    $ orapwd file=orapw+ASM password=dba

    3. 创建目录结构
    $ su – oracle
    $ cd $ORACLE_HOME/dbs
    $ mkdir –p $ORALCE_BASE/admin/+ASM/udump
    $ mkdir –p $ORALCE_BASE/admin/+ASM/bdump
    $ mkdir –p $ORALCE_BASE/admin/+ASM/cdump

    4. 启动实例
    $ export ORACLE_SID=+ASM
    $ sqlplus / as sysdba
    SQL> startup
    ASM instance started

    Total System Global Area   100663296 bytes
    Fixed Size                   777616 bytes
    Variable Size              99885680 bytes
    Database Buffers                  0 bytes
    Redo Buffers                      0 bytes
    ORA-15110: no diskgroups mounted

    因为我们是首次启动asm实例,还没有创建diskgroup,所以显示15110错误是正常的。

    如果启动实例的时候碰到如下报错:
    ORA-29701: unable to connect to Cluster Manager
    那么请检查/etc/inittab 文件,看看是否有下面这行
    h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
    如果没有请添加,如果被注释了请取消注释。

    5. 创建 spfile,重新启动
    SQL> create spfile from pfile;
    SQL> shutdown immediate;
    SQL> startup;

    6. 创建 diskgroup
    SQL> create diskgroup dgroup1 external redundancy
    2 failgroup fgroup1 disk 'ORCL:VOL1';

    Diskgroup created.

    SQL> col name for a10
    SQL> select name,state from v$asm_diskgroup;

    NAME       STATE
    ---------- ----------------------
    DGROUP1    MOUNTED

    如果上述命令返回的 state是 DISMOUNTED,那么我们需要手工将挂载 diskgroup
    SQL> ALTER DISKGROUP dgroup1 MOUNT;

    Diskgroup altered.

    SQL> show parameter asm_diskgroups

    NAME                                 TYPE       VALUE
    ------------------------------------ ---------- ------------------------------
    asm_diskgroups                       string     DGROUP1

    三、创建ASM数据库

    接下来,创建ASM数据库的工作就非常的简单了。执行dbca实用程序,在第六步“storage options”部分选择“Automatic Storage Management ”,在接下来的“ASM Disk Groups”步骤中,选择之前创建的“DGROUP1”,再按照普通建库的方式完成数据库的创建就OK了。
  • 相关阅读:
    The bean 'xxx' could not be injected as a 'xxx'because it is a JDK dynamic proxy that implements
    JQuery对象选择详细说明
    C#将image中的显示的图片转换成二进制
    选择一个图片文件,并且用PictureBox表示在Form上
    Android推送方案分析(MQTT/XMPP/GCM)
    [转载]什么是 Design Hackathon?
    脚本启动MySql服务
    Mysql数据库插入数据乱码问题,解决方案!
    MySQL自动备份脚本
    读取Excel模板,写入数据,并别输出另存为Excel文件
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400411.html
Copyright © 2011-2022 走看看