准备
修改用户的
SHELL
限制:vim /etc/security/limits.conf
添加如下内容:
oracle soft nproc 2047oracle hard nproc 16384oracle soft nofile 1024oracle hard nofile 65536
修改
/etc/pam.d/login
文件vim /etc/pam.d/login
添加如下内容:
session required /lib/security/pam_limits.sosession required pam_limits.so
修改
Linux
内核配置vim /etc/sysctl.conf
添加如下内容:
fs.file-max = 6815744fs.aio-max-nr = 1048576kernel.shmall = 2097152kernel.shmmax = 2147483648kernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 4194304net.core.rmem_max = 4194304net.core.wmem_default = 262144net.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 fifi
创建用户和组
# 创建用户组groupadd oinstallgroupadd dba# 创建用户并分配用户组# 我安装时存在 oracle 用户不在 oinstall 的问题,最好在 /etc/group 中再设置一遍useradd -g oinstall -g dba -m oraclepasswd oracle
创建 Oracle 目录并设置所有权为 oracle 用户及其所在组
mkdir /home/oracle/appmkdir /home/oracle/app/oraclemkdir /home/oracle/app/oradatamkdir /home/oracle/app/oracle/productchown -R oracle:oinstall /home/oracle/app
配置 oracle 用户的环境变量,必须切换到新创建的 oracle 用户下
su oraclevim .bash_profile
添加如下内容:
umask 022export ORACLE_BASE=/home/oracle/appexport ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1export ORACLE_SID=orclexport PATH=$PATH:$HOME/bin:$ORACLE_HOME/binexport 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* -yyum install -y glibc-kernheaders
修改 oracle 的配置文件(只是修改应答配置文件)
在解压的database目录中有一个response目录,其中有三个文件:
db_install.rsp
安装应答配置文件,修改此文件!dbca.rsp
创建数据库应答netca.rsp
建立监听、本地服务名等网络设置应答
# 此文件可以参考 .note/oracle/db_install.rspvim database/response/db_install.rsp
实际上需要修改的有如下内容:
UNIX_GROUP_NAME=oinstallINVENTORY_LOCATION=/opt/oracle/oraInventorySELECTED_LANGUAGES=en,zh_CNORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1ORACLE_BASE=/home/oracle/apporacle.install.db.InstallEdition=EEoracle.install.db.DBA_GROUP=dbaoracle.install.db.OPER_GROUP=oinstalloracle.install.db.config.starterdb.SID=orclDECLINE_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 PassedChecking swap space: must be greater than 150 MB. Actual 4095 MB PassedPreparing 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.logThe 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.shTo execute the configuration scripts: 1. Open a terminal window 2. Log in as "root" 3. Run the scripts 4. Return tothis 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*PlusSP2-0667: Message file sp1<lang>.msb not foundSP2-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 实例没有启动