欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

单节点oracle、ASM 详细安装步骤

程序员文章站 2022-09-28 08:14:07
目录 1.安装环境 2.系统要求 2.1 Linux安装Oracle系统要求 1.查看RAM和交换空间以及磁盘大小 2.检查所需软件包 3.配置host和主机名 2.2修改操作系统核心参数 1.创建相关用户和组 2.创建数据库软件目录和数据文件存放目录 3.配置oracle用户的环境变量 4.配置g ......

目录

1.安装环境

2.系统要求

2.1 linux安装oracle系统要求

1.查看ram和交换空间以及磁盘大小

2.检查所需软件包

3.配置host和主机名

2.2修改操作系统核心参数

1.创建相关用户和组

2.创建数据库软件目录和数据文件存放目录

3.配置oracle用户的环境变量

4.配置grid用户的环境变量

5.修改用户的shell的限制

6.修改/etc/pam.d/login 文件

7.修改linux内核

8.编辑 /etc/profile

3. 安装过程

3.1安装grid和asm

1.安装asm包

2. 配置asmlib驱动

3. 配置asm磁盘

4.解压grid软件,安装grid

5.图形化安装grid

6.图形化配置asm

3.2安装oracle软件

4. 数据库建库

5. 一些命令

5.1启动asm关启

1.检查css服务是否启动

2.检查has服务是否启动

3.进一步查看各资源的状态

4.查ora.cssd和ora.diskmon的默认属性

5.手动启动

6.其他操作

关闭asm

 

1.安装环境

linux版本:

[oracle@yscsbfdb ~]$ uname -a

linux yscsbfdb 4.1.12-61.1.28.el6uek.x86_64 #2 smp thu feb 23 20:03:53 pst 2017 x86_64 x86_64 x86_64 gnu/linux

[oracle@yscsbfdb ~]$ cat /proc/version

linux version 4.1.12-61.1.28.el6uek.x86_64 (mockbuild@x86-ol6-builder-06) (gcc version 4.4.7 20120313 (red hat 4.4.7-16) (gcc) ) #2 smp thu feb 23 20:03:53 pst 2017

[oracle@yscsbfdb ~]$ cat /etc/issue

oracle linux server release 6.9

kernel \r on an \m

[oracle@yscsbfdb ~]$ lsb_release -a

lsb version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch

distributor id: oracleserver

description: oracle linux server release 6.9

release: 6.9

codename: n/a

oracle版本:oracle 11.2.0.4.0

2.系统要求

2.1 linux安装oracle系统要求

1.查看ram和交换空间以及磁盘大小

[root@yscsbfdb ~]# free -h

             total       used       free     shared    buffers     cached

mem:          251g        32g       219g        17g       337m        29g

-/+ buffers/cache:       2.2g       249g

swap:          16g         0b        16g

[root@yscsbfdb ~]# df -h

filesystem                   size  used avail use% mounted on

/dev/mapper/hbsw-hbsw

                             34g   24g  8.6g  73% /

tmpfs                        126g   18g  109g  15% /dev/shm

/dev/sda1                    477m   84m  364m  19% /boot

/dev/mapper/hbsw-tmp          16g   50m   15g   1% /tmp

/dev/mapper/hbsw-u01         197g  8.2g  179g   5% /u01

/dev/mapper/hbsw-goldengate  477g   70m  452g   1% /goldengate

2.检查所需软件包

(这一步骤也可以放到后面安装oracle中安装环境检查的步骤中去做,以便更准确的确定缺少的软件包)

检查如下rpm包并安装:

[root@yscsbfdb ~]#rpm -q --qf '%{name}-%{version}-%{release} (%{arch})\n' binutils \

输入下边的东西

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

ksh \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

sysstat \

unixodbc \

unixodbc-devel

系统会显示哪些包安装了,哪些没有安装。如果有的包没有安装,必须安装。

#rpm -ivh package-name-major-version*

3.配置host和主机名

[root@yscsbfdb ~]#vi /etc/hosts

127.0.0.1      yscsbfdb

::1            localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.100  yscsbfdb

[root@yscsbfdb ~]#vi /etc/sysconfig/network

networking=yes

hostname=yscsbfdb

2.2修改操作系统核心参数

1.创建相关用户和组

/usr/sbin/groupadd -g 501 oinstall                                  

/usr/sbin/groupadd -g 502 dba                                       

/usr/sbin/groupadd -g 504 asmadmin                                  

/usr/sbin/groupadd -g 506 asmdba                                    

/usr/sbin/groupadd -g 507 asmoper  

/usr/sbin/groupadd -g 508 oper  

/usr/sbin/useradd  -g oinstall -g dba,asmdba,asmoper oracle

/usr/sbin/useradd  -g oinstall -g asmadmin,asmdba,asmoper grid

2.创建数据库软件目录和数据文件存放目录

mkdir -p /oracle/app/orainventory

mkdir -p /u01/app/oracle

mkdir /u01/app/oracle/cfgtoollogs

chown -r oracle:oinstall /u01/app/oracle

chmod -r 775 /u01/app/oracle

mkdir -p /u01/app/orainventory

chown -r grid:oinstall /u01/app/orainventory

chmod -r 775 /u01/app/orainventory

mkdir -p /u01/11.2.0/grid

chown -r grid:oinstall /u01/11.2.0/grid

chmod -r 775 /u01/11.2.0

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1

chown -r oracle:oinstall /u01/app/oracle/product/11.2.0/dbhome_1

chmod -r 775 /u01/app/oracle/product/11.2.0/dbhome_1

3.配置oracle用户的环境变量

[oracle@yscsbfdb ~]$ pwd

/home/oracle

[oracle@yscsbfdb ~]$ vi .bash_profile

export tmp=/tmp

export tmpdir=$tmp

export oracle_base=/u01/app/oracle

export oracle_home=/u01/app/oracle/product/11.2.0/dbhome_1

export oracle_sid=yscsbfjx

export path=/usr/sbin:$path

export path=$oracle_home/bin:$path

export ld_library_path=$oracle_home/lib:/lib:/usr/lib

export classpath=$oracle_home/jre:$oracle_home/jlib:$oracle_home/rdbms/jlib

export nls_lang=american_america.al32utf8

umask 022

[oracle@localhost ~]$ source .bash_profile --使环境变量生效

3.配置grid用户的环境变量

[grid@yscsbfdb ~]$ pwd

/home/grid

[grid@yscsbfdb ~]$ vi .bash_profile

export oracle_base=/u01/app/grid

export oracle_home=/u01/11.2.0/grid

export path=/usr/sbin:$path

export path=$oracle_home/bin:$path

export tmp=/tmp

export tmpdir=$tmp

export oracle_sid=+asm

export nls_lang=american_america.al32utf8

export ld_library_path=$oracle_home/lib:/lib:/usr/lib

export classpath=$oracle_home/jre:$oracle_home/jlib:$oracle_home/rdbms/jlib

umask 022

[grid@localhost ~]$ source .bash_profile --使环境变量生效

5.修改用户的shell的限制

修改/etc/security/limits.conf文件,oracle 要求的用户进程数必须大于2047(默认是1047)

[root@yscsbfdb ~]# vi /etc/security/limits.conf

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

6.修改/etc/pam.d/login 文件

[root@yscsbfdb ~]# vi /etc/pam.d/login

session required /lib/security/pam_limits.so
session required pam_limits.so

7.修改linux内核

[root@yscsbfdb ~]# vi /etc/sysctl.conf (这里如果设置的不合适,在安装oracle的时候,最后检测会有脚本修复)

# controls the maximum shared segment size, in bytes

kernel.shmmax = 68719476736

# controls the maximum number of shared memory segments, in pages

kernel.shmall = 4294967296

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.wmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_max = 1048576

fs.aio-max-nr = 1048576

要使 /etc/sysctl.conf 更改立即生效,执行以下命令。 输入:sysctl -p

8.编辑 /etc/profile

[root@yscsbfdb ~]# vi /etc/profile (root用户操作。注意在 = 号两边有空格,如果没有可能出错)

if [ $user = "oracle" ] || [ $user = "grid" ]; then

if [ $shell = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

  fi

3. 安装过程

3.1安装grid和asm

1.安装asm包

[root@yscsbfdb grid]# rpm -qa | grep asm

这三个包得装上,安装过程不赘述。

oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64

libatasmart-0.17-4.el6_2.x86_64

objectweb-asm-3.2-2.1.el6.noarch

oracleasmlib-2.0.4-1.el6.x86_64

kdeplasma-addons-libs-4.3.4-5.el6.x86_64

oracleasm-support-2.1.8-1.el6.x86_64

kdeplasma-addons-4.3.4-5.el6.x86_64

2.配置asmlib驱动

在配置asm之前,必须运行配置脚本准备驱动程序。

[root@yscsbfdb grid]# /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 []: grid

default group to own the driver interface []: asmadmin

start oracle asm library driver on boot (y/n) [n]: y

scan for oracle asm disks on boot (y/n) [y]: y

writing oracle asm library driver configuration: done

initializing the oracle asmlib driver:                     [  ok  ]

scanning the system for oracle asmlib disks:            [  ok  ]

[root@yscsbfdb grid]# /etc/init.d/oracleasm enable

writing oracle asm library driver configuration: done

initializing the oracle asmlib driver:                     [  ok  ]

scanning the system for oracle asmlib disks:            [  ok  ]

3.配置asm磁盘

在配置asm硬盘前,先使用fdisk /dev/sd?命令格式化硬盘(本次使用了sdc、sdd、sde、sdf)

[root@yscsbfdb dev]# fdisk /dev/sdc

device contains neither a valid dos partition table, nor sun, sgi or osf disklabel

building a new dos disklabel with disk identifier 0xecfd8d30.

changes will remain in memory only, until you decide to write them.

after that, of course, the previous content won't be recoverable.

warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

warning: dos-compatible mode is deprecated. it's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').

command (m for help): n

command action

   e   extended

   p   primary partition (1-4)

p

partition number (1-4): 1

first cylinder (1-200512, default 1): 1

last cylinder, +cylinders or +size{k,m,g} (1-200512, default 200512): 200512

command (m for help): w

the partition table has been altered!

calling ioctl() to re-read partition table.

syncing disks.

创建asm硬盘

/usr/sbin/oracleasm   createdisk   data01      /dev/sdc1   

/usr/sbin/oracleasm   createdisk   data02      /dev/sdd1

/usr/sbin/oracleasm   createdisk   data03      /dev/sde1

/usr/sbin/oracleasm   createdisk   recarea01  /dev/sdf1

检查asm磁盘是否创建

[root@yscsbfdb dev]# ls -l /dev/oracleasm/disks/

total 0

brw-rw----. 1 grid asmadmin 8, 33 oct 23 15:17 data01

brw-rw----. 1 grid asmadmin 8, 49 oct 23 15:17 data02

brw-rw----. 1 grid asmadmin 8, 65 oct 23 15:17 data03

brw-rw----. 1 grid asmadmin 8, 81 oct 23 15:17 recarea01

修改磁盘权限

chown grid:asmadmin /dev/sdc1

chown grid:asmadmin /dev/sdd1

chown grid:asmadmin /dev/sde1

chown grid:asmadmin /dev/sdf1

使用命令扫描、列出

/usr/sbin/oracleasm   scandisks

/usr/sbin/oracleasm   listdisks

4.解压grid软件,安装grid

grid安装需要使用图形界面,本次使用xmanager软件,设display环境变量,使图形界面远程传输到本地。

[grid@yscsbfdb grid]$ export display=192.168.1.99(本地ip):0.0

使用grid用户解压grid安装包,形成grid目录,进入grid目录,执行./runinstaller,进行安装

[grid@yscsbfdb grid]$ ./runinstaller

starting oracle universal installer...

checking temp space: must be greater than 120 mb.   actual 15114 mb    passed

checking swap space: must be greater than 150 mb.   actual 16999 mb    passed

checking monitor: must be configured to display at least 256 colors.    actual 16777216    passed

preparing to launch oracle universal installer from /tmp/orainstall2018-10-23_03-27-03pm. please wait ...[grid@yscsbfdb grid]$

5.图形化安装grid

1>不更新

2>只安装asm,不安装grid

3>选择语言

4>此处没有带出asm能识别的磁盘,是因为目录不对,点击change discovery path,输入/dev/oracleasm/disk/*即可找到已经分配的asm磁盘。

 

5>下边就没图了。从网上拿来的图

6>设置密码

7>用户组

8>检查环境是否通过

6.图形化配置asm

[grid@yscsbfdb grid]$ asmca

点击create,即可添加新的磁盘组,按照上边配置asm磁盘的方式,增加asm磁盘,这里就能够选到,建立新组。

3.2安装oracle软件

oracle安装需要使用图形界面,本次使用xmanager软件,设display环境变量,使图形界面远程传输到本地。

[grid@yscsbfdb grid]$ export display=192.168.1.99:0.0

使用oracle用户解压grid安装包,形成oracle目录,进入database目录,执行./runinstaller,进行安装

[oracle@yscsbfdb grid]$ ./runinstaller

starting oracle universal installer...

checking temp space: must be greater than 120 mb.   actual 15114 mb    passed

checking swap space: must be greater than 150 mb.   actual 16999 mb    passed

checking monitor: must be configured to display at least 256 colors.    actual 16777216    passed

preparing to launch oracle universal installer from /tmp/orainstall2018-10-23_04-05-23pm. please wait ...[oracle@yscsbfdb database]$

1> 不勾选

2> 不更新

3> 只安装软件,一会儿使用dbca命令建实例

4> 单节点数据库

5> 选择语言

6> 选择企业版

7> 选择目录,这都是之前设置好的

8> 组

9> 系统在检查

这里的图是我已经装完后的,正常来说这里会显示没有通过的项。如果有rpm包没有,我们可以使用rpm -ivh  xxx.rpm --nodeps -- force (其中加上--nodeps -- force 代表强制安装,是在直接使用rpm –ivh xxx.rpm安装不成功的情况下用的)如果此处有参数没有设置正确,oracle会给出修复脚本,使用root用户执行,会自动设置2.2.6中的/etc/sysctl.conf文件

安装完成后,系统会提示需要用root权限执行2个shell脚本。执行即可

2. 数据库建库

使用oracle用户,执行命令dbca,建实例。

不安装oem

输入统一密码(也可以分别设置其密码)

数据库存放位置,这里使用asm管理

这里可以设置redo和control

开启闪回和归档

不安装示例数据

内存分配,选择oracle自己管理

选择character sets选项卡,设置数据库字符集,al32utf8

点击next,会显示刚才对数据库选的配置项,点击ok,会弹出创建数据库的界面

经过漫长的等待,当看到此界面,说明oracle建库完成(别人的图)

最后这个可以改密码或者不改。

3. 一些命令

5.1启动asm关启

1.检查css服务是否启动

[grid@ogg1 ~]$ crsctl check css

[grid@ogg1 ~]$ ps -ef|grep cssd

2.检查has服务是否启动

[grid@ogg1 ~]$ crsctl check has

[grid@ogg1 ~]$ ps -ef|grep d.bin

发现has服务启动了,而ora.cssd和ora.diskmon这2个服务是依赖于has维护的.       

3.进一步查看各资源的状态

[grid@ogg1 ~]$ crs_stat -t

[grid@ogg1 ~]$ crsctl status resource -t

4.查ora.cssd和ora.diskmon的默认属性

[grid@ogg1 ~]$ crs_stat -p ora.cssd

。。。。。

auto_start=never

。。。。。

[grid@ogg1 ~]$ crs_stat -p ora.diskmon

。。。。。。

auto_start=never 

。。。。。。

可以看到这两个资源的auto_start属性默认都设置为never,

也就是说他们不会随着has服务的启动而自动启动的,尽管默认情况下has服务是开机自动启动的.

5.手动启动

[grid@ogg1 ~]$ crsctl start resource ora.cssd 

注:ora.cssd和ora.diskmon这两个服务是有依赖关系的,启动哪个都会把两个都起来.

6.其他操作

1)默认情况下has(high availability service)是自动启动的.

通过如下命令可以取消和启用自动启动

取消自启动:crsctl disable has      

启用自启动:crsctl enable has 

2)has手动启动和停止

crsctl start has       

crsctl stop has     

3)查看has的状态       

crsctl check has     

4)如果想让ora.css和ora.diskmon服务随着has的启动而自动启动,可以这两个服务的auto_start属性

crsctl modify resource "ora.cssd" -attr "auto_start=1"

        or        

crsctl modify resource "ora.diskmon" -attr "auto_start=1"     

5)如果想取消ora.css和ora.diskmon的auto start        

crsctl modify resource "ora.cssd" -attr "auto_start=never"       

crsctl modify resource "ora.diskmon" -attr "auto_start=never"

二 启动asm实例

[grid@ogg1 ~]$ sqlplus / as sysasm

sql> startup

sql> col instance_name for a15

sql> col status for a15

sql>  select instance_name,status from v$instance;

instance_name   status

--------------- ---------------

+asm         started

三 启动数据库

[oracle@ogg1 ~]$ sqlplus / as sysdba

sql> startup

sql> col instance_name for a15

sql> col status for a15

sql> select instance_name,status from v$instance;

instance_name   status

--------------- ---------------

prod1        open

关闭asm

一 关闭应该先关闭数据库,在关闭asm

如果顺序反了会报错

例如:

1 关闭asm

[root@ogg1 ~]# su - grid

[grid@ogg1 ~]$ sqlplus / as sysasm

sql> shutdown immediate

ora-15097: cannot shutdown asm instance with connected client (process 7322)

正确的顺序是:

一 关闭数据库

[oracle@ogg1 ~]$ sqlplus / as sysdba

sql> shutdown immediate

二 关闭asm

[root@ogg1 ~]# su - grid

[grid@ogg1 ~]$ sqlplus / as sysasm

sql> shutdown immediate

asm diskgroups dismounted

asm instance shutdown