linux下安装oracle 11g R2

Linux环境配置

 

 

 

[c-sharp] view plaincopy
  1. OS:Fedora 15  
  2. DB:Oracle 11gR2  
  3. 将Oracle安装到home/oracle_11目录  

 

 

 

配置过程:本文来自Oracle官方文档+网上资料

 

Oracle官方文档:http://www.oracle.com/pls/db112/homepage

 

1. 以root用户登录到Linux

 

2. 检查机器硬件要求

 

2.1 内存要求

 

 

 

[c-sharp] view plaincopy
  1. 至少需要1GB的内存  
  2. 查看机器内存大小  
  3. # grep MemTotal /proc/meminfo  

 

 

 

2.2 swap空间要求

 

 

 

[c-sharp] view plaincopy
  1. 内存大小                 swap空间大小  
  2. 1 GB ~ 2 GB             内存大小*1.5  
  3. 2 GB ~ 16 GB            内存大小  
  4. > 16 GB          16 GB  
  5. 查看swap空间大小  
  6. # grep SwapTotal /proc/meminfo  

 

 

 

2.3 空闲硬盘要求

 

 

 

[c-sharp] view plaincopy
  1. /tmp目录需要1 GB的空闲空间  
  2. 查看/tmp目录的空闲空间  
  3. # df -h /tmp  
  4. 安装Oracle软件需要的硬盘空间  
  5. Enterprise Edition   3.95(software files)+1.7(data files)  
  6. Standard Edition     3.88(software files)+1.5(data files)  
  7. 查看机器中每个磁盘的空闲空间  
  8. # df -h  

 

 

 

3. 检查操作系统软件要求

 

Oracle官方文档中包含了多个Linux系统的要求,详细请参考官方文档

 

Fedora 15 (RHEL 5.x)的软件要求列表如下:

 

 

 

[c-sharp] view plaincopy
  1. binutils-2.17.50.0.6  
  2. compat-libstdc++-33-3.2.3  
  3. elfutils-libelf-0.125  
  4. elfutils-libelf-devel-0.125  
  5. elfutils-libelf-devel-static-0.125  
  6. gcc-4.1.2  
  7. gcc-c++-4.1.2  
  8. glibc-2.5-24  
  9. glibc-common-2.5  
  10. glibc-devel-2.5  
  11. glibc-headers-2.5  
  12. kernel-headers-2.6.18  
  13. ksh-20060214  
  14. libaio-0.3.106  
  15. libaio-devel-0.3.106   
  16. libgcc-4.1.2  
  17. libgomp-4.1.2  
  18. libstdc++-4.1.2   
  19. libstdc++-devel-4.1.2  
  20. make-3.81  
  21. numactl-devel-0.9.8.i386  
  22. sysstat-7.0.2  
  23. 查看系统是否安装了该软件包  
  24. # rpm -q package_name  

 

 

 

4. 创建安装Oracle需要的系统组和用户

 

 

 

[c-sharp] view plaincopy
  1. 创建Oracle Inventory 组  
  2. # groupadd oinstall  
  3. 创建OSDBA 组  
  4. # groupadd dba  
  5. 创建Oracle软件创建者  
  6. # useradd -g oinstall -G dba oracle  
  7. 修改oracle用户的密码  
  8. # passwd oracle  

 

 

 

5. 配置系统内核参数值

 

 

 

[c-sharp] view plaincopy
  1. 编辑/etc/sysctl.conf文件  
  2. vim /etc/sysctl.conf  
  3. 在打开的文件底部添加下面内容  
  4. fs.aio-max-nr = 1048576  
  5. fs.file-max = 6815744  
  6. kernel.shmall = 2097152  
  7. kernel.shmmax = 536870912  
  8. kernel.shmmni = 4096  
  9. kernel.sem = 250 32000 100 128  
  10. net.ipv4.ip_local_port_range = 9000 65500  
  11. net.core.rmem_default = 262144  
  12. net.core.rmem_max = 4194304  
  13. net.core.wmem_default = 262144  
  14. net.core.wmem_max = 1048586  
  15. 改变当前系统内核参数值(让/etc/sysctl.conf立即生效)  
  16. # sysctl -p  

 

 

 

6. 检查Oracle安装用户(oracle)资源限制

 

 

 

[c-sharp] view plaincopy
  1. 修改/etc/security/limits.conf文件  
  2. vim /etc/security/limits.conf  
  3. 在打开的文件底部添加下面内容  
  4. oracle              soft    nproc   2047  
  5. oracle              hard    nproc   16384  
  6. oracle              soft    nofile  1024  
  7. oracle              hard    nofile  65536  
  8. oracle              soft    stack   10240  

 

 

 

7. 创建安装Oracle软件所需要的目录

 

 

 

[c-sharp] view plaincopy
  1. # mkdir -p /home/oracle_11/app/  
  2. # chown -R oracle:oinstall /home/oracle_11/app/  
  3. # chmod -R 775 /home/oracle_11/app/  

 

 

 

8. 配置安装Oracle安装用户(oracle)的环境

 

 

 

[c-sharp] view plaincopy
  1. 编辑 /home/oracle/.bash_profile  
  2. vim /home/oracle/.bash_profile  
  3. 在打开的文件中添加下面内容  
  4. umask 022  
  5. export ORACLE_BASE=/home/oracle_11/app  
  6. export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1  
  7. export ORACLE_SID=orcl --Oracle实例名,可修改  
  8. export PATH=$PATH:HOME/bin:$ORACLE_HOME/bin  
  9. 编辑 /etc/pam.d/login  
  10. vim /etc/pam.d/login  
  11. 在打开的文件中添加下面内容  
  12. session required /lib/security/pam_limits.so  
  13. session required pam_limits.so  
  14. 编辑 /etc/profile  
  15. vim /etc/profile  
  16. 在打开的文件中添加下面内容  
  17. if [ $USER = "oracle" ]; then  
  18.    if [ $SHELL = "/bin/ksh" ]; then  
  19.       ulimit -p 16384  
  20.       ulimit -n 65536  
  21.    else  
  22.       ulimit -u 16384 -n 65536  
  23.    fi  
  24. fi  

 

 

 

9. 查看系统是否支持图形界面

 

 

 

[c-sharp] view plaincopy
  1. 查看root用户下是否已设置DISPLAY变量  
  2. # echo $DISPLAY  
  3. 如果有值出现,则说明已设置DISPLAY变量;否则,就需要手动设置DISPLAY  

 

 

 

10. 开始安装Oracle软件

 

 

 

[c-sharp] view plaincopy
  1. # cd /tmp  
  2. # unzip linux_11gR2_database_1of2.zip linux_11gR2_database_2of2.zip  
  3. # xhost +  
  4. # su - oracle  
  5. $ export DISPLAY=:0  
  6. $ cd /database  
  7. $ ./runInstaller  
  8. 接下来系统会启动Oracle图形安装界面,安装过程和Windows下一样  

 

 

 

在安装过程中,会提示在root用户下运行两个脚本文件(具体是哪两个,不记得了,按提示操作即可)。

 

Linux下的Oracle在安装结束后是处于运行状态的。重启机器后,Oracle不会像在Windows下那样将Oracle添加到Windows服务,在linux下需要手动启动Orcle服务

 

 

 

[c-sharp] view plaincopy
  1. 以oracle用户下,执行下面的命令  
  2. 进入sqlplus  
  3. $ sqlplus /nolog  
  4. 以sysdba的身份连接到数据库,并启动Oracle数据库引擎  
  5. SQL> conn /as sysdba  
  6. SQL> startup  
  7. 退出sqlplus,运行Listener  
  8. SQL> exit  
  9. $ lsnrctl start  

 

 

 

这样就可以连接到Oracle数据库了。如果想用Oracle提供的EM来管理Oracle的话还需要启动EM控制台,运行如下命令:

 

 

 

[c-sharp] view plaincopy
  1. $ emctl start dbconsole  

 

 

 

这样就可以通过http://localhost:1158/em/ 来访问EM控制台了。

 

 

 

使用dbstart和dbstop来启动Oracle服务

 

可能使用dbstart命令来启动数据库更方便一些,但初次安装完oracle之后使用dbstart命令会报这样的错误

 

 

 

[c-sharp] view plaincopy
  1. ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener  
  2. Usage: /u01/app/oracle/product/11.2/db/bin/dbstart ORACLE_HOME  

 

 

 

出现这样错误的原因是由于没有设置ORACLE_HOME_LISTNER的原因,我们查看一下dbstart这个文件

 

 

 

[c-sharp] view plaincopy
  1. more  /home/oracle_11/app/oracle/product/11.2/db/bin/dbstart  

 

 

 

部分内容如下

 

 

 

[c-sharp] view plaincopy
  1. # First argument is used to bring up Oracle Net Listener  
  2. ORACLE_HOME_LISTNER=$1  
  3. if [ ! $ORACLE_HOME_LISTNER ] ; then  
  4.   echo "ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener"  
  5.   echo "Usage: $0 ORACLE_HOME"  
  6. else  
  7.   LOG=$ORACLE_HOME_LISTNER/listener.log  
  8.   # Set the ORACLE_HOME for the Oracle Net Listener, it gets reset to  
  9.   # a different ORACLE_HOME for each entry in the oratab.  
  10.   export ORACLE_HOME=$ORACLE_HOME_LISTNER  

 

 

 

解决方案就算将$ORACLE_HOME赋值给$ORACLE_HOME_LINTNER,保存,退出

 

再一次执行dbstart,但是没有反映,没有报错,如果我们需要使用dbstart,则需要在/etc/oratab这个文件中的实例最后的N改成Y,如下

 

 

 

[c-sharp] view plaincopy
  1. orcl:/home/oracle_11/app/oracle/product/11.2/db:Y  

 

 

 

OK,保存,再试一下dbstart命令,返回结果如下

 

 

 

[c-sharp] view plaincopy
  1. Processing Database instance "orcl": log file /home/oracle_11/app/oracle/product/11.2.0/db_1/startup.log  

 

 

 

dbshut进行同样的设置.这样,以后就可以在启动监听之后直接使用dbstart和dbshut命令来启动和关闭数据了

 

 

 

将Oracle服务添加到Linux开机启动项,以root用户建立/etc/rc.d/init.d/oradb脚本文件,文件内容如下:

 

 

 

[c-sharp] view plaincopy
  1. #!/bin/bash  
  2. # chkconfig: 2345 90 10  
  3. export ORACLE_BASE=/home/oracle_11/app/  
  4. export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1  
  5. export ORACLE_SID=orcl  
  6. export PATH=$PATH:$ORACLE_HOME/bin  
  7. ORCL_OWN="oracle"  
  8. # if the executables do not exist -- display error  
  9. if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]  
  10. then  
  11.    echo "Oracle startup: cannot start"  
  12.    exit 1  
  13. fi  
  14. # depending on parameter -- start, stop, restart  
  15. # of the instance and listener or usage display  
  16. case "$1" in  
  17. start)  
  18. # Oracle listener and instance startup  
  19. echo -n "Starting Oracle: "  
  20. su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbstart"  
  21. touch /var/lock/subsys/oradb  
  22. su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl start dbconsole"  
  23. echo "OK"  
  24. ;;  
  25. stop)  
  26. # Oracle listener and instance shutdown  
  27. echo -n "Shutdown Oracle: "  
  28. su - $ORCL_OWN -c "$ORACLE_HOME/bin/emctl stop dbconsole"  
  29. su - $ORCL_OWN -c "$ORACLE_HOME/bin/dbshut"  
  30. rm -f /var/lock/subsys/oradb  
  31. echo "OK"  
  32. ;;  
  33. reload|restart)  
  34. $0 stop  
  35. $1 start  
  36. ;;  
  37. *)  
  38. echo "Usage: 'basename $0' start|stop|restart|reload"  
  39. exit 1  
  40. esac  
  41. exit 0  

 

 

 

将该文件添加到开机启动

 

 

 

[c-sharp] view plaincopy
  1. # chmod 755 /etc/rc.d/init.d/oradb  
  2. # chkconfig --add oradb  

 

 

 

重启服务

 

 

 

[c-sharp] view plaincopy
  1. # service oradb stop  
  2. # service oradb start  

 

 

 

下次启动机器的时候,Oracle服务会随机器一起启动。

 

Oracle数据库安装、配置完成。

 

Tip:Oracle数据库的默认端口号:1521,Oracle提供的EM管理器默认端口号是1158。

1.png (53.49 KB)
2011-7-5 19:51


可以留空,忽略错误(Oracle补丁需要帐号来支持了)

2.png (52.18 KB)
2011-7-5 19:51


选择安装软件并创建数据库,也可只安装软件不创建数据库

3.png (49.09 KB)
2011-7-5 19:51


选择Server版本

4.png (52.4 KB)
2011-7-5 19:51


单实例数据库

5.png (48.81 KB)
2011-7-5 19:51


高级模式

6.png (52.49 KB)
2011-7-5 19:51


添加中文支持

7.png (59.01 KB)
2011-7-5 19:51


企业版

8.png (59.81 KB)
2011-7-5 19:51


安装目录

9.png (54.42 KB)
2011-7-5 19:51



10.png (50.6 KB)
2011-7-5 19:51



11.png (58.69 KB)
2011-7-5 19:51


数据库名及服务名

12.png (69.73 KB)
2011-7-5 19:51


自动内存管理及其他设置

13.png (61.28 KB)
2011-7-5 19:51


启用oracle企业管理控制台OEM

14.png (53.82 KB)
2011-7-5 19:51


选择文件系统及数据库文件目录

15.png (63.97 KB)
2011-7-5 19:51


自动备份管理

16.png (54.72 KB)
2011-7-5 19:51


数据库的用户名密码设置

17.png (60.89 KB)
2011-7-5 19:51


18.png (68.75 KB)
2011-7-5 19:51


数据库预安装检测,缺乏软件包错误可忽略,是因软件版本引起的,只要确认安装了rhel6 dvd里的软件版本即可。

19.png (67.08 KB)
2011-7-5 19:51


20.png (80.55 KB)
2011-7-5 19:51


安装完成后根据提示用root身份执行两个sh脚本

8.oracleoem随机启动

8.1.修改/etc/oratab
[root@oracle ~]#vim /etc/oratab
orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y(N改为Y)

8.2.修改$ORACLE_HOME/BIN/dbstart$ORACLE_HOME/BIN/dbshut[root@oracle ~]#vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
[root@oracle ~]#vim /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut

ORACLE_HOME_LISTNER=$ORACLE_HOME $1改为$ORACLE_HOME

8.3.建立启动脚本

[root@oracle ~]#/etc/rc.d/init.d/oracle

#!/bin/bash
# chkconfig: 2345 99 10
# description: Startup Script for oracle Databases
# /etc/rc.d/init.d/oracle
export ORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
case "$1" in
start)
echo "-----startup oracle-----" >> /var/log/racle11log
su oracle -c "$ORACLE_HOME/bin/dbstart"
su oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle
echo "-----startup oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
stop)
echo "-----shutdwn oracle-----" >> /var/log/oraclelog
su oracle -c "$ORACLE_HOME/bin/dbshut"
su oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f /var/lock/subsys/oracle
echo "-----shutdown oracle successful-----" >> /var/log/oraclelog
echo "OK"
;;
*)
echo "Usage: 'basename $0' start|stop"
exit 1
esac
exit 0
8.4.给脚本设置权限

[root@oracle ~]#chmod 755 /etc/rc.d/init.d/oracle

8.5.建立服务

[root@oracle ~]#chkconfig --add oracle
[root@oracle ~]#chkconfig oracle on

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/463546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通俗理解数字签名,ssl数字证书和https

前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应。签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖PDF合同在签章后不能被更改在…

linux 性能分析工具——perf

最近需要对linux下的开发的数据库应用程序进行性能调试,找到了该篇文章,保存下来为了以后便于查找,这篇是转载的perf文章,后续还有vtune相关的文章。 转载:https://blog.csdn.net/u014608280/article/details/8026571…

红外遥控

红外遥控简介红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所…

使用jQuery Mobile移动开发框架将博客网站快速转化为Mobile网站

日期:2012-7-12 来源:GBin1.com 在线演示 jQuery Mobile是一个非常不错的移动端网站应用的解决方案,很多网站都使用jQuery Mobile来生成Mobile手机端的移动网站应用,在过去的GBin1博客文章中,我们曾经使用jQuery Mob…

NVLink技术及影响解析

1繁华的背面 最新GPU架构Pascal,能自己开上舞台的Audi A7,超过700名与会专家学者及技术人员,近百场学术会议和科研分享,连续两晚的happy hour、酒会和GTC Party……在一片喧嚣和欢乐当中,2014年度的GTC大会降下了帷幕。…

2022年结束了

在去年这个时候,我刚好也写了一篇这样的文章。再往前是2020年的总结年终了,肿一下斗转星移,我的这个公众号也陪伴着我经过了4年的时间,明年后,我也正式进入35岁程序员的行列,随时会受到命运对我的锤炼。庆幸…

STL容器之deque

双端队列&#xff1b;序列式容器(deque/vector)&#xff1b;底层分段连续 支持从双端进行插入和删除&#xff1b; 综合了vector和list的优点&#xff1b; 插入、删除、查找的平均时间复杂度都是O(1) 部分deque的操作如下&#xff1a; #include <stdlib.h> #include …

varnish-cache使用

Varnish Cache是一个web加速软件&#xff0c;用作web服务加速的反向代理&#xff0c;与Squid不同的是它建立在较新的系统内核调用上&#xff0c;并且主要是使用内存作为缓存&#xff0c;它现有的使用者有facebook等&#xff0c;据使用者反馈&#xff0c;其与Squid相比&#xff…

2020年文章汇总

据悉&#xff0c;深圳某工程师沦为C语言笔试枪手修改cmdline 把内存改成512MB上拉电阻的作用剖析C语言是如何画出这样的三角形的c语言画谢宾斯基三角形Linux字符设备驱动实例哦&#xff0c;这是桶排序回答一个微信好友的创业问题Linux-C编程 / 多线程 / 如何终止某个线程&#…

2018年文章汇总

Android ANR 实例分析Linux kernel计算某段代码运行时间Linux Kernel 发展和内核特点C/C函数指针与指针函数(二)老王带你理解算法复杂度O(1),O(N),O(N^2)Android NDK Tombstone/Crash 分析堆和栈的区别&#xff08;转过无数次的文章&#xff09;C语言scanf-周末杂想C语言-scanf…

Angular CLI的简单使用(1)

参考地址: https://v2.angular.cn/docs/ts/latest/cli-quickstart.html Angular CLI是一个命令行界面工具&#xff0c;它可以创建项目、添加文件以及执行一大堆开发任务&#xff0c;比如测试、打包和发布。 1. 请先在终端/控制台窗口中运行命令 node -v 和 npm -v, 如下图,没有…

在没有数据集的情况下使用数据表

使用数据适配器填充数据表 View Code using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient;namespace PopDataTable {class Program{static void Main(string[] args){string connString…

2019年文章汇总

要不要去培训机构深造一下&#xff1f;我一个37岁的程序员朋友Linux内核中的GPIO系统整理的免费资料&#xff0c;帮你年后跳槽C语言&#xff0c;字符串指针做函数参数书籍推荐过年回家抢票攻略C语言&#xff0c;函数不可返回指向栈内存的指针你还会写这段C51程序吗&#xff1f;…

linux下修改max_user_processes和open_file的最大值

从事分布式服务器开发工作的都会遇到&#xff0c;linux下open_file的值默认是1024&#xff1b;max user processes的值默认是4096&#xff0c;在实际用于中&#xff0c;这两个值严重不足&#xff0c;常常需要调整这两个值。默认配置如下&#xff1a; 可以通过以下两种方式修改&…

IP SLA的路径控制

一、定义SLA 服务水平协议&#xff08;简称&#xff1a;SLA&#xff0c;全称&#xff1a;service level agreement&#xff09;是在一定开销下为保障服务的性能和可靠性&#xff0c;服务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。简…

【linux】linux系统中常见配置文件及目录说明

1.配置文件/proc/sys/fs/file-nr 里文件里显示三个数字 [rootlocalhost logs]# cat /proc/sys/fs/file-nr 2112 0 2100000已分配文件句柄的数目 已使用文件句柄的数目 文件句柄的最大数目 上面第二项的值为0表示分配的文件…

ptmalloc,tcmalloc和jemalloc内存分配策略研究

转载&#xff1a;https://cloud.tencent.com/developer/article/1173720 操作系统内存布局 各种malloc的内存分配管理方式离不开操作系统的内存布局策略。 32位经典内存布局 32位系统下经典内存布局如上&#xff0c;程序起始的1GB地址为内核空间&#xff0c;接下来是向下增长…

Tcmalloc

Tcmalloc Ptmalloc在性能上还是存在一些问题的&#xff0c;比如不同分配区&#xff08;arena&#xff09;的内存不能交替使用&#xff0c;比如每个内存块分配都要浪费8字节内存等等&#xff0c;所以一般倾向于使用第三方的malloc。 Tcmalloc是Google gperftools里的组件之一。…

JVM自动内存管理机制——Java内存区域(下)

一、虚拟机参数配置 在上一篇《Java自动内存管理机制——Java内存区域&#xff08;上&#xff09;》中介绍了有关的基础知识&#xff0c;这一篇主要是通过一些示例来了解有关虚拟机参数的配置。 1、Java堆参数设置 a&#xff09;下面是一些简单的使用参数 其中最后一个是一个运…

PHP版选择排序法

2019独角兽企业重金招聘Python工程师标准>>> <?php// 选择排序法函数function selection_sort(&$array) {$array_length count($array); // 数组的长度$temp 0; // 交换时用到的临时变量for ($i 0; $i < $array_length - 1; $i) {// 认为数组第$i个元…