Linux服务器中安装Oracle

笔者手动安装成功

一,oracle安装前的准备与配置

1,修改stsctl.conf文件

Linux是为小文件设计的,Oracle数据库安装需要占用较多资源,要把各项参数调大。

使用vi编辑/etc/sysctl.conf文件。命令如下:

vi /etc/sysctl.conf

按i进入插入模式,把光标移到文档最后,将以下一段文字(复制自Oracle 11g官方文档)

插入到文档最后。


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 = 1048576

net.ipv4.tcp_wmem = 262144 262144 262144

net.ipv4.tcp_rmem = 4194304 4194304 4194304

注意注释掉

# Disable netfilter on bridges.

#net.bridge.bridge-nf-call-ip6tables = 0

#net.bridge.bridge-nf-call-iptables = 0

#net.bridge.bridge-nf-call-arptables = 0

(修改完以后,可以通过重启系统来加载这些参数)

2,各参数详解

kernel.shmmax:是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。设置应该足够大,能在一个共享内存段下容纳下整个的SGA ,设置的过低可能会导致需要创建多个共享内存段,这样可能导致系统性能的下降。至于导致系统下降的主要原因为在实例启动以及ServerProcess创建的时候,多个小的共享内存段可能会导致当时轻微的系统性能的降低(在启动的时候需要去创建多个虚拟地址段,在进程创建的时候要让进程对多个段进行“识别”,会有一些影响),但是其他时候都不会有影响。

官方建议值:

32位linux系统:可取最大值为4GB(4294967296bytes)-1byte,即4294967295。建议值为多于内存的一半,所以如果是32为系统,一般可取值为4294967295。32位系统对SGA大小有限制,所以SGA肯定可以包含在单个共享内存段中。

64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,一般取值大于SGA_MAX_SIZE即可,可以取物理内存-1byte。例如,如果为12GB物理内存,可取12*1024*1024*1024-1=12884901887,SGA肯定会包含在单个共享内存段中。

kernel.shmall: 该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB /4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304才符合要求(几乎是原来设置2097152的两倍)。这时可以将shmmax参数调整到16G了,同时可以修改SGA_MAX_SIZE和SGA_TARGET为12G(您想设置的SGA最大大小,当然也可以是2G~14G等,还要协调PGA参数及OS等其他内存使用,不能设置太满,比如16G)

kernel.shmmni:该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。

fs.file-max:该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。

fs.aio-max-nr:此参数限制并发未完成的请求,应该设置避免I/O子系统故障。推荐值是:1048576 其实它等于 1024*1024 也就是 1024K 个。

kernel.sem:以kernel.sem = 250 32000 100 128为例:

250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。

32000是参数semmns的值,表示系统内可允许的信号量最大数目。

100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。

128是参数semmni的值,表示系统信号量集合总数。

net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。

net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。

net.core.rmem_max:表示套接字接收缓冲区大小的最大值。

net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。

net.core.wmem_max:表示套接字发送缓冲区大小的最大值。

3,修改limits.conf文件

命令:vi /etc/security/limits.conf

在文件末尾加入以下内容:


oracle soft nproc  2047

oracle hard nproc  16384

oracle soft nofile 1024

oracle hard nofile 65536

oracle hard stack 10240

(重启系统,加载参数)

4,创建oracle需要的相关信息

(以普通用户登录,然后切换到root用户:su root)

4.1,创建dba组

命令:


groupadd dba

检查是否创建完成:tail /etc/group

4.2,创建oracle用户并将其添加到dba组

创建oracle用户命令:

useradd oracle

将oracle用户添加到dba组:

usermod -g dba oracle

给这个用户加一个密码(密码一定要好记,别管他的提示),命令如下:

passwd oracle

测试一下刚才的操作是否成功:

tail /etc/group

tail /etc/passwd

4.3,创建oracle安装目录

执行以下命令创建目录:

mkdir -p /u01/app/oracle

执行以下命令,将文件的属主改为Oracle,属组改为dba:

chown -R oracle:dba /u01/app/oracle

修改文件的访问权限为777(4+2+1,4+2+1,4+2+1):

chmod -R 777 /u01/app/oracle

查看一下你刚建的文档权限:

drwxr-xr-x.   3 root root  4096 Jun 19 16:39   u01

drwxr-xr-x. 4 root root 4096 Jun 19 18:24      app

drwxrwxrwx. 10 oracle dba 4096 Jun 19 20:22 oracle

drwxrwx---.  5 oracle dba 4096 Jun 19 18:59 oraInventory (该文件后面创建)

(这里我们需要把u01的属主改为oracle,属组改为dba,将u01和app的权限改为chmod 775 /u01和chmod 775 /u01/app )

4.4,配置概要文件(oracle下)

切换到oracle用户下,  输入以下命令:

cd /home/oracle

vi .bashrc

进入vi后按键盘上的字母i切换到插入模式,然后插入以下内容:


umask 002

ORACLE_BASE=/u01/app/oracle      //这个决定后面按安装的目录

export ORACLE_BASE

ORACLE_HOME=$ORACLE_BASE/product/11.2.0    //这个也是

export ORACLE_HOME

ORACLE_SID=dog         //和你后要建的数据库事例名字一样,我的是:dog,以防出现SID不一致的问题

export ORACLE_SID

PATH=/usr/bin:/bin:usr/local/bin:/usr/bin/X11:/usr/bin/X11R6

PATH=$PATH:$ORACLE_HOME/bin

export PATH

root 用户下(文件里面是有东西的,在最后追加):
   vi /etc/pam.d/login

session required /lib/security/pam_limits.so

session required pam_limits.so

二,安装oracle依赖包

通过yum安装,安装centos时自动安装yum源

compat-libstdc++-33 compat-libstdc++-296 gcc gcc-c++ make binutils openmotif control-center compat-db compat-gcc compat-gcc-c++ compat-gcc-34 compat-gcc-34-c++ giflib glib gtk+ glibc glibc-common glibc-devel gnome-libs libstdc++ libstdc++-devel libaio libjpeg-devel libpng-devel libX11-devel libXau-devel libXdmcp-devel libXft-devel libXmu libXmu-devel libXtst libXp libXp-devel libXpm libXpm-devel libXt-devel mesa-libGL-devel openmotif-devel setarch xorg-x11-proto-devel sysstat unixODBC-devel elfutils-libelf-devel libaio-devel pdksh

三,安装oracle

1,创建安装目录并将其属组改为Oracle

获取root权限并执行以下命令:


su root

mkdir /u01/app/oraInventory

ls -l /u01/app

chown -R oracle:dba /u01/app/oraInventory

chmod -R 775 /u01/app/oraInventory

ls -l /u01/app

主要一定要看上面的oracle 和 oraInventory文件是否权限一致

2,解压oracle安装文件

先将oracle安装程序拷贝到一个目录下(我解压到tmp的oracle目录下,如果没有,自己建一个目录):

Oracle的安装文件有两个,如下:

p13390677_112040_Linux-x86-64_1of7.zip

p13390677_112040_Linux-x86-64_2of7.zip

执行下面命令解压:

Unzip 文件名

两个文件都解压后是如下结果:

3,运行安装文件(oracle用户下安装,因为这个是oracle用户用的)

如你当前系统环境是英文的环境一些不用看

若你是当前系统环境是中文的环境必须看,否则会出现框框乱码问题,

**——设置编码方式:在oracle用户下:

export LANG=en_US.UTF-8

输入一下命令,进行安装:

cd /tmp/Oracle/database //这个是进入到你oracle解压后的目录下,根据你自己

./runInstaller

执行后会进入图形化安装界面,在图形话安装界面中根据自己的需求进行选择安装。

四,配置profile的参数

修改/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环境变量

在/home目录下.bash_profile文件中

export bash_profile="/home/oracle/.bash_profile"

export oracle_base="/opt/oracle"

export oracle_home=$oracle_base/product/11.2.0

echo "# Setup ==== Oracle Environment ===="  >> $bash_profile

echo export ORACLE_SID=tianque >> $bash_profile

echo export ORACLE_BASE=$oracle_base >> $bash_profile

echo export ORACLE_HOME=$oracle_home >> $bash_profile

echo export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK >> $bash_profile

echo export LD_LIBRARY_PATH=$oracle_home/lib:/lib:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 >> $bash_profile

export NLS_DATE_FORMAT="YYYY-MM-DD-HH24:MI:SS" >> $bash_profile

export TNS_ADMIN=$ORACLE_HOME/network/admin >> $bash_profile

echo export ORA_NLS11=$ORACLE_HOME/nls/data >> $bash_profile

echo export ORACLE_OWNER=oracle >> $bash_profile

echo export ORACLE_TERM=xterm >> $bash_profile

echo "# Setup ==== Search Path ===="  >> $bash_profile

echo export PATH=$PATH:$oracle_home/bin:/home/oracle/Opatch:/sbin >> $bash_profile

生效环境变量:

Source .bash_profile

注意:根据以上内容配置环境变量后,进入.bash_profile文件中根据需要修改ORACLE_HOME的路径

六,检查ORACLE_SID是否正确

1,什么是ORACLE_SID

是一个数据库的唯一标识符,是建立一个数据库时系统自动赋予的一个初始ID,

SID主要用于在一些DBA的操作以及与操作系统交互,从操作系统角度访问实例名,必须通过ORACLE_SID,且它在注册表中也是存在的.

2,查看oracle_sid

echo $ORACLE_SID(输出的SID要和环境变量中配置的一样),

3,修改:export ORACLE_SID=test

4,可能会导致的问题

如果SID不正确,会出现数据库无法启动,有如下报错:

用sys用户登录sqlplus后,用startup命令启动Oracle时提示:

ORA-01078:failure in processing system parameters

LRM-00109:couldnotopen parameter file ‘/u01/app/oracle/product/11.2.0/db_1/dbs/initorcl.ora‘

5,解决方法

1,将$ORACLE_HOME/dbs目录下spflieorcl.ora改名为spfiletianque.ora即可。(注:spfiletianque.ora中的tianque为环境变量中设置的SID,我的是tianque)

2,用find /u01  -name pfile命令查找pfile文件的位置,/u01/app/oracle/admin/orcl/pfile/

将$ORACLE_BASE/admin/orcl/pfile目录下的init.ora.2212013132036形式的文件copy 到$ORACLE_HOME/dbs目录下命名为initorcl.ora即可。

时间: 2024-07-29 02:45:30

Linux服务器中安装Oracle的相关文章

Linux服务器中安装python包管理工具pip

pip是python的包管理工具,python的强大之处除了在于语法的简练,还有就是对众多的库支持了. 1.下载pip包管理工具 链接地址:https://pypi.python.org/pypi/pip/#downloads 2.winscp上传至服务器, 3.解压到服务器的某个目录: 4.安装完成: 接下来可以进行的安装python的各种第三方模块包了.

在Linux中安装Oracle(较详细图解)

原创 安装RHEL6 假设你已经正确安装VM软件并激活.点击创建新的虚拟机: 这个你可以将其安装的内存小一些,也没有多大的关系 点击虚拟机菜单栏上的编辑->虚拟网络配置 设置网络(要根据自己的实际情况设定): 设置分区: 创建分区的要点大致如下: 分区名称 大小(MB) /boot 128 swap 4096 / 20480 /home 5000 此外,这块你也要选择一些那个“开发”中选项,将那个能选择的全选择了,安装oracle是会省很多的事情. 后面设置全部自动 出现此画面表示安装成功! 安

在linux服务器上导入oracle的DMP文件

导入库: 事前准备: 1,确保linux服务器上已经正确安装oracle 2,拥有oracle的客户端,能够连接上服务器的oracle. 开始步骤: 1,创建表空间(表空间比较多的话一般会给你创建表空间的脚本.比如createspace-for-Windows.sql). 2,登录linux服务器,比如ssh 192.168.20.222 ,输入用户名密码.默认用户名为root 3,输入su - oracle   注意,不要输入成su oracle. 4,移动需要导入的DMP文件移动至linux

Linux系统中安装MySQL数据库操作手册

Linux系统中MySQL数据库安装手册 一.安装概述: 在Linux操作系统中安装MySQL数据库是一个我们必须要掌握的一门技术,也决定了你以后找工作的薪资待遇,所以你知道它的厉害了吧!学会安装只是第一步,你还得学好数据库的基本操作,以及搭建一个数据库的主从配置等等.这些我都会在后面的博文中说到.下面我就简单的写一些安装MySQL数据库的一些步骤,仅供参考,如有什么不妥的地方,还请见谅! 二.安装步骤: (一)基本准备工作 1.打开虚拟机,在虚拟机中下载好最新版的MySQL数据库的压缩包.在M

在RedHat Linux系统中安装和配置snmp服务

检查系统是否安装snmp服务 # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-utils-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 SNMP服务安装后会有以上安

如何在Linux服务器中隐藏PHP版本

通常,大多数默认设置安装的web服务器存在信息泄露,这其中之一就是PHP.PHP 是如今流行的服务端html嵌入式语言(之一?).在如今这个充满挑战的时代,有许多攻击者会尝试发现你服务端的漏洞.因此,我会简单描述如何在Linux服务器中隐藏PHP信息. 默认上expose_php默认是开的.关闭“expose_php”参数可以使php隐藏它的版本信息. [[email protected] ~]# vi /etc/php.ini 在你的php.ini, 定位到含有expose_php的那行把On

Dell Omsa在Linux服务器上安装部署

前言 本页详述了在一台Linux(RHEL6.4 x86_64)服务器上部署安装OMSA的通用做法,包括OMSA软件的获取方法和安装步骤. 演示环境: PowerEdge R620, RHEL 6.4 x86_64 OMSA所必须的关联安装包的安装 安装OMSA之前,我们必须确保OMSA安装所需的一些先决安装包已经安装,它们包括: libcmpiCppImpl0libwsman1sblim-sfcbsblim-sfccopenwsman-clientopenwsman-server 其中sbli

在linux系统上面安装oracle需要注意的几处

标题 在linux系统上面安装oracle需要注意的几处 1.选系统版本 2.安装路径 3. 给定的虚拟机硬盘空间大小 4.内存大小 5.光盘检测 6.手工创建硬   盘分区 7.boot分区大小 8./分区大小 9.swap分区大  小 10.手工定制    安装包 11.开发包这    些里面的    所有的子    选项安装    包全都选    中

linux服务器中Jenkins集成git、Gradle持续构建Springboot项目

Jenkins是用java编写的开源持续集成工具,目前被国内外各公司广泛使用.本章教大家如何在linux服务器中使用Jenkins自动发布一个可作为linux服务发布的Springboot项目. 自动构建需要经过如下步骤:从git仓库下载代码.使用Gradle进行构建.使用SSH推送到另一台linux服务器.项目作为linux服务启动.本章将逐条仔细讲解. 一.获得一台linux服务器 要在linux下搞持续构建,首先你得先有一台linux服务器,作为小白,手头的机器肯定都是windows的,搞