Redhat7下安装oracle11g

来源:互联网 发布:mac如何拷贝文件到u盘 编辑:程序博客网 时间:2024/06/09 04:28

由于工作需要,从小白的状态学习Linux,到完成oracle的安装。栽了很多坑,这里一一记录下来,以便后边学习。

准备工作

安装VMware

安装VMware的过程比较简单,就和安装普通软件一样。VMware百度云链接:

安装Redhat

由于个人是小白,所以最开始安装Redhat的时候安装成了简易服务器版本。后边又重新装回带GUI版本,建议初学的小白在安装的过程中选择GUI版本,另外由于后边安装Oracle的安装包是英文,所以为了方便在后边选择语言的时候就选英文吧,反正也是一些简单普通的词汇。Redhat7是64位的,附百度云链接:

准备Oracle安装包

这里我用的是Oracle11g 64位,需要先进行下载,文件比较大有2.5G左右。附百度云链接:

挂载移动硬盘

Linux的文件系统都是基于树形,所以不能像window一样能自动识别外部介质,需要手工进行挂载。U盘的文件系统大部分是FAT32格式,所以挂载比较容易。但是最开始因为我把安装包放在了移动硬盘里边,我的移动硬盘格式是NTFS,所以在虚拟机读取移动硬盘需要进行挂载的时候折腾了半天。这里主要用到ntfs-3g进行挂载。ntfs-3g下载地址:
下载完了之后,进入ntfs-3g的目录下边。如果Linux无法联网,可以先放在U盘里边,挂载U盘然后解压。

挂载U盘步骤

  1. 进入终端并进入root模式 su root 输入密码
  2. 进入根目录 cd /
  3. 查看介质 fdisk -l 找到自己的U盘 例如我的是:/dev/sdc1
  4. 进行挂载 首先建立挂载目录 mkdir /mnt/usb,然后挂载命令 mount -t vfat /dev/sdc1 /mnt/usb
  5. 挂载完了之后进入/mnt/usb目录下查看是否挂载成功 ls /mnt/usb,看到自己U盘里边的文件即挂载成功

解压运行ntfs-3g

  1. 先在根目录下运行mkdir myFolder 新建一个自己的文件夹
  2. 找到U盘的ntfs-3g_ntfsprogs-2017.3.23.tgz包 执行 cp -r ntfs-3g_ntfsprogs-2017.3.23.tgz /myFolder
  3. 解压 tar –zxvf ntfs-3g_ntfsprogs-2017.3.23.tgz
  4. 进入解压包 cd ntfs-3g_ntfsprogs-2017.3.23
  5. 运行 ./configure
  6. make
  7. make install
  8. 进行挂载 挂载命令 mount -t ntfs-3g /dev/sdb1 /mnt/usb 其中sdb1要根据自己的移动硬盘的节点进行 挂载

配置yum源

这一步之所以放在准备工作里边,主要是因为后边安装oracle过程中,需要导入相应的依赖包。为了避免被安装oracle的过程弄晕掉,先把准备工作做足,以便一劳永逸也挺好的。yum是基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。(Python安装其他包 pip install 也是对这种方式进行参照的。 ),现在进行yum源的配置,也就是后边yum install 命令的下载地址,这里主要配置163yum源和epel源。

配置163yum源

  1. 进入源管理目录 cd /etc/yum.repos.d
  2. 新建一个163.repo文件 vim 163.repo
  3. 163.repo文件内容如下:
[163]name=163baseurl=http://mirrors.163.com/centos/7/os/x86_64/gpgcheck=0enabled=1 

这里要注意的是,baseurl这一项,你要到http://mirrors.163.com/centos这里,去找到你对应的redhat版本的目录,然后点os、再点x86_64(一般都有),然后用你地址栏上显示的网址替换上面的baseurl就行了。
4. 保存退出。:wq

配置epel源

运行 rpm -vih http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm
注意,我的redhat是7,所以如果你的版本不是7,那你要到http://dl.fedoraproject.org/pub/epel找到你对应版本的rpm包,然后用上面的命令下载,这条命令的作用就是在/etc/yum.repos.d目录下生成epel源。

OK,准备工作终于做完了,下面进入安装Oracle的重头戏!

安装ORACLE

要想顺利的安装Oracle,最好当然是参考Oracle公司的用户指南,虽然是英文的,但是没有哪个参考文档比这更权威了,用户指南可以在Oracle公司的官方网站下载:
http://www.oracle.com/technetwork/database/enterprise-edition/documentation/index.html

准备Oracle的安装环境(root用户)

检查和和更新所需要的软件包

执行命令

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel  rpm -q gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers  rpm -q ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat

我的Linux环境显示如下,其中重点关注加粗部分,也就是提示未安装的包
binutils-2.23.52.0.1-30.el7.x86_64
package compat-libstdc++-33 is not installed
elfutils-libelf-0.160-1.el7.x86_64
package elfutils-libelf-devel is not installed
gcc-4.8.3-9.el7.x86_64
gcc-c++-4.8.3-9.el7.x86_64
glibc-2.17-78.el7.x86_64
glibc-common-2.17-78.el7.x86_64
glibc-devel-2.17-78.el7.x86_64
glibc-headers-2.17-78.el7.x86_64
package ksh is not installed
libaio-0.3.109-12.el7.x86_64
package libaio-devel is not installed
libgcc-4.8.3-9.el7.x86_64
libstdc++-4.8.3-9.el7.x86_64
libstdc++-devel-4.8.3-9.el7.x86_64
make-3.82-21.el7.x86_64
package numactl-devel is not installed
sysstat-10.1.5-7.el7.x86_64

对于未安装的这些包执行yum install [包名],命令如下

yum install compat-libstdc++-33yum install elfutils-libelf-develyum install kshyum install libaio-develyum install numactl-devel

在Oracle数据库软件安装时,ksh实际是用的pdksh,但ksh也是可以使用的,只是安装时会有警告,pdksh是一个早期的软件包,可以在http://rpm.pbone.net/ 中找到。

验证系统要求

  1. 查看内存大小 grep MemTotal /proc/meminfo
  2. 查看交换空间 grep SwapTotal /proc/meminfo
  3. 查看磁盘空间 df -h Oracle 11g R2 x64企业版的磁盘空间要求4.35GB以上。

创建Oracle用户组和用户账号(root用户)

    # groupadd oinstall    # groupadd dba    # useradd -g oinstall -G dba oracle    # passwd oracle

配置内核参数(root用户)

  1. 修改文件/etc/sysctl.conf vim /etc/sysctl.conf
    文件内容如下:
    #/etc/sysctl.conf    # for oracle    fs.aio-max-nr = 1048576    fs.file-max = 6815744    kernel.shmall = 2097152    # 官方文档kernel.shmmax = 536870912,实际软件中需要kernel.shmmax = 980742144    kernel.shmmax = 980742144    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 = 1048586

执行命令: /sbin/sysctl -p 使参数生效。
2. 修改文件/etc/security/limits.conf vim /etc/security/limits.conf
文件内容如下:

    # /etc/security/limits.conf     # for oracle    oracle              soft    nproc   2047    oracle              hard    nproc   16384    oracle              soft    nofile  1024    oracle              hard    nofile  65536    oracle              soft    stack   10240

:wq保存文件并退出

创建Oracle的安装目录(root用户)

    # mkdir -p /u01/app/    # chown -R oracle:oinstall /u01/app/    # chmod -R 775 /u01/app/

编辑Oracle用户环境(Oracle用户)

  1. 在root用户下输入 su oracle 进入oracle用户环境
  2. 编辑.bash_profile文件 vim /home/oracle/.bash_profile
    .bash_profile文件内容如下:
    #For Oracle    export DISPLAY=:0.0    export TMP=/tmp;    export TMPDIR=$TMP;    export ORACLE_BASE=/u01/app/oracle;    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1;    export ORACLE_SID=DBDW;    export ORACLE_TERM=xterm;    export PATH=/usr/sbin:$PATH;    export PATH=$ORACLE_HOME/bin:$PATH;    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;    export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;

:wq保存退出。
重新启动Linux,选择oracle用户环境的时候,系统会根据环境变量进行配置,后边的oracle命令才能正常执行。
输入 echo $ORACLE_HOME 查看环境变量是否配置成功,如果正常输出了配置的路径,则成功,如果输出为空白,可以在本次手动执行 source /home/oracle/.bash_profile 执行环境变量的加载。但是仅在当前终端窗口有效。

安装ORACLE数据库(oracle用户)

  1. 进入oracle解压缩后的安装目录,我的目录是 /mnt/usb/database cd /mnt/usb/database
  2. 键入vncserver 如果提示command not found,则在root用户下使用 yum install tigervnc-server -y进行安装
  3. 执行 ./runInstaller 进入安装界面,我之前遇到过无法启动用户界面的情况,报的错误忘记了,反正能正常进入安装界面就行了。
  4. 进入安装界面后,安装过程和Windows下大致相同。其中如果报错误:Error in invoking target ‘agent nmhs’ of makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk’ 解决方案是: 保留安装过程,另外开启一个终端窗口,将ins_emagent.mk文件中的(MK_EMAGENT_NMECTL)更改为(MK_EMAGENT_NMECTL) -lnnz11,然后在安装过程中点击Retry即可。
  5. 安装最后步骤按提示在root用户下执行脚本.
    # cd /u01/app/oraInventory/    # sh orainstRoot.sh    # cd /u01/app/oracle/product/11.2.0/dbhome_1/    # sh root.sh    在Enter the full pathname of the local bin directory:[/usr/local/bin]:直接回车即可

配置监听器

oracle安装成功后需要配置监听器,直接键入 netca命令,如果提示bash:netca:command not found ,手工执行source /home/oracle/.bash_profile,就可以进入配置监听器的用户界面了,根据需要配置监听器。
1. 配置Listener configuration
2. 配置Local Net Service Name configuration

新建数据库实例

键入 dbca 命令,进行数据库实例配置

测试数据库

测试监听命令

    $ lsnrctl stop    $ lsnrctl start

如果在start这个过程中 报The listener supports no services
解决办法:打开listener.ora 文件 vim $ORACLE_HOME/network/admin/listener.ora
添加内容:

SID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =    (GLOBAL_DBNAME = DBDW)  (SID_NAME = DBDW)  ))

其中orcl是自己配置的服务器名称.

操作sqlplus

  1. 命令 sqlplus /nolog 进入SQL控制台
  2. 命令 connect /as sysdba sysdba连接数据库。如果此时显示Connected to an idle instance,不用着急,进入第3个步骤
  3. 命令 shutdown immediate ,如果此时报service handle not initialized。在sysdba连接上之后键入shutdown abort
  4. 命令 startup.如果此时报错,请检查一下.bash_profile下边的$ORACLE_SID是否和建的数据库的SID一直,然后保存为一致之后重新启动。
    其他测试命令,比如select userenv(‘language’) from dual,查看数据库的dataset编码,为后续oracle数据库的导入做准备。

至此,oracle数据库已经完全安装在Linux服务器上了!

原创粉丝点击