Linux CentOS(7.x)静默安装Oracle 11g

Linux服务器下安装Oracle数据库比较复杂,配置较为繁琐,在这里做一个记录

数据库版本:Oracle 11g
服务器系统:CentOS 7.8

1. 环境检查

1.1 检查内存要求

安装Oracle数据库11 g第2版(11.2)的内存要求:

最小:1 GB内存

推荐:2 GB 内存或更多

要查看内存大小,请输入以下命令

grep MemTotal /proc/meminfo

要查看交换空间大小,请输入以下命令

交换空间其实就是windows的虚拟内存,在内存不够的情况下,会把虚拟内存当内存用

grep SwapTotal /proc/meminfo

1.2 配置交换空间

  1. 创建交换分区文件所在的文件夹

    mkdir -p /data/swapon
    
  2. 接下来创建交换分区文件

    if:读取文件,of:写出文件,bs:每次读写字节大小(块的大小,单位:字节),count:块的数量。其中这里代表1gb的交换分区,计算规则 = bs*count = 大概1gb。一般虚拟缓存是内存的2倍比较好,但是到了4g以上就没有什么效果了,也就是说如果您的内存是4g,虚拟缓存也只要配置4g即可。

    dd if=/dev/zero of=/data/swapon/swap_file bs=1M count=1024
    
  3. 把刚才创建的文件转为 swap格式

    mkswap /data/swapon/swap_file     
    
  4. 激活交换空间

    swapon /data/swapon/swap_file
    
  5. 校验结果

    grep SwapTotal /proc/meminfo
    

2. 安装依赖

yum -y install gcc make binutils gcc-c++ compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static elfutils-libelf-devel ksh libaio libaio-devel numactl-devel sysstat unixODBC unixODBC-devel pcre-devel libXp*

3. 创建oracle用户和用户组

Oracle建议使用新的用户和用户组来安装Oracle

3.1 创建用户组

groupadd oinstall
groupadd dba

3.2 创建用户

-g:指定主要分组

-G:指定次要分组

oracle:用户名

useradd -g oinstall -G dba oracle

3.3 修改oracle用户密码

passwd oracle 

3.4 查看结果

id oracle

4. 配置内核参数

vim /etc/sysctl.conf

将下面配置加入文件末尾

fs.aio-max-nr=1048576 
fs.file-max=6815744 
kernel.shmall=2097152 
kernel.shmmax=536870912 
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=1048576

更新内核参数

sysctl -p

5. 配置资源限制

vim /etc/sysctl.conf

将下面配置加入文件末尾(oracle为刚才新建的用户)

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

6. 准备安装

6.1 创建所需要的目录

mkdir -p /var/lib/oracle/product/11.2.0 && mkdir /var/lib/oracle/oradata  && mkdir /var/lib/oracle/flash_recovery_area && mkdir /var/lib/oracle/inventory

6.2 修改目录的所属者权限

chown -R oracle:oinstall /var/lib/oracle
chmod -R 777 /var/lib/oracle

6.3 上传安装压缩包

上传压缩包至/var/lib/oracle目录,安装包到Oracle官网下载

6.4 解压

如果没有unzip,请先执行yum install unzip,安装unzip

cd /var/lib/oracle
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

6.5 修改静默安装Oracle的响应文件

vim /var/lib/oracle/database/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY  	#约29行
ORACLE_HOSTNAME=localhost					#约37行
UNIX_GROUP_NAME=oinstall					#约42行
INVENTORY_LOCATION=/data0/oracle/inventory  #约47行
SELECTED_LANGUAGES=en,zh_CN        			#约78行
ORACLE_HOME=/data0/oracle/product/11.2.0    #约83行
ORACLE_BASE=/data0/oracle                   #约88行
oracle.install.db.InstallEdition=EE         #约99行
oracle.install.db.DBA_GROUP=dba             #约142行
oracle.install.db.OPER_GROUP=dba            #约147行
DECLINE_SECURITY_UPDATES=true              	#约385行

7. 开始安装

7.1 添加环境变量

  • 可以只添加oracle用户的环境变量,这样仅oracle用户可以使用sqlplus命令

    su - oracle #切换成oracle用户
    
    vim /home/oracle/.bash_profile #打开环境变量配置文件
    
    ORACLE_BASE=/var/lib/oracle
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0
    ORACLE_SID=orcl
    PATH=$PATH:$ORACLE_HOME/bin
    export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
    
    source /home/oracle/.bash_profile #立即更新配置文件
    
  • 也可以添加全局环境变量,这样所有用户都可以使用sqlplus命令

    vim /etc/profile #打开环境变量配置文件
    
    ORACLE_BASE=/var/lib/oracle
    ORACLE_HOME=$ORACLE_BASE/product/11.2.0
    ORACLE_SID=orcl
    PATH=$PATH:$ORACLE_HOME/bin
    export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
    
    source /etc/profile #立即更新配置文件
    

7.2 安装Oracle 11g

  1. 安装Oracle

    cd /var/lib/oracle/database #切换到对应文件准备安装
    
    ./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /var/lib/oracle/database/response/db_install.rsp #执行静默安装
    

    看到日志文件会持续输出安装信息没有输入异常信息,则表明安装过程正常;直到输出运行脚本提示以及Successfully Setup Software。

  2. 执行脚本

    su
    sh /var/lib/oracle/inventory/orainstRoot.sh
    sh /var/lib/oracle/product/11.2.0/root.sh
    
  3. 配置监听

    su - oracle
    export DISPLAY=localhost:0.0 #设置回显
    netca -silent -responseFile /var/lib/oracle/database/response/netca.rsp #安装监听
    
  4. 查看端口信息

    netstat -tnulp | grep 1521
    

7.3 安装数据库实例

  1. 配置数据库响应文件

    su - oracle
    vim /var/lib/database/response/dbca.rsp
    
    GDBNAME="orcl"    											#约78行
    SID="orcl"													#约149行
    SYSPASSWORD="oracle"   										#约190行,前面的注释要打开,这个是SYS用户的密码
    SYSTEMPASSWORD="oracle"   									#约200行,前面的注释要打开,这个是SYSTEM用户的密码
    SYSMANPASSWORD="oracle"   									#约231行,前面的注释要打开,这个是SYSMAN用户的密码
    DBSNMPPASSWORD="oracle"  									#约241行,前面的注释要打开,这个是DBSNMP用户的密码
    DATAFILEDESTINATION="/data0/oracle/oradata"  				#约357行,注释要打开,配置dbf文件的目录   
    RECOVERYAREADESTINATION="/data0/oracle/fast_recovery_area"  #约367行,注释要打开 
    CHARACTERSET="ZHS16GBK" 									#约415行
    TOTALMEMORY="1638"  										#约540行
    
  2. 安装数据库

    su - oracle
    dbca -silent -responseFile /var/lib/database/response/dbca.rsp
    

8. 其它配置

8.1 开启实例

第一次不用开启,如果重启,需要开启

su - oracle   		#切换到 oracle用户 
ps -ef | grep ora_  #查看进程状态       

lsnrctl 命令是一个 监听管理命令, 它有以下3个功能:

命令功能
lsnrctl status查看监听状态
lsnrctl start启动监听
lsnrctl stop停止监听

8.2 设置开机自动启动

  1. 修改启动数据

    su
    vim /etc/oratab
    
    orcl:/var/lib/oracle/product/11.2.0:Y
    
  2. 修改启动文件

    vim /var/lib/oracle/product/11.2.0/bin/dbstart
    
    ORACLE_HOME_LISTNER=$ORACLE_HOME #修改该键的值
    
  3. 修改关闭文件

    vim /var/lib/oracle/product/11.2.0/bin/dbshut
    
    ORACLE_HOME_LISTNER=$ORACLE_HOME #修改该键的值
    
  4. 修改本地文件

    vim /etc/rc.d/rc.local
    
    su oracle -lc  "/data0/oracle/product/11.2.0/bin/lsnrctl start"	#添加该行
    su oracle -lc  "/data0/oracle/product/11.2.0/bin/dbstart"		#添加该行
    
  5. 修改本地参数数据的执行权限

    chmod +x /etc/rc.d/rc.local
    

8.2 乱码问题

sqlplus / as sysdba
SQL> conn / as sysdba;
SQL> shutdown immediate;
SQL> startup mount;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
SQL> alter database open;
SQL> alter database character set INTERNAL_USE UTF8;
SQL> shutdown immediate;
SQL> startup;
SQL> exit;

8.3 修改端口

  1. 修改监听服务

    lsnrctl stop  #停止服务
    cd /var/lib/oracle/product/11.2.0/network/admin
    vim listener.ora
    # 修改PORT=1521成PORT=11521
    PORT = 你需要的端口号,我这里是11521
    
  2. 修改tnsnames

    vim tnsnames.ora
    #修改PORT=1521成PORT=11521
    PORT = 你需要的端口号,我这里是11521
    
  3. 重启oracle

    su - oracle
    sqlplus / as sysdba;
    alter system set local_listener="(address=(protocol=tcp)(host=localhost)(port=你需要的端口号))"
    exit;
    lsnrctl start
    # 注意:这里的host的值就是listener.ora中HOST的值,而port的值就是您需要修改的端口
    

8.4 解决Linux下sqlplus无法使用退格键和方向键的问题

CentOS下的sqlplus和windows下的sqlplus不同,在输入命令时不可以使用上下键、删除键等,很不方便,偶然间发现rlwrap可以实现这个功能。

  1. 首先下载和安装readline

    yum install readline*
    
  2. 然后去下载和安装rlwrap(链接失效请更换其它版本)

    wget http://utopia.knoware.nl/~hlub/uck/rlwrap/rlwrap-0.30.tar.gz
    tar -zxvf rlwrap-0.30.tar.gz
    cd rlwrap-0.30
    ./configure
    make
    make install
    
  3. 在oracle环境变量文件中添加

    vim /home/oracle/.bash_profile
    
    alias sqlplus='rlwrap sqlplus'	#添加该行
    alias rman='rlwrap rman'		#添加该行
    
  4. 立即生效

    source /home/oracle/.bash_profile
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值