本文講一下我首次安裝Oracle19c的過(guò)程和遇到的問(wèn)題及解決辦法,我是在本機(jī)使用Vmware虛擬機(jī)新建了一個(gè)centos7.0的環(huán)境译蒂,centos7.0自帶jdk,不需要再額外安裝jdk
Oracle安裝模式大致可分為兩種:向?qū)J剑▓D形化界面)、靜默模式医咨,向?qū)J皆赪indow系列和Linux系列操作系統(tǒng)都有使用,以直觀架诞、方便拟淮、快捷受歡迎,常用在開(kāi)發(fā)階段自建數(shù)據(jù)庫(kù)的安裝谴忧;靜默模式常見(jiàn)于Linux系列操作系統(tǒng)生產(chǎn)環(huán)境部署安裝很泊,配置、安裝過(guò)程相對(duì)復(fù)雜一些沾谓,Oracle官方說(shuō)明中也指出Oracle在Linux系列的系統(tǒng)性能表現(xiàn)較佳委造。本次安裝說(shuō)明系統(tǒng)平臺(tái)選擇是CentOS(Linux發(fā)行分支)、安裝模式是靜默模式
1.oracle19c下載
官網(wǎng)下載:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html??選擇需要的版本下載
2.oracle19C安裝
2.1.安裝環(huán)境準(zhǔn)備
安裝環(huán)境準(zhǔn)備包含數(shù)據(jù)庫(kù)系統(tǒng)依賴包檢測(cè)與安裝均驶、oracle安裝操作系統(tǒng)用戶配置昏兆、系統(tǒng)參數(shù)優(yōu)化、oracle安裝使用目錄創(chuàng)建
2.1.1.依賴包檢測(cè)與安裝
檢測(cè)依賴包
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本機(jī)的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.部署目錄準(zhǔn)備
使用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ù)庫(kù)系統(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)限不足携狭,無(wú)法修改文件
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用戶下進(jìn)行安裝继蜡,如果無(wú)法安裝,可能是沒(méi)有修改目錄的所屬權(quán)限,執(zhí)行2.1.3即可稀并。
./runInstaller -silent -responseFile /data/oracle/product/19c/install/response/db_install.rsp
3.數(shù)據(jù)庫(kù)監(jiān)聽(tīng)安裝
cd $ORACLE_HOME/bin
./netca -silent -responseFile /data/oracle/product/19c/assistants/netca/netca.rsp
4.數(shù)據(jù)庫(kù)創(chuàng)建
進(jìn)入目錄: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ù)庫(kù)就安裝完成了,接下來(lái)需要啟動(dòng)數(shù)據(jù)庫(kù)和監(jiān)聽(tīng)碘举,能成功連接并登錄數(shù)據(jù)庫(kù)忘瓦。
5.數(shù)據(jù)庫(kù)啟動(dòng)
(1)啟動(dòng)實(shí)例(使用oracle用戶,執(zhí)行以下命令)
*實(shí)例名在目錄4中dbca.rsp文件中已進(jìn)行了定義
>>sqlplus /nolog? ? ?——進(jìn)入命令行
>>conn /as sysdba? ?——連接sysdba用戶
>>startup;? ?——開(kāi)始啟動(dòng)
>>exit;? ?——退出命令行
(2)啟動(dòng)監(jiān)聽(tīng)
命令:lsnrctl start
可通過(guò) lsnrctl status 查看監(jiān)聽(tīng)是否啟動(dòng)引颈,lsnrctl stop 停止監(jiān)聽(tīng)
6.遇到的問(wèn)題總結(jié)
(1)啟動(dòng)監(jiān)聽(tīng)失敗TNS-12545/12560/00515耕皮,報(bào)錯(cuò)如下:(目標(biāo)host不存在)
查看監(jiān)聽(tīng)文件listener.ora,在目錄/data/oracle/product/19c/network/admin下
修改host為本機(jī)IP蝙场,重啟監(jiān)聽(tīng)凌停,不報(bào)錯(cuò)了,ok
(2)監(jiān)聽(tīng)啟動(dòng)成功售滤,但是無(wú)法連接該數(shù)據(jù)庫(kù)(ORA-12514:TNS:監(jiān)聽(tīng)程序當(dāng)前無(wú)法識(shí)別連接描述符中請(qǐng)求的服務(wù)這個(gè)錯(cuò)誤)
查找資料說(shuō)是監(jiān)聽(tīng)文件中缺少SID_LIST節(jié)點(diǎn)览妖,再次打開(kāi)監(jiān)聽(tīng)文件冤狡,添加以下內(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í)例名(在數(shù)據(jù)庫(kù)文件dbca.rsp中可以查看[sid])
GLOBAL_DBNAME:在數(shù)據(jù)庫(kù)文件dbca.rsp中可以查看[gdbName](可以和SID_NAME相同)
修改完成后重啟監(jiān)聽(tīng)热凹,啟動(dòng)成功宽闲,使用plsql可以登錄成功。(登錄時(shí)使用sys/system系統(tǒng)用戶登錄弊知,密碼在數(shù)據(jù)庫(kù)文件dbca.rsp中可以查看[sysPassword]/[systemPassword]阻逮,連接選擇SYSDBA或者SYSOPER)