centos7 64位安装oracle11g 64位

 

JDK的安装:
虚拟机第一次安装oracle11g,虽然oracle8i之后oracle自带jdk,系统带的open_jdk看着不爽,卸载自带jdk,新装jdk
rpm -qa|grep jdk   --查看jdk相关的rpm(就是以x86_64结尾的)
yum -y remove +查出jdk相关的rpm  一个个卸载
然后下载jdk(自行下载,版本越高越好),解压安装

接着设置环境变量: vi /etc/profile 加入
export JAVA_HOME=jdk的路径
export JRE_HOME=
jdk的路径/jre
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

之后保存,source /etc/profile 使环境变量生效
java -version --测试jdk是否安装成功


ORACLE的安装之前的准备:所有的准备工作都是在root用户下
--建立相应的文件

su root  --切换为root

groupadd oinstall --建立oinstall组
groupadd dba --建立dba组,这是oracle要求
useradd -g oinstall -g dba -m oracle --建立oracle用户并归入oinstall、dba组

passwd oracle  --为oracle用户设置密码
id oracle--验证oracle用户是否建立成功
mkdir -p /data/oracle  --创建oracle安装目录

mkdir -p /data/oraInventory--创建oracle配置文件目录

mkdir -p /data/database --创建oracle数据库软件包解压目录
ls  /data --验证文件是否创建成功
chown -R oracle:oinstall /data/oracle --将oracle文件所有者设为oinstall组下的oracle用户

chown -R oracle:oinstall /data/oraInventory --将oraInventory文件的所有者改为oinstall组下的oracle用户
chown -R oracle:oinstall /data/database --将database文件的所有者改为oinstall组下的oracle用户

 

--修改系统标识
vi /etc/redhat-release  --oracle不兼容centos,需要修改识别为redhat-7

 

--设置防火墙
初步文件都建好了,现在设置防火墙,开放默认1521端口,当然开放实际端口号根据需求来定

systemctl status firewalld.service --查看防火墙状态
systemctl disable firewalld.service--移除防火墙(个人虚拟机没必要,建议移除,如需恢复:yum -y install iptables-services)
对于centos7系列,配置开放端口号:

vi /etc/sysconfig/iptables--设置开放端口号

 

problem 1:
当你以前移除firewalld.service,现在需要防火墙,/etc/sysconfig/    路径下可能会没有iptables文件
------------------------------------------------------------------------------------------------------
Centos 6系列配置如下:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT  --开放1521端口

service iptables save --保存iptables
service iptables restart --重启服务

Centos 7系列配置如下:
service stop firewalld.service--不管有没有防火墙,执行一下万无一失
yum install iptables-services --下载安装防火墙服务,如果之前再/etc/sysconfig/ 路径下没有iptables文件,安装之后就会有

-------------------------------------------------------------------------------------------------------

--problem 2:可能存在问题说 yum安装的时候提示:another app is currently holding the yum lock,就是yum进程被占用

解决办法:rm -f /var/run/yum.pid --强制关闭yun进程

-------------------------------------------------------------------------------------------------------

systemctl enable iptables--防火墙设置为开机启动

vi /etc/sysconfig/iptables  或者

firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
firewall-cmd --reload

--编辑防火墙服务,将开放的端口号加入
-A INPUT -p tcp -m state NEW -m tcp -dport 1521 -j ACCEPT

wq保存,

service iptables save --永久保存防火墙规则
systemctl restart iptables--重新启动防火墙

----------------------------------------------------------------------------------------------------------


--安装oracle所依赖的包

binutils-2.27-27.base.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.i686
compat-libstdc++-33-3.2.3-72.el7.i686
elfutils-libelf-0.170-4.el7.x86_64
elfutils-libelf-devel-0.170-4.el7.x86_64
gcc-4.8.5-28.el7_5.1.x86_64
gcc-c++-4.8.5-28.el7_5.1.x86_64
glibc-2.17-222.el7.x86_64
glibc-2.17-222.el7.i686
glibc-2.17-222.el7.i686
glibc-common-2.17-222.el7.x86_64
glibc-devel-2.17-222.el7.x86_64
glibc-devel-2.17-222.el7.i686
glibc-devel-2.17-222.el7.i686
glibc-headers-2.17-222.el7.x86_64
ksh-20120801-137.el7.x86_64
libaio-0.3.109-13.el7.x86_64
libaio-0.3.109-13.el7.i686
libaio-0.3.109-13.el7.i686
libaio-devel-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.i686
libaio-devel-0.3.109-13.el7.i686
libgcc-4.8.5-28.el7_5.1.x86_64
libgcc-4.8.5-28.el7_5.1.i686
libgcc-4.8.5-28.el7_5.1.i686
libstdc++-4.8.5-28.el7_5.1.x86_64
libstdc++-4.8.5-28.el7_5.1.i686
libstdc++-4.8.5-28.el7_5.1.i686
libstdc++-devel-4.8.5-28.el7_5.1.x86_64
libstdc++-devel-4.8.5-28.el7_5.1.i686
make-3.82-23.el7.x86_64
sysstat-10.1.5-13.el7.x86_64
unixODBC-2.3.1-11.el7.x86_64
unixODBC-2.3.1-11.el7.i686
unixODBC-devel-2.3.1-11.el7.x86_64
unixODBC-devel-2.3.1-11.el7.i686
老实人就一个个安装,喜欢快的可以快速安装,但对于32位的包需要一个个手动安装
yum install -y binutils compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc glibc-common glibc-devel glibc-devel glibc-headers ksh libaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel

 

--关闭selinux(不明白为什么,但大多数百度安装都关闭)
vi /etc/selinux/config --编辑selinux配置,修改selinux=disabled,保存


--修改内核参数
vi /etc/sysctl.conf   --编辑内核参数,将下列参数加入,并保存
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

---------------------------------------------------------------------------------------
sysctl -p  #使修改的内核参数生效

--对oracle用户设置限制,提高软件运行性能
vi  /etc/security/limits.conf  #编辑参数

oracle soft nproc 2047
oracle hard nproc 16348
oracle soft nofile 1024
oracle hard nofile 65536

加入至末尾 End of file上面

--一切准备就绪之后,准备配置环境变量
vi /home/oracle/.bash_profile  #编辑环境变量

将 如下加入 export path 之后,保存

export ORACLE_BASE=/data/oracle    #oracle的安装目录,据自己电脑安装的目录设置

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #oracle的数据库路径,安装自己电脑数据库路径设置
export ORACLE_SID=orcl  #设置要创建的数据库的实例
export ORACLE_UNQNAME=orcl
export ORACLE_TERM=xterm #窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致

-------------------------------------------------------------------------------------------------------------------
source /home/oracle/.bash_profile  #使环境变量生效

-------------------------------------------------------------------------------------------------------------------
problem 3: 如果/home/oracle/.bash_profile 中 export语句中间存在空格,会报
ERROR:export '=' not a valid identifier
解决办法:重新进入文件,手动一个个去掉空格
---------------------------------------------------------------------------------------------------------------------


--上传linux安装包,不建议通过wget镜像下载,太大了,本地下载网速快
用两种方式:第一种ftp方式,通过ip和端口号实现与本地连接
第二种方式:虚拟机设置的时候有一个共享文件夹,设置好之后,下载linux安装包到该路径下,然后linux路径在/mnt/路径下一直找
一般传到linux /usr/local/src路径下

unzip linux包1.zip -d /data/oracle
unzip linux包2.zip -d /data/oracle
然后就压缩好的问价所有者修改位oracle用户
chown -R  oracle:oinstall /data/oracle/ #修改文件的所有者

ll /data/oracle/database/database/  #验证文件所有者

准备安装
切换为oracle用户,建议注销切换oracle用户
./data/oracle/database/database/runInstaller  #准备安装oracle,不能在root用户,要在文件所有者oracle用户下执行
-----------------------------------------------------------
可能会报localhost无法确认,可能原因是虚拟机安装的时候选择的hostname与network里面不一致
解决办法:
hostname #查看虚拟机hostname
vi /etc/sysconfig/network #有可能network文件不存在,没有vi有新建文件夹的功能
加入:

NETWORKING=yes
HOSTNAME=macxiao  #基于你想要设置的主机名
GATEWAY=192.168.1.1 #网关地址
保存,然后再编辑 vi /etc/hosts  #将hostname加入,保存
然后再修改oracle路径下的listener.ora将hostname修改为macxiao(与上面保持一直即可)
lsnrctl start  #重启监听
---------------------------------------------------------------------

重启监听的时候,可能会报

The listener supports no services
The command completed successfully

可能是远程连接出的问题或者是监听是手工建立,没有注册
解决办法:以sys身份登陆数据库,show parameter service 查看当前的服务名,然后开启服务 startup open 服务名;

alter system register --手工注册监听服务
监听已经启动
如果手动注册失败,只有重建监听,就是vi编辑

---------------------------------------------------------------------

reboot  #重新启动
hostname  #验证是否修改
----------------------------------------------------------------------

再执行Oracle的安装,和windows安装一样,到检查安装条件的时候,需要谨慎,缺少包的时候
要执行安装,要是已经存在更高版本的时候,可以忽略这个报警,要是磁盘不够,需要挂磁盘

 

-------------------------------------

安装好oracle之后,本地pl/sql远程连接虚拟机oracle的问题;

第一步:本地监测虚拟机地址是否通  --不通的话,是网络的问题(可能原因1:防火墙的问题,本地关闭杀毒软件,虚拟机防火墙开放1521端口  可能原因2:网络的问题。检查虚拟机的网络)
第二步:本地检测虚拟机端口是否通(不通的话,检查本地杀毒软件,虚拟机开放1521端口)

第三步:分两种情况:1、本地装有oracle数据库,将虚拟机里面的tns直接加入到本地tns里面

2、本地没有oracle数据库。下载客服端instant_client,和pl/sql。将虚拟机tns加入客服端tns;

第四步:在本地pl/sql连接虚拟机oracle的时候,要确保,虚拟机的实例已打开,服务和监听都已经打开

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

 


 

 

 



 

 


 

 

 

 

 

 

 

 






 

你可能感兴趣的:(数据库)