欢迎来到魔幻小生的博客

CentOS静默安装(无图形化界面)Oracle11g数据库

一、安装前的准备

需要Oracle11g安装包(自行找资源):       linux.x64_11gR2_database_1of2.zip        linux.x64_11gR2_database_2of2.zip

需要足够的磁盘空间

修改主机名,及ip对应关系

--设置主机名,也可以直接修改配置文件/etc/sysconfig/network,不过这个是重启之后才起作用
#sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=test/g" /etc/sysconfig/network

--如果不想重启,则使用下面命令,使当前生效
#hostname test

--添加主机名与IP对应记录
#vi /etc/hosts 
10.20.60.74    test

关闭Selinux

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/"/etc/selinux/config  
# setenforce 0

 安装依赖包

yum -y install binutils compat-libstdc+±33 compat-libstdc+±33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++

修改内核参数/etc/sysctl.conf

#设置相关参数的系统默认值。如果该文件中已有相关参数的设置,则确保参数值不小于如下对应值;如果还没有相关参数的设置,则按照如下格式添加相应的参数设置行

net.ipv4.ip_local_port_range= 9000 65500 
fs.file-max = 6815744 
kernel.shmall = 10523004 
kernel.shmmax = 6465333657 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100128 
net.core.rmem_default=262144 
net.core.wmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_max=1048576 
fs.aio-max-nr = 1048576

# sysctl -p #使配置生效

修改用户限制文件/etc/security/limits.conf

# 在配置文件末尾添加

 oracle           soft    nproc           2047
 oracle           hard    nproc           16384
 oracle           soft    nofile          1024
 oracle           hard    nofile          102400

修改配置文件/etc/pam.d/login

# 在配置文件末尾添加

 session  required   /lib64/security/pam_limits.so
 session  required   pam_limits.so

注意:64位系统使用/lib64/security/pam_limits.so,32位系统是lib,如果配置错误会导致无法登陆linux系统

 二、创建用户及组

//创建用户及组
#groupadd oinstall 
#groupadd dba
#useradd -g oinstall -G dba -d /home/u11 oracle
#passwd oracle  //修改oracle用户密码

创建安装目录

//创建安装目录
#mkdir -p /opt/app/oracle/product/11.2.0/dbhome_1
//数据文件存放目录
#mkdir -p /opt/app/oracle/oradata
//数据恢复目录
#mkdir -p /opt/app/oracle/recovery_area
//数据库创建及使用过程中的日志目录
#mkdir -p /opt/app/oracle/oraInventory
//修改安装目录权限
#chown -R oracle:oinstall /opt/app/oracle
#chmod 775 /opt/app/oracle

登陆oracle用户并设置环境变量

su - oracle
vi .bash_profile
# 在配置文件末尾添加
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64
export ORACLE_SID=orcl

//如果设置NLS_LANG,容易产生导入sql或dmp出错,因为其他环境下的不是utf8
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

#source .bash_profile   //使设置生效

 三、安装Oracle数据库

 解压linux.x64_11gR2_database_1of2.zip        linux.x64_11gR2_database_2of2.zip,会得到一个database文件夹,其中

 

db_install.rsp //安装应答配置文件

dbca.rsp //创建数据库应答

netca.rsp //建立监听、本地服务名等网络设置应答

 

修改配置文件db_install.rsp,主要修改地方如下

oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=DB_m2
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/opt/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/opt/app/oracle/oradata
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/opt/app/oracle/recovery_data
DECLINE_SECURITY_UPDATES=true    //重要:一定要设为true,否则无法安装

登陆oracle用户进行安装

sh runInstaller -silent -responseFile /home/database/response/db_install.rsp 
//安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。
//打开另一个终端,执行命令
#tail -100 f /u01/app/oracle/oraInventory/logs/installActions......log
 

//可以实时跟踪查看安装日志,了解安装的进度。
//当出现
  以下配置脚本需要以 "root" 用户的身份执行。
   #!/bin/sh
   #要运行的 Root 脚本

  /opt/app/oracle/oraInventory/orainstRoot.sh
  /opt/app/oracle/product/11.2.0/dbhome_1/root.sh
  要执行配置脚本, 请执行以下操作:
     1. 打开一个终端窗口
     2. 以 "root" 身份登录
     3. 运行脚本
     4. 返回此窗口并按 "Enter" 键继续

  Successfully Setup Software.

//出现这个的话,说明已安装成功,则需要按提示操作,操作完返回Enter成功

 

 配置监听配置文件response/netca.rsp

$netca /silent /responsefile /home/database/response/netca.rsp

  INSTALL_TYPE=""custom"" 

  LISTENER_NUMBER=1 

  LISTENER_NAMES={"LISTENER"} 

  LISTENER_PROTOCOLS={"TCP;1521"} 

  LISTENER_START=""LISTENER""



正在对命令行参数进行语法分析:
 参数"silent" = true
 参数"responsefile" = /home/oracle/response/netca.rsp
 完成对命令行参数进行语法分析。
 Oracle Net Services 配置:
 完成概要文件配置。
 Oracle Net 监听程序启动:
  正在运行监听程序控制:
    /opt/app/oracle/11.2.0/bin/lsnrctl start LISTENER
  监听程序控制完成。
  监听程序已成功启动。
 监听程序配置完成。
 成功完成 Oracle Net Services 配置

//成功运行后,在/opt/oracle/11.2.0/network/admin目录下生成sqlnet.ora和listener.ora两个文件。
//完成后通过命令“netstat -tlnp”可以查看到1521端口已开
tcp  0   0 :::1521        :::*      LISTEN      5477/tnslsnr

 修改配置文件dbca.rsp,静默建立新库

 RESPONSEFILE_VERSION = "11.2.0"  //不能更改
 OPERATION_TYPE = "createDatabase"
 GDBNAME = "orcl.dlxg.gov.cn"  //全局数据库的名字=SID+主机域名
 SID = "orcl"    //对应的实例名字
 TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
 DATAFILEDESTINATION = /opt/oracle/oradata //数据文件存放目录
 RECOVERYAREADESTINATION=/opt/oracle/recovery_data //恢复数据存放目录
 CHARACTERSET = "AL32UTF8"   //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
 TOTALMEMORY = "5120"    //oracle内存5120MB

//还可以在该文件中修改初始用户名密码

配置完成后执行命令

$dbca -silent -responseFile /home/database/response/dbca.rsp

 1% 已完成
 3% 已完成
 11% 已完成
 18% 已完成
 26% 已完成
 37% 已完成
 正在创建并启动 Oracle 实例
 40% 已完成
 45% 已完成
 50% 已完成
 55% 已完成
 56% 已完成
 60% 已完成
 62% 已完成
 正在进行数据库创建
 66% 已完成
 70% 已完成
 73% 已完成
 85% 已完成
 96% 已完成
 100% 已完成
 有关详细信息, 请参阅日志文件 "/opt/app/oracle/cfgtoollogs/dbca/orcl/orcl.log"

su - oracle
sqlplus / as sysdba

 

 数据库可以正常使用了!

 四、遇到的问题

1.启动数据库时报错

 

SQL> startup
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=infosec)(PORT=1521))'

 

解决方法:
/etc/hosts中添加项:
10.20.60.74    infosec
重启服务:

 2.切换oracle用户时提示:

[root@infosec ~]# su - oracle
-bash: ulimit: open files: cannot modify limit: Operation not permitted

 主要是/etc/security/limits.conf的配置问题,之前参考其它博客,改为了如下内容,和本机的配置不一致,才导致出错:

oracle  soft   nproc     2047
oracle  hard   nproc     16384
oracle  soft   nofile    1024
oracle  hard   nofile    65536

而在本机的/etc/profile设置是如下的:

 只需将/etc/security/limits.conf中内容改为:

 oracle    hard    nofile    102400

此时再次切换至oracle用户,不会报错

 

 

posted @ 2021-05-19 18:33  魔幻小生  阅读(324)  评论(0编辑  收藏  举报