Oracle的安装包下载以后是两个压缩包,同时选中两个压缩包右击进行解压,或者在centos系统里边解压也可以
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-25jLkAUG-1687674869966)(.\image\image-20230618180454912.png)]
[root@oracledb ~]# cat /etc/redhat-release
[root@oracledb ~]# hostnamectl set-hostname oracledb && bash
[root@oracledb ~]# vim /etc/hosts # 编辑 hosts
#格式IP 主机名
192.168.100.102 oracledb
#ping测试连通
[root@oracledb yum.repos.d]# ping oracledb
PING oracledb (192.168.100.102) 56(84) bytes of data.
64 bytes from oracledb (192.168.100.102): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from oracledb (192.168.100.102): icmp_seq=2 ttl=64 time=0.044 ms
^C
--- oracledb ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.026/0.035/0.044/0.009 ms
[root@oracledb ~]# systemctl stop firewalld.server
[root@oracledb ~]# systemctl disabled firewalld.server
[root@oracledb ~]# setenforce 0
[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracledb ~]# groupadd -g 200 oinstall
[root@oracledb ~]# groupadd -g 201 dba
[root@oracledb ~]# useradd -u 440 -g oinstall -G dba oracle
[root@oracledb yum.repos.d]# echo '123' |passwd --stdin oracle
[root@oracledb ~]# vim /etc/sysctl.conf #末尾加入如下参数,保存退出
net.ipv4.ip_local_port_range= 9000 65500
fs.file-max = 6815744
kernel.shmall = 10523004
kernel.shmmax = 6465333657
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr = 1048576
刷新生效:sysctl -p
[root@oracledb ~]# vim /etc/security/limits.conf #末尾加如如下参数,保存退出
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
[root@oracledb ~]# vi /etc/pam.d/login #在pam_namespace.so下加入标红的这行
session required pam_limlts.so
session required /lib64/security/pam_limits.so #64位选这个
[root@oracledb ~]# mkdir -p /opt/app/oracle
[root@oracledb ~]# chmod 755 /opt/app/oracle/
[root@oracledb ~]# chown -R oracle:oinstall /opt/app/oracle/
##注:一会在解压数据库的安装包时它会自动生成一个database的目录,那个目录也要给权限和更改属主属组,不然它会因为权限无法生成root.sh的启动脚本
切换到创建的Oracle用户环境 (根据自定的安装路径进行填写)
[root@oracledb ~]# su - oracle #切换到oracle用户
[oracle@oracledb ~]$ vim ~/.bash_profile
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export ORACLE_SID=orcl
export ORACLE_PID=ora11g
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
保存退出,并刷新全局变量,使配置生效:
source ~/.bash_profile # 使配置立即生效
env | grep ORA # 查看环境变量是否完成
[root@oracledb ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@oracledb ~]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
#安装完后检查是否已经全部安装
[root@oracledb ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
#解压
[root@oracledb opt]# ls *.zip | xargs -n1 unzip -o
#或者分开解压
[root@oracledb opt]# unzip linux.x64_11gR2_database_1of2.zip
[root@oracledb opt]# unzip linux.x64_11gR2_database_2of2.zip
三个文件的作用:
Db_install.rsp: 安装应答
Dbca.rsp: 创建数据库应答
Netca.rsp: 建立监听、本地服务名等网络设置的应答
去到目录下,修改db_install.rsp文件,(这里建议做个备份,方便一会改错了好对照回滚)
[root@oracledb opt]# cd /opt/database/response # 进入 response 目录
[root@oracledb response]# cp db_install.rsp db_install_copy.rsp #将 db_install.rsp 备份一份,以免修改出错
[root@oracledb response]# chmod +x /opt/database/response/db_install.rsp
[root@oracle response]# chmod +x /opt/database/response/dbca.rsp
[root@oracle response]# chmod +x /opt/database/welcome.html
[root@oracledb response]# chown -R oracle:oinstall /opt/database/
修改如下参数: vim db_install.rsp #标红的必须改
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracledb
UNIX_GROP_NAME=oinstall
INVENTORY_LOCATION=/opt/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/opt/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ora11g
oracle.install.db.config.starterdb.SID=ora11g
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
orcle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true //一定要设为 true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
保存并退出
[root@oracledb response]# less /opt/database/response/db_install.rsp |grep -v "#"|grep -v "^$" #查看配置
[root@oracledb response]# su - oracle # 切换到 oracle 用户
[oracle@oracledb ~]$ cd /opt/database/ #进入/opt/database目录
[oracle@oracledb database]$ ./runInstaller -silent -force -responseFile /opt/database/response/db_install.rsp # 安装
#注:这里一般修改都正确的话,不会报错,如果报错去看它的日志,进行排查,不同环境不同报错)
当日志中出现:Successfully Setup Software 说明安装成功
如果出现下图错误,可参照 https://www.cnblogs.com/a9999/p/6957280.html 解决,然后重新执行安装命令
[WARING]可暂时忽略,此时安装程序仍在后台进行,如果出现[FATAL],则安装程序已经停止了。
安装需要一会儿,如果想看安装进度,可以再打开一个窗口,输出会话日志
tail -f 日志文件(下图中红色框中为日志文件绝对路径)
切换到root用户环境: 会生成1个目录:product目录里面有root.sh脚本,执行这2个脚本
sh /opt/app/oracle/oraInventory/orainstRoot.sh
sh /opt/app/oracle/product/11.2.0/db_1/root.sh
启动监听的命令:lsnrctl start
停止监听的命令:lsnrctl stop
重启监听的命令:lsnrctl reload
查看监听的命令:lsnrctl status
执行如下命令: (这里是直接引用的环境变量中的路径)
su - oracle # 切换到 oracle 用户
$ORACLE_HOME/bin/netca /silent /responseFile /opt/database/response/netca.rsp # 配置监听
[oracle@oracledb ~]# su - root # 切换到 root 用户
[root@oracledb ~]# vim /opt/database/response/dbca.rsp
修改文件文件如下内容:
GDBNAME = "orcl" # 78 行
SID="orcl" # 149行
CHARACTERSET="AL32UTF8" # 415行
NATIONALCHARACTERSET="UTF8" # 425行
切换到Oracle用户环境,进行建库。
[root@oracledb ~]# su - oracle # 切换到 oracle 用户
[oracle@oracledb ~]# $ORACLE_HOME/bin/dbca -silent -responseFile /opt/database/response/dbca.rsp # 建库
#注:执行命令后,它会把命令行清屏,这是正常状况,清屏后没有任何提示,直接输入Oracle的数据库密码,回车,再输一次,回车,等一会之后它就会自定创建。
输入命令:sqlplus / as sysdba #权限最高用户sys
SQL*Plus: Release 11.2.0.1.0 Production on Mon Feb 16 14:26:57 2015
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 3290345472 bytes
Fixed Size 2217832 bytes
Variable Size 1795164312 bytes
Database Buffers 1476395008 bytes
Redo Buffers 16568320 bytes
Database mounted.
Database opened.
SQL>
[oracle@oracledb ~]# su - root #切换到 root 用户
[root@oracledb ~]# vim /etc/oratab # 编辑
(改完后的样子)orcl:/home/oracle/oracle92:Y 务必是大写的Y
(未改之前)*:/home/oracle/oracle92:N ##这一行中的* 改为数据库SID:orcl N改为Y(注:是大写的Y)
[root@oracledb ~]# vim /etc/rc.local # 编辑 在末尾加入以下内容:
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'
[root@oracledb ~]# chmod +x /etc/rc.local # 配置文件权限
[root@oracledb ~]# firewall-cmd --permanent --zone=public --add-port=1521/tcp ##开放1521端口
[root@oracledb ~]# firewall-cmd --reload ##重新载入防火墙,使配置生效
[root@oracledb ~]# firewall-cmd --zone=public --list-ports ##查看系统所有开放的端口
bash: sqlplus: command not found 解决方法
[oracle@localhost ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/usr/local/oracle11gr2/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=cssid
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
#这里的环境变量都已经配置了。
[root@localhost ~]# sqlplus / as sysdba
-bash: sqlplus: command not found
#找不到sqlplus 可执行文件找不到。 所以我们要去/usr/bin/ 下查看sqlplus 是否存在
[root@localhost bin]# find / -name sqlplus
#要么去sqlplus根目录下执行,要么做个ln到/usr/bin/下sqlplus根目录:/usr/local/oracle11gr2/oracle/product/11.2.0/db_1/bin/sqlplus
这里我们做ln。这样操作方便很多
[root@oracle bin]# ln -s /opt/app/oracle/product/11.2.0/db_1/bin/sqlplus /usr/bin/
#登录验证
[root@oracle ~]# sqlplus / as sysdba
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
#发现登录不进去
[root@oracle ~]# echo $ORACLE_HOME
#查看环境变量没有,定义变量,或者写进/etc/profile永久生效,写完之后刷新生效
[root@oracle ~]# ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1
[root@oracle ~]# export ORACLE_HOME
[root@oracle ~]# echo $ORACLE_HOME
/opt/app/oracle/product/11.2.0/db_1
[root@oracle bin]# source /home/oracle/.bash_profile
[root@oracle bin]# su oracle
[oracle@oracle bin]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Sun Jun 18 20:29:26 2023
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to an idle instance.
SQL>
SQL> startup
ORACLE instance started.
Total System Global Area 1586708480 bytes
Fixed Size 2213736 bytes
Variable Size 922749080 bytes
Database Buffers 654311424 bytes
Redo Buffers 7434240 bytes
Database mounted.
Database opened.
SQL>