本文讲一下我首次安装Oracle19c的过程和遇到的问题及解决办法,我是在本机使用Vmware虚拟机新建了一个centos7.0的环境,centos7.0自带jdk,不需要再额外安装jdk
Oracle安装模式大致可分为两种:向导模式(图形化界面)、静默模式,向导模式在Window系列和Linux系列操作系统都有使用,以直观、方便、快捷受欢迎,常用在开发阶段自建数据库的安装;静默模式常见于Linux系列操作系统生产环境部署安装,配置、安装过程相对复杂一些,Oracle官方说明中也指出Oracle在Linux系列的系统性能表现较佳。本次安装说明系统平台选择是CentOS(Linux发行分支)、安装模式是静默模式
1.oracle19c下载
官网下载:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 选择需要的版本下载
2.oracle19C安装
2.1.安装环境准备
安装环境准备包含数据库系统依赖包检测与安装、oracle安装操作系统用户配置、系统参数优化、oracle安装使用目录创建
2.1.1.依赖包检测与安装
检测依赖包
rpm --query --queryformat "%{NAME}-%{VERSION}.${RELEASE} (%{ARCH})\n" bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat elfutils-libelf elfutils-libelf-devel fontconfig-devel libxcb smartmontools libX11 libXau libXtst libXrender libXrender-devel
如果出现 XX is not installed,表示缺失依赖包XX。缺失依赖包安装:
yum -y install +lib……………
2.1.2.安装用户配置
执行创建用户,shell限制步骤操作需要以管理员身份创建用户组
groupadd oinstall
groupadd dba
groupadd asmdba
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
groupadd oper
创建用户
useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
oracle用户环境配置(ORACLE_HOSTNAME本机的hostname配置(/etc/hosts))
切换到oracle用户下:su - oracle
编辑环境变量文件:vi ~/.bash_profile
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=/data/oracle/product/19c
export ORACLE_HOSTNAME=senyintdb
export ORACLE_SID=senyintdb
export PATH=$PATH:$ORACLE_HOME/bin:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/network/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
修改的环境变量生效:source ~/.bash_profile
2.1.3.部署目录准备
使用root用户创建目录
mkdir -p /data/oraInventory
mkdir -p /data/oradata
mkdir -p /data/oracle/product/19c
修改目录所属用户及组:chown -R oracle:oinstall /data
2.2.数据库系统安装
(1)上传并解压安装文件
在root用户下执行,否则权限不足
上传:rz xxxx.zip
解压:unzip xxx.zip -d /data/oracle/product/19c/
(2)安装文件配置(cd $ORACLE_BASE/product/19c, vi install/response/db_install.rsp)
在root用户下执行,否则权限不足,无法修改文件
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oraInventory
ORACLE_HOME=/data/oracle/product/19c
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.ODDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false
(3)安装
需要在Oracle用户下进行安装,如果无法安装,可能是没有修改目录的所属权限,执行2.1.3即可。
./runInstaller -silent -responseFile /data/oracle/product/19c/install/response/db_install.rsp
3.数据库监听安装
cd $ORACLE_HOME/bin
./netca -silent -responseFile /data/oracle/product/19c/assistants/netca/netca.rsp
4.数据库创建
进入目录:cd $ORACLE_HOME/assistants/dbca 下
修改文件:vi dbca.rsp
gdbName=senyintdb
sid=senyintdb
databaseConfigType=SI
templateName=General_Purpose.dbc
sysPassword=senyint
systemPassword=senyint
emConfiguration=DBEXPRESS
dbsnmpPassword=senyint
datafileDestination=/data/oracle/oradata
characterSet=AL32UTF8
totalMemory=8192
创建
cd $ORACLE_HOME/bin
./dbca -silent -createDatabase -responseFile /data/oracle/product/19c/assistants/dbca/dbca.rsp
到这里,我们的Oracle19C数据库就安装完成了,接下来需要启动数据库和监听,能成功连接并登录数据库。
5.数据库启动
(1)启动实例(使用oracle用户,执行以下命令)
*实例名在目录4中dbca.rsp文件中已进行了定义
>>sqlplus /nolog ——进入命令行
>>conn /as sysdba ——连接sysdba用户
>>startup; ——开始启动
>>exit; ——退出命令行
(2)启动监听
命令:lsnrctl start
可通过 lsnrctl status 查看监听是否启动,lsnrctl stop 停止监听
6.遇到的问题总结
(1)启动监听失败TNS-12545/12560/00515,报错如下:(目标host不存在)
查看监听文件listener.ora,在目录/data/oracle/product/19c/network/admin下
修改host为本机IP,重启监听,不报错了,ok
(2)监听启动成功,但是无法连接该数据库(ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务这个错误)
查找资料说是监听文件中缺少SID_LIST节点,再次打开监听文件,添加以下内容
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /data/oracle/product/19c)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = senyintdb)
(ORACLE_HOME = /data/oracle/product/19c)
(SID_NAME = senyintdb)
)
)
ORACLE_HOME:oracle的安装目录(我自己在/data/oracle/product/19c下)
SID_NAME:实例名(在数据库文件dbca.rsp中可以查看[sid])
GLOBAL_DBNAME:在数据库文件dbca.rsp中可以查看[gdbName](可以和SID_NAME相同)
修改完成后重启监听,启动成功,使用plsql可以登录成功。(登录时使用sys/system系统用户登录,密码在数据库文件dbca.rsp中可以查看[sysPassword]/[systemPassword],连接选择SYSDBA或者SYSOPER)