Oracle 10g支持在命令行下用静默模式(Silent)安装,给那些没有安装图形界面的Linux系统提供了极大的便利。

下面以Fedora Core 6为例,介绍在命令行下安装OracleOracle 10g的方法。

1 安装前的准备准备工作要用登录为root用户来进行。

1.1 选择安装环境的语言Oracle安装时可以通过环境变量LANG指定安装语言,如果Linux命令行不能显示中文,就要将语言环境设置为英语。

例如:export LANG=en_US.UTF-8

1.2 修改gennttab

Oracle 10g在一些Linux系统下安装可能会被中断,在安装日志文件

$ORACLE_HOME/install/make.log

里可以看见以下错误信息

/bin/sed: -e expression #1, char 7: unterminated `s' command

要解决这个问题就必须编辑文件 gennttab。

先解压Oracle安装目录下的 stage/Components/oracle.network.rsf/10.2.0.1.0/1/DataFiles/filegroup6.jar,可以用以下方法之一进行解压

用jar解压:jar -xf filegroup6.jar bin/gennttab

用unzip解压:unzip filegroup6.jar bin/gennttab

再用文本编辑器(例如vi)打开解压出来的 gennttab,将以下内容

LIB=`$ECHO ${TtoLIB} | $SED 's/ /\\

/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`

INI=`$ECHO ${TtoINI} | $SED 's/ /\\

/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`

BAS=`$ECHO ${TtoBAS} | $SED 's/ /\\

/g' | $GREP "^${T}:" | $AWK -F: '{print $2}'`改为

LIB=`$ECHO ${TtoLIB} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:

'{print $2}'`

INI=`$ECHO ${TtoINI} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:

'{print $2}'`

BAS=`$ECHO ${TtoBAS} | $SED 's/ /\n/g' | $GREP "^${T}:" | $AWK -F:

'{print $2}'`

保存后再用将gennttab更新到filegroup6.jar里面,可以用以下方法之一进行更新

用jar更新:jar -uvf filegroup6.jar bin/gennttab

用zip更新:zip -vu filegroup6.jar bin/gennttab

1.3 修改内核参数

如果一致则不用修改(oracle11g)

[root@CNNIC-AM oracle]# echo "4194304" > /proc/sys/net/core/rmem_default

[root@CNNIC-AM oracle]# echo "4194304" > /proc/sys/net/core/rmem_max

[root@CNNIC-AM oracle]# echo "262144" > /proc/sys/net/core/wmem_default

[root@CNNIC-AM oracle]# echo "262144" > /proc/sys/net/core/wmem_max

[root@CNNIC-AM oracle]# echo "4096" > /proc/sys/kernel/shmmni

vim /etc/sysctl.conf

在最后加入一行

net.ipv4.ip_local_port_range=1024 65000

编辑文件 /etc/sysctl.conf,修改以下项目,如果没有可以自己添加。

kernel.shmall = 2097152 # 可以使用的共享内存的总量。

kernel.shmmax = 2147483648 # 最大共享内存段大小。

kernel.shmmni = 4096 # 整个系统共享内存段的最大数目。

kernel.sem = 250 32000 100 128 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。

fs.file-max = 65536 # 系统中所允许的文件句柄最大数目。

net.ipv4.ip_local_port_range = 1024 65000 # 应用程序可使用的IPv4端口范围。

net.core.rmem_default = 1048576 # 套接字接收缓冲区大小的缺省值

net.core.rmem_max = 1048576 # 套接字接收缓冲区大小的最大值

net.core.wmem_default = 262144 # 套接字发送缓冲区大小的缺省值

net.core.wmem_max = 262144 # 套接字发送缓冲区大小的最大值

注:内核参数并非必须修改,可以根据自己实际情况而定。

1.4 为Oracle创建DBA组和用户安装Oracle必须指定拥有DBA权限的组和运行Oracle的用户。

创建组:groupadd oradba创建用户:useradd -g oradba oracle注:组名和用户名可以任意指定,不一定要照搬本文。

1.5 创建安装Oracle的目标目录

创建Oracle系统目录:mkdir /oracle

创建Oracle服务器主目录:mkdir /oracle/10g

将该目录的所有者设置为oracle:chown -R oracle:oradba /oracle编辑 /etc/profile,在后面追加以下两行

export ORACLE_BASE=/oracleexport ORACLE_HOME=/oracle/10g注:安装Oracle的目标目录可以任意指定,但是安装和运行Oracle的用户必须有完全修改该目录的权限。

2 安装2.1 编辑安装需要的应答文件静默模式(Silent)安装必须指定一个应答文件来完成安装过程所须的各类参数。

在Oracle安装目录的response子目录里有enterprise.rsp、standard.rsp和custom.rsp三个应答文件,分别对应企业版、标准版和定制的安装。

以enterprise.rsp为例,用任意的文本编辑器打它,修改以下这些项目的值。

ORACLE_HOME Oracle服务器的主目录位置,必须是绝对路径。

ORACLE_HOME_NAME Oracle服务器的名称,必须以字母开头。

COMPONENT_LANGUAGES Oracle服务器支持的语言,默认只有英语,可以添加多个语言。

s_nameForDBAGrp 用于Oracle系统管理的linux用户组名,该组的用户拥有管理Oracle服务器的权限,在本例中设置为 oradba。

s_nameForOPERGrp 用于Oracle数据库常规操作的linux用户组名,该组的用户拥有常规操作Oracle数据库的权限,在本例中设置为 oracle。

n_configurationOption 安装类型(1为在安装后创建数据库,2为安装后创建一个自动存储管理实例,3为只安装服务器软件),在本例中选择3。

其它项目用默认值即可,也可以根据自己的须要进行修改。

注:如果Oracle从光盘安装,必须先将应答文件复制到硬盘上,才能修改。

2.2 开始安装

现在万事具备,可以安装了。

用oracle用户登录,然后在Oracle安装目录里执行

./runInstaller -ignoreSysPrereqs -silent -responseFile

接下来就是等待安装结束了。

各安装参数的含义如下

ignoreSysPrereqs 让Oracle忽略系统检查,因为Oracle官方声明只支持Linux服务器产品,所以要在非服务器产品的Linux上安装就必须指定此参数。

silent 让安装程序以静默模式运行。

responseFile 指定一个应答文件。

3 安装后要做的工作

3.1 Oracle系统初始化

用root用户登录,然后运行$ORACLE_HOME/root.sh进行Oracle的系统初始化工作,通常一路按回车用默认值即可。不过这里Oracle存在一个bug,在root.sh脚本中,自动将OUI_SILENT参数设置为TRUE,

而后的检查中,如果发现这个值为TRUE,那么这个脚本运行会自动退出了。

这里需要手工将其修改为FALSE,然后使用root执行。

3.2 安装网络监听器

没有网络监听器,客户端就无法通过网络连接Oralce服务器。要在命令行安装网络监听器,也只能使用静默模式。

编辑Oracle安装目录里response子目录下的应答文件 netca.rsp,修改以下项目。

INSTALL_TYPE=""custom"" 安装的类型

LISTENER_NUMBER=1 监听器数量

LISTENER_NAMES={"LISTENER"} 监听器的名称列表

LISTENER_PROTOCOLS={"TCP;1521"} 监听器使用的通讯协议列表

LISTENER_START=""LISTENER"" 监听器启动的名称然后运行

$ORACLE_HOME/bin/netca /silent /responseFile

3.3 修改dbstart

用任意的文本编辑器打开 $ORACLE_HOME/bin/dbstart,将

ORACLE_HOME_LISTNER=$1

改为

ORACLE_HOME_LISTNER=$ORACLE_HOME否则网络监听器可能无法自动启动。

3.4 安装数据库实例编辑Oracle安装目录里response子目录下的应答文件 dbca.rsp,修改以下项目。

GDBNAME 数据库全局名称

SID 数据库的SID

SYSPASSWORD SYS用户的初始密码

SYSTEMPASSWORD SYSTEM用户的初始密码

CHARACTERSET数据库字符集(中文为 ZHS16GBK)

NATIONALCHARACTERSET数据库国家字符集

然后运行

$ORACLE_HOME/bin/dbca -silent -responseFile -cloneTemplate数据库创建成功后须要注册一些信息,运行

$ORACLE_BASE/oraInventory/orainstRoot.sh然后编辑 /etc/oratab

将::N修改为::Y使数据库实例能够自动启动。

3.5 让Oracle运行为服务

创建文件 /etc/init.d/oracle,输入下列内容

#!/bin/sh

#

export ORACLE_HOME=export ORACLE_HOME_LISTNER=$ORACLE_HOME

export ORACLE=oracle

. /etc/init.d/functions

export PATH=${PATH}:$ORACLE_HOME/bin

start(){

daemon --user $ORACLE $ORACLE_HOME/bin/dbstart

daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl start"

}

stop()

{

daemon --user $ORACLE "$ORACLE_HOME_LISTNER/bin/lsnrctl stop"

daemon --user $ORACLE $ORACLE_HOME/bin/dbshut

}

case $1 in

'start')

start

RETVAL=$?;;

'stop')

stop

RETVAL=$?

;;'restart')stop

start

RETVAL=$?

;;

*)

echo "usage: $0 {start|stop|restart}"

exit

;;

esac

#

exit

然后将这个文件赋予可执行的权限,运行

chmod a+x /etc/init.d/oracle让Oracle的服务在Linux启动时自动运行

ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S99oracle

ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S99oracle

这样就可以用service来启动和停止Oracle了。

附1 Oracle 10g对硬件环境的要求物理内存基本 - 512MB

推荐 - 1024MB

内存交换分区相对于物理内存的比例

物理内存1024MB~2048MB - 150%

物理内存2049MB~8192MB - 100%

物理内存大于8192MB - 75%

磁盘空间/tmp目录所在的分区至少要有400MB空闲磁盘空间。

根据安装类型,安装Oracle服务器软件的分区至少要有1.5GB到3.5GB的空闲磁盘空间。

1.2GB磁盘空间用于数据库预配置文件系统存储(可选)

附2 Oracle 10g对软件环境的要求

操作系统

Red Hat Enterprise Linux AS/ES 3.0 (Update 4 or later)

Red Hat Linux 4.0

SUSE Linux Enterprise Server 9.0 with SP 2 or later

Asianux 1.0

Asianux 2.0

软件包

X11相关的库 (软件包名视操作系统而定,故不一一列出)

gcc (版本至少为2.96-124)

make (版本至少为3.79)

binutils (版本至少为2.11)

openmotif (版本至少为2.1.30)

setarch (版本至少为1.3)

compat-db (版本至少为4.0.14.5)

compat-gcc (版本至少为7.3-2.96.122)

compat-gcc-c++ (版本至少为7.3-2.96.122)

compat-libstdc++ (版本至少为7.3-2.96.122)

compat-libstdc++-devel (版本至少为7.3-2.96.122)

sysstat (版本至少为5.0.5-1)libaio (版本至少为0.3.103-3)

libaio-devel (版本至少为0.3.103-3)

附3

oracle的启动和关闭

启动:

#su - oracle

$sqlplus /nolog

SQL>conn /as sysdba

SQL>startup

SQL>quit

关闭:$sqlplus /nolog

SQL>conn /as sysdba

SQL>shutdown

SQL>quit

以上的sqlplus /nolog与SQL>conn /as sysdba

可以替换成sqlplus " / as sysdba"

启动监听:

$lsnrctl start

$lsnrctl

LSNRCTL>start

关闭监听:$lsnrctl stop

$lsnrctl

LSNRCTL>stop

4 结束语

现在Oracle 10g的安装已经完成,在任何一台电脑上装个Oracle客户端就可以对它进行管理了。

如果要卸载Oracle,只须运行

$./runInstaller -silent -deinstall -removeallfiles -removeAllPatches "REMOVE_HOMES={$ORACLE_HOME}" -responseFile

sqlplus: error while loading shared libraries: /oracle/11g/lib/libnnz11.so: cannot restore segment prot after reloc: Permission denied

解决这个问题就要停掉selinux

setenforce 0

设置重起系统也不启动selinux

编辑/etc/selinux/config,找到这段:

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=enforcing

把 SELINUX=enforcing 注释掉:#SELINUX=enforcing ,然后新加一行为:

SELINUX=disabled

保存,关闭。

......

编辑/etc/sysconfig/selinux,找到:

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

# enforcing - SELinux security policy is enforced.

# permissive - SELinux prints warnings instead of enforcing.

# disabled - SELinux is fully disabled.

SELINUX=enforcing

如果SELINUX已经是 SELINUX=disabled,那么就不用改了,否则就把SELINUX=enforcing 注释掉,新加一行:

SELINUX=disabled

保存,退出。

SEVERE:OUI-10133:Invalid staging area. There are no top level components for Linux available for installation in this staging area.

enterprise.rsp文件里的FROM_LOCATION路径不对。

在linux中安装oracle中文包,在Linux命令行下安装Oracle 10g相关推荐

  1. 在命令行下进行Oracle用户解锁

    在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作.下面是具体的过程: 默认的scott用户是 ...

  2. 渗透基础——命令行下安装Microsoft .NET Framework

    0x00 前言 在渗透测试中,有些工具的运行(例如高版本的Powershell)需要依赖Microsoft .NET Framework 4.0的环境. 而默认配置下,Win7不支持Microsoft ...

  3. oracle命令解锁用户,在命令行下进行Oracle用户解锁

    在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作.下面是具体的过程: 默认的scott用户是 ...

  4. oracle命令解锁用户,在命令行下进行Oracle用户解锁的语句

    在DBA的日常工作中,经常遇到为Oracle用户解锁的操作:这篇文章给出在命令行下进行Oracle用户解锁的操作方法,通过几条简单的解锁语句就能完成此项工作.下面是具体的过程: 默认的scott用户是 ...

  5. 在Windows和Linux系统上,用C语言实现命令行下输入密码回显星号和完全隐藏密码

    本篇目录 引子 在Windows 上实现 在Linux上实现 回显星号 代码解读 运行 完全隐藏 运行 引子 在Windows系统上,当我们使用命令行和MySQL进行交互时,第一步就是要输入密码: - ...

  6. Linux(CentOS 6.X)命令行下安装Oracle 11g

    一.系统要求 1.1.内存及swap(交换空间)要求 RAM swap 1~2G RAM的1.5倍 2~16G 与RAM相等 大于16G 16G 查看内存大小: grep MemTotal /proc ...

  7. linux中 p的作用,使用ctop在命令行中检测Linux容器性能

    ctop是一个新的基于命令行的工具,它可用于在容器层级监控进程.容器通过利用控制器组(cgroup)的资源管理功能,提供了操作系统层级的虚拟化环境.该工具从cgroup收集与内存.CPU.块输入输出的 ...

  8. linux tig不支持中文,tig — 让 git 命令行可视化

    tig 是一款优化 git 命令行的工具,使 git 命令行更加的便捷人性化 .如果用习惯了,会上瘾. image 基础 安装 在 Mac 上最简单的方式是使用 Homebrew: brew inst ...

  9. linux下管理显卡,Linux中显卡用户管理相关应用及命令行

    目的:管理相应显卡环境,汇总指令方便运用与查阅. 相关文档:常用Linux指令汇总(显卡|读写|编译|进程|用户|挂载) 目录 一.显卡相关 1.1  nvidia-smi 动态显示显卡占用 1.2 ...

最新文章

  1. 邮箱的正则表达式验证总结经验
  2. python手写数字识别实验报告_python实现识别手写数字 python图像识别算法
  3. eslint 验证vue文件 报错 unexpected token =解决方法
  4. 关于区块链通证模型,你想知道的都在这
  5. tomcat7不支持html5吗,HTTP状态404说明请求的资源()不可用。的Apache Tomcat/7.0.27
  6. 软件设计师真题知识点
  7. java身高体重源代码_(01-06)编写一个Java应用程序,输出自己的姓名、年龄、身高、籍贯等信息。要求答案中提供源代码及、运行结果的截图 答案:程序运行结果如下...
  8. 音视频系列九 使用soundTouch实现音视频变速
  9. 除了office,常用的办公软件还有这些
  10. java用户权限管理与角色设置(一)
  11. 【C++要笑着学】类和对象 | 初识封装 | 访问限定符 | 类的作用域和实例化 | 类对象模型 | this指针
  12. 40款非常酷的国外创意名片设计欣赏(下)
  13. 英特尔one API——AI为科技加速
  14. 模糊控制(fuzzy control)
  15. 人工智能(AI)资源导航
  16. print spooler服务自动关闭的处理
  17. 谷歌插件blazemeter添加到扩展程序时提示文件缺失不可读取问题解决
  18. L2-036 网红点打卡攻略 (25 分)(哈密顿回路)
  19. 如果我是杀毒软件,对捆绑器会这样思考
  20. Windows 11 ISO原版镜像文件下载(2022年12月)

热门文章

  1. autojs调用java识字_autojs实现抽象类的继承
  2. C/C++课程设计 之学生管理系统(一)
  3. js self = this的解释
  4. java session 详解
  5. TVM:交叉编译和RPC
  6. linux .desktop权限,如何在Ubuntu Xenial Xerus 16.04 Linux Desktop上以root用户身份登录
  7. windows设置mysql使用率_Windows下配置Mysql
  8. python中的pygame模块使用方法_Pygame的基本使用
  9. jupyter kernel_新乡联通案例分享:Jupyter开发环境配置的常用技巧
  10. 雷神开机logo更改_国产外星人雷神再发新品 911MT逐影者RTX2060光追游戏本评测