创建oracle用户和用户组
[root@Holmofy ~]# groupadd oinstall [root@Holmofy ~]# groupadd dba [root@Holmofy ~]# useradd -g oinstall -G dba oracle
用户创建完以后linux数据恢复,可以使用passwdoracle命令对oracle用户的密码进行设置或更改。
假如你之前有掉坑的经历,早已添加过用户了,可以使用idoracle命令核查oracle用户是否配置构建:看Oracle是否属于oinstall和dba用户组。
创建用户完成后,旁边的工作大部份就用oracle用户去完成了,须要用到root权限再切换或则使用sudo命令(sudoers须要配置,这个不是本文的内容)。
下载安装包
软件包官网下载链接如下:
官方提供的文档链接如下:
注意一定要选择平台相同的安装包。假如你操作系统是64位的,下载的安装包是32位的,安装时会报交叉编译的错误信息:/lib/ld-linux.so.2:badELFinterpreter。似乎有方式有解决方式,并且为了省去毋须要的麻烦也为了程序的执行效率最好还是选择平台一致的安装包(走过的坑,你就不要再往下跳了>︿<)。
我这儿选用的是x64的安装包:
使用unzip命令将其解压(直接解压就行),解压完成后会生成一个database文件夹:
解压完成后有个doc目录,该目录下有Oracle安装以及管理的各类文档(不过是英语的,并且安装文档中没有CentOS的技术支持,不过有RHEL的也一样可以照着操作):
检测硬件需求
虽然Oracle是个小型软件,假如你的硬件给的不够,我劝你还是中止前面的步骤吧(铁定的安装失败)
1.显存要求
起码1GB的RAM(大于1G的机器你还要它干啥)
可以使用以下命令查看显存大小:
# grep MemTotal /proc/meminfo
检测RAM与交换分区之间的要求:
RAM须要交换空间的大小1GB和2GB之间RAM大小的1.5倍2GB和16GB之间等于RAM的大小超过16GB16GB
使用一下命令查看交换分区大小:
shell
#grepSwapTotal/proc/meminfo
2.硬碟要求
保证/tmp目录只要有1GB可用空间
# df -h /tmp
确定可用硬碟空间满足以下要求:
安装类型软件文件要求(GB)企业版3.95标准版3.88安装类型数据文件要求(GB)企业版1.7标准版1.5
可使用以下命令你给查看你系统可用硬碟空间
shell
#df-h
检测软件需求
1.操作系统要求
官方文档中说11g版本Oracle安装包支持以下操作Linux发行版:
CentOS应当和RHEL一样对待linux oracle创建用户,所以说这儿要求并没有这么严格
2.软件包依赖
注意这一步是重点了,安装失败很大一部份缘由是包依赖的问题没有解决。
官方文档中对于RHEL5及以上版本的Linux发行版,要求须要以下的软件包(更高版本也行)
shell
binutils-2.17.50.0.6
compat-libstdc++-33-3.2.3
elfutils-libelf-0.125
elfutils-libelf-devel-0.125
elfutils-libelf-devel-static-0.125
gcc-4.1.2
gcc-c++-4.1.2
glibc-2.5-24
glibc-common-2.5
glibc-devel-2.5
glibc-headers-2.5
kernel-headers-2.6.18
ksh-20060214
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.2
libgomp-4.1.2
libstdc++-4.1.2
libstdc++-devel-4.1.2
make-3.81
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
你可以使用以下命令查看里面那些软件包的版本是否小于等于前面的要求:
# rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
假如符合都符合要求就没啥问题了,若果出现有未安装的软件包,例如我出现的这些情况:
[root@localhost ~]# rpm -q binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel binutils-2.23.52.0.1-55.el7.x86_64 未安装软件包 compat-libstdc++ elfutils-libelf-0.163-3.el7.x86_64 未安装软件包 elfutils-libelf-devel 未安装软件包 elfutils-libelf-devel-static gcc-4.8.5-4.el7.x86_64 gcc-c++-4.8.5-4.el7.x86_64 glibc-2.17-105.el7.x86_64 glibc-common-2.17-105.el7.x86_64 glibc-devel-2.17-105.el7.x86_64 glibc-headers-2.17-105.el7.x86_64 kernel-headers-3.10.0-327.el7.x86_64 未安装软件包 ksh libaio-0.3.109-13.el7.x86_64 未安装软件包 libaio-devel libgcc-4.8.5-4.el7.x86_64 libgomp-4.8.5-4.el7.x86_64 libstdc++-4.8.5-4.el7.x86_64 libstdc++-devel-4.8.5-4.el7.x86_64 make-3.82-21.el7.x86_64 sysstat-10.1.5-7.el7.x86_64 未安装软件包 unixODBC 未安装软件包 unixODBC-devel
我的建议是使用yum把这种软件包都更新一遍:
# yum install binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
配置内核参数
以下命令都须要root用户权限执行
假如安装Oracle用于生产的话,内核参数是一个很重要的优化系统性能的配置项,例如配置讯号量,I/O,共享显存等参数配置,这个建议参考官方文档进行详尽配置,官方文档对这方面有很详尽的说明。假如你和我一样只是安装个Oracle拿来学习那只须要使用官方文档中建议的最低配置就行。具体可以在/etc/sysctl.conf文件中,添加以下内核参数:
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 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 = 1048586
为使上述配置生效而不重启系统,执行如下命令
# /sbin/sysctl -p
为oracle用户添加shell配置
为了提升Oracle软件性能,须要为Oracle用户添加以下shell配置:
ShellLimit在limits.conf中的项硬限制打开文件描述符的最大数目nofile65536单个用户可用的最大进程数nproc16384进程堆栈段的最大大小stack10240
步骤如下:
在/etc/security/limits.conf文件,添加以下参数:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
在/etc/pam.d/login文件中添加一行:
session required pam_limits.so
在/etc/profile文件添加以下脚本:
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
创建并配置环境变量
安装路径可以自选,我这儿直接在根路径下创建了一个oracle目录,假如用于生产建议不要那么干,不便捷之后的扩充。
注意权限
[root@localhost /]# mkdir /oracle/app [root@localhost /]# chown -R oracle:oinstall /oracle [root@localhost /]# chmod -R 775 /oracle
配置oracle用户环境变量:
1、使用su-oracle命令切换为oracle用户登入
2、使用任意文本编辑器打开Shell启动脚本,如:
vi .bash_profile
3、添加如下环境变量:
export ORACLE_BASE=/oracle export ORACLE_HOME=/oracle/app export ORACLE_SID=oracleSID export PATH=$ORACLE_HOME/bin:$PATH
开始即将安装
步入到之前解压的安装包,运行runInstaller脚本开始安装
注意:一定要使用oracle用户登入图形界面,否则运行runInstaller会报错显示错误(由于前面使用图形化界面安装的,须要权限去运行图形界面程序)。
假如你弹出了以下界面,这么恭喜你离成功只有一半的距离了。
1、第一步拿来配置更新以及技术支持的,把勾除去直接下一步就行
2、配置安装选项,这三个选项分别表示:①创建并配置一个新数据库,适用于新安装数据库的用户;②只安装数据库软件,适用于已有Oracle数据库数据用于数据迁移的;③升级已有数据库,适用于将老数据库升级成新数据库的用户。毫无疑惑这儿选择第一个选项。
3、第三步配置桌面版还是服务器版,桌面版是最小化配置,这儿为了练习选择服务器版的配置。
4、第四步分布式网格配置,这儿选择单实例服务器配置,假如要配置分布式服务的话可以参考上面说的安装文档,上面有详尽的分布式服务安装过程。
5、这个我们为了达到练手的目的选择中级安装(典型安装基本都早已帮我们配置好了,有啥挑战性)
6、选择语言,这儿我选择英语和繁体英文。
7、第七步选择数据库版本,这儿选择企业版
8、选择安装路径,这个早已在环境变量里配置过了
9、这个InventoryDirectory目录用于记录Oracle的清单信息的,清单信息中包括Oracle的安装路径等信息。这儿我选择在oracle的家目录下建一个目录储存这种安装信息。
10、第十步用于创建数据库的类型:
这儿选择通用的就行。
11、配置数据库名,和Oracle服务ID号
注意数据库名一定要记住,之后进行程序开发会用到这个数据库名
12、十二步,这儿须要配置一下字符集,将字符集设置成UTF-8,其他的不用更改(假如有特殊需求可以参考文档来配置)。
13、这一步拿来配置系统信息电邮通知的linux oracle创建用户,可以跳过
14、这一步用于配置数据储存的(数据文件储存位置),这儿我们把数据储存在/oracle/oradata目录下。
15、十五步用于配置数据备份,这儿我们只是拿来学习不须要手动备份,实际生产肯定是要做备份的。
16、十六步配置帐号密码,这儿我将所有的默认用户统一使用相同的密码(假如密码太简单可能会报错,须要大小写数字都包含,须要悉心设计一个密码)。
注意密码不能忘了,不管是数据库管理还是软件开发就会用到这个密码。
17、这一步用于配置数据库用户组的,只要安装前的配置工作完成了,这一步可以直接使用默认的。
18、这一步会检查交换分区大小、内核参数以及依赖包是否安装。只要上面打算工作都完成了,下边的错误可以直接忽视(例如它要求的软件包,我们的版本实际上比它要求的还高,所以这儿的报错没必要理会它)。
19、这一步是对上面所有配置的一个总结linux c,我们可以直接点击完成
20、只要上面的配置没问题,我们就可以安心的等待安装成功了
21、安装完成后,弹出下边这个界面,我们点击passwordmanagement对数据库用户的密码进行一些配置
22、配置数据库用户密码
这儿叫你运行使用root用户运行两个脚本,运行一下就可以了。
安装成功,此处应有掌声。
使用SQLplus查询scott表进行测试
假如SQLplus命令找不到,注意看一下环境变量是否配置正确,之后将oracle注销后再重新登