准备
-
修改用户的
SHELL
限制:vim /etc/security/limits.conf
添加如下内容:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
-
修改
/etc/pam.d/login
文件vim /etc/pam.d/login
添加如下内容:
session required /lib/security/pam_limits.so session required pam_limits.so
-
修改
Linux
内核配置vim /etc/sysctl.conf
添加如下内容:
fs.file-max = 6815744 fs.aio-max-nr = 1048576 kernel.shmall = 2097152 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576
source /etc/sysctl.conf # 使修改立即生效,我当时键入如下命令时报没有找到命令,所以重启了 centos
-
修改
/etc/profile
文件vim /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
-
创建用户和组
# 创建用户组 groupadd oinstall groupadd dba # 创建用户并分配用户组 # 我安装时存在 oracle 用户不在 oinstall 的问题,最好在 /etc/group 中再设置一遍 useradd -g oinstall -g dba -m oracle passwd oracle
-
创建 Oracle 目录并设置所有权为 oracle 用户及其所在组
mkdir /home/oracle/app mkdir /home/oracle/app/oracle mkdir /home/oracle/app/oradata mkdir /home/oracle/app/oracle/product chown -R oracle:oinstall /home/oracle/app
-
配置 oracle 用户的环境变量,必须切换到新创建的 oracle 用户下
su oracle vim .bash_profile
添加如下内容:
umask 022 export ORACLE_BASE=/home/oracle/app export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
-
安装必要的包
yum install -y compat-libstdc* yum install -y elfutils-libelf* yum install -y gcc* yum install -y glibc* yum install -y ksh* yum install -y libaio* yum install -y libgcc* yum install -y libstdc* yum install -y make* yum install -y sysstat* yum install libXp* -y yum install -y glibc-kernheaders
-
修改 oracle 的配置文件(只是修改应答配置文件)
在解压的 database 目录中有一个 response 目录,其中有三个文件:
-
db_install.rsp
安装应答配置文件,修改此文件! -
dbca.rsp
创建数据库应答 -
netca.rsp
建立监听、本地服务名等网络设置应答
# 此文件可以参考 .note/oracle/db_install.rsp vim database/response/db_install.rsp
实际上需要修改的有如下内容:
UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/opt/oracle/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1 ORACLE_BASE=/home/oracle/app oracle.install.db.InstallEdition=EE oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oinstall oracle.install.db.config.starterdb.SID=orcl DECLINE_SECURITY_UPDATES=true
-
安装
用 oracle 用户来运行此命令。 请注意 runInstaller 文件存在于 database 目录下,而不是在 database/install 下。
./runInstaller -responseFile /home/oracle/database/response/db_install.rsp -silent -ignorePrereq
英文环境下的日志:
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB. Actual 122202 MB Passed
Checking swap space: must be greater than 150 MB. Actual 4095 MB Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2017-02-06_10-38-53AM. Please wait ...[oracle@piumnl database]$ You can find the log of this install session at:
/opt/oracle/oraInventory/logs/installActions2017-02-06_10-38-53AM.log
The following configuration scripts need to be executed as the "root" user.
\#!/bin/sh
\#Root scripts to run
/opt/oracle/oraInventory/orainstRoot.sh
/home/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to
this window and hit "Enter" key to continue
安装完之后的操作
- 运行提示中的两个 sh 文件
-
开启监听
lsnrctl status # 查看状态 lsnrctl start # 启动监听
-
额外开启 em,即 1158 端口的 em 路径
emca -repos create # 提示 ` 严重: Dbcontrol 资料档案库已存在。改正错误, 然后以独立模式重新运行 EM Configuration Assistant。` # 删除 DBcontrol,此时刚安装完数据库,DBControl 应该是可以删除的 emca -repos drop # 重新配置并创建 emca -config dbcontrol db -repos create
测试
通过
su
切换不会改变环境变量,即从 root 切换到 oracle 中不会改变环境变量为 oracle 的,实际还是 root 的。su - [username]
似乎可以,但未曾尝试过。通过 root 切换到 oracle 并在 sqlplus 命令所在目录下执行 sqlplus
所报的错误:
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
使用 oracle 用户登录,运行 sqlplus
。
sqlplus
$ Enter user-name: SYS as SYSDBA
$ Enter password: (直接回车即可)
# 修改 SYS 用户的密码,如此才可以通过 SQL Developer 访问,空密码会报 ora 01031 的错误
alter user SYS identified by 123456; # 注意在生产环境中不能使用这种简单的密码。# 可能会出现如下问题,这是因为没有开启监听或没有开启 oracle 实例:# *
# ERROR at line 1:
# ORA-01034: ORACLE not available
# Process ID: 0
# Session ID: 0 Serial number: 0
# 开启监听的方式
# 退出 sqlplus,并执行 lsnrctl start 命令
# 开启 oracle 实例
# 进入 sqlplus,执行 startup,如果被告知已启动,可以输入 shutdown immediate;,等结束后再执行 startup
查看监听及数据库状态,启用或停止
lsnrctl [status | start | stop] # 查看监听及数据库状态,启用或停止
安装失败的问题总结
-
错误:
Email Address Not Specified
- 在
Oracle 11g R2
中必须指定 metalink 账号! - 也可以在
response file
中设置DECLINE_SECURITY_UPDATES=true
,而不是默认的 false。
- 在
-
错误:
[INS-32038] The operating system group specified for central inventory (oraInventory) ownership is invalid.
- 确认当前安装的用户在
UNIX_GROUP_NAME
所设置的用户组中
vim /etc/group
- 确认当前安装的用户在
-
错误:
[INS-13013] Target environment do not meet some mandatory requirements.
- 安装命令中加入选项
-ignorePrereq
- 安装命令中加入选项
运行失败问题总结
- 错误:
ora-12505:TNS:listener does not currently know of SID given in connect descriptor
可能是监听没有启动,也可能是 Oracle 实例没有启动