安装环境(可以查看附件的环境安装过程来安装和我这个一模一样的环境):
oracle linux 5 64位 ,oracle11.2.0.4 64位
ip 192.168.0.5 hostname jtxy
安装目录: /u01
系统要求:
以下是安装Oracle数据库的内存要求11所示g版本2(11.2):
grep MemTotal /proc/meminfo
可用内存 交换空间要求
1 GB和2 GB之间 RAM的大小的1.5倍
2 GB和16 GB之间 RAM的大小
超过16 GB 16 GB
确定系统架构可以运行软件,输入以下命令:
uname - m
注意:
这个命令可以显示处理器的类型。 验证处理器体系结构匹配安装Oracle软件发布。 如果您没有看到预期的输出,那么你不能在这个系统上安装软件。
确定可用的内存和交换空间,输入以下命令:
free
df - h / tmp
查看内核版本:
cat /proc/version
下面的表描述软件文件的磁盘空间需求,为每个安装类型和数据文件在Linux x86 - 64:
安装类型 要求软件文件(GB)
企业版 4.7
标准版 4.6
安装类型 要求数据文件(GB)
企业版 1.7
标准版 1.5
包需求
采用yum批量安装
首先配置yum(以root身份执行):
[root@jtxy ~]# vim /etc/yum.repos.d/public-yum-el5.repo
写入如下内容
[public_el5_latest]
name=OracleLinux $releasever Latest($basearch)
baseurl=file:///mnt/Server
gpgcheck=0
enabled=1
保存退出
[root@jtxy ~]# mount /dev/cdrom /mnt/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@jtxy ~]# yum clean all
Loaded plugins: rhnplugin, security
Cleaning up Everything
编写脚本(以root身份执行):
[root@jtxy ~]# vim pack.sh
写入如下内容:
!bin/bash
start install required packages
echo "start installing required packages"
yum -y install binutils-*
yum -y install compat-libstdc++-*
yum -y install compat-libstdc++-*
yum -y install elfutils-libelf-*
yum -y install elfutils-libelf-devel-*
yum -y install gcc-*
yum -y install gcc-c++-*
yum -y install glibc-*
yum -y install glibc-*
yum -y install glibc-common-*
yum -y install glibc-devel-*
yum -y install glibc-devel-*
yum -y install glibc-headers-*
yum -y install ksh-*
yum -y install libaio-*
yum -y install libaio-*
yum -y install libaio-devel-*
yum -y install libaio-devel-*
yum -y install libgcc-*
yum -y install libgcc-*
yum -y install libstdc++-*
yum -y install libstdc++-*
yum -y install libstdc++-devel*
yum -y install make-*
yum -y install sysstat-*
yum -y install unixODBC-*
[root@jtxy ~]# chmod +x pack.sh
执行脚本
[root@jtxy ~]# sh pack.sh
创建所需的操作系统组和用户
创建之前先来确定一下oracle产品清单组(oinstall)是否存在来确定此系统是否有已经安装的oracle软件(以root身份执行):
more /etc/oraInst.loc
如果存在此文件的话,看看里面的内容(一般没装过oracle软件的系统是查找不到这个文件)(以root身份执行):
[root@jtxy ~]# cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventory
inst_group=oinstall--这就是oinstall组,说明本系统已经存在oracle软件。
接下来看看是否存在dba组(以root身份执行):
grep dba /etc/group
如果这个命令的输出显示了dba组名称,那么这个组已经存在。
再检查oracle用户是否已经存在(如果出现下面类似字样,那说明已经存在了oracle用户)(以root身份执行):
[root@jtxy ~]# id oracle
uid=500(oracle) gid=500(oinstall) groups=500(oinstall),501(dba),502(oper)
如果上面两个命令都没有显示结果,那恭喜系统是干净的,可以直接用来配置安装oracle.接下来开始创建上面查询而未检查到的的oinstall,dba用户组以及可选的oper组和oracle用户
(以root身份执行)
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
passwd oracle
--oinstall oracle产品清单组,代表oracle软件的拥有者,主要用来管理一台机器中多个oracle产品
--dba 与oracle操作系统身份验证相关,属于这个组的用户可以在完成操作系统身份验证后直接sql plus / as sysdba登陆
--oper 可选组,与上面组差不多,允许这个组的用户在进行操作系统验证后以sysoper身份登陆
配置内核参数和资源限制
(以root身份执行)
vim /etc/sysctl.conf写入
fs.aio-max-nr =1048576
fs.file-max =6815744
kernel.shmall =2097152
kernel.shmmax =1073741824
kernel.shmmni =4096
kernel.sem =25032000100128
net.ipv4.ip_local_port_range =900065500
net.core.rmem_default =262144
net.core.rmem_max =4194304
net.core.wmem_default =262144
net.core.wmem_max =1048586
注意:kernel.shmmax修改为内存的一半(单位byte)
shmall在一般情况下是正常使用的,如果内存过大(超过64G)的时候他也要调大,我在装rac时,服务器是500g内存,当时用官方文档的大小时,报了内存耗尽错误。
修改后使上面参数生效执行:
sysctl -p
资源限制:
这是oracle官方推荐设置大小:(以root身份执行)
vim /etc/security/limits.conf写入一下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
配置oracle用户的环境变量(以root身份执行)
su - oracle --现在切换到oracle用户,切记是 su - oracle,两边都有空格,下面内容是以oracle身份执行
vim .bash_profile 写入如下内容:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
执行如下命令,让环境变量生效:source .bash_profile
创建所需的目录
su - --现在又切换到root身份
mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01/
chmod -R 775/u01/
关闭相关服务(以root身份执行):
(本操做在安装系统时候已经执行)
chkconfig sendmail off
chkconfig iptables off
chkconfig sm-client off
setup选firewall configuration 选disabled
关闭SELINUX
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g'/etc/selinux/config
cat /etc/selinux/config
修改/etc/hosts文件(以root身份执行):
vim /etc/hosts
将ip及主机名对应起来,改成下面这样
[root@jtxy u01]# cat /etc/hosts
Do not remove the following line, or various programs
that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.0.99 jtxy
安装oracle
上传11.2.0.4 oracle软件到操作系统;
解压安装包(以root身份执行):
[root@jtxy ~]# cd /u01/
[root@jtxy u01]# unzip p13390677_112040_Linux-x86-64_1of7.zip
。。。。。。。。。。。。。。。。。。。。。。。
[root@jtxy u01]# unzip p13390677_112040_Linux-x86-64_2of7.zip
开始进行安装:
[root@jtxy u01]# ls
app database lost+found p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip
[root@jtxy u01]# rm -rf p13390677_112040_Linux-x86-64_*
[root@jtxy u01]# ls
app database lost+found
[root@jtxy u01]# xhost +
access control disabled, clients can connect from any host
[root@jtxy u01]# su - oracle
[oracle@jtxy ~]$ cd /u01/database/
[oracle@jtxy database]$ ./runInstaller
去掉勾选,下一步,点yes
跳过软件更新:
仅安装软件:
安装单实例oracle
语言选择
安装企业版:
这是在oracle用户.base_profile中定义的环境变量:
oracle产品目录清单:
默认组就可以
进行安装软件:
另开一个窗口,以root身份运行上面脚本:
看到完成提示后,回到这个界面点ok:
点击close,这就完成了软件的安装
接下来配置监听:
[oracle@jtxy database]$ cd
[oracle@jtxy ~]$ netca
配置监听,下一步
添加按钮。下一步
监听名字(保持默认),下一步
协议,下一步
监听端口(也可以选择下面的按钮,自己决定监听端口):
不配置其他监听
点击完成
好了。现在配置好监听了,可以通过下面的命令来查看一下监听状态:
[oracle@jtxy ~]$ lsnrctl status
LSNRCTL forLinux:Version11.2.0.4.0-Production on 17-MAR-201712:44:17
Copyright(c)1991,2013,Oracle.All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=jtxy)(PORT=1521)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR forLinux:Version11.2.0.4.0-Production
StartDate17-MAR-201712:43:04
Uptime0 days 0 hr.1 min.14 sec
TraceLevel off
Security ON:Local OS Authentication
SNMP OFF
ListenerParameterFile/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
ListenerLogFile/u01/app/oracle/diag/tnslsnr/jtxy/listener/alert/log.xml
ListeningEndpointsSummary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=jtxy)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services--还未有任何服务名被监听
The command completed successfully
接下来建库;
[oracle@jtxy ~]$ dbca
创建一个模板数据库:
数据库名
启用em工具
选择设置一个统一的密码
选择yes就可以
接下来会提示创建脚本成功,点击确定然后继续等待安装完成就行。
点击exit,现在就吧oracle安装完了。接下来执行:
[oracle@jtxy ~]$ sqlplus /as sysdba
SQL*Plus:Release11.2.0.4.0Production on FriMar1713:08:182017
Copyright(c)1982,2013,Oracle.All rights reserved.
Connected to:
OracleDatabase11gEnterpriseEditionRelease11.2.0.4.0-64bitProduction
With the Partitioning, OLAP,DataMiningandRealApplicationTesting options
SQL> alter user scott account unlock identified by tiger; --这是解锁scott用户,并且设置密码为tiger
User altered.
其他用户可以用这种方法解锁,解锁后就可以登陆了。
这是简单的模板数据库安装过程,想要定制方式安装数据库以及安装过程中遇到的各种问题,可以详细讨论:
本人qq:1215864353
常见错误以及解决办法:
这是因为/etc/hosts文件没有配置或则配置有问题,检查配置文件,将本地ip以及主机名对应起来.
这种问题是因为指定的目录权限不对,检查指定路径权限,是否下面这样:
[root@jtxy u01]# ll
total 24
drwxrwxr-x 4 oracle oinstall 4096 Mar 17 10:40 app
drwxrwxr-x 7 oracle oinstall 4096 Aug 27 2013 database
drwxrwxr-x 2 oracle oinstall 16384 Nov 22 18:19 lost+found
出现这个错误就是因为上面检查系统环境时,tmp可用空间不足导致的。
解决该问题
1.建立新tmp目录
[root@pxboracle ora11g]# mkdir /u01/tmp
[root@pxboracle ora11g]# chown root:root /u01/tmp
[root@pxboracle ora11g]# chmod 1777/u01/tmp
2.设置数据库用户变量
vi /home/oracle/.bash_profile 加入以下变量
export TEMP=/u01/tmp
export TMPDIR=/u01/tmp
然后 source .bash_profile生效
[ora11g@pxboracle ~]$ env|grep TMP
TMPDIR=/u01/tmp
[ora11g@pxboracle~]$ env|grep TEMP
TEMP=/u01/tmp
3.重新运行runInstaller
4.安装完成清理相关/u01/tmp 和相关环境变了,让数据库使用系统默认(根据实际情况处理),最好的解决办法是给系统增加tmp空间,然后重新运行安装,出现这种错误就是本身检查环境不仔细导致的。