LinuxOracle安装.docx
《LinuxOracle安装.docx》由会员分享,可在线阅读,更多相关《LinuxOracle安装.docx(14页珍藏版)》请在冰豆网上搜索。
![LinuxOracle安装.docx](https://file1.bdocx.com/fileroot1/2022-12/30/b7b48bc8-a10f-4ee4-837c-f8c74a6db43d/b7b48bc8-a10f-4ee4-837c-f8c74a6db43d1.gif)
LinuxOracle安装
Linux下面的oracle的安装
还没完善,有待完善。
本文档适用于RedHatLinuxx86-32,1~3部分用root身份操作,4部分用oracle用户身份和root身份联合操作。
作者陈建伟
1、安装前的准备工作
1.1创建用户和用户组及相关目录
组的介绍:
用户组(group)就是具有相同特征的用户(user)的集合体;比如有时我们要让多个用户具有相同的权限,比如查看、修改某一文件或执行某个命令,这时我们需要用户组,我们把用户都定义到同一用户组,我们通过修改文件或目录的权限,让用户组具有一定的操作权限,这样用户组下的用户对该文件或目录都具有相同的权限,这是我们通过定义组和修改文件的权限来实现的;
/usr/sbin/groupadddba--创建dbal组,groupadd 注:
添加用户组;groupdel删除用户组
/usr/sbin/groupaddoper--创建oper组
/usr/sbin/groupaddoinstall--创建oinstal组
--创建oracle用户并设置用户所属组
/usr/sbin/useradd-goinstall-Gdbaoracle--useradd添加用户,oracle是用户名
-ginitial_group注:
group名称或以数字来做为用户登入起始用户组(group)。
用户组名须为现有存在的名称。
用户组数字也须为现有存在的用户组。
预设的用户组数字为1。
-Ggroup,[...]注:
定义此用户为此一堆groups的成员。
每个用户组使用","区格开来,不可以夹杂空白字元。
用户组名同-g选项的限制。
定义值为用户的起始用户组
passwdoracle--为oracle用户设置密码,需要密码输入两次
--创建相关安装目录(文件夹)
mkdir/var/opt/oracle
mkdir/opt/oracle
mkdir/opt/oracle/product
mkdir/opt/oracle/product/OraHome
mkdir/opt/oraInventory
mkdir/opt/oracle/oradata
--设置目录所有者和权限chown命令用来给文件或目录授予属主,属组权限。
语法:
chown【选项】 用户名.组名 目录名\文件名
-R,--recursiveoperateonfilesanddirectoriesrecursively,就是向下递归,不管有多少级目录
755是让用户有执行(运行)该文件的权力
Recursivly的中文意思是递归地
chown-Roracle.oinstall/opt/oracle–指定oinstall组中的oracle用户,具有操作/opt/oracle文件夹的权限
755是让该文件具有被执行操作的权限
chown-Roracle.oinstall/opt/oracle/oradata
chown-Roracle.oinstall/opt/oracle/product/OraHome
chown-Roracle.dba/opt/oraInventory
chownoracle.dba/var/opt/oracle
chmod-R775/opt/oracle
chmod-R755/var/opt/oracle
4.设置安装环境变量
#在桌面空白地方点击右键,打开一个终端,使用命令su-oracle--切换到oracle用户下,
更改用户的一些配置
$vi.bash_profile
添加以下参数,主要是配置oracle软件运环境参数
if[-f~/.bashrc];then
.~/.bashrc
fi
exportORACLE_BASE=/opt/oracle
exportORACLE_HOME=$ORACLE_BASE/product/OraHome
exportORACLE_SID=orcl
exportORACLE_OWNER=oracle
exportORACLE_TERM=test
exportPATH=$PATH:
$ORACLE_HOME/bin:
$HOME/bin:
$ORACLE_HOME/bin:
$ORACLE_HOME/Apache/Apache/bin
exportLD_LIBRARY_PATH=$ORACLE_HOME/lib:
/lib:
/usr/lib:
/usr/local/lib
exportCLASSPATH=$ORACLE_HOME/JRE:
$ORACLE_HOME/jlib:
$ORACLE_HOME/rdbms/jlib:
$CLASSPATH:
$ORACLE_HOME/network/jlib
按Esc键输入:
x保存退出
--执行以下命令让配置马上生效或以oracle用户登录使设置生效
$source$HOME/.bash_profile
1.2网络配置
在打开一个新的终端,修改host文件,必须给主机名称,要不这步骤没有设置,后面配置数据库(netca)的时候数据库设置的时候会出现错误。
[root@developserver~]#hostname
developserver.localdomain
第一步:
查看主机名hostname
如果主机名是bogon的话,一定要先修改一下主机名,要不放到有多台linux的网络就会导致无法连接
第二步:
修改/etc/sysconfig/network中的主机名
这个文件主要的功能在于设定主机名称与开机的时候启动网卡(NETWORK),修改完之后,要重启电脑。
用鼠标打开计算机选择相应的文件,用图形化界面编辑。
[root@developserver~]#vi/etc/sysconfig/network(VI的使用方法,按字母”i”键进入编辑模式,按esc退出编辑模式,保存退出的方法是先按esc退出,然后按键盘输入“:
x”保存退出)
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=test1
其中各个参数的含义
NETWORK=yes/no表示网络是否被配置;
HOSTNAME=test1hostname表示服务器的主机名;
GATEWAY=gw-ipgw-ip表示网络网关的IP地址;
FORWARD_IPV4=yes/no是否开启IP转发功能;
GAREWAYDEV=gw-devgw-dw表示网关的设备名,如:
eth0等。
第三步:
修改/etc/hosts
/etc/hosts是Internet早期使用的一个简单文本数据库。
它结合DNS和NIS提供名字到IP地址的映射。
/etc/hosts也可以提供一个Internet名称的本地纪录以减轻需要从外部查询带来的负担。
/etc/hosts用简单的格式:
[Internetaddress][officialhostname][alias1][alias2]...
IP地址主机名别名1别名2
例如:
[root@developserver~]#vi/etc/hosts
127.0.0.1localhost.localdomainlocalhost
192.168.33.109test1
:
:
1localhost.localdomainlocalhost
192.168.33.109test1test2
其中192.168.33.109,可以通过在终端中输入ifconfig查询当前IP
建议将IP设置为静态,这样子系统后面维护比较简单
IP地址设置为静态
vi/etc/sysconfig/network-scripts/ifcfg-eth0,按“i”进入编辑模式,然后把BOOTPROTO=dhcp,改成BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.33.109
NETMASK=255.255.255.0
GATEWAY=192.168.33.1
HWADDR=e0:
05:
c5:
eb:
ce:
79(这个的值,每个电脑都不一样)
整体内容如下
:
wq保存退出
接下来,
#ifdowneth0关闭第一块网卡
#ifupeth0开启第一块网卡
或则是直接使用下面的命令使网卡重启
#servicenetworkrestart
1.3关闭SELinux
安全增强式Linux(SELinux,Security-EnhancedLinux)是一种强制访问控制(mandatoryaccesscontrol)的实现。
它的作法是以最小权限原则(principleofleastprivilege)为基础,在Linux核心中使用Linux安全模块(LinuxSecurityModules)。
应用SELinux后,可以减轻恶意攻击或恶意软件带来的灾难,并提供对机密性和完整性有很高要求的信息很高的安全保障。
但是因为它的安全级别过高会引起我们oracle安装失败,在这边先要将其关闭。
如果这个地方不改的话,后面启动数据库的时候会报出下面的错误。
vi/etc/sysconfig/selinux,找到:
SELINUX=enforcing
改为
SELINUX=disabled
如果这个地方不改的话,后面启动数据库的时候会报出下面的错误
错误1:
cannotrestoresegmentprotafterreloc:
Permissiondenied
三.参数设置
2、打开一个新的终端,设置ShellLimits(系统资源限制),提高软件的运行效率
a.在/etc/security/limits.conf文件中加入下列红色行:
soft指的是当前系统生效的设置值,hard表明系统中所能设定的最大值。
soft的限制不能比hard限制高。
用-就表明同时设置了soft和hard的值
nofile-打开文件的最大数目
noproc-进程的最大数目
oraclesoftnofile65536
oraclehardnofile65536
oraclesoftnproc16384
oraclehardnproc16384
b.要使limits.conf文件配置生效,必须要确保pam_limits.so文件被加入到启动文件中。
在/etc/pam.d/login文件中加入下列行,如果里面没有的话:
sessionrequired/lib/security/pam_limits.so
sessionrequiredpam_limits.so
pam_limits.so控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源
c.在/etc/profile后加入以下语句:
ulimit用于shell启动进程所占用的资源.
参数介绍:
-H设置硬件资源限制.
-S设置软件资源限制.
-a显示当前所有的资源限制.
-csize:
设置core文件的最大值.单位:
blocks
-dsize:
设置数据段的最大值.单位:
kbytes
-fsize:
设置创建文件的最大值.单位:
blocks
-lsize:
设置在内存中锁定进程的最大值.单位:
kbytes
-msize:
设置可以使用的常驻内存的最大值.单位:
Kbytes
-ssize:
设置堆栈的最大值.单位:
Kbytes
-tsize:
设置CPU使用时间的最大上限.单位:
seconds
-vsize:
设置虚拟内存的最大值.单位:
Kbytes
-nsize:
设置内核可以同时打开的文件描述符的最大值.单位:
n
-psize:
设置管道缓冲区的最大值.单位:
Kbytes
-u 设置各linux用户的最大进程数
vi/etc/profile
加入如下代码内容
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
fi
1、设置核心参数(这部分参数可以放到后面让系统自动替我们生成)
调整/etc/sysctl.conf文件,该文件是用来控制linux网络的配置文件,对于依赖网络的程序(如web服务器和cache服务器)非常重要,RHEL默认提供的最好调整。
sysctl是一个允许您改变正在运行中的Linux系统的接口。
它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,这可以让有经验的管理员提高引人注目的系统性能。
用sysctl可以读取设置超过五百个系统变量。
基于这点,sysctl(8)提供两个功能:
读取和修改系统设置。
查看所有可读变量:
%sysctl-a
读一个指定的变量,例如kern.maxproc:
%sysctlkern.maxprockern.maxproc:
1044
要设置一个指定的变量,直接用variable=value这样的语法:
#sysctlkern.maxfiles=5000
kern.maxfiles:
2088->5000
您可以使用sysctl修改系统变量,在这边我们通过编辑/etc/sysctl.conf文件来修改系统变量。
sysctl.conf看起来很像rc.conf。
它用variable=value的形式来设定值。
指定的值在系统进入多用户模式之后被设定。
并不是所有的变量都可以在这个模式下设定。
sysctl变量的设置通常是字符串、数字或者布尔型。
(布尔型用1来表示'yes',用0来表示'no')。
kernel.shmall=2097152--该参数表示系统一次可以使用的共享内存总量(以页为单位)。
缺省值是2097152。
kernel.shmmax=2147483648--该参数定义了共享内存段的最大尺寸(以字节为单位)。
缺省为32M,对于oracle来说,通常将其设置为2G。
kernel.shmmni=4096--该参数是控制共享内存段总数
kernel.sem=25032000100128--该参数表示设置的信号量。
fs.file-max=65536--该参数表示文件句柄的最大数量。
文件句柄设置表示在linux系统中可以打开的文件数量。
net.ipv4.ip_local_port_range=102465000--#表示用于向外连接的端口范围。
缺省情况下很小:
32768到61000,改为1024到65000。
net.core.rmem_default=8388608
net.core.rmem_max=8388608
net.core.wmem_default=262144
net.core.wmem_max=262144
#sysctl-p#运行下列命令改变核心参数
1.4安装相关包文件
检查下列包是否安装,若未安装则要先安装,如果不提前装也可以,后面的时候会提示我们共缺少什么包,到时候在装也可以,在找包的时候注意版本要对应,要不后面安装的时候安装不起来。
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
numactl-devel-0.9.8.i386
sysstat-7.0.2
unixODBC-2.2.11
unixODBC-devel-2.2.11
unixODBC-2.2.11
使用rpm–q包名查询是否已经安装该包。
使用uname–r可以查询系统内核的版本
如果没有的话,可以回到原来的linux系统盘中第二张或则是第三张找,另外一种方法是从网络上下,将包名在google上输入,应该能够找到。
所下载的包的版本一定要相对应都是同一个版本的
普通的安装只要双击包名就行,但是在安装的时候会出现一些包相互依赖的情况,这个时候只能够使用命令打开终端去解决包相互依赖的问题。
linux安装rpm包时有的有依赖关系,如何强制安装?
在rpm后面加入相互依赖的包名,各个名字之间用空格隔开
加上--nodeps,意思不考虑依赖,后面加入包名。
使用时机:
当发生软件属性相依问题而无法安装,但你执意安装时
危险性:
软件会有相依性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性相依,则可能会造成该软件的无法正常使用!
3.--force-i,强制安装
3.
四.正式安装
1.1下载oracle软件
下载地址,从列表中选择你所要的版本:
本文档所使用的linuxoralce11g版本,下载页面:
下载地址:
安装文档的下载地址:
注意:
在下载的时候一定要记得选择:
“接受许可协议”
解压命令:
unzip10201_database_linux32.zip
2、解压后产生一个包含安装文件的目录database
注:
,最好在根上建立一个文件夹,这个文件夹专门用来存放ORACLE的安装文件。
但是需要注意的是,在安装ORACLE前,需要把这个文件夹的所有者修改成用户oracle,文件夹权限最好是修改成777,以免在安装过程中出现问题。
3、定制Oracle安装文件及权限(可选)
cd/
mkdiroracle
chmod777/oracle
chown-Roracle.oinstall/oracle
安装过程中:
在安装过程中输入合适的ORACLE_HOME和实例名。
完成后的画面中会有管理端入口地址和sqlplus入口地址。
选择高级安装
在选择安装类型中,选择定制
安装过程中需要以root身份运行
#/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/OraHome/root.sh
安装完毕后。
注销,以root身份打开另一个终端窗口
--这步至关重要,不执行这步在以oracle用户运行#./runInstaller时会启动不了图型安装界面
以oracle用户登录系统,进行Oracle的安装
#su–oracle
unziplinux_x86_11gR1_database.zip
cddatabase/
./runInstaller
./runInstaller-ignoreSysprereqs#低版本检测(可选)
方式二:
1、
五.启动脚本生成和设置:
1.补充:
开机时让RedHatLinux自动启动Oracle,需要完成以下步骤:
运行$ORACLE_HOME下的root.sh,会生成一个文件/etc/oratab。
编辑/etc/oratab,把所有的instance的重启动标志设置成'Y',如:
ora10g:
/home/oracle/OraHome_1:
Y
做一个启动脚本/etc/init.d/dbora,如下所示:
#!
/bin/sh
ORA_HOME=/opt/oracle/product/OraHome
ORA_OWNER=oracle
if[!
-f$ORA_HOME/bin/dbstart]then
echo"Oraclestartup:
cannotstart"
exit
fi
case"$1"in
'start')
su-$ORA_OWNER-c$ORA_HOME/bin/dbstart
su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstart"
;;
'stop')
su-$ORA_OWNER-c"$ORA_HOME/bin/lsnrctlstop"
su-$ORA_OWNER-c$ORA_HOME/bin/dbshut
;;
'restart')
$0stop
$0start
;;
esac
赋予执行权限
chownroot.root/etc/rc.d/init.d/dbora
chmod750/etc/init.d/dbora
Initializenewservice:
chkconfigdborareset
chkconfig--listdbora
dbora0:
off1:
off2:
off3:
on4:
off5:
on6:
off
注意:
当系统不在runlevels3and5时,使用
servicedborastart启动服务
servicedborastop停止服务.
作成以下链接:
ln-s/etc/init.d/dbora/etc/rc0.d/K10dbora
ln-s/etc/init.d/dbora/etc/rc3.d/S99dbora
执行以下命令:
chkconfig--level345dboraon
2.vi$ORACLE_HOME/bin/dbstart
#SetthistobringupOracleNetListener
ORACLE_HOME_LISTNE