Centos7 安装 Oracle11g

来源:互联网 发布:网易国内足球数据 编辑:程序博客网 时间:2024/06/12 21:25

Centos7安装oracle11g


环境准备

>安装包,拷贝到/opt目录下:

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

>关闭防火墙

systemctl  stop firewalld
systemctl  disable firewald


>关闭selinux

vim /etc/selinux/config

修改

SELINUX=disabled

立即生效:

setenforce 0

getenforce查看是否生效


>检查硬件

内存:>2G 官方要求>2G

查看: 

# grep MemTotal /proc/meminfo


>Swap检查,官方给出的配置

内存大小   Swap大小
1G至2G   1.5倍
2G至16G   同RAW相等
16G以上   16G

查看Swap大小:

# grep SwapTotal /proc/meminfo

# swapon -s

>创建swap:

1. 创建swap文件, 指定swap文件的大小, 先指定区块大小:bs, 再指定区块数量count, 则swap文件的大小是: count*bs. 

在root用户下执行如下命令(创建8G的swap):

# dd if=/dev/zero of=/myswapfile bs=1M count=8192

2. 指定作为交换区的文件:

# mkswap /myswapfile

3. 激活交换区文件:

# swapon /myswapfile

4. 设置开机时启用swap, 在/etc/fstab末尾添加如下内容:

/myswapfile    swap           swap    defaults        0 0

5. 确认swap已经被使用,另外在/目录可以看到文件swapfile

# swapon -s 


如果要关闭swap,可执行命令:

# swapoff /myswapfile

>修改系统版本,绕过系统检查

vim /etc/centos-release

将原来的内容: CentOS Linux release 7.2.1511 (Core)

将内容改为:redhat-7


先了解一下,安装过程中,可能遇到的错误:

缺少包。

提示缺少包时,仔细检查,如果没有,则要安装。

如果已经有了,只是系统的版本比要求的版本高,则可以忽略该错误继续安装(IgnoreAll),不用理会。

1. 缺少:pdksh-5.2.14

wget http://mirror.centos.org/centos/5/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm


2. 缺少: compat-libstdc++33-3.2.3

先下载 centos7.2的对应的rpm包

wget ftp://rpmfind.net/linux/centos/7.2.1511/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.i686.rpm

执行 rpm -ivh compat-libstdc++-33-3.2.3-72.el7.i686.rpm

提示安装失败,缺少....

然后执行

yum install -y compat-libstdc++-33.x86_64

3. 缺少: centos7 elfutils-libelf-devel-0.97

wget ftp://195.220.108.108/linux/centos/7.2.1511/os/x86_64/Packages/elfutils-libelf-devel-0.163-3.el7.x86_64.rpm

rpm -ivh elfutils-libelf-devel-0.163-3.el7.x86_64.rpm

提示安装失败,缺少依赖...

然后执行

yum install -y elfutils-libelf-devel

4. 安装遇到错误, cat /opt/oraInventory/logs/installActions2016-09-14_02-45-06PM.log: 

NFO: collect2: ld returned 1 exit status

INFO: make: *** [ctxhx] Error 1

网上搜索,说是因为:Linux没有安装32位的glibc-devel包。于是检查一下是否没有安装32位的glibc-devel包。


安装32位的glibc-devel:

yum install -y glibc-devel.i686


如果还有其他安装遇到的错误,直接忽略,继续安装。


弱密码导致无法安装

安装时数据库管理员的密码太弱会导致检查不通过,无法继续:必须设置符合要求的密码:我用大写、小写、符号、数字满足要求。


修改密码

安装完毕以后,修改sys、system的用户密码为123456:

sqlplus /nolog;

connect / as sysdba

alter user sys identified by "123456";

alter user system identified by "123456";

也可以相互修改:用sys用户修改system的密码,用system用户修改sys的密码。


无法远程连接

错误: The Network Adapter could not establish the connection

远程连接Oracle数据库,提示该错误:

1,排查是否防火墙开启导致无法连接。

2,查看监听IP是否正确: netstat -an  | grep 1521,如果全是127.0.0.1则不能远程访问,配置需要修改。

#cd /opt/oracle 

#find $ORACLE_BASE -name listener.ora

/opt/oracle/product/11.2.0.1/network/admin/listener.ora

#cat   /opt/oracle/product/11.2.0.1/network/admin/listener.ora


# listener.ora Network Configuration File: /opt/oracle/product/11.2.0.1/network/admin/listener.ora

# Generated by Oracle configuration tools.


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = /opt/oracle

将红色部分改为hostname,重启数据库(如果配置了主机名,则配置HOST = hostname_xxx)。

#netstat -an | grep 1521  

tcp6       0      0 :::1521                 :::*                    LISTEN


验证软件

验证系统需要的包:

rpm -qa  binutils 

rpm -qa  compat-libstdc++-33 
rpm -qa  elfutils-libelf 

....

我这里不一一验证了,反正Oracle安装过程中会,如果缺少包,会出现提示的。等出现提示以后,再挨个检查。缺少那个就安装那个。


如果遇到缺少的包,需要安装:

yum install  -y xxx

有些包可能yum中没有,需要wget下载安装:采用wget下载以后再安装:

rpm ivh xxx


创建用户和组

切换到root用户执行:

# groupadd oinstall  #创建用户组oinstall

# groupadd dba  #创建用户组dba

# useradd -g oinstall -g dba -m oracle  #创建oracle用户,并加入到oinstall和dba用户组

# passwd oracle  #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登

Changing password for user oracle.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.


# id oracle # 查看新建的oracle用户

uid=1001(oracle) gid=1002(dba) groups=1002(dba)

配置内核参数

添加内核配置优化参数如下:

# cat /etc/sysctl.conf 

# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#

# For more information, see sysctl.conf(5) and sysctl.d(5).

#

net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
#设置最大打开文件数
fs.file-max = 6815744
fs.aio-max-nr = 1048576
#共享内存的页数,Linux共享内存页大小为4KB,8G内存设置为:8GB/4KB=8*1024*1024*1024/4KB=2097152
kernel.shmall = 2097152
#最大共享内存,官方文档建议是内存的1/2,例如:8G内存则设置为:4*1024*1024*1024
kernel.shmmax = 4294967296
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
#可使用的IPv4端口范围
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

对oracle用户设置限制,提高软件运行性能

在文件末尾添加配置项

# vim /etc/security/limits.conf

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

# End of file

配置用户的环境变量

# vim /home/oracle/.bash_profile 

# .bash_profile
......
export PATH


#oracle数据库安装目录
export ORACLE_BASE=/opt/oracle
#oracle数据库路径
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1
#oracle启动数据库实例名
export ORACLE_SID=orcl
#xterm窗口模式安装
export ORACLE_TERM=xterm
#添加系统环境变量
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
#添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
#防止安装过程出现乱码
#export LANG=en_US.gbk
export LANG=en_US.UTF-8
#设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_LANG=AMERICAN_AMERICA.UTF8


注意:oracle安装以后,有时候出现lsnrctl start启动时提示命令不存在。后来检查发现安装的oracle的ORACLE_HOME路径不对。

有时候安装以后,正确的路径应该是:export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

有时候安装以后,正确的路径应该是:export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.1

我没有找到什么原因导致。安装后根据实际的情况来修改该参数吧。


后面发现配置了Oracle环境变量到Oracle用户的~/.bash_profile文件,但是发现每次重启后Oracle用户登录,都没有加载环境变量,

执行 $ echo $ORACLE_HOME 为空。必须手动source ~/.bash_profile才能加载。

也许前面碰到的问题,也跟这个环境变量不生效有关系吧。


解决方案:

方法1:Oracle环境变量加入到~/.bash_profile中,同时在/etc/profile文件加上source ~/.bash_profile。重启服务器,就OK了。

方法2:直接将Oracle环境变量加入到.bashrc文件中。因为.bash_profile是用户登录时运行,而.bashrc文件是每次进入bash这个shell环境都会执行。

我采用方法1,root用户修改/etc/profile加上sourc~/.bash_profile,重启服务器以Oracle登录,环境变量加载验证OK。


环境变量配置正确(生效)的话,图形化安装的时候,环境变量读取也就正确了。否则默认是/home/oracle/,而不是你配置的环境变量$ORACLE_HOME指定的目录。


使上面的配置立即生效:

$ su root
Password: 
[root@localhost /]# source /home/oracle/.bash_profile 

创建Oracle数据库的安装目录

oracle数据库安装目录:

# mkdir -p /opt/oracle

oracle数据库配置文件目录:

# mkdir -p /opt/oraInventory

oracle数据库软件包解压目录:

# mkdir -p /opt/database

# cd /opt

创建完毕检查一下:ls

设置目录所有者为oinstall用户组的oracle用户:

# chown -R oracle:oinstall /opt/oracle

# chown -R oracle:oinstall /opt/oraInventory

# chown -R oracle:oinstall /opt/database


解压安装包

$ su - oracle

$ cd /opt/

$ unzip linux.x64_11gR2_database_1of2.zip -d /opt/database

$ unzip linux.x64_11gR2_database_2of2.zip -d /opt/database

$ su root

Password: 

# chown -R oracle:oinstall /opt/database/database/

图形化组件检查

如果只有命令界面、没有安装图形化组件的,需要先安装图形化组件。如果已经有图形化组件的,则忽略该步骤,直接进入安装步骤。

命令行下安装图形化组件:

# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"


# 更新系统的运行级别

新版本的Cent OS 里,已经做了调整. /etc/inittab 文件的第7行已经做出了说明: 

系统已经使用'targets' 取代了运行级别的概念. 系统有两种默认的'targets': 多用户.target 对应之前版本的3 运行级别; 而图形.target 对应之前的5运行级别.

文件的12~14行指导你如何调整开机运行级别:
 

ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

即可配置系统开机即使用图形模式。


图形化安装Oracle

图形化界面登陆oracle用户

如果用的是虚拟机,分辨率默认800x600的话,建议调整分辨率,调高点,否则安装时有些显示不了。


$ cd /opt/database/database/

$ ./runInstaller


> 出现界面,去掉勾选,个人使用环境不需要自动接收Oracle的安全更新

> 继续到选择软件安装选项时,默认选择:Create and configure a database

> 选择 Desktop Class/或者企业版

> 在典型配置界面,配置: 

  Oracle base: /opt/oracle
  Software localtion: /opt/oracle/product/11.2.0/dbhome_1   //根据oracle base联动自动填充,有的可能自动填充为: /opt/oracle/product/11.2.0.1
  Database file location: /opt/oracle/oradata               //根据oracle base联动自动填充
  Database Edition: Entriprise Edition(4.29G)
  Char set: Unicode(AL32UTF8)                               //字符集选择UTF8
  OSDBA Group: dba
  Global database name: orcl
  Administrator password:                                  //设置密码: Mytest123,如果密码设置太简单,无法通过Oralce的密码合法性检查
  Configure password:                                      /设置密码: Mytest123,如果密码设置太简单,无法通过Oralce的密码合法性检查

> Inventory Directory: /opt/oraInventory                //保持自动填充的默认值
  oraInventory Group Name: dba                     //保持默认值
  
> next开始安装

> 提示packages check不通过时,检查是否系统以及安装,如果系统安装了,因为版本比要求的高,则不用理会。如果系统没有安装,需要手动安装。所有检查后,忽略 Ignore ALL,继续安装。

> 安装过程中可能会弹出一些错误,不管,继续continue。

> 提示Password Manager界面时,不用配置,直接点OK。安装结束。

安装过程中会出现提示用户进入终端界面,root身份执行两个脚本

orainstRoot.sh

./root.sh

按照提示执行就是了。


创建数据库时,如果提示输入Global Database Name 和 SID:

一般如果不特殊指定,默认都用orcl作为全局数据库名称和SID。
如果已在Oracle软件安装过程中创建了一个数据库,您现在要利用DBCA创建第二个数据库,则必须为您的第二个数据库选择不同的全局数据库名称和SID。

启动监听程序

安装完成后,以oracle用户打开终端命令行

启动监听:lsnrctl start

输入:sqlplus /nolog

输入:conn /as sysdba


注意:如果提示lsnrctl command not found。检查一下环境变量: cat /home/oracle/.bash_profile 配置

$ echo $ORACLE_HOME

/opt/oracle/product/11.2.0.1

检查一下该目录配置是否正确,也不知道为什么有时候安装完目录为11.2.0,但有时候安装完,目录是11.2.0.1。根据这是的目录修改这个环境变量配置吧。

[oracle@localhost ~]$ ls -l /opt/oracle/product/

total 0

drwxr-xr-x 3 oracle dba 21 Dec 28 20:21 11.2.0

这时才注意到,原来安装时,根据Oracle base自动填充的Software location为:

Software localtion: /opt/oracle/product/11.2.0/dbhome_1

和以往安装时,自动填充的有区别:/opt/oracle/product/11.2.0.1

所以,环境变量,也要修改:

vim /home/oracle/.bash_profile 

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

重新加载:

source /home/oracle/.bash_profile 

然后就可以启动监听进程了。


另外,如果启动时报错:

无法远程连接

错误: The Network Adapter could not establish the connection

远程连接Oracle数据库,提示该错误:

1,排查是否防火墙开启导致无法连接。

2,查看监听IP是否正确: netstat -an  | grep 1521,如果全是127.0.0.1则不能远程访问,配置需要修改。

#cd /opt/oracle 

#find $ORACLE_BASE -name listener.ora

./product/11.2.0/dbhome_1/network/admin/samples/listener.ora

./product/11.2.0/dbhome_1/network/admin/listener.ora

#vim ./product/11.2.0/dbhome_1/network/admin/listener.ora


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = /opt/oracle


将红色部分改为hostname,重启数据库。

#netstat -an | grep 1521  

tcp6       0      0 :::1521                 :::*                    LISTEN

完成的启动监听过程:

[oracle@localhost ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 28-DEC-2016 21:15:51


Copyright (c) 1991, 2009, Oracle.  All rights reserved.


TNS-01106: Listener using listener name LISTENER has already been started

[oracle@localhost ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.1.0 Production on Wed Dec 28 21:16:01 2016


Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to an idle instance.


SQL> startup
ORACLE instance started.


Total System Global Area 3273641984 bytes
Fixed Size                  2217792 bytes
Variable Size            1795164352 bytes
Database Buffers         1459617792 bytes
Redo Buffers               16642048 bytes
Database mounted.
Database opened.


系统用户:SYSDBA|SYSOPER|SYSASM

SQL> conn / as sysdba

Connected.


普通用户jack密码123456:

SQL> conn jack/123456

Connected.


数据库启动以后,下次进入,可以直接采用

$ sqlplus /nolog

$ conn jack/123456

$ conn / as sysdba


关闭数据库

SQL> shutdown immediate


修改sys/system用户密码为简单密码

【如果无需改成简单密码,则忽略本操作】

在以SYSDBA身份登陆时可以修改其他用户的密码,比如,把testUser用户的密码改为123456:

SQL> alter user testUser identified by "123456";

我需要修改sys、system的用户密码为简单密码1q2w3e:

sqlplus /nolog;

connect / as sysdba

alter user sys identified by "1q2w3e";

alter user system identified by "1q2w3e";

也可以相互修改:用sys用户修改system的密码,用system用户修改sys的密码。



创建临时表空间/表空间/创建用户/授权

[oracle@localhost ~]$ sqlplus /nolog

SQL> conn /as sysdba

step1,创建临时表空间: 最大30G临时表空间,如果磁盘不够,可以改小点。我这里开始尝试100G,由于系统参数限制,设置失败。所以改为了30G。

create temporary tablespace user_temp  

tempfile '/opt/oracle/oradata/my_temp01.dbf' 

size 50m  

autoextend on  

next 50m maxsize 30720m 

extent management local; 


step2,创建数据表空间

create tablespace user_data  

logging  

datafile '/opt/oracle/oradata/my_data01.dbf' 

size 50m  

autoextend on  

next 50m maxsize 30720m 

extent management local;  


step3,创建用户并指定表空间

create user jack identified by "1q2w3e" 

default tablespace user_data  

temporary tablespace user_temp;


step4,给用户授予权限

grant connect,resource,dba to jack;


========================

如果自定义建库,则安装时采用仅安装软件选项,然后进行手动建库和配置服务。
dbca手动数据库建库:
还是在oracle用户的图形界面oracle用户中,新开启一个终端,直接输入命令dbca会弹出界面,往下进行自定义建库。

如果已在Oracle软件安装过程中创建了一个数据库,您现在要利用DBCA创建第二个数据库,则必须为您的第二个数据库选择不同的全局数据库名称(Global Database Name)和SID。

netca手动配置监听及本地网络服务:
在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面。
1)创建监听服务
2)配置本地网络服务名

0 0
原创粉丝点击