本文講一下我首次安裝Oracle19c的過程和遇到的問題及解決辦法,我是在本機使用Vmware虛擬機新建了一個centos7.0的環(huán)境,centos7.0自帶jdk,不需要再額外安裝jdk
Oracle安裝模式大致可分為兩種:向?qū)J剑▓D形化界面)、靜默模式,向?qū)J皆赪indow系列和Linux系列操作系統(tǒng)都有使用,以直觀、方便、快捷受歡迎,常用在開發(fā)階段自建數(shù)據(jù)庫的安裝;靜默模式常見于Linux系列操作系統(tǒng)生產(chǎn)環(huán)境部署安裝,配置、安裝過程相對復(fù)雜一些,Oracle官方說明中也指出Oracle在Linux系列的系統(tǒng)性能表現(xiàn)較佳。本次安裝說明系統(tǒng)平臺選擇是CentOS(Linux發(fā)行分支)、安裝模式是靜默模式
1.oracle19c下載
官網(wǎng)下載:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html??選擇需要的版本下載
2.oracle19C安裝
2.1.安裝環(huán)境準備
安裝環(huán)境準備包含數(shù)據(jù)庫系統(tǒng)依賴包檢測與安裝、oracle安裝操作系統(tǒng)用戶配置、系統(tǒng)參數(shù)優(yōu)化、oracle安裝使用目錄創(chuàng)建
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
如果出現(xiàn) XX is not installed,表示缺失依賴包XX。缺失依賴包安裝:
yum -y install +lib……………
2.1.2.安裝用戶配置
執(zhí)行創(chuàng)建用戶,shell限制步驟操作需要以管理員身份創(chuàng)建用戶組
groupadd oinstall
groupadd dba
groupadd asmdba
groupadd backupdba
groupadd dgdba
groupadd kmdba
groupadd racdba
groupadd oper
創(chuàng)建用戶
useradd -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper -m oracle
oracle用戶環(huán)境配置(ORACLE_HOSTNAME本機的hostname配置(/etc/hosts))
切換到oracle用戶下:su - oracle
編輯環(huán)境變量文件: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
修改的環(huán)境變量生效:source?~/.bash_profile
2.1.3.部署目錄準備
使用root用戶創(chuàng)建目錄
mkdir -p /data/oraInventory
mkdir -p /data/oradata
mkdir -p /data/oracle/product/19c
修改目錄所屬用戶及組:chown -R oracle:oinstall /data
2.2.數(shù)據(jù)庫系統(tǒng)安裝
(1)上傳并解壓安裝文件
在root用戶下執(zhí)行,否則權(quán)限不足
上傳:rz xxxx.zip
解壓:unzip xxx.zip -d /data/oracle/product/19c/
(2)安裝文件配置(cd $ORACLE_BASE/product/19c,?vi install/response/db_install.rsp)
在root用戶下執(zhí)行,否則權(quán)限不足,無法修改文件
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用戶下進行安裝,如果無法安裝,可能是沒有修改目錄的所屬權(quán)限,執(zhí)行2.1.3即可。
./runInstaller -silent -responseFile /data/oracle/product/19c/install/response/db_install.rsp
3.數(shù)據(jù)庫監(jiān)聽安裝
cd $ORACLE_HOME/bin
./netca -silent -responseFile /data/oracle/product/19c/assistants/netca/netca.rsp
4.數(shù)據(jù)庫創(chuàng)建
進入目錄: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
創(chuàng)建
cd $ORACLE_HOME/bin
./dbca -silent -createDatabase -responseFile /data/oracle/product/19c/assistants/dbca/dbca.rsp
到這里,我們的Oracle19C數(shù)據(jù)庫就安裝完成了,接下來需要啟動數(shù)據(jù)庫和監(jiān)聽,能成功連接并登錄數(shù)據(jù)庫。
5.數(shù)據(jù)庫啟動
(1)啟動實例(使用oracle用戶,執(zhí)行以下命令)
*實例名在目錄4中dbca.rsp文件中已進行了定義
>>sqlplus /nolog? ? ?——進入命令行
>>conn /as sysdba? ?——連接sysdba用戶
>>startup;? ?——開始啟動
>>exit;? ?——退出命令行
(2)啟動監(jiān)聽
命令:lsnrctl start
可通過 lsnrctl status 查看監(jiān)聽是否啟動,lsnrctl stop 停止監(jiān)聽
6.遇到的問題總結(jié)
(1)啟動監(jiān)聽失敗TNS-12545/12560/00515,報錯如下:(目標host不存在)

查看監(jiān)聽文件listener.ora,在目錄/data/oracle/product/19c/network/admin下

修改host為本機IP,重啟監(jiān)聽,不報錯了,ok
(2)監(jiān)聽啟動成功,但是無法連接該數(shù)據(jù)庫(ORA-12514:TNS:監(jiān)聽程序當前無法識別連接描述符中請求的服務(wù)這個錯誤)


查找資料說是監(jiān)聽文件中缺少SID_LIST節(jié)點,再次打開監(jiān)聽文件,添加以下內(nèi)容
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:實例名(在數(shù)據(jù)庫文件dbca.rsp中可以查看[sid])
GLOBAL_DBNAME:在數(shù)據(jù)庫文件dbca.rsp中可以查看[gdbName](可以和SID_NAME相同)
修改完成后重啟監(jiān)聽,啟動成功,使用plsql可以登錄成功。(登錄時使用sys/system系統(tǒng)用戶登錄,密碼在數(shù)據(jù)庫文件dbca.rsp中可以查看[sysPassword]/[systemPassword],連接選擇SYSDBA或者SYSOPER)