RedHat(RHEL)6.2 X64 Oracle11g X64 安装参考文档
RHEL6.2 X64 Oracle11g X64 安装参考文档
机器内存:48G
安装过程分为两步,一是修改系统参数,二是软件及数据库安装。
48g内存对应参数
kernel.shmall=12582912
kernel.shmmax=4294967295
kernel.shmmni=4096
参数说明
1、kernel.shmall参数是控制共享内存页数
kernel.shmall的单位是页面数,当前的x86体系上这个单位是4K ,oracle的默认安装参数是kernel.shmall = 2097152 则一共是8G的共享内存总量
总的来说,这个参数和你具体硬件关系不太大,只是大于8G的时候调整到合适你的内存容量大小,小于8G就不用了
对于32位系统,一页=4k,也就是4096字节。RHEL6.2 X64通过查询也是4096
查询操作系统页面大小
$getconf PAGESIZE
4096
kernel.shmall= 内存大小/页面大小
48*1024*1024*1024/4096=12582912(安装机器48G内存)
kernel.shmall=12582912
12582912*4096/1024/1024/1024=48G
2、kernel.shmmax
shmmax 指的是单个共享内存段的最大尺寸, 设置shmmax=1G,sga分配了1.2G,当启动实例的时候就分配2块共享内存给Oracle .如果物理内存是2 G, 假设这台DB Server上还有Apache 在运行,那么shmmax 中设置的内存也会被Apache 来使用,那么分配的2 块共享内存段给Oracle 是否就是2 * 1G , 还是仅仅满足SGA需求的1.2 G就停止分配, 其他的内存的一部分分配给Oracle PGA 和软件Apache 来使用?
一般情况下可以设置最大共享内存为物理内存的一半,如果物理内存是2G,则可以设置最大共享内存为1073741824,如上;如物理内存是1G,则可以设置最大共享内存为512 * 1024 * 1024 = 536870912;以此类推。
在redhat上最大共享内存不建议超过
4*1024*1024*1024-1=4294967295
3、kernel.shmmni参数是控制共享内存段总数
shmmni内核参数是 共享内存段的最大数量(注意这个参数不是 shmmin,是 shmmni, shmmin 表示内存段最小大小 ) 。shmmni 缺省值 4096 ,一般肯定是够用了 。
1、修改系统参数
step1: vi /etc/sysctl.conf, 添加如下参数:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall=12582912
kernel.shmmax=4294967295
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
如果有如下提示错误,忽略,因为即使未修改参数也提示有这个错误
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
step2: vi /etc/security/limits.conf,添加:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
step3: vi /etc/pam.d/login,添加参数:
session required pam_limits.so
step4:vi /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
step5: vi /etc/csh.login:
if( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
umask 022
endif
step6: vi /etc/redhat-release,修改为如下值,成功安装数据库后在修改回来:
Red Hat Enterprise Linux Server release 5.0 (Tikanga)
Step7: 添加相关用户及用户组:
#/usr/sbin/groupadd oinstall
#/usr/sbin/groupadd dba
#/usr/sbin/useradd -m -G oinstall,dba oracle
#passwd oracle (修改oracle用户密码)
Step 8: 创建安装路径及修改权限:
mkdir -p /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
mkdir -p /opt/oraInventory
chown -R oracle:oinstall /opt/oraInventory
chmod -R 775 /opt/oraInventory
Step 9: vi /home/oracle/.bash_profile, 其中ORACLE_SID的值可以自己定,我的设为kfsjora
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/opt/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export
ORACLE_HOME
ORACLE_SID=kfsjora; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH; export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
umask 022
使环境变量生效:
source ~/.bash_profile
step 10:切换到oracle解压11G的安装包,这样就不用再修改权限了。
检测数据包的完整性
$cksum linux.x64_11gR2_database_1of2.zip 结果和Oracle官网上的数值对比。
$cksum linux.x64_11gR2_database_2of2.zip
Oracle官网信息
Oracle Database 11g Release 2 (11.2.0.1.0) for Linux x86-64
linux.x64_11gR2_database_1of2.zip (1,239,269,270 bytes) (cksum - 3152418844)
linux.x64_11gR2_database_2of2.zip (1,111,416,131 bytes) (cksum - 3669256139)
解压缩
$unzip linux.x64_11gR2_database_1of2.zip
$unzip linux.x64_11gR2_database_2of2.zip
step 11: 重启后以oracle登录安装。
安装
$cd database
$ ./runInstaller
2、软件及数据库安装。
出现图形界面后安装即可(默认或定制)。
当检查依赖包是可能会出现如下下提示
要检测软件包是否安装,一般情况是软件包版本比oracle需要的版本高也会出现上述情况
检测软件包是否安装
#rpm –q libaio;
安装软件包
#rpm ivh XXX-XX-xx.rpm
软件包都存在,可以忽略继续安装
创建数据库:
可以在上面解锁一些帐号和修改密码,点击上面的OK后,出现如下:
切换到root,命令完成最后安装。
[oracle@localhost ~]$ su -
Password:
[root@localhost 11g]# sh /opt/11g/oraInventory/orainstRoot.sh
Changing permissions of /opt/11g/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /opt/11g/oraInventory to oinstall.
The execution of the script is complete.
[root@localhost 11g]# sh /opt/11g/oracle/product/11.2.0/dbhome_1/root.sh
Running Oracle 11g root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/11g/oracle/product/11.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating
登陆OEM浏览器查看:
3、设置RedHat 防火墙访问数据库
安装完成远程计算机服务访问数据库,是RHEL默认防火墙关闭了Oracle的访问端口,远程无法访问Oracle,远程访问需要设置防火墙
打开防火墙中数据库的端口
#/sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
保存配置
#service iptables save
或者
#/etc/rc.d/init.d/iptables save
重新启动防火墙
#/etc/init.d/iptables restart
到此可以访问oracle了
4、设置Oracle开机启动
1.首先修改/etc/oratab文件
#vi /etc/oratab
找到kfsjora:/opt/oracle/product/11.2.0/dbhome_1:N这一行
改为:
kfsjora:/opt/oracle/product/11.2.0/dbhome_1:Y
也就是将最后的N改为Y,意思是将不允许自动启动改为允许自动启动。
(kfsjora是本文数据库SID)
2.修改ORACLE自带的启动与关闭脚本,分别是dbstart和 dbshut。执行这两个脚本就可以实现ORACLE脚本的启动与关闭。在oracle账户下修改$ORACLE_HOME/bin/dbstart文件
#su -oracle
$cd $ORACLE_HOME/bin
$vi dbstart
找到ORACLE_HOME_LISTNER=$1这一行
改为:ORACLE_HOME_LISTNER=$ORACLE_HOME
之所以做这一步,是因为在这个脚本自动生成的时候,也就是ORACLE被安装进RHEL的时候,这个脚本并不知道你的ORACLE_HOME_LISTNER是什么,现在要将这个参数显示的写明,这样就不会在执行这个脚本的时候报ORACLE_HOME_LISTNER没有被指定的错误了。注意:dbstart和dbshut脚本在10g之后就已经将监听器的启动与关闭合并进数据库实例的启动与关闭脚本里面了。而不再是单独分开的了。同样的方式,我们也要修改dbshut的这个参数。这里就不再详细写出了,他们在同一个目录下。
3.写一个脚本,把它注册为一个系统服务,让它在开机与关机的时候运行。它的作用就是调用并执行dbstart和dbshut。这样不就实现了数据库启动与关闭了吗?!这个脚本被放在/etc/init.d目录中,脚本的名字是oracle11
# vi oracle11
脚本内容如下:
#!/bin/sh
#chkconfig: 345 99 10
#description: Oracle 11g AutoRun Services
#/etc/init.d/oracle11
#
#Run-level Startup script. for the Oracle Instance, Listener, and
#Web Interface
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=kfsjora
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
touch /var/lock/subsys/oracle11
su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl start dbconsole"
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc "$ORACLE_HOME/bin/emctl stop dbconsole"
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle11
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
在编辑完成之后,使用 :x 命令保存此文件。
这段脚本的关键解释:
第一:#chkconfig:345 99 10虽是一行注释,但是确实关键的必不可少的一行,除非你不用chkconfig命令来自动生成符号连接文件,而是完全采用手工创建。否则没有这一行,执行chkconfig系统将会报出oracle11没有chkconfig服务权限的错误。
第二:su oracle -c $ORACLE_HOME/bin/dbstart和touch /var/lock/subsys/oracle11这两行的作用是首先执行dbstart脚本启动oracle,然后在服务活动列表目录中创建一个与oracle11这个服务同名的一个文件,表示这个服务是活动的,也就是被启动的。而su oracle -c $ORACLE_HOME/bin/dbshut和rm -f /var/lock/subsys/oracle11这两行的作用是首先执行dbshut急哦脚本关闭oracle,然后从服务活动列表目录中删除那个与oracle11同名的那个文件,表示这个服务不是活动的,也就是已经被关闭。
那么为什么要做touch /var/lock/subsys/oracle11和rm -f /var/lock/subsys/oracle11这两步呢?原因是跟LINUX系统的机制有关的:LINUX的判别一个服务是否被启动的依据是在/var/lock/subsys/目录下是否与服同名的文件,若有则表示这个服务已经被启动了,在系统关闭的时候,LINUX会把这里面列出的服务全部关闭,并删掉与服务同名的文件。若一个服务被启动了,但却在这个目录里没有那个服务的同名文件,则不会关闭那个服务。网上的文章均将这个地方设置错了,所以会发现,ORACLE可以随系统启动了,但却没有随系统关闭。我也是分析了/etc/rc.d/rc.local后才发现这个原理的。经过试验,果然如此。再分析mysql的启动与关闭脚本也是这样做的,最终恍然大悟,原来如此。这个地方请大家注意了。
4.将这个脚本注册成为一个系统服务
方法有二:
其一:先给脚本分配可以被执行的权限。执行下面命令:
$su-root
#chown oracle /etc/init.d/oracle11
#chmod 775 /etc/init.d/oracle11
链接:
# ln -s /etc/init.d/oracle11 /etc/rc1.d/K10oracle11
# ln -s /etc/init.d/oracle11 /etc/rc3.d/S99oracle11
执行以下命令:
# chkconfig --level 345 oracle11 on (参数--level 为两个"-" ,下同)
# chkconfig --add oracle11 // 添加到服务里
再创建符号链接文件。
chkconfig --add /etc/init.d/oracle11,执行这个命令就需要你在脚本中写上#chkconfig:3459910了。这样当这个命令被执行的时候,回去oracle11文件中寻找这行注释,并解析这行注释,根据解析结果分别在/etc/rc.d/rc3.d;/etc/rc.d/rc4.d;/etc/rc.d/rc5.d中创建符号连接文件S99oracle11文件,这个文件是系统启动时要执行的,其实这个文件是指向/etc/init.d/oracle11的,启动的时候系统向这个文件发送一个start参数,也就执行了oracle11文件中的start分支了。还会在/etc/rc.d/rc0.d;/etc/rc.d /rc1.d;/etc/rc.d/rc6.d中创建K10oracle11文件,这个文件时系统关闭时要执行的,其实这个文件也是指向/etc/init.d/oracle11的,关闭的时候系统向这个文件发送一个stop参数,也就执行了oracle11文件中的stop分支了。
我想你应该明白#chkconfig:3459910中这些数字的含义了吧:指出3,4,5级别启动这个服务,99是在相应的/etc /rc.d/rcN.d(N为前面指定的级别,这里是345)目录下生成的链接文件的序号(启动优先级别)S99oracle11,10为在除前面指出的级别对应的/etc/rc.d/rcN.d(N为除345之外的级别)目录生成的链接文件的序号(服务停止的优先级别)K10oracle11。至于为什么在这些目录中创建文件和文件的命名规则,这就要您对LINUX的系统启动流程有一个熟悉的了解了,在这就不详谈了。
其二:若您想尝试一下手动创建符号连接文件的乐趣,请执行如下命令:
#su -root
ln -s /etc/init.d/oracle11 /etc/rc.d/rc3.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc4.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc5.d/S99oracle11
作用效果和执行chkconfig --add oracle11是一样的。
重启之后看看/var/lock/subsys/目录下的oracle11log文件,里面是不是有脚本的启动分支输出信息呢?
5、数据库操作
以sys登录
创建表空间
SQL>create tablespace kfsj datafile '/opt/oracle/oradata/kfsjora/kfsj01.dbf' size 100m autoextend on next 100m maxsize 8g, '/opt/oracle/oradata/kfsjora/kfsj02.dbf' size 100m autoextend on next 100m maxsize 8g;
创建用户
SQL>create user kfsj identified by kfsj
default tablespace kfsj
temporary tablespace temp
授权
SQL>grant connect,resource to kfsj;
为用户解锁
SQL>alter user scott account unlock;
为用户设置口令字:
SQL>grant connect to scott identified by tiger;
RedHat(RHEL)6.2 X64 Oracle11g X64 安装参考文档相关推荐
- View4.5测试参考文档7--View Administrator安装、配置、创建桌面池
View4.5测试参考文档7--View Administrator安装.配置.创建桌面池 见附件! 转载于:https://blog.51cto.com/ieihihc/471642
- mysql 5.5免安装配置_mysql的参考文档mysql5.5.21免安装版的配置方法
mysql的5.5版本(与5.1版本有所区别)中my.ini文件的内容. 在mysql根目录里新建my.ini文件,用阅读器打开(加入如下内容) [client] #password = your_p ...
- PostgreSQL安装配置参考文档
PostgreSQL安装配置参考文档 1.安装 Centos安装包链接 : https://yum.postgresql.org/rpmchart/ 然后选择系统版本及PostgreSQL版本 举例 ...
- python2020安装教程_PyCharm 2020.2.2 x64 下载并安装的详细教程
1.在浏览器上搜索PyCharm https://www.jetbrains.com/pycharm/download/#section=windows 2.点击Download(根据需要选择版本) ...
- Oracle SQL Developer 19.1 Microsoft Windows x64 64-bit 下载 安装 配置
Oracle SQL Developer 19.1 Microsoft Windows x64 64-bit 下载 安装 配置 下载地址 安装步骤 连接Oracle数据库 添加用户 下载地址 下载地址 ...
- Oracle11g x64使用Oracle SQL Developer报错:Unable to find a Java Virtual Machine
1.环境 win10 64位,oracle 11g r2,jdk8 64位 2.问题 第一次启动Oracle SQL Developer的时候会让我们填写java.exe的路径,jdk有两种: 我自己 ...
- 在RedHat Enterprise Linux 上Oracle 9i的安装配置与调优
1 安装配置Oracle 9i数据库 本章描述内容如下所示: 1.1 安装前的准备工作 介绍在安装Oracle之前所需的准备工作. 1.2安装前的系统设置 介绍在安装Oracle之前所必须的系统设置. ...
- PF_RING 6.0.2在Redhat 6.3 x86_64上编译和安装
前言 本文详细描述Linux下PF_RING的编译和安装过程. PF_RING版本:6.0.2(当前最新版本) 官方网址:http://www.ntop.org/products/pf_ring/ 下 ...
- oracle11g +WindoWs7 安装错误:未找到文件WFMLRSVCApp.ear
oracle11g +WindoWs7 安装错误:未找到文件WFMLRSVCApp.ear 将win64_11gR2_database_1of2.zip和win64_11gR2_database_2o ...
最新文章
- SAP S/4 HANA新变化-FI数据模型
- HTML-完美解决父子元素的外边距重叠和高度塌陷问题
- 瑞典皇家理工学院工程实例:Sound localization
- swoole 内存Memory
- 2018ICPC-ACM XIAN Invitation Onsite
- 注册assembly的问题
- SQL Server下载安装
- ARM汇编开关终端cpsie/cpsid
- android titlebar 高度是多少,什么是TitleBar的默认高度和Android中Titlebar中的默认TextSize?...
- “不会Linux,怎么当程序员?”骨灰级程序员:你的代码正在毁掉你!
- office 2010安装包
- 《博弈论全家桶》(ACM / OI)(超全的博弈论 / 组合游戏大合集)
- 弘扬优秀传统文化 致敬母爱母教伟大
- 计算机管理员账户停用,win10系统提示“你的账户已被停用,请向系统管理员咨询”如何解决...
- ❤ ❤html canvas面向对象的彩色小球❤ ❤
- 用Python实现语音播报
- php青蛙跳井代码,四川招警考试行测答题技巧:青蛙跳井问题全解析
- 北京小学几年级学计算机,北京小学低年级开学时间2021最新消息
- python趣味小工具,图片转Execl,图片转TXT工具
- 【项目管理】管理项目的可交付成果
热门文章
- AI 人工智能包含的领域方向
- 【移动网络】[5G 核心网络架构] 5GC: Architecture
- php 多核cpu,如何利用多核CPU来加速你的Linux命令
- 屏蔽Enter键和ESC键的方法
- jpi多表联查_使用mybatis进行多表联查
- 电子计算机4个发展阶段的划分,计算机以什么划分发展阶段
- activity启动流程或工作流程
- html代码简单的保护环境网页代码 学生环保主题网页制作代码 简单的垃圾分类网页制作作业 简单的环境保护网页制作源码
- WebSocket 入门:简易聊天室
- 测试人的后半生:跑滴滴还是送外卖?