目录
一、安装前的准备工作
1、版本,地址
版本: linux.x64_11gR2_database
下载地址 :
http://mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso,
http://mirrors.163.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD2.iso,
2、检查安装环境检查
操作系统:centos6或7
数据库 :oracle11g R2 x64 for linux
内存:至少1G
swap:如果1-2G物理内存,最好设置swap为1.5-2倍的物理内存大小
硬盘空间:软件目录需要4G多点,数据库存入目录要2G左右
3、 安装必须软件
yum install binutils compat-libstdc++-33 compat-libcap1 elfutils elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel -y
4、配置OS内核参数
sysctl.conf用于配置OS的内核参数,具体的参数可以根据安装时的log提示来选择。
cat>>/etc/sysctl.conf <<EOF kernel.shmall = 268435456 fs.file-max = 65535 fs.inotify.max_user_watches=892000 fs.aio-max-nr = 1048576 kernel.core_uses_pid = 1 kernel.shmmax = 4294967295 #根据内存调整8G:5368709120;16G:10737418240;32G:21474836480 64G:42949672960 kernel.shmmni = 4096 kernel.shmall = 2097152 #根据内存调整8G:1310720 16G:2621440;32G:5242880;64G:10485760 kernel.sem = 250 32000 100 128 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.file-max = 6815744 net.ipv4.ip_local_port_range = 9000 65000 EOF
使之生效
[root@lqqpc]# /sbin/sysctl -p
5、增加用户组及用户
添加用户和组
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle
设置oracle用户的密码
[root@lqqpc]#passwd oracle
新建目录和权限设置
mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01
6、修改系统环境变量
vi /home/oracle/.bash_profile
umask 022 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_SID=orcl
cat>>/etc/security/limits.conf <<EOF oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 EOF
cat>>/etc/pam.d/login<<EOF session required pam_limits.sosession session required /lib64/security/pam_limits.so EOF
cat>>/etc/profile<<EOF if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/sh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi EOF
7、关闭SELinux及防火墙
1.更改/etc/selinux/config中SELINUX的值为disabled [root@lqqpc etc]#vim /etc/selinux/config SELINUX=disabled 在线关闭:setenforce 0 2.#关闭防火墙 cenots 6 /etc/init.d/iptables stop chkconfig iptables off centos 7 systemctl stop firewalld systemctl disable firewalld
二、安装oracle
1、解压oracle软件
su - oracle unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
2、打开linux终端,进去解压后的目录
cd /oracle/database [oracle@lqqpc database]$ ./runInstaller
3、安装图解:
4、安装软件:pdksh-5.2.14
wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
5、报错问题:
运行到报错:build angent libraries报错:
Exception String: Error in invoking target 'agent nmhs'
解决方法:
vi $ORACLE_HOME/sysman/lib/ins_emagent.mk
查找文件行:$(MK_EMAGENT_NMECTL) 替换: $(MK_EMAGENT_NMECTL)-lnnz11
完成后,点击继续,
6、java 报错,横条问题:
如果报错过程中(linux 7会出现),只弹出了一个横条或竖条框,而没有continue,retry这些按钮,应该是在安装过程中,默认自动调用的 jre1.7.0时出现的bug。
改为1.8.0即可,见下面解决方法:
解决方法1:在CentOS7上安装Oracle的时候经常碰到oracle安装客户端的弹窗很小,有的时候还会只有一个竖条,很是烦人。
####解决办法:带参数运行:./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
解决方法2:横条框是可以拉伸的,直接拉伸即可
7、root执行脚本:
(1)[root@localhost u01]# /u01/app/oraInventory/orainstRoot.sh
(2)[root@localhost u01]# /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
8、安装监听程序
运行netca(会出现横条框,拉伸即可)
下一步,下一步,完成
9、安装oracle 数据库实例
oracle用户下运行dbca
又是竖条,拉伸开即可,安装
安装到这里就完成了
10、 验证
系统重启后启动oracle,进入终端输入
[oracle@lqqpc ~]$ sqlplus / as sysdba sql> startup sql> select * from dual; sql> exit
启动oracle监听程序
[oracle@lqqpc ~]$ cd $ORACLE_HOME/bin [oracle@lqqpc bin]$ lsnrctl start
如果出现以下内容,参照解答1中解决方法
The listener supports no services The command completed successfully
启动em服务
[oracle@lqqpc bin]$ emctl start dbconsole
如果出现问题无法启动,可以重新安装em,使用如下命令来修复
emca -config dbcontrol db -repos recreate
访问地址为https://localhost:5500/em
访问的时候遇到了一个问题,就是在centos系统中用火狐无法连接上去(服务已经正确启动),使用主机的IE访问时候提示证书错误,忽略也无法访问。后来使用最新版本的火狐在主机中可以访问虚拟机的em服务了。
11、 让oracle脚本启动
#修改/etc/oratab [oracle@lqqpc bin]$ gedit /etc/oratab orcl:/oracle/11g:N #改为 orcl:/oracle/11g:Y 修改$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut,找到ORACLE_HOME_LISTNER=$1,将$1替换为$ORACLE_HOME [oracle@lqqpc bin]$ gedit $ORACLE_HOME/bin/dbstart [oracle@lqqpc bin]$ gedit $ORACLE_HOME/bin/dbshut
12、设置防火墙,远程可访问
[oracle@lqqpc bin]$ gedit /etc/sysconfig/iptables
#添加如下两行 -A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5500 -j ACCEPT
#重启防火墙
[oracle@lqqpc bin]$ /etc/init.d/iptables restart
#如果要关闭防火墙
[oracle@lqqpc bin]$ /etc/init.d/iptables stop
13、解答
(1)lsnrctl start后提示 The listener supports no services lsnrctl start 提示: The listener supports no services The command completed successfully
将配置listener.ora # listener.ora Network Configuration File: /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rycdb)(PORT = 1521)) ) ) ADR_BASE_LISTENER = /u01/app/oracle tnsnames.ora JRTDB2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = rycdb)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jrtdb2) ) )
看了网上的方法
--登录数据库
$sqlplus / as sysdba
--显示服务名
SQL>show parameter service_names
--强制注册服务
SQL>alter system register;
--查看监听状态
$lsnrctl status
这种方法不行,解决方法:在listener.ora后面加入
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = jrtdb2) (SID_NAME = jrtdb2) )
)
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-APR-2012 14:36:58
Copyright (c) 1991, 2009, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rycdb)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date 25-APR-2012 14:29:19
Uptime 0 days 0 hr. 7 min. 39 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/rycdb/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rycdb)(PORT=1521)))
Services Summary...
Service "jrtdb2" has 2 instance(s).
Instance "jrtdb2", status UNKNOWN, has 1 handler(s) for this service...
Instance "jrtdb2", status READY, has 1 handler(s) for this service...
Service "jrtdb2XDB" has 1 instance(s).
Instance "jrtdb2", status READY, has 1 handler(s) for this service...
The command completed successfully
问题解决,其中UNKNOWN表示静态注册
oracle监听 动态注册与静态注册
动态注册:在instance启动的时候PMON进程根据init.ora中的instance_name,service_names两个参数将实例和服务动态注册到listener中。
可以在sqlplus下通过
show parameter service_names 和show parameter instance_name 来查看
动态注册默认只注册到默认的监听器上(名称是LISTENER、端口是1521、协议是TCP)
静态注册:实例启动时读取listener.ora文件的配置,将实例和服务注册到监听程序。无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务。
lsnrctl status
实例状态为UNKNOWN值时表明此服务是静态注册的设置
文章评论