
一、说明:
1、我的linux是64位的redhat7.4,安装的oracle版本是11.2.0.4。
2、我这是自己安装的linux虚拟机,主机名为ora11g,ip为192.168.100.123
3、这台机器以前没有安装过oracle数据库,这是第一次安装;系统安装好了之后,仅仅只配了ip地址;
二、准备工作:
1、确认主机名一致:
[root@ora11g ~]# vi /etc/hosts
在末尾添加 (#其中192.168.100.123为本机ip地址,ora11g为本机主机名,请根据服务器不同自行更改)
192.168.100.123 ora11g
2、上传数据库安装压缩包,比如/home/下,并解压,会得到一个database的文件夹。
3、禁用selinux:
[root@henry ~]#setenforce 0 [root@henry ~]# vim /etc/selinux/config
修改SELINUX的值为disabled,检查一下
[root@henry ~]# cat /etc/selinux/config SELINUX=disabled
4、教正时间
date -s "2020-06-03 17:06:12"
三、安装依赖软件
1、建立光盘源
1)查看光盘位置,可以看出/dev/sr0即为系统光盘文件
[root@ora11g ~]# df -h
提示内容为
Filesystem Size Used Avail Use% Mounted on /dev/sda3 26G 2.8G 22G 12% / tmpfs 936M 224K 936M 1% /dev/shm /dev/sda1 194M 34M 151M 19% /boot /dev/sr0 3.6G 3.6G 0 100% /media/RHEL_6.5 x86_64 Disc 1
2)、挂载光盘 (挂载点为mnt目录)
[root@ora11g ~]# mount /dev/cdrom /mnt/
3)、创建本地yum源并编辑
[root@ora11g ~]# touch /etc/yum.repos.d/redhat.repo [root@ora11g ~]# vi /etc/yum.repos.d/redhat.repo
在redhat.repo中添加内容(#后面文字为说明,复制的时候请自行删除)
[Sever] name=redhat7.4 #自定义名称 baseurl=file:///mnt/ #本地光盘挂载路径 enabled=1 #启用yum源,0为不启用,1为启用 gpgcheck=0 #检查GPG-key,0为不启用
4)、把 yum.conf中的gpgcheck改为0
vi /etc/yum.conf
5)、重建源缓存
yum clean all yum makecache fast
2、安装依赖软件
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
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
3、检验依赖包是否打完
[root@ora11g ~]#rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh [root@ora11g ~]#rpm -q libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC unixODBC-devel
我安装到时候compat-libstdc++-33没装上,我单独在网上下载rpm包安装的。
四、修改系统文件参数
1、配置linux内核参数
[root@ora11g ~]# vi /etc/sysctl.conf
注释掉kernel.shmmax与kernel.shmall,并追加以下内容
kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.file-max = 6815744 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 fs.aio-max-nr = 1048576
然后使用下面命令重新加载配置并检查。
sysctl -p
2、配置资源使用情况
[root@ora11g ~]# vi /etc/security/limits.conf
追加以下内容
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle hard stack 10240
3、登陆设置
[root@ora11g ~]# vi /etc/pam.d/login
追加以下内容
session required /lib64/security/pam_limits.so session required pam_limits.so
4、修改环境变量
[root@ora11g ~]# vi /etc/profile
追加以下内容
if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
5、创建用户、用户组和安装目录
1)、创建oinstall和dba组和oracle用户
[root@ora11g ~]# groupadd oinstall [root@ora11g ~]# groupadd dba [root@ora11g ~]# useradd -g oinstall -G dba oracle [root@ora11g ~]# passwd oracle
之后会输入两次oracle密码
2)、创建安装目录并修改所属用户和组
[root@ora11g ~]# mkdir -p /u01/app/oracle [root@ora11g ~]# chown -R oracle:oinstall /u01/app/
6、修改oracle用户环境变量
1)、切换到oracle用户。
[root@ora11g ~]# su - oracle
2)、修改环境变量
[oracle@ora11g ~]$ vi .bash_profile
追加以下内容
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=ora11g export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
移动oracle安装文件目录(database)到/u01中,并修改权限。
[root@ora11g ~]$ cd /home/oracle/ [root@ora11g ~]$ unzip p13390677_112040_Linux-x86-64_1of7.zip && unzip p13390677_112040_Linux-x86-64_2of7.zip [root@ora11g ~]$ ls database p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip [root@ora11g ~]# mv /home/oracle/database/ /u01/ #视解压路径修改此命令 [root@ora11g ~]# cd /u01 [root@ora11g ~]# chown -R oracle:oinstall database/ [root@ora11g ~]# chmod -R 777 database/
五、开始静默安装oracle
1、静默安装oracle软件
1)、编辑响应文件db_install.rsp
[root@ora11g ~]# vi /u01/database/response/db_install.rsp
查找以下项目,参照修改。(参考说明 http://blog.csdn.net/jameshadoop/article/details/48086933)
oracle.install.option=INSTALL_DB_SWONLY #选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库 ORACLE_HOSTNAME=ora11g #指定操作系统主机名,通过hostname命令获得 UNIX_GROUP_NAME=oinstall #指定oracle inventory目录的所有者,通常会是oinstall或者dba INVENTORY_LOCATION=/u01/app/oraInventory #指定产品清单oracle inventory目录的路径 SELECTED_LANGUAGES=en,zh_CN #指定数据库语言,可以选择多个,用逗号隔开 ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 #设置ORALCE_HOME的路径 ORACLE_BASE=/u01/app/oracle # 设置ORALCE_BASE的路径 oracle.install.db.InstallEdition=EE #选择Oracle安装数据库软件的版本 oracle.install.db.isCustomInstall=false oracle.install.db.DBA_GROUP=dba #指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组 oracle.install.db.OPER_GROUP=oinstall oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #选择数据库的用途,一般用途/事物处理,数据仓库 oracle.install.db.config.starterdb.globalDBName=ora11g #指定GlobalName oracle.install.db.config.starterdb.SID=ora11g #指定SID oracle.install.db.config.starterdb.characterSet=ZHS16GBK #选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。通常中文选择的有ZHS16GBK简体中文库,根据公司规定自行选择 oracle.install.db.config.starterdb.password.ALL=123456 #设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。 DECLINE_SECURITY_UPDATES=true # False表示不需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG,Response File中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址
2)、切换到oracle用户进入到/u01/database目录下执行安装命令
[oracle@ora11g ~]$ cd /u01/database/ [oracle@ora11g database]$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq
安装过程大概十分钟,过程中会给出安装日志位置,新开远程终端登录root用户,使用tail -f 查看实时日志。
3)、等到窗口出现以下提示时,表示安装完成:
... /u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/db_1/root.sh To execute the configuration scripts: 1. Open a terminal window 2. Log in as "root" 3. Run the scripts 4. Return to this window and hit "Enter" key to continue Successfully Setup Software.
4)、根据提示,新开远程终端登录root用户,并执行以下命令:
[root@ora11g ~]# /u01/app/oraInventory/orainstRoot.sh [root@ora11g ~]# /u01/app/oracle/product/11.2.0/db_1/root.sh
oracle软件安装完成。
2、静默建库
1)、编辑dbca.rsp
[root@ora11g ~]# vi /u01/database/response/dbca.rsp
修改配置如下
#以下内容不要修改 RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" #以下内容必须设置 GDBNAME = "ora11g" SID = "ora11g" TEMPLATENAME = "General_Purpose.dbc" #以下内容根据需要修改 CHARACTERSET = "ZHS16GBK"
2)、使用oracle用户执行建库命令
[oracle@ora11g ~]$ /u01/app/oracle/product/11.2.0/db_1/bin/dbca -silent -responseFile /u01/database/response/dbca.rsp
之后会提示输入sys和system的密码,我的都是123456,所有输入2次都是一样的。
界面会提示安装进度
Copying database files ... 37% complete Creating and starting Oracle instance ... 62% complete Completing Database Creation ... 100% complete Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/ORCL/ORCL.log" for further details.
3、安装rlwrap,可以使用键盘方向键和退格等操作历史记录。
1)、上传并安装rlwrap包,root用户安装
[root@henry ~]# yum install -y readline*
2)、解压并安装rlwrap
[root@henry ~]# tar -zxvf 12-rlwrap-0.37.tar.gz [root@henry ~]# cd rlwrap-0.37/ [root@henry rlwrap-0.37]# ls aclocal.m4 AUTHORS BUGS ChangeLog completions config.h.in configure configure.ac COPYING doc filters INSTALL Makefile.am Makefile.in NEWS PLEA README src test TODO tools [root@henry rlwrap-0.37]# ./configure [root@henry rlwrap-0.37]# make&&make install
3)、检查安装是否成功
[root@henry ~]# rlwrap -v
4)、配置到环境变量
[oracle@henry ]$ vi ~/.bash_profile
追加如下内容
alias sqlplus="rlwrap sqlplus"
使配置生效
[root@henry ~]# source ~/.bash_profile
4、 配置监听
1)、将配置监听的应答文件netca.rsp复制oracle用户的家目录下,不用做修改
[oracle@henry ]$ cd /u01/database/response [oracle@henry response]$ cp netca.rsp /home/oracle/
2)、执行静默配置监听
[oracle@henry response]$ netca -silent -responseFile /home/oracle/netca.rsp
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/目录下会新增listener.ora 和sqlnet.ora两个文件。这是个动态监听,监听创建后就已启动。
3)、启动,停止,查看监听状态。
查看监听状态
[oracle@henry ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 29-OCT-2019 09:57:37 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 29-OCT-2019 09:29:29 Uptime 0 days 0 hr. 28 min. 8 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /data/u01/app/oracle/diag/tnslsnr/henry/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=henry)(PORT=1521))) Services Summary... Service "PROD1" has 1 instance(s). Instance "PROD1", status READY, has 1 handler(s) for this service... Service "PROD1XDB" has 1 instance(s). Instance "PROD1", status READY, has 1 handler(s) for this service... The command completed successfully
停止监听
[oracle@henry ~]$ lsnrctl stop LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 29-OCT-2019 10:00:10 Copyright (c) 1991, 2013, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) The command completed successfully
启动监听
[oracle@henry ~]$ lsnrctl start LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 29-OCT-2019 10:00:46 Copyright (c) 1991, 2013, Oracle. All rights reserved. Starting /data/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.4.0 - Production System parameter file is /data/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Log messages written to /data/u01/app/oracle/diag/tnslsnr/henry/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=henry)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production Start Date 29-OCT-2019 10:00:46 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /data/u01/app/oracle/diag/tnslsnr/henry/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=henry)(PORT=1521))) The listener supports no services The command completed successfully
六、验证安装情况
登入数据库,运行查询命令。
[oracle@henry ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Production on Tue Oct 29 10:13:50 2019 Copyright (c) 1982, 2013, Oracle. All rights reserved. SQL> conn / as sysdba Connected. SQL> show user; USER is "SYS" SQL> show parameter db_name; NAME TYPE VALUE ------------------------------------ ---------------------- ------------------------------ db_name string PROD1 SQL> select status from v$instance; STATUS ------------------------ OPEN