? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?oracle12c linux安裝
# 首先安裝或者克隆centos7
這里我用的是minimal-1708版本
# 配置網(wǎng)絡(luò)nat
cd /etc/sysconfig/network-scripts
vi ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.40.122
NETMASK=255.255.255.0
GATEWAY=192.168.40.1
DNS1=192.168.40.1
service network restart
Vmware的設(shè)置
查看Vmnet8的ip段和網(wǎng)關(guān)易核,關(guān)閉dhcp
# 升級(jí)軟件包
yum -y update
# 安裝net-tools
yum -y install net-tools.x86_64
# 關(guān)閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
重啟后
getenforce
Disabled
# 關(guān)閉防火墻
systemctl stop firewalld
# 修改主機(jī)名和hosts
hostnamectl set-hostname oracle
vi /etc/hosts 添加oracle到匹配ip
# 安裝oracle安裝過(guò)程依賴(lài)項(xiàng)
yum -y install binutils compat-libstdc++ compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel glibc-headers ksh libaio-devel libstdc++-devel make sysstat unixODBC-devel binutils-* compat-libstdc++* elfutils-libelf* glibc* gcc-* libaio* libgcc* libstdc++* make* sysstat* unixODBC* wget unzip
# 安裝oracle java jdk
上傳jdk1.8
安裝jdk
rpm -i jdk-8u181-linux-x64.rpm
# 創(chuàng)建所需操作系統(tǒng)用戶(hù)組和用戶(hù)
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
passwd oracle
密碼設(shè)置要8位以上拟淮,而且不能過(guò)于簡(jiǎn)單
# 將oracle使用者加入到sudo群組中
vi /etc/sudoers
oracle ALL=(ALL) ALL
# 創(chuàng)建安裝目錄
*** $ORACLE_BASE
mkdir -p /opt/oracle? ?
*** ORACLE_HOME
mkdir -p /opt/oracle/product/12.2.0/dbhome_1
數(shù)據(jù)存放目錄
mkdir /opt/oracle/oradata
清單目錄
mkdir /opt/oracle/inventory
數(shù)據(jù)恢復(fù)目錄
mkdir /opt/oracle/flash_recovery_area
修改權(quán)限
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
# 修改系統(tǒng)參數(shù)
vim /etc/sysctl.conf
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
# 修改用戶(hù)限制文件
vi /etc/security/limits.conf
oracle? soft? nofile? 1024
oracle? hard? nofile? 65536
oracle? soft? nproc? ? 2047
oracle? hard? nproc? ? 16384
oracle? soft? stack? ? 10240
oracle? hard? stack? ? 32768
# 關(guān)聯(lián)設(shè)置
[root@oracle ~]# vi /etc/pam.d/login
session? ? required? ? /lib64/security/pam_limits.so
session? ? required? ? pam_limits.so
# 設(shè)置環(huán)境變量
[root@oracle ~]# vim /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
### source /etc/profile
# 配置oracle用戶(hù)環(huán)境變量(切換oracle用戶(hù))
切換到oracle用戶(hù)的home目錄
[oracle@oracle ~]$ vim .bash_profile
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/12.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
if [ $USER = "oracle" ]; then
? ? ? ? if [ $SHELL = "/bin/ksh" ]; then
? ? ? ? ? ? ? ? ulimit -p 16384
? ? ? ? ? ? ? ? ulimit -n 65536
? ? ? ? else
? ? ? ? ? ? ? ? ulimit -u 16384 -n 65536
? ? ? ? fi
? ? ? ? ? ? ? ? umask 022
fi
[oracle@oracle ~]$ source .bash_profile
# 上傳下載的數(shù)據(jù)庫(kù)文件
到$ORACLE_BASE
# 解壓oracle安裝包
使用oracle用戶(hù)解壓
# 查看應(yīng)答文件
解壓完成可以看到目錄/opt/oracle/database/response有3個(gè)應(yīng)答文件梗掰,
分別數(shù)據(jù)庫(kù)安裝文件尿庐、建立數(shù)據(jù)庫(kù)實(shí)例和監(jiān)聽(tīng)配置安裝文件
[oracle@oracle oracle]$ ll /opt/oracle/database/response/
total 112
-rwxrwxr-x 1 oracle oinstall 74822 Apr? 4? 2014 dbca.rsp
-rw-rw-r-- 1 oracle oinstall 25036 Jul? 7? 2014 db_install.rsp
-rwxrwxr-x 1 oracle oinstall? 6038 Jan 24? 2014 netca.rsp
# 修改數(shù)據(jù)庫(kù)安裝文件db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY? #安裝類(lèi)型
ORACLE_HOSTNAME=oracle #主機(jī)名稱(chēng)
UNIX_GROUP_NAME=oinstall #安裝組
INVENTORY_LOCATION=/opt/oracle/inventory #清單目錄
SELECTED_LANGUAGES=en,zh_CN #選擇語(yǔ)言
ORACLE_HOME=/opt/oracle/product/12.2.0/dbhome_1? #
oracle.install.db.InstallEdition=SE2? #oracle版本
oracle.install.db.DBA_GROUP=dba? oracle_home
ORACLE_BASE=/opt/oracle? #oracle_base#dba用戶(hù)組
oracle.install.db.OPER_GROUP=oper? #oper用戶(hù)組
oracle.install.db.BACKUPDBA_GROUP=dba
oracle.install.db.DGDBA_GROUP=dba
oracle.install.db.KMDBA_GROUP=dba
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE? #數(shù)據(jù)庫(kù)類(lèi)型
oracle.install.db.config.starterdb.globalDBName=orcl #globalDBName
oracle.install.db.config.starterdb.SID=orcl #SID
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.password.ALL=oracle?
oracle.install.db.config.starterdb.installExampleSchemas=true
#設(shè)定所有數(shù)據(jù)庫(kù)用戶(hù)使用同一個(gè)密碼
DECLINE_SECURITY_UPDATES=true? #設(shè)置安全更新
# 安裝
./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq
# 修改權(quán)限
以 root 用戶(hù)的身份執(zhí)行以下腳本:
? ? ? ? 1. /opt/oracle/inventory/orainstRoot.sh
? ? ? ? 2. /opt/oracle/product/12.2.0/dbhome_1/root.sh
# netca
[oracle@oracle ~]$ netca /silent /responseFile /opt/oracle/database/response/netca.rsp
正在對(duì)命令行參數(shù)進(jìn)行語(yǔ)法分析:
? ? 參數(shù)"silent" = true
? ? 參數(shù)"responsefile" = /opt/oracle/database/response/netca.rsp
完成對(duì)命令行參數(shù)進(jìn)行語(yǔ)法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 監(jiān)聽(tīng)程序啟動(dòng):
? ? 正在運(yùn)行監(jiān)聽(tīng)程序控制:
? ? ? /opt/oracle/product/12.2.0/dbhome_1/bin/lsnrctl start LISTENER
? 監(jiān)聽(tīng)程序控制完成。
? ? 監(jiān)聽(tīng)程序已成功啟動(dòng)委粉。
監(jiān)聽(tīng)程序配置完成。
成功完成 Oracle Net Services 配置娶桦。退出代碼是0
安裝好后會(huì)生成listener.ora shrept.lst 和 sqlnet.ora文件
[oracle@oracle ~]$ ls /opt/oracle/product/12.2.0/dbhome_1/network/admin/
listener.ora? samples? shrept.lst? sqlnet.ora
檢查1521端口
[oracle@oracle ~]$ netstat -tulnp|grep 1521
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6? ? ? 0? ? ? 0 :::1521? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? LISTEN? ? ? 61120/tnslsnr
查看listener.ora文件
LISTENER =
? (DESCRIPTION_LIST =
? ? (DESCRIPTION =
? ? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.40.20)(PORT = 1521))
? ? ? (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
? ? )
? )
tnsnames.ora文件內(nèi)容
LISTENER_ORCL =
? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.40.20)(PORT = 1521))
ORCL =
? (DESCRIPTION =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.40.20)(PORT = 1521))
? ? (CONNECT_DATA =
? ? ? (SERVER = DEDICATED)
? ? ? (SERVICE_NAME = orcl)
? ? )
? )
# 執(zhí)行dbca
[oracle@oracle ~]$ vim /opt/oracle/database/response/dbca.rsp
gdbName=orcl
sid=orcl
templateName=General_Purpose.dbc
sysPassword=oracle
systemPassword=oracle
datafileDestination=/opt/oracle/oradata
recoveryAreaDestination=/opt/oracle/flash_recovery_area
characterSet=AL32UTF8
nationalCharacterSet=UTF8
[oracle@oracle ~]$ dbca -silent -createDatabase -responseFile /opt/oracle/database/response/dbca.rsp
建庫(kù)后進(jìn)行實(shí)例進(jìn)程檢查:
ps -ef | grep ora_ | grep -v grep
[oracle@oracle ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
STATUS
------------
OPEN
如果出現(xiàn)的是Oracle not availible
startup
# 修改客戶(hù)端亂碼
export NLS_LANG=AMERICAN_AMERICA.UTF8
export LANG=en_US.UTF-8
## 如果執(zhí)行l(wèi)snrctl status是如下情況
The listener supports no services
查看數(shù)據(jù)庫(kù)service_name
sys@ORCL> show parameter service
NAME? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE? ? ? ? VALUE
------------------------------------ ----------- ------------------------------
service_names? ? ? ? ? ? ? ? ? ? ? ? string? ? ? orcl
手工注冊(cè)有時(shí)能夠解決問(wèn)題:
sys@ORCL> alter system register;
System altered.
# 安裝demo schema
下載demo schema
https://github.com/oracle/db-sample-schemas/releases/latest
將db-sample-schemas-12.2.0.1.zip 上傳到/opt/oracle 目錄下
解壓
$ unzip db-sample-schemas-12.2.0.1.zip
進(jìn)入目錄
$ cd /opt/oracle/db-sample-schemas-12.2.0.1
修改工作路徑
$ perl -p -i.bak -e 's#__SUB__CWD__#'$(pwd)'#g' *.sql */*.sql */*.dat
重新設(shè)置環(huán)境變量
[oracle@oracle db-sample-schemas-12.2.0.1]$ source /usr/local/bin/oraenv
ORACLE_SID = [orcl] ? y
ORACLE_HOME = [/home/oracle] ? /opt/oracle/product/12.2.0/dbhome_1/
The Oracle base remains unchanged with value /opt/oracle
確認(rèn)關(guān)閉防火墻
$ systemctl stop firewalld
查看監(jiān)聽(tīng)器是否啟動(dòng)
$ lsnrctl status
如果沒(méi)有啟動(dòng)
$ lsnrctl start
$ sqlplus / as sysdba
@mksample oracle oracle hrpw oepw pmpw ixpw shpw bipw users temp /tmp/log/ orcl
登錄安裝好的示例數(shù)據(jù)庫(kù)
conn hr/hrpw