Linux环境下安装Oracle11g

Linux环境下安装Oracle11g

写在前边:首先要感谢我的一位同事(我们亲切的称他为周老板)在学习中给予我的指导,这个安装文档的原型也是他的,周老板是一位被程序员耽误的销售,主要是卖枕头,哈哈哈,有需要可以支持一下’13080182980’,接下来进入正题!

虚拟机配置:2G内存,4G交换分区(swap),25G独立硬盘
注意事项:需要Linux操作系统基础知识(例如知道/etc/group 是干嘛的),以下所提到的Oracle11g均指Linux版,最好新建一个干净的系统(redhat centos都可以),安装Oracle最大的坑就是环境检查时报出的内存不足,交换分区不足,rpm包缺失,下面也会针对这三个问题作出解决。安装分十步,我会介绍每一步的的目的以及可能遇到的坑。

1,添加用户和组

这步不需要解释,直接创建就行,需要注意的是查看/etc/group文件下的组id和/etc/passwd文件下的用户id,不能和新建的用户和组id冲突
创建组:

[root@magedu2 dev]# groupadd -g 501 oinstall
[root@magedu2 dev]# groupadd -g 502 dba
[root@magedu2 dev]# groupadd -g 503 asmadmin
[root@magedu2 dev]# groupadd -g 504 asmdba
[root@magedu2 dev]# groupadd -g 505 asmoper

创建用户:创建用户,用户id502、指定基本组为oinstall、附加组为dba asmadmin asmdba oracle (指定基本组与附加组目的是权限控制)

[root@magedu2 dev]# useradd -u 502 -g oinstall -G dba,asmadmin,asmdba oracle
2,Configuring Kernel Parameters(修改内核参数)

编辑 /etc/sysctl.conf 文件:

[root@magedu2 dev]# vim /etc/sysctl.conf

修改内核参数:直接在最下边粘贴如下配置,wq保存

kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
fs.file-max = 6815744

加载内核参数:

[root@magedu2 dev]# sysctl -p
3,为oracle用户设置 shell limits

编辑 /etc/security/limits.conf 文件:

[root@magedu2 dev]# vim /etc/security/limits.conf

修改内核参数:直接在最下边粘贴如下配置,wq保存

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
4,Creating the Oracle Base Directory (创建Oracle的基本目录)

创建oracle的基本目录:

[root@magedu2 dev]# mkdir -p /u01/app/oracle

设置 /u01 文件夹属主为oracle,属组为oinstall:

[root@magedu2 dev]# chown -R  oracle:oinstall /u01
5,添加一块新硬盘,并挂载到/u01/app/oracle 下

VM虚拟机添加硬盘:一直下一步就行,但是注意一下磁盘空间要设置为25G,类型为SCSI
在这里插入图片描述
对硬盘分区并创建文件系统:硬盘创建完成后,会在/etc/dev 下边生成一个sdb设备文件
接下来就要对sdb这块硬盘进行分区并创建文件系统
用fdisk命令创建一个大小为20G的主分区:fdisk是一个交互式命令,n(新建分区) p(主分区) 1-4(分区编号) 接下来指定大小。如果不会使用fdisk命令,可以先去熟悉一下这个命令 ,创建过程如下,出现"The partition table has been altered!"说明分区创建成功。剩下的5G,3G做为交换分区,2G做备用

[root@magedu2 dev]# fdisk /dev/sdb 

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  //输入n  (新建分区)
Command action
   e   extended
   p   primary partition (1-4)
p   //输入p  (创建主分区)
Partition number (1-4): 1  //输入1 (创建第一个分区)
First cylinder (1-3263, default 1):  //这里直接回车(重磁盘第一个柱面开始) 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-3263, default 3263): +20G  //输入+20G 分区大小

Command (m for help): w  //输入w保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

创建文件系统:分区创建好之后会有一个/dev/sdb1

//-j 为创建一个ext3类型的文件系统
[root@magedu2 dev]# mke2fs -j /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1313760 inodes, 5245214 blocks
262260 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
161 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

对新创建的磁盘分区进行挂载:编辑 /etc/fstab,加上最后一条记录,然后mount -a 进行挂载

[root@magedu2 dev]# vim /etc/fstab

在这里插入图片描述

[root@magedu2 dev]# mount -a
6,创建交换分区

注:做这步的时候,先用 free -m 查看一下交换分区大小,如果已经有5G了,可以跳过(除非之前设置过,不然不会有的)

Last login: Mon May 20 06:54:04 2019 from xxx.xxx.xxx.xxx
[root@magedu3 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:           981        683        297          0         47        158
-/+ buffers/cache:        477        503
Swap:         1983          0       1983  //我这里现在是1983M

创建交换分区分为4步:1、fdisk /dev/sda n p(主分区)|e(扩展分区) size t(调整类型) 82 w 2、重启 3、mkswap 创建交换分区文件系统 4、编辑fstab 。有了第6步的经验之后,我就不再赘述太多文字了
1,创建磁盘分区:还记得前边新磁盘留的5G空间嘛?在这里给交换分区3G,创建成功后,会在dev目录下多一个sdb2,需要注意的是交换分区的类型为82

[root@magedu2 dev]# fdisk /dev/sdb

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): 2
First cylinder (2613-3263, default 2613): 
Using default value 2613
Last cylinder, +cylinders or +size{K,M,G} (2613-3263, default 3263): +3G

Command (m for help): t   //这里要注意一下,调整磁盘分区类型
Partition number (1-4): 2  //对第2个分区
Hex code (type L to list codes): 82  //82为 Linux swap / So  L可以查看所有类型
Changed system type of partition 2 to 82 (Linux swap / Solaris)

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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

2,重启虚拟机
3,使用mkswap命令创建交换分区文件系统

[root@magedu2 ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 3156768 KiB
no label, UUID=a5088ed3-1294-4aac-b470-e3c63c4a4676
//交换分区的UUID很重要,留着挂载用

4,挂载交换分区:编辑 /etc/fstab 文件加上最后一条,UUID就是上边的(注意是你自己的,并不是我这个UUID)
在这里插入图片描述
5,重启虚拟机:重新启动后再查看一下交换分区的大小,看看是否成功

[root@magedu2 ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          1862        721       1140          0         20        194
-/+ buffers/cache:        507       1354
Swap:         5066          0       5066  //这样说明已经设置好了
7,挂载iso镜像文件,设置本地yum源

这一步也是为安装Oracle检查环境中缺失的rpm包做准备
在xshell界面用sftp命令连接到虚拟机

[C:\~]$ sftp 192.168.199.4

cd到 /root 目录下(默认就是在root目录下),上传前边提到的iso镜像文件,ls 就会看到root目录下多了一个rhel-server-6.3-x86_64-dvd.iso文件

[root@localhost ~]# mv rhel-server-6.3-x86_64-dvd.iso rh6.iso
//将 rhel-server-6.3-x86_64-dvd.iso 改名为 rh6.iso

在 /mnt目录 下新建一个cdrom文件夹

[root@localhost ~]# mkdir /mnt/cdrom

编辑 /etc/fstab 将 /root/rh6.iso 挂载到 /mnt/cdrom
在这里插入图片描述
mount -a 使挂载生效

[root@magedu2 ~]# mount -a

接下来开始编辑yum源配置文件,yum源的配置文件是 /etc/yum.repo.d 目录下的以 .repo(注意有个.) 结尾的文件,先将这个目录下以 .repo结尾的文件后缀再加上 .bak,然后再新建一个以 .repo结尾的文件,将下边内容贴进去,保存退出,下边baseurl就是iso文件挂在的目录

#CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
[base]
name=CentOS-6 - Base - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=6&arch=$basearch&repo=os
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6.5

然后执行三条命令

[root@localhost yum.repos.d]# yum clean all  //清除yum仓库的缓存
[root@localhost yum.repos.d]# yum makecache  //重新生成yum仓库rpm包信息
[root@localhost yum.repos.d]# yum list  //如果列出了很多rpm包信息,说明yum源配置成功
8,将前边链接中下载的包上传

在xshell界面用sftp命令连接到虚拟机

[C:\~]$ sftp 192.168.199.4

cd到 /tmp 目录,直接将两个Oracle压缩包上传,然后在tmp目录下新建一个rpm文件夹,cd到rpm目录下,将rpm包上传。(rpm包第10步之后用)
注:其实上传的目录可以自行选择,这里楼主为了方便管理,就以tmp目录和新建rpm目录做为本安装文档的压缩包上传目录。

[root@magedu2 tmp]# mkdir -p /u01/app/oracle

上传好了之后直接将两个Oracle包解压

[root@localhost tmp]# unzip linux.x64_11gR2_database_1of2.zip
[root@localhost tmp]# unzip linux.x64_11gR2_database_2of2.zip

解压完之后,会生成 一个database文件夹,接下来修改这个文件夹下所有文件的权限

[root@localhost tmp]# chown -R oracle.oinstall /tmp/database
[root@localhost tmp]# chmod -R 755 /tmp/database
9,set environment .bash_profile (配置环境变量)

编辑 /home/oracle/.bash_profile 将如下配置信息粘贴到最下边 wq保存退出

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
export TMP=/tmp
export TMPDIR=/tmp

刷新配置文件,使系统重读环境变量

[root@magedu2 tmp]# source /home/oracle/.bash_profile

建议操作完以上9步之后拍一个快照,避免第10步装崩了,前功尽弃

10,用root用户打开 xhost并带出安装界面

接下来直接在VM虚拟机内打开图形界面(不使用xhell)进行安装,如果虚拟机是命令行模式,则将 /etc/inittab 最下边数字改成5,再重启就是图形界面了,一般新装的虚拟机默认启动模式都是图形界面。

打开一个终端,执行 xhost + 命令,可能会提示"access control disabled, clients can connect from any host",忽略这个提示。

ctrl+shift+t 开一个新窗口,su - oracle,注意这里是 带 ‘-’ 的全切换,而且是安装过程中首次使用oracle用户,前边的所有操作都是在root用户下进行的(其实也可以使用oracle,只是楼主为了方便就使用了root,接下来要使用oracle用户),在切换的时候可能会提示"-bash: /etc/resolv.conf: Permission denied",某些文件没有权限,忽略这个,因为上面已经把需要用到的文件赋好权限了,接下来执行 /tmp/database 目录下的 runInstaller 这脚本,调出图形化安装界面
1,选择安装一个数据库
在这里插入图片描述
2,选择安装一个服务端
在这里插入图片描述
3,选择高级安装
在这里插入图片描述
4,选择事物类型
在这里插入图片描述
5,设置密码,首字母要大写
在这里插入图片描述
6,这一步是检查安装环境,检查的是硬件(内存,磁盘,交换分区空间,前边设置好了,不然这步会报错),rpm包,如果检查到rpm包缺失就用前边上传的 rpm包 和 yum进行安装

[root@magedu2 oracle]# rpm -ivh xxx.rpm --nodeps
[root@magedu2 oracle]# yum install xxx -y

在这里插入图片描述
安装完成后:执行 sqlplus / as sysdba; ,进入到oracle 的软件里面,执行 startup;启动数据库,看到下面信息,证明数据库安装成功!

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sun May 26 08:24:24 2019

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

Connected to an idle instance.

SQL> startup;      
ORACLE instance started.

Total System Global Area  776646656 bytes
Fixed Size		    2217384 bytes
Variable Size		  486541912 bytes
Database Buffers	  285212672 bytes
Redo Buffers		    2674688 bytes
Database mounted.
Database opened.
SQL> 
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值