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))'
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用户,不会报错