zoukankan      html  css  js  c++  java
  • Oracle ASM安装指引

    1、安装Oracle ASMLib

    需要的安装包

    asmlib

    asm-support

    asm-kernel

    asm-smp-kernel(多process版本)

    下载地址:[img]http://unix-cd.com/unixcd12/skin/skin_1/small/url.gif[/img] [url=http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html]http://www.oracle.com/technology/software/tech/linux/asmlib/rhel4.html[/url]

    安装3个软件包:

    # rpm -Uvh oracleasm-support-2.0.3-1.i386.rpm

    # rpm -Uvh oracleasm-2.6.9-34.EL-2.0.3-1.i686.rpm

    # rpm -Uvh oracleasmlib-2.0.2-1.i386.rpm

    1, Linux创建裸设备:(这个无用)

    用fdisk 创建了一个分区 /dev/sdb1

    然后用raw绑定, raw /dev/raw/raw1 /dev/sdb1

    绑定后生成一个文件/dev/raw/raw1 记录绑定的信息.如果不想要直接删除这个文件就行了.

    但是这个文件在os reboot之后就没有了.所以要把raw的信息记录到 /etc/sysconfig/rawdevices 文件中,这样重启之后就能保留住raw的信息了.

    格式:/dev/raw/raw1 /dev/sdb1

    修改权限:

    [root@rs2600-2 root]#  chown oracle:dba /dev/raw/raw1
    [root@rs2600-2 root]#  chown oracle:dba /dev/raw/raw2

    [root@rs2600-2 root]# /sbin/service rawdevices restart

    2,配置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 ]

    #/etc/init.d/oracleasm listdisks //列出ASM磁盘

    VOL1

    VOL2

    VOL3

    VOL4

    如果要删除ASM磁盘通过以下命令

    #/etc/init.d/oracleasm deletedisk VOL4

    以上操作将加载oracleasm.o驱动,并且mount上ASM文件系统,同时我们可以通过以下命令来手工的卸载和加载ASMLib

    #/etc/init.d/oracleasm disable //出错检查/var/log/messages文件,确认需要更新的内核版本

    #/etc/init.d/oracleasm enable

    添加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

    #dmesg |grep oracleasm

    如果ASM已经被配置了

    View the contents of the oratab file to determine whether an ASM instance i
    configured on the system:
    # more /etc/oratab
    If an ASM instance is configured on the system, then the oratab file should
    contain a line similar to the following:
    +ASM:oracle_home_path:N
    In this example, +ASM is the system identifier (SID) of the ASM instance and
    oracle_home_path is the Oracle home directory where it is installed. By
    convention, the SID for an ASM instance begins with a plus sign.

    3,利用dbca建库时,需要运行脚本,注意是root用户,但环境变量是oracle

    [root@dbsvr 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.
    dbsvr
    CSS is active on all nodes.
    Oracle CSS service is installed and running under init(1M)

    建库时报ora-12547错误,需要安装如下包:

    [root@dbsvr tmp]# rpm -qa|grep libaio
    libaio-0.3.105-2
    libaio-0.3.105-2
    libaio-devel-0.3.105-2

    4,dbca全过程


    以 oracle 身份登录并启动 DBCA:

    $ dbca

    1).欢迎

    单击 Next。

    2).操作

    选择 Create a Database。

    3).数据库模板

    选择 General Purpose。

    4).数据库标识

    输入全局数据库名称。

    5).管理选项

    选择 Configure the Database with Enterprise Manager。

    选择 Use Database Control for Database Management。

    6).数据库证书

    选择 Use Same Password for All Accounts。

    输入口令并确认。

    7).存储选项

    选择 Automatic Storage Management (ASM)。

    8).创建 ASM 实例

    输入 ASM 实例的口令并确认。

    9).弹出一个窗口,提示 DBCA 将立即创建并启动 ASM 实例。

    单击 OK。

    10).创建 ASM 实例时弹出一个带齿轮箱窗口。

    11).ASM 磁盘组

    由于这是新 ASM 实例且您尚未创建任何 ASM 实例,因此该窗口未显示可用磁盘组。

    单击 Create New。

    12).创建磁盘组

    磁盘组名称

    输入磁盘组名称,如 DATA1。

    冗余

    - High 镜像数据两次。

    - Normal 镜像数据一次。

    - External 不镜像 ASM 中的数据。如果外部 RAID 阵列提供冗余,则通常使用此选项。

    选择成员磁盘

    必须手动指示 ASM 到什么地方查找 ASMLib 磁盘,因此,单击 Change Disk Discovery Path
    -
    弹出一个窗口,提示输入磁盘发现路径。如下所示将磁盘发现路径更改为“ORCL:*”。如果还找不到使用绝对路径 '/dev/oracleasm/disks/*'
    - 单击 OK 继续。

    • 您将返回到 Select Member Disks 窗口。您的所有 ASMLib 磁盘现在应显示在此窗口中。
      单击该行开头的框,选择加入磁盘组的磁盘。完成后单击 OK


    您将返回到 Select Member Disks 窗口。您的所有 ASMLib 磁盘现在应显示在此窗口中。

    单击该行开头的框,选择加入磁盘组的磁盘。完成后单击 OK。

    这个时候如果还发现不了 硬盘,可以使用RAW

    Add Disks: Enter /dev/raw as the disk recovery path. You can also clisk
    Disk Recovery Path and enter the required disk recovery path in the dialog
    box and clisk OK.

    13).ASM 磁盘组

    您将返回到 ASM Disk Groups 窗口。此时,出现在上一步中创建的磁盘组。

    单击该行开头的框选择此磁盘组。(在此实例中使用单个磁盘组。)

    单击 Next。

    14).数据库文件位置

    选择 Use Oracle-Managed Files。

    确保已将 Database Area 设置为您创建的磁盘组。它包含一个前导加号 — 例如,+DATA1。

    15).恢复配置

    选择 Specify Flash Recovery Area。

    - 快速恢复区 — 输入要用于快速恢复的 ASM 磁盘组。

    - 快速恢复区大小 — 接受默认值 2048。

    如果要使用归档日志模式,则选中 Enable Archiving。对于评估数据库,可以不选该项。

    16).数据库内容

    选择 Sample Schemas。

    我们不使用定制脚本,因此单击 Next。

    17).初始化参数

    接受默认值,然后单击 Next。

    18).数据库存储

    接受默认值,然后单击 Next。

    19).创建选项

    选择 Create Database(默认值)并单击 Finish。

    20).确认

    检查完数据库详细信息后单击 OK。

    21).DBCA 显示一个操作列表和一个进度条。根据硬件的不同,数据库创建可能需要几分钟到几小时的时间。

    22).当数据库创建完成时,将显示一个显示摘要窗口。记下 Enterprise Manager URL,然后单击 Exit。

    5、ASM database简单管理
    启动ASM请参考 http://hi.baidu.com/danghj/blog/item/d666ce88e037ce9fa4c27252.html
    开机启动:

    [oracle@asm dbs]$ lsnrctl start

    [oracle@asm dbs]$ export ORACLE_SID=+ASM

    [oracle@asm dbs]$ echo $ORACLE_SID

    +ASM

    [oracle@asm dbs]$ sqlplus / as sysdba

    SQL>startup

    [oracle@asm dbs]$ export ORACLE_SID=eagle

    [oracle@asm dbs]$ echo $ORACLE_SID

    eagle

    SQL>startup

    关机停止:

    [oracle@asm dbs]$ export ORACLE_SID=+ASM

    [oracle@asm dbs]$ echo $ORACLE_SID

    +ASM

    [oracle@asm dbs]$ sqlplus / as sysdba

    SQL>shutdown immediate

    [oracle@asm dbs]$ export ORACLE_SID=eagle

    [oracle@asm dbs]$ echo $ORACLE_SID

    eagle

    SQL>shutdown immediate


    附录:手工建asm(没成功)

    1,创建asm参数 

    到 oracle 的 dbs目录下
    [oracle@rs2600-2 dbs]$ vi spfile+ASM.ora

    SM.asm_diskgroups='ASMDISK'#Manual Mount
    *.asm_diskgroups='ASMDISK'
    *.background_dump_dest='/opt/app/oracle/admin/+ASM/bdump'
    *.core_dump_dest='/opt/app/oracle/admin/+ASM/cdump'
    *.instance_type='asm'
    *.large_pool_size=12M
    *.remote_login_passwordfile='SHARED'
    *.user_dump_dest='/opt/app/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/cdum     

    附:ASM实例可以手工创建,也可以通过dbca创建,如手工创建
    1、创建asm参数
    [oracle@dbsvr dbs]$ more spfile+ASM.ora


    +ASM.asm_diskgroups='ASMDISK'#Manual Mount
    *.asm_diskgroups='ASMDISK'
    *.background_dump_dest='/oracle/app/admin/+ASM/bdump'
    *.core_dump_dest='/oracle/app/admin/+ASM/cdump'
    *.instance_type='asm'
    *.large_pool_size=12M
    *.remote_login_passwordfile='SHARED'
    *.user_dump_dest='/oracle/app/admin/+ASM/udump'


    2、创建diskgroup组
    SQL> ALTER DISKGROUP ALL MOUNT
    Sun Aug 23 18:26:49 2009
    Loaded ASM Library - Generic Linux, version 2.0.4 (KABI_V2) library for asmlib interface
    Sun Aug 23 18:29:24 2009
    SQL> CREATE DISKGROUP asmdisk External REDUNDANCY  DISK '/dev/sdb2' SIZE 674M ,'/dev/sdb3' SIZE 290M ,'/dev/sdb4' SIZE 235M ,'/dev/sdc1' SIZE 1913M;            

    二、创建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'

    如果找不到磁盘还 改成绝对路径


    #+ASM.asm_diskgroups='ASMDISK'#Manual Mount
    #*.asm_diskstring='ORCL:VOL*'
    #*.asm_diskgroups='ASMDISK'
    *. asm_diskstring='/dev/oracleasm/disks/*'
    *.background_dump_dest='/opt/app/oracle/admin/+ASM/bdump'
    *.core_dump_dest='/opt/app/oracle/admin/+ASM/cdump'
    *.instance_type='asm'
    *.large_pool_size=12M
    *.remote_login_passwordfile='SHARED'
    *.user_dump_dest='/opt/app/oracle/admin/+ASM/udump'

    解决方法二

    修改$ORACLE_HOME/dbs/init+ASM.ora文件
    添加一行:asm_diskstring='ORCL:VOL*'

    启动实例
    报错,ORA-29701: unable to connect to Cluster Manager
    查google,查不到
    再查metalink,原来是因为安装完10g以后,就直接把/etc/inittab中的
    h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1   这句注释了
    原来这就是10g内置的cluster manager

    取消注释
    重新启动系统
    再次启动实例,OK

    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了。                   

  • 相关阅读:
    用Jdbc连接数据库后实现增删改查功能
    jdbc连接数据库
    聚合函数和分组查询
    数据库MySQL
    commons工具类 FilenameUtils FileUtils
    打印流(PrintWriter )
    一次性认识终端命令
    JSON数据展示神器:react-json-view(常用于后台网站)
    table固定列的宽度,超出部分用…代替(针对普通table和antd)
    git项目,VSCode显示不同颜色块的含义
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400413.html
Copyright © 2011-2022 走看看