zoukankan      html  css  js  c++  java
  • 在 Rhel Linux 5.1 (32 位)上安装 Oracle ASM数据库 11g (第二部分)

    第 4 部分:配置存储
    为了使用文件系统或 ASM,您必须有未分配的磁盘分区。该部分将介绍如何创建新文件系统或 ASM 使用的分区。
    使用 /dev/sda(/dev/sdb,/dev/sdc)(一个没有分区的空磁盘)为整个磁盘创建一个分区。
    Oracle 建议每个磁盘仅包含一个分区
    [root@db ~]# fdisk /dev/sdb

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

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

    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@db ~]# fdisk /dev/sdc

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

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

    Calling ioctl() to re-read partition table.
    Syncing disks.
    [root@db ~]# fdisk /dev/sdd

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

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

    Calling ioctl() to re-read partition table.
    Syncing disks.
    现在验证新分区:
    Ex:
    [root@db ~]# fdisk -l /dev/sdc
    Disk /dev/sdc: 2147 MB, 2147483648 bytes
    255 heads, 63 sectors/track, 261 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Device Boot      Start         End      Blocks   Id System
    /dev/sdc1               1         261     2096451   83 Linux
    对每个要分区的磁盘重复上述步骤。


    第 5 部分: 安装Oracle ASMLib
    安装:
    $su –
    # rpm -Uvh oracleasm-support-2.0.4-1.el5.i386.rpm
    # rpm -Uvh oracleasm-2.6.18-53.el5xen-2.0.4-1.el5.i686.rpm
    # rpm -Uvh oracleasmlib-2.0.3-1.el5.i386.rpm
    配置ASMLib:
    [root@db Server]# /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 ]
    Scanning system for ASM disks: [ OK ]
    以上操作将加载oracleasm.o 驱动,并且mount 上ASM 文件系统,同时我们可以通过以
    下命令来手工的卸载和加载ASMLib
    [root@db Server]# /etc/init.d/oracleasm disable
    Writing Oracle ASM library driver configuration: [ OK ]
    Unmounting ASMlib driver filesystem: [ OK ]
    Unloading module "oracleasm": [ OK ]
    [root@db Server]# /etc/init.d/oracleasm enable
    Writing Oracle ASM library driver configuration: [ OK ]
    Loading module "oracleasm": [ OK ]
    Mounting ASMlib driver filesystem: [ OK ]
    Scanning system for ASM disks: [ OK ]
    [root@db Server]#

    添加init 文件使系统启动时自动加载ASMLib
    $ su –
    # cd /etc/rc3.d
    # ln -s ../init.d/oracleasm S99oracleasm
    # ln -s ../init.d/oracleasm K01oracleasm
    注意:如果系统启动是自动进入图形界面,也就是系统的init level 是5,那么上面生成链
    接的命令应该在/etc/rc5.d 目录中操作。
    重新启动系统,确认ASMLib 已经可以自动加载
    #lsmod | grep oracleasm
    oracleasm 14224 1
    #dmesg | grep oracleasm
    ASM: oracleasmfs mounted with options: <defaults>

    通过以 root 用户身份运行以下命令来标记 ASMLib 使用的磁盘:
    /etc/init.d/oracleasm createdisk DISK_NAME device_name
    提示:DISK_NAME 应由大写字母组成。
    [root@db ~]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
    Marking disk "/dev/sdc1" as an ASM disk: [ OK ]
    [root@db ~]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
    Marking disk "/dev/sdd1" as an ASM disk: [ OK ]
    [root@db ~]# /etc/init.d/oracleasm listdisks
    VOL1
    VOL2
    如果要删除ASM 磁盘通过以下命令:
    # /etc/init.d/oracleasm deletedisk VOL4
    注意:如果是在RAC 环境中的某一个节点中添加了ASM 磁盘,那么需要在其它的节点上
    运行scandisk 来获取这种变化。
    [root@db ~]# /etc/init.d/oracleasm scandisks
    Scanning system for ASM disks: [ OK ]


    第 6 部分:安装 Oracle
    配置ORACLE环境变量
    双击打开 .bash_profile添加以下行,将 ORACLE_BASE 添加到登录配置文件:
    #su - oracle
    $vi .bash_profile

    ORACLE_BASE=/u01/app/oracle;
    export ORACLE_BASE
    ORACLE_SID=oradb;
    export ORACLE_SID
    ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1;
    export ORACLE_HOME
    PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin;
    export PATH
    umask 022

    安装Oracle10g
    在安装Oracle10g 的时候,我们选择不创建数据库,只安装软件的方式,在软件安装结束
    以后再通过dbca 来创建ASM 实例和数据库。

    以 oracle 身份登录并启动 runInstaller:
    $ ./runInstaller
    1. 选择安装方式
    选择 Advanced Installation。
    单击 Next
    2. 指定清单目录和凭证
    清单目录:/u01/app/oraInventory
    操作系统组名:oinstall
    单击 Next
    3. 选择安装类型
    选择 Enterprise Edition
    单击 Next
    4. 安装位置
    Oracle Base:/u01/app/oracle
    名称: OraDB11gASM
    路径:/u01/app/oracle/product/11.1.0/asm
    注意:为了便于管理,Oracle 建议 ASM 使用与数据库不同的 ORACLE_HOME。
    单击 Next
    5. 产品特定的前提条件检查
    如果您一直在依循本指南中的步骤,则所有检查都应顺利通过。如果一个或多个检查失败,应在继续操作前纠正该问题。
    单击 Next
    6. 选择配置选项
    选择 Install Software Only
    单击 Next
    7. 特权操作系统组
    数据库操作员 (OSDBA) 组:dba
    数据库操作员 (OSOPER) 组:dba
    ASM 管理员 (OSASM) 组:dba
    单击 Next
    8. 总结
    显示已安装产品的摘要。
    单击 Install。
    9. 安装
    将显示安装进度
    10. 执行配置脚本
    在安装的结尾,将弹出一个窗口,提示需要以 root 用户身份运行脚本。以 root 用户身份登录,运行提示的脚本。
    [root@db /]# /u01/app/oraInventory/orainstRoot.sh
    [root@db /]# /u01/app/oracle/product/11.1.0/db_1/root.sh
    完成后单击 OK。
    11. 安装结束
    单击 Exit

    创建ASM 实例
    1. 创建初始化文件
    $ su – oracle
    $ cd $ORACLE_HOME/dbs
    $ vi init+ASM.ora
    创建asm 实例的初始化脚本,脚本内容如下所示:
    说明 /u01/app/oracle   是$ORACLE_BASE目录
    # ******Below is init script for asm instance******
    *.asm_diskstring='ORCL:VOL*'
    *.background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'
    *.core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'
    *.instance_type='asm'
    *.large_pool_size=12M
    *.remote_login_passwordfile='SHARED'
    *.user_dump_dest='/u01/app/oracle/admin/+ASM/udump'

    # ******Above is init script for asm instance******
    说明:
    1. dump 目录指向$ORACLE_BASE/<sid>,本文中ASM 实例的SID 是+ASM。最好
    不要修改这个实例名,否则在下一步用dbca 创建数据库的时候,dbca 将找不到可用的磁
    盘组,我想这应该是dbca 的一个bug,手工创建ASM 类型的数据库就应该没有这个限制
    了。
    2. asm_diskstring 用于实例启动的时候检查可用的ASM 磁盘,由于我们前面创建ASM
    磁盘的名称是VOL1 到VOL4,所以我们此处使用*通配符,前面的’ORCL:’不可以省略,
    否则ASM 实例将无法检查到磁盘。
    2. 创建密码文件
    $ su – oracle
    $ cd $ORACLE_HOME/dbs
    [oracle@db dbs]$ orapwd file=orapw+ASM password=dba
    [oracle@db dbs]$ ls -l
    total 36
    -rw-r--r-- 1 oracle oinstall   272 Apr 18 21:04 init+ASM.ora
    -rw-r--r-- 1 oracle oinstall 12920 May 3 2001 initdw.ora
    -rw-r--r-- 1 oracle oinstall 8385 Sep 11 1998 init.ora
    -rw-r----- 1 oracle oinstall 1536 Apr 18 21:08 orapw+ASM

    3. 创建目录结构
    $ su – oracle
    $ cd $ORACLE_HOME/dbs
    [oracle@db dbs]$ mkdir -p $ORACLE_BASE/admin/+ASM/udump
    [oracle@db dbs]$ mkdir -p $ORACLE_BASE/admin/+ASM/bdump
    [oracle@db dbs]$ mkdir -p $ORACLE_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

    --说明下面的解决办法是10G里面有效
    --如果启动实例的时候碰到如下报错:
    --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
    --如果没有请添加,如果被注释了请取消注释。

    ORA-32004: obsolete and/or deprecated parameter(s) specified
    ORA-29701: unable to connect to Cluster Manager
    你先用dbca创建asm类型的数据库,做到第六步是生成init.cssd的,你生成后退出
    [root@db etc]# /u01/app/oracle/product/11.1.0/db_1/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
    Cleaning up Network socket directories
    Setting up Network socket directories
    Adding to inittab
    Startup will be queued to init within 30 seconds.
    Checking the status of new Oracle init process...
    Expecting the CRS daemons to be up within 600 seconds.
    Cluster Synchronization Services is active on these nodes.
    db
    Cluster Synchronization Services is active on all the nodes.
    Oracle CSS service is installed and running under init(1M)

    11g中ASM SYS应该用sqlplus / as sysasm进行连接
    [oracle@db ~]$ sqlplus / as sysdba
    Connected to an idle instance.
    SQL> startup
    ORA-32004: obsolete and/or deprecated parameter(s) specified
    ASM instance started

    Total System Global Area 284565504 bytes
    Fixed Size                  1299428 bytes
    Variable Size             258100252 bytes
    ASM Cache                  25165824 bytes
    ORA-15110: no diskgroups mounted
    解决错误ORA-32004: obsolete and/or deprecated parameter(s) specified
    SQL> shutdown
    ORA-15100: invalid or missing diskgroup name


    ASM instance shutdown
    SQL> startup pfile=$ORACLE_HOME/dbs/init+ASM.ora
    ORA-32006: BACKGROUND_DUMP_DEST initialization parameter has been deprecated
    ORA-32006: USER_DUMP_DEST initialization parameter has been deprecated
    ASM instance started
    Total System Global Area 284565504 bytes
    Fixed Size                  1299428 bytes
    Variable Size             258100252 bytes
    ASM Cache                  25165824 bytes
    ORA-15110: no diskgroups mounted
    修改参数文件
    [oracle@db ~]$ cd $ORACLE_HOME/dbs
    [oracle@db dbs]$ vi init+ASM.ora

    *.asm_diskstring='ORCL:VOL*'
    #*.background_dump_dest='/u01/app/oracle/admin/+ASM/bdump'
    *.core_dump_dest='/u01/app/oracle/admin/+ASM/cdump'
    *.instance_type='asm'
    *.large_pool_size=12M
    *.remote_login_passwordfile='SHARED'
    #*.user_dump_dest='/u01/app/oracle/admin/+ASM/udump'
    关闭数据库后再启动
    SQL> shutdown
    ORA-15100: invalid or missing diskgroup name
    ASM instance shutdown
    SQL> startup
    ASM instance started
    Total System Global Area 284565504 bytes
    Fixed Size                  1299428 bytes
    Variable Size             258100252 bytes
    ASM Cache                  25165824 bytes
    ORA-15110: no diskgroups mounted
    因为我们是首次启动asm 实例,还没有创建diskgroup,所以显示15110 错误是正常的。

    5. 创建spfile,重新启动
    SQL> create spfile from pfile;
    File created.
    SQL> shutdown immediate;
    ORA-15100: invalid or missing diskgroup name
    ASM instance shutdown
    SQL> startup
    ASM instance started
    Total System Global Area 284565504 bytes
    Fixed Size                  1299428 bytes
    Variable Size             258100252 bytes
    ASM Cache                  25165824 bytes
    ORA-15110: no diskgroups mounted

    6. 创建diskgroup
    --这里第一次我创建不成功重启动系统
    [root@db ~]# su - oracle
    [oracle@db ~]$ lsnrctl start
    [oracle@db ~]$ export ORACLE_SID=+ASM
    [oracle@db ~]$ sqlplus / as sysdba

    SQL*Plus: Release 11.1.0.6.0 - Production on Fri Apr 18 23:50:09 2008

    Copyright (c) 1982, 2007, Oracle. All rights reserved.

    Connected to an idle instance.

    SQL> startup
    ORA-29701: unable to connect to Cluster Manager
    SQL> conn / as sysasm
    Connected to an idle instance.
    SQL> startup
    ASM instance started

    Total System Global Area 284565504 bytes
    Fixed Size                  1299428 bytes
    Variable Size             258100252 bytes
    ASM Cache                  25165824 bytes
    ORA-15110: no diskgroups mounted


    SQL> create diskgroup dgroup1 normal redundancy
    2   failgroup fgroup1 disk 'ORCL:VOL1','ORCL:VOL2'
    3   failgroup fgroup2 disk 'ORCL:VOL3','ORCL:VOL4';

    Diskgroup created.

    SQL>

    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.
    此时检查数据库初始化参数,发现asm_diskgroups 参数值已经自动设置为DGROUP1,
    这表明在下次启动asm 实例的时候,这个diskgroup 会被自动挂载。
    SQL> col name for a10
    SQL> col type for a10
    SQL> col value for a20

    SQL> show parameter asm_diskgroups

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    asm_diskgroups                       string      DGROUP1
    SQL>
    如果要卸载diskgroup,使用下面的命令:
    ALTER DISKGROUP ALL DISMOUNT;


    创建ASM 数据库
    用dbca 创建数据库,一直到选择数据类型的画面以前都跟创建普通数据库没有区别。
    1. 选择配置选项
    选择 Create a Database
    单击 Next
    2. 选择数据库配置
    选择 General Purpose or Transaction Processing
    单击 Next
    3. 指定数据库配置选项
    输入全局数据库名称和 SID (asmdemo)
    单击 Next
    4. 选择数据库管理选项
    选择 configure enterprise manager
    选择 Use Database Control for Database Management
    单击 Next
    5. 指定数据库模式口令
    选择 Use the same password for all the accounts
    输入口令并确认
    单击 Next
    6. 指定数据库存储选项
    选择 Automatic Storage Management (ASM)
    单击 Next
    7. 指定 ASM的SYS密码(sys)
    单击 Next
    单击 OK
    这里要把数据库关闭状态。才可以进行下一步。
    SQL> shutdown
    ORA-15100: invalid or missing diskgroup name
    ASM instance shutdown
    SQL> conn / as sysasm
    Connected.
    SQL> ALTER DISKGROUP dgroup1 MOUNT;

    7. 选择 ASM 磁盘组
    选择在前一部分中创建的 DATA 磁盘组
    如果没有MOUNTED磁盘组,这点击mount按钮
    单击 Next

    在数据文件的位置管理设定界面,通常应该使用OMF,由oracle 自己管理数据文件的命名,
    这样才算是进一步解放了DBA 对于物理存储方面的繁琐工作。
    继续往下的步骤,基本是默认值。跟创建普通数据库已经没有什么区别了

    8。 选择Use Oracle-Managed Files +DGROUP1
    9. 选择Specify flash recovery area 和enable archiving 其他的默认。
    10. 选择 sample schemas
    11. 在character sets里面选择 use unicode(AL32UTF8)
    12. 选择keep the enhanced 11g default security settings
    13. 选择enable automatic maintenance tasks
    14. 缺省
    15. 选择create database
    选择finish 安装

    启动ASM 数据库的步骤
    由于启动ASM 数据库必须要先启动ASM 实例,所以基本上启动步骤如下。
    1. 以oracle 用户进入操作系统
    2. $ export ORACLE_SID=+ASM
    3. SQL> sqlplus / as sysdba
    4. SQL> startup
    5. SQL> exit
    6. $ export ORACLE_SID=<your_real_db_sid>
    7. SQL> sqlplus / as sysdba
    8. SQL> startup

  • 相关阅读:
    板邓:mysql navicat设置字段默认时间为当前时间
    板邓:wordpress用户和权限名称详细表
    板邓:jQuery设置和获取HTML、文本和值(转)
    板邓:wordpress自定义用户角色和权限全面解析
    板邓:wordpress给订阅者、投稿者上传图片权限
    七牛云
    redis 基础命令
    yeild 理解
    如何访问父类中私有的属性
    php反射
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400401.html
Copyright © 2011-2022 走看看