说明:看网上Linux下安装Oracle 都有图形化的步骤,但是Linux系统通常是直接SSH连接的。系统在初始安装的时候就没有安装桌面,要为了迎合安装oracle需要去安装个Linux桌面,使用VNC。。。总感觉好麻烦。在此研究了一下Oracle 11g 安装。可以在命令行安装。并且可以不需要再初次安装时导出应答文件。
注意:如果是Oracle 12安装的时候需要在一模一样的环境的下使用图形化安装一遍,目的是将安装Oracle 12时的应答文件导出来。这样在以后相同环境,相同目录结构下安装,就可以直接无图形化安装了。
系统:CentOS 6.4 x64
一、准备Oracle 11gR2的安装条件
去官方网站下载 http://www.oracle.com/cn/downloads/index.html 安装包,有2个包,大约2GB左右
包名称:
linux.x64_11gR2_database_1of1.zip
linux.x64_11gR2_database_2of2.zip
1. 系统配置要求
1)物理内存1GB以上,交换空间大约为物理内存的2倍。
2)安装目录(/data/oracle)建议有8GB以上、/tmp目录建议有1GB以上可用空间。
3)提前配置好主机名、IP地址,完成安装以后不要再改主机名。
检查内存大小,大概有2G,满足要求
[root@ns1bin]# free -m
total used free shared buffers cached
Mem: 1876 1808 68 0 12 1486
-/+buffers/cache: 308 1567
Swap: 1023 10 1013
检测swap和/data目录,也是满足要求的
[root@ns1bin]# df -hT
文件系统 类型 容量 已用 可用 已用%% 挂载点
/dev/sda3 ext4 19G 9.7G 8.0G 55% /
tmpfs tmpfs 939M 444M 495M 48% /dev/shm
/dev/sda1 ext4 194M 27M 158M 15% /boot
/dev/sdb1 ext4 20G 6.0G 13G 33% /data
修改交换分区配置,将原来的一行注释掉,新加一行。不然的话
会提示ORA-00845: MEMORY_TARGET not supported on this system错误
vi /etc/fstab
#tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=10240M 0 0
重启系统
reboot
2. 需要的软件环境
yum -y install binutils compat-libstdc++ compat-libstdc++-33elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers ksh libaio-devellibstdc++-devel make sysstat unixODBC-devel binutils-* compat-libstdc++*elfutils-libelf* glibc* gcc-* libaio* libgcc* libstdc++* make* sysstat*unixODBC* wget unzip
yum clean all
卸载ksh,满足兼容要求,改装RHEL5中的pdksh
rpm -e ksh
wgetftp://ftp.pbone.net/mirror/ftp.scientificlinux.org/linux/scientific/55/i386/SL/pdksh-5.2.14-36.el5.i386.rpm
安装pdksh必须要有编译环境,否则报错
rpm -ivh pdksh-5.2.14-36.el5.i386.rpm
报错就添加 --nodeps --force
将oracle软件包上传到/opt目录
解压软件包
unzip linuxamd64_11gR2_database_1of2.zip
unzip linuxamd64_11gR2_database_2of2.zip
3. 内核参数调整(不低于以下值)
vi /etc/sysctl.conf
最后一行添加
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
加载参数
sysctl -p
4. 用户环境要求
1)创建相关用户、组账号
安装组
groupadd oinstall
管理组
groupadd dba
运行用户
useradd -g oinstall -G dba oracle
设置密码
passwd oracle
2)调整用户变量
vi ~oracle/.bash_profile
最后一行添加
umask 022
export.UTF-8
export PATH=$PATH:/data/oracle/product/11gr2/dbhome_1/bin
export ORACLE_HOME=/data/oracle/product/11gr2/dbhome_1
export ORACLE_SID=orcl
source ~oracle/.bash_profile
vi /etc/profile
最后一行添加
export PATH=$PATH:/data/oracle/product/11gr2/dbhome_1/bin
export ORACLE_HOME=/data/oracle/product/11gr2/dbhome_1
export ORACLE_SID=orcl
更新系统环境
source /etc/profile
3)调整会话限制
vi /etc/pam.d/login
最后一行添加
session required pam_limits.so
vi /etc/security/limits.conf
最后一行添加
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft nofile 32768
oracle hard nofile 65536
5. 安装目录准备
创建基本目录
mkdir -p /data/oracle
chown -R oracle:oinstall /data/oracle/
chmod -R 775 /data/oracle/
若应答文件内已配置,此文件貌似可无
vi /etc/oraInst.loc
inventory_loc=/data/oracle/oraInventory
inst_group=oinstall
6.正式安装
切换到oracle用户,注意,必须是oracle用户,root用户是无法安装的
su oracle
cd /opt/database
./runInstaller-silent -debug -force \
DECLINE_SECURITY_UPDATES=true\
oracle.install.option=INSTALL_DB_SWONLY\
UNIX_GROUP_NAME=oinstall\
INVENTORY_LOCATION=/data/oracle/oraInventory\
ORACLE_HOME=/data/oracle/product/11gr2/dbhome_1\
ORACLE_BASE=/data/oracle\
oracle.install.db.InstallEdition=EE\
oracle.install.db.EEOptionsSelection=true\
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.3.0,oracle.oraolap:11.2.0.3.0,oracle.rdbms.dm:11.2.0.3.0,oracle.rdbms.lbac:11.2.0.3.0,oracle.rdbms.rat:11.2.0.3.0\
oracle.install.db.DBA_GROUP=dba\
oracle.install.db.OPER_GROUP=dba\
oracle.install.db.isRACOneInstall=false\
DECLINE_SECURITY_UPDATES=true\
正在启动 OracleUniversal Installer...
可以在以下位置找到本次安装会话的日志:
/data/oracle/oraInventory/logs/
/data/oracle/product/11gr2/dbhome_1/root.sh
Check/data/oracle/product/11gr2/dbhome_1/install/root_ns1.centos.com_2014-12-04_04-24-51.logfor the output of root script
启动监听,第一次运行会报错,会生成listener.ora文件
su oracle
netca /silent /responsefile /opt/database/response/netca.rsp
正在对命令行参数进行语法分析:
参数"silent"= true
参数"responsefile"= /opt/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
为该监听程序提供的信息正由此计算机上的其他软件使用。
未能启动监听程序。
有关详细信息, 请查看跟踪文件:/data/oracle/cfgtoollogs/netca/trace_OraDB12Home1-1412044上午3026.log
Oracle Net Services 配置失败。退出代码是1
编辑监听文件
su root
vi /data/oracle/product/11gr2/dbhome_1/network/admin/listener.ora
将180.168.41.175改成自己的主机名
例如:
(ADDRESS = (PROTOCOL = TCP)(HOST = ns5.centos.com)(PORT =1521))
再次运行
su oracle
netca /silent /responsefile /opt/database/response/netca.rsp
正在对命令行参数进行语法分析:
参数"silent"= true
参数"responsefile"= /opt/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
监听程序"LISTENER" 已存在。
成功完成 Oracle NetServices 配置。退出代码是0
启动服务
lsnrctl start
查看状态
lsnrctl status
查看监听端口
[oracle@ns1 database]$ netstat -naptlu | grep 1521
(Not all processes could be identified, non-owned processinfo
will not be shown,you would have to be root to see it all.)
tcp 0 0 :::1521 :::* LISTEN 4898/tnslsnr
执行完后, 监听就已经启动了, 默认端口是1521, 默认是动态监听, 只要实例启动了就会监听到.
su root
cp /opt/database/response/dbca.rsp ~oracle
chmod 755 ~oracle/dbca.rsp
chown oracle:oinstall ~oracle/dbca.rsp
su oracle
vi ~/dbca.rsp
GDBNAME = "orcl.ns5.centos.com" //全局数据库的名字=SID+主机域名
SID="orcl" // SID
CHARACTERSET="AL32UTF8" //编码
NATIONALCHARACTERSET="UTF8" //编码
SYSPASSWORD = "Oracle" //密码
SYSTEMPASSWORD = "Oracle" //密码
进行静默安装数据库,请耐心等待几分钟
[oracle@ns1database]$ dbca -silent -responseFile ~/dbca.rsp
复制数据库文件
1% 已完成
3% 已完成
11% 已完成
18% 已完成
26% 已完成
33% 已完成
37% 已完成
正在创建并启动 Oracle 实例
40% 已完成
45% 已完成
50% 已完成
55% 已完成
56% 已完成
60% 已完成
62% 已完成
正在进行数据库创建
66% 已完成
70% 已完成
73% 已完成
85% 已完成
96% 已完成
100% 已完成
有关详细信息, 请参阅日志文件"/data/oracle/cfgtoollogs/dbca/orcl/orcl.log"。
[root@ns1~]$ sqlplus /nolog
SQL> conn / as sysdba
Connected.
SQL> startup
ORA-01081:cannot start already-running ORACLE - shut it down first
Oracle用户密码有效期问题
查看当前有效期,默认是180天
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' ANDresource_name='PASSWORD_LIFE_TIME';
PROFILE
--------------------------------------------------------------------------------
RESOURCE_NAME RESOURCE
----------------------------------------
LIMIT
--------------------------------------------------------------------------------
COM
---
DEFAULT
PASSWORD_LIFE_TIME PASSWORD
180
NO
修改为无限期
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
再次查看
SQL> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' ANDresource_name='PASSWORD_LIFE_TIME';
发现已经是无限期了
DEFAULT
PASSWORD_LIFE_TIME PASSWORD
UNLIMITED
NO
Oracle的安装过程就结束了。