Linux安装Oracle 11gR2

发布时间 2023-08-23 14:44:33作者: 克峰同学

简介

Oracle Database,又名 Oracle RDBMS,或简称 Oracle。是甲骨文公司的一款关系数据库管理系统。


安装环境

名称 参数
linux版本 CentOS-7-x86_64
oracle版本 linux.x64_11gR2,点击下载

安装前准备

如下操作都需要root用户执行

  1. 创建oracle数据库的系统用户和用户组

    #创建用户组oinstall
    groupadd oinstall 
    #创建用户组dba
    groupadd dba      
    #创建oracle用户,并加入到oinstall和dba用户组
    useradd -g oinstall -g dba -m oracle
    #设置用户oracle的登陆密码,不设置密码,在CentOS的图形界面没法登陆
    passwd oracle
    # 查看新建的oracle用户
    id oracle
    
  2. 创建oracle数据库安装目录

    #oracle数据库安装目录
    mkdir -p /data/oracle
    #oracle数据库配置文件目录
    mkdir -p /data/oraInventory
    #oracle数据库软件包解压目录
    mkdir -p /data/database
    #设置目录所有者为oinstall用户组的oracle用户
    chown -R oracle:oinstall /data/oracle
    chown -R oracle:oinstall /data/oraInventory
    chown -R oracle:oinstall /data/database
    #学习用下面一条即可
    chown -R oracle:oinstall /data/*
    
  3. 修改OS系统标识,oracle默认不支持CentOS系统安装

    #这里cat文件查看系统标示为CentOS需要修改为redhat-7
    cat /etc/redhat-release
    #编辑系统文件,将CentOS需要修改为redhat-7
    vi /etc/redhat-release
    #再次输出一下,是否是redhat-7
    cat /etc/redhat-release
    
  4. 安装oracle数据库所需的软件包

    yum install -y binutils compat-gcc* compat-glibc* compat-libcap1 compat-libstd* compat-libstdc++-33 compat-libstdc++-33.i686 compat-libstdc++-33*.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-devel.i686 glibc-devel*.i686 glibc-headers glibc.i686 glibc*.i686 ksh libaio libaio-devel libaio-devel.i686 libaio-devel*.i686 libaio.i686 libaio*.i686 libgcc libgcc.i686 libgcc*.i686 libstdc++ libstdc++-devel libstdc++-devel*.i686 libstdc++.i686 libstdc++*.i686 libXp make numactl sysstat unixODBC unixODBC-devel unixODBC-devel*.i686 unixODBC*.i686
    
  5. 开放防火墙端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent
    firewall-cmd --reload #重新载入防火墙规则使其生效
    
  6. 修改内核参数

    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.conf内容确认
    cat /etc/sysctl.conf
    
    #使配置参数生效
    sysctl -p
    
  7. 对oracle用户设置限制,提高软件运行性能

    vi /etc/security/limits.conf
    
    #以下是新增代码
    oracle soft nproc 2047
    oracle hard nproc 16384
    oracle soft nofile 1024
    oracle hard nofile 65536
    
  8. 配置用户的环境变量

    vi /home/oracle/.bash_profile
    
    #以下是新增代码
    #oracle数据库安装目录
    export ORACLE_BASE=/data/oracle
     #oracle数据库路径
    export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_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=C 
    #设置Oracle客户端字符集,必须与Oracle安装时设置的字 符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    
    source /home/oracle/.bash_profile
    
    image-20230822114434586
  9. 上传安装包

    image-20230822144902367
  10. 解压安装包

    #切换oracle用户
    su oracle
    #进入到下载上传好oracle安装包的目录下
    cd /home/oracle
    #解压
    unzip linux.x64_11gR2_database_1of2.zip -d /data/
    unzip linux.x64_11gR2_database_2of2.zip -d /data/
    #切换root用户
    su root
    #把文件权限给oracle:oinstall
    chown -R oracle:oinstall /data/database/
    

视图化安装

  1. 启动安装图形页面

    # 在解压目录下,运行./runIstaller文件
    cd /data/database/
    #启动安装图形页面
    ./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
    
  2. 傻瓜式安装(略)


问题及解决方案

问题1:写入目录 /tmp/OraInstall2013-09-05_08-50-32AM 时出错。请确保此目录是可写的, 并且至少有 60 MB 的磁盘空间。无法继续安装

分析原因

  • 可能能是因为/tmp划分的太小或者空间满了,所有在执行写入相关的文件时,写入不进去(cd /tmp转到tmp目录 du -sh查看该目录大小 就可以知道是不是容量问题了)
  • 没有权限(使用ls -la命令查看tmp目录的权限)

解决方案

  • Oracle在运行安装时,会在/tmp下面生出60M左右大小的文件,文件以Ora开头,在Oracle安装失败时,不会自动删除。所以把/mp下的那个文件删除再运行可能就行了。

    image-20230818151211632
    #在tmp目录下执行如下命令
    rm -rf *OraInstall* # 删除包含OraInstall的文件及文件夹
    

问题2:Error in invoking target ‘install’ of makefile ‘/data/oracle/product/10.2/ctx/lib/ins_ctx.mk’. See ‘/data/oracle/oraInvertory/logs/installActions2010-09-28_10-27-06AM.log’ for details.

原因

  • ins_ctx.mk编译错误

解决方案

#切换oracle用户
su oracle
#修改ins_ctx.mk文件
vi vi /data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk
#按‘:’+set number 显示行号
#修改ins_ctx.mk文件第11行
ctxhx: $(CTXHXOBJ) -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
image-20230823102102572

问题3: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编译错误

解决方案

#切换oracle用户
su oracle
#修改ins_emagent.mk文件
vi /data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk
#按‘:’+‘set number’ 显示行号
#修改ins_emagent.mk文件第190行的末尾添加-lnnz11
$(MK_EMAGENT_NMECTL) -lnnz11
image-20230823102612454

启动与关闭

#切换Oracle用户
su - oracle

注意:切换用户必须使用 -,因为su后面追加 -,-l,--login,表示切换用户时,使环境变量(home,shell,user,logname,path等)和欲切换的用户相同

启动

  • 启动监听

    lsnrctl start
    
  • 连接到sqlplus

    sqlplus /nolog
    
  • sysdba登陆

    conn /as sysdba
    
  • 执行命令startup

    startup
    

    image-20230823112516291

关闭

  • 连接到sqlplus

    sqlplus /nolog
    
  • sysdba登陆

    conn /as sysdba
    
  • 关闭数据库

    shutdown immediate
    
  • 退出sqlplus

    exit
    
  • 关闭监听

    lsnrctl stop
    
    image-20230823113322059