Linux我们默认使用CentOS 7 x64
所以为了对应操作系统我们使用64位的Oracle 11g数据库
Oracle11g需要准备至少:2核CPU、2G内存、8GB的硬盘空间
lscbu
free -h
lsblk
确保服务器能访问外网
查看是否有 oracle 的进程
ps -ef | grep ora
检查是否有oracle用户
# 一般安装oracle的时候默认会建一个oracle用户 id oracle
因为Oracle的卸载极其麻烦,从效率上讲甚至不如直接重新安装虚拟机
Oracle的安装需要图形化界面,所以身为命令形式的Linux操作系统就需要安装图形化界面:VNC;
为了安全起见,不建议使用root做为vnc用户,所以,安装oracle时要建立单独的用户去安装oracle相关
# 在Linux中创建名为oinstall的用户组 groupadd oinstall # 创建dba用户组 groupadd dba # 创建oper用户组 groupadd oper # 为dba和oper用户组创建oracle用户 # -g 主用户组 # -G 附加组 useradd -g oinstall -G dba,oper oracle # 将oracle用户的密码设置为oracle echo "oracle"|passwd oracle --stdin
# 建文件夹 mkdir -p /u01/app/oracle/product/11.2.0/db_1 # 改变属主和属组 chown -R oracle:oinstall /u01/app # 为文件夹授权 chmod -R 775 /u01/app
vim /etc/sysctl.conf # 添加如下内容 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 # kernel.shmmax 参数设置为物理内存的一半 kernel.shmmax = 1200000000 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 # 因为刚自定义配置了shmmax、shmmni、shmall,所以注释掉原有自带的shmmax、shmall这些属性
保存并退出后,需要使使参数生效
sysctl -p
为了优化性能,需要添加oracle用户的限制参数
vim /etc/security/limits.conf # 在文件末尾添加下面四行 # 设置进程数软限制 oracle soft nproc 2047 # 设置进程数硬限制 oracle hard nproc 16384 # 设置文件数软限制 oracle soft nofile 1024 # 设置文件数硬限制 oracle hard nofile 65536 # 进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证 vim /etc/pam.d/login # 在文件最后添加下面一行 session required /lib64/security/pam_limits.so # 一般都是64位系统,64位系统需要设置为/lib64/security/pam_limits.so 否则重启服务器后就会出现命令行无法登录,但是通过桌面方式能登录的情况 session required pam_limits.so
使参数生效
source /etc/profile
su - oracle vim .bash_profile # 添加如下内容 ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 PATH=$PATH:$ORACLE_HOME/bin ORACLE_SID=orcl NLS_LANG="SIMPLIFIED CHINESE_CHINA.UTF8" export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
退出后需要刷新环境变量
source .bash_profile 或 source /home/oracle/.bash_profile
安装oracle时,一定要保证主机名出现在/etc/hosts中
vim /etc/hosts # 添加如下内容 127.0.0.1 localhost 192.168.222.30 mydb
测试hostname
ping -c 3 mydb
/etc/sysconfig/network中的hostname要与/etc/hosts中的一致
vim /etc/sysconfig/network # 添加如下内容 NETWORKING=yes HOSTNAME=mydb # 服务器IP GATEWAY=192.168.222.30 NTPSERVERARGS=iburst
cd /etc mv yum.repos.d yum.repos.d.bak mkdir yum.repos.d wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # 清理缓存 yum clean all # 建缓存 yum makecache #安装epel源 yum -y install epel-release
#图形界面必备`X Window System` yum -y groupinstall "X Window System" #安装VNC+图形、oracle需要的依赖(软件) yum -y install \ binutils \ compat-libcap1 \ compat-libstdc++-33 \ compat-libstdc++-33*.i686 \ elfutils-libelf-devel \ gcc \ gcc-c++ \ glibc*.i686 \ glibc \ glibc-devel \ glibc-devel*.i686 \ ksh \ libgcc*.i686 \ libgcc \ libstdc++ \ libstdc++*.i686 \ libstdc++-devel \ libstdc++-devel*.i686 \ libaio \ libaio*.i686 \ libaio-devel \ libaio-devel*.i686 \ make \ sysstat \ unixODBC \ unixODBC*.i686 \ unixODBC-devel \ unixODBC-devel*.i686 \ libXp
4.7.3 检查依赖是否安装完成
rpm -q \ binutils \ compat-libstdc++-33 \ elfutils-libelf \ elfutils-libelf-devel \ expat \ gcc \ gcc-c++ \ glibc \ glibc-common \ glibc-devel \ glibc-headers \ libaio \ libaio-devel \ libgcc \ libstdc++ \ libstdc++-devel \ make \ pdksh \ sysstat \ unixODBC \ unixODBC-devel | grep "not installed"
方法一:通过yum安装
yum -y install pdksh(安装失败的package)
方法二:wget命令直接下载pdksh的rpm包,下载到至/tmp/
wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm # 安装pdksh rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
服务器&VNC&Oracle安装包语言要统一,这里我使用的是中文安装包,为避免中文乱码,需要安装中文语言包(如果你都是英文可以忽略此步骤)
—————上传方法—————
# 1.切换至oracle安装目录 cd /u01/ # 2.将文件上传至服务器 rz/sz # 或 shell工具拖拉拽 # 或 # --------------------------------------------------------------- scp -r /Users/nan/Desktop/Oracle root@10.10.1.104:/opt/test/ # 解析 scp -r dir username@host:dir 命令 递归 要拷贝的文件路径 目的主机用户名@目的主机ip:目的路径 # --------------------------------------------------------------- # 3.安装中文字体包 yum –y install pdksh-5.2.14-37.el5_8.1.x86_64.rpm
防火墙放行VNC端口5901和Oracle默认端口1521
编辑iptables, 开放1521端口:
sudo vi /etc/sysconfig/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
重启防火墙
sudo service iptables restart
保存配置,以便linux重启后依然有效
sudo service iptables save
查看防火墙规则:
sudo iptables -L –n
service iptables stop chkconfig iptables off vim /etc/sysconfig/selinux SELINUX=enforcing改成SELINUX=disabled
切换用户并切换目录
xhost + su - oracle cd /u01/sw
上传Linux-x86-64_1of7.zip和Linux-x86-64_2of7.zip文件至/u01/sw目录上传方法
解压缩安装文件
unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
完成后切换root用户,复制授权
su - root mkdir /home/oracle/etc/ cp /db/database/response/* /home/oracle/etc/ chmod 777 /home/oracle/etc/*.rsp
登录oracle用户
su – oracle vi /home/oracle/etc/db_install.rsp # 信息如下: oracle.install.option=INSTALL_DB_SWONLY UNIX_GROUP_NAME=oinstall INVENTORY_LOCATION=/db/app/oracle/oraInventory SELECTED_LANGUAGES=en,zh_CN ORACLE_HOSTNAME=oracle ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1 ORACLE_BASE=/db/app/oracle oracle.install.db.InstallEdition=EE oracle.install.db.isCustomInstall=true oracle.install.db.DBA_GROUP=dba oracle.install.db.OPER_GROUP=oinstall oracle.install.db.config.starterdb.type=GENERAL_PURPOSE oracle.install.db.config.starterdb.globalDBName=orcl oracle.install.db.config.starterdb.SID=orcl oracle.install.db.config.starterdb.memoryLimit=512 oracle.install.db.config.starterdb.password.ALL=oracle DECLINE_SECURITY_UPDATES=true
执行Oracle安装文件
su - oracle ./runInstaller -silent -force -responseFile /home/oracle/etc/db_install.rsp -ignorePrereq
安装期间可以使用tail命令监看oracle的安装日志
cd /db/app/oracle/oraInventory/logs/ tail -f installActions2021-11-10_10-38-29AM.log
安装完成,提示Successfully Setup Software
使用root用户执行脚本
su - root/db/app/oracle/product/11.2.0/db_1/root.sh
su - oracle vi ~/.bash_profile export ORACLE_HOME=/db/app/oracle/product/11.2.0/db_1 export TNS_ADMIN=$ORACLE_HOME/network/admin export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export PATH=${PATH}:/usr/bin:/bin:/usr/local/bin export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib export LIBPATH=${CLASSPATH}:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib export ORACLE_OWNER=oracle export SPFILE_PATH=$ORACLE_HOME/dbs export ORA_NLS10=$ORACLE_HOME/nls/data
使配置生效
source ~/.bash_profile
配置监听
# 确保在oracle目录的bin下 pwd /db/app/oracle/product/11.2.0/db_1/bin ./netca /silent /responseFile /home/oracle/etc/netca.rsp
启动监听
# 确保在oracle目录的bin下 pwd /db/app/oracle/product/11.2.0/db_1/bin # 启动监听 lsnrctl start # 查看监听状态 lsnrctl start LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 25-MAY-2019 00:05:55 Uptime 0 days 0 hr. 7 min. 32 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /db/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /db/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1522))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1522))) The listener supports no services The command completed successfully
监听状态
lsnrctl start # 显示如下 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 25-MAY-2019 00:13:21 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
编辑应答文件
vi /etc/dbca.rsp GDBNAME="orcl.oracle" SID="orcl" SYSPASSWORD = "oracle" SYSTEMPASSWORD = "oracle" CHARACTERSET="AL32UTF8" NATIONALCHARACTERSET="UTF8" # 执行: $ORACLE_HOME/bin/dbca -silent -responseFile /home/oracle/etc/dbca.rsp
建库
pwd /db/app/oracle/product/11.2.0/db_1/bin dbca -silent -responseFile etc/dbca.rsp # 至此完成数据库实例的创建
设置Oracle开机启动
vim /etc/oratab # 把“N”改成“Y” orcl:/db/app/oracle/product/11.2.0/db_1:Y
[oracle@oracle bin]$ vi /etc/oratab orcl:/db/app/oracle/product/11.2.0/db_1:Y # //把“N”改成“Y” # 保存退出 [oracle@oracle bin]$ pwd /db/app/oracle/product/11.2.0/db_1/bin # 通过dbstart 启动此实例,监听器 ## ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener ## Usage: ./dbstart ORACLE_HOME [oracle@oracle bin]$ ./dbstart $ORACLE_HOME; # oracle的进程关闭,监听器也停止; [oracle@oracle bin]$ ./dbshut $ORACLE_HOME; # 启动监听 [oracle@oracle bin]$ ./lsnrctl start; # 查看监听 [oracle@oracle bin]$ ./lsnrctl status
[oracle@oracle bin]$ pwd /db/app/oracle/product/11.2.0/db_1/bin [oracle@oracle bin]$ ./sqlplus /nolog # 进入系统管理用户 SQL> conn / as sysdba Connected to an idle instance. # 启动oracle实例 SQL> startup;
1、使用oracle用户登录桌面,打开终端运行安装程序
[root@oracledb ~] cd /ora/database [root@oracledb ~] ./runInstaller
1)订阅邮件跳过
2)选择忽略更新(或者让选择桌面版还是服务器版,如果有选择服务器版)
3)这里选择仅安装数据库,稍后再配置初始化数据。
4):选择单实例安装。
5):语言,linux服务器上就别想什么中文这些了,就默认英文完事。
6):默认
7):这里就出现最开始创建的相应目录信息了,会自动读取。
8):下一步
9):选择group 组为之前创建好的oinstall
10):安装的过程中可能会出现如下的一些警告信息,如提示semmni为0 的问题,该问题一直没有找到原因,我们在上面修改内核的过程中就已经调整了kernel.sem = 250 32000 100 128 但是检测无法通过(暂时无解)、其他的一些依赖组件提示,其实我们已经安装好了,只是centos7上yum安装的依赖包要比oracle 11g 所需的包更新,版本更高,所以可以直接忽略这些提示(勾选 ignore all)。
3、安装到最后的时候会出现一个提示:需要用root权限执行2个shell脚本,那么我们在之前的root用户终端下运行提示中的对应脚本文件即可。
这里或者更早前的步骤就可能会出现一个很神奇(zhizhang)的问题,对话框可能无法正常弹出,测试在VM虚拟机或者云服务器,如阿里云等都这样,但是用鼠标可以拖开。是的,你没有看错,直接拖出对话框。这个问题不知道原因,有知道的朋友请留言告知,万分感谢。
还有可能出现一个压根儿就不能拖得对话框(阿里云上反复测试,就是会出现)最后没辙了,本地跑虚拟机一步步的模拟安装,发现是一个警告提示,一般按4次tab键即可切换到下一步选项回车即可。
4、安装完成后还需要创建数据库,还是同样在Oracle用户桌面环境下,重新打开一个终端,输入 dbca 命令即可弹出相应的数据库创建向导。
如果提示没有这个命令,那么请详细检查一下上述的依赖包是否正确安装,另外创建过程中如果出现提示oracle not available 检查是否已添加主机名到hosts文件中。
到此这篇关于Linux CentOS7安装Oracle11g的文章就介绍到这了,更多相关Linux CentOS7安装Oracle11g内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!