系統:建議用Oracle官網提供的OEL7.6 (Oracle企業版Linux),有對oracle內核做了好多優化 。
這裏用示範的是在CentOS7.6下圖形化安裝Oracle 12,靜默安裝另外寫一篇文章介紹
圖形化安裝大概步驟:安裝Oracle軟件(runInstaller) -> 配置網絡監聽(netca) -> 創建數據庫(dbca) -> 本地Net服務名配置(netca)
https://edelivery.oracle.com/osdc/faces/SoftwareDelivery#!
Oracle安裝包:linuxx64_12201_database.zip (到Oracle官網,註冊個用戶去下載)
想練習的話把example的包也下了“linuxx64_12201_examples.zip”
下面是安裝過程:
[root@localhost ~]# groupadd -g 501 oinstall #建一個gid爲501的oinstall組
[root@localhost ~]# groupadd -g 502 dba #建一個gid爲503的dba組
[root@localhost ~]# useradd -g oinstall -G dba oracle #建用戶oracle,且加入主組oinstall和從屬組dba,好像古代老婆一個,妾可以很多個。舉例,su - oracle後創建的文件所屬組是oinstall,newgrp dba切換到從屬組dba後創建的文件所屬組是dba
[root@localhost ~]# id oracle
uid=1000(oracle) gid=501(oinstall) groups=501(oinstall),502(dba)
[root@localhost ~]# mkdir -p /orasetup /home/app/oracle/product/12.2.0/db_1 #這些連接根據自己需要來定
[root@localhost ~]# chmod -R 775 /orasetup /home/app/oracle/product/12.2.0/db_1
[root@localhost ~]# chown -R oracle:oinstall /orasetup /home/app/oracle/product/12.2.0/db_1
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ pwd
/home/oracle
[oracle@localhost ~]$ vi .bash_profile #設環境變量,下面的alias和export
[oracle@localhost ~]$ cat ./.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias vi='vim'
alias sqlplus='rlwrap sqlplus' #去安裝rlwrap,它支持上下左右的鍵盤滾動以及歷史記錄快速查詢的,默認sqlplus不支持,用list看歷史記錄也不方便
alias rman='rlwrap rman'
export ORACLE_BASE=/home/app/oracle #oracle基本目錄,其它oracle軟件都可以裝這裏
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1 #oracle數據庫軟件目錄
export ORACLE_SID=oral #oracle數據庫唯一標識(在單實例裏比較重要)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib/usr/lib #字典庫路徑
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin:$ORACLE_HOME/jdk/bin #bin操作路徑
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS" #日期顯示格式
export NLS_LANG="Simplified Chinese_China".AL32UTF8 #字符集
[oracle@localhost ~]$ source .bash_profile
安裝rlwrap
[root@localhost ~]# tar -zxvf rlwrap-0.37.tar.gz
......
[root@localhost ~]# cd rlwrap-0.37
[root@localhost 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@localhost rlwrap-0.37]# ./configure
checking build system type... Invalid configuration `x86_64-unknown-linux-': machine `x86_64-unknown-linux' not recognized
configure: error: /bin/sh tools/config.sub x86_64-unknown-linux- failed
[root@localhost rlwrap-0.37]# yum install gcc gcc-c++ -y #上面報錯,先安裝一些常用依賴再試下,哈
......
[root@localhost rlwrap-0.37]# ./configure
......
configure: checking for pty ranges...
checking for tgetent... no
checking for tgetent in -lcurses... yes
checking for readline in -lreadline... no
configure: error:
You need the GNU readline library(ftp://ftp.gnu.org/gnu/readline/ ) to build
this program!
[root@localhost rlwrap-0.37]# yum install *readline* -y #上面還有別的報錯,再裝依賴
......
[root@localhost rlwrap-0.37]# ./configure
...... #終於正常了
[root@localhost rlwrap-0.37]# make && make install
......
[root@localhost rlwrap-0.37]# rlwrap -v
rlwrap 0.37
設置些系統限制
[root@localhost rlwrap-0.37]# vi /etc/profile #加下面去解除系統限制
......
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
[root@localhost rlwrap-0.37]# source /etc/profile
[root@localhost rlwrap-0.37]# vi /etc/security/limits.conf #加下面去允許打開的軟硬限制。參考下https://www.cnblogs.com/galengao/p/5764693.html
......
oracle soft stack 10240
oracle soft nproc 2047 #noproc表示的是每個用戶最大的進程數
oracle hard nproc 16384
oracle soft nofile 1024 #nofile表示的時最多能同時打開的文件數
oracle hard nofile 65536
......
使用xshell或secureCRT連接linux時不支持圖形模式,這裏用xmanage的Xmanager - Passive去做實驗。
1、安裝xmanager後運行裏面的Passive,右下角會出現一個X的圖標
2、在客戶端執行下面命令,下面IP是本機的客戶端IP,然後執行xhost +,出現下面提示才正常
[root@localhost ~]# xhost +
-bash: xhost: 未找到命令
[root@localhost ~]# yum whatprovides "*/xhost"
已加載插件:ulninfo
ol7_UEKR5/x86_64/filelists_db | 2.7 MB 00:00:02
ol7_latest/x86_64/filelists_db | 15 MB 00:00:12
xorg-x11-server-utils-7.7-20.el7.x86_64 : X.Org X11 X server utilities
源 :ol7_latest
匹配來源:
文件名 :/usr/bin/xhost
[root@localhost ~]# yum install -y xorg-x11-server-utils-7.7-20.el7.x86_64 #根據上面提示安裝
[root@localhost ~]# export DISPLAY=150.18.46.138:0.0
[root@localhost ~]# xhost +
access control disabled, clients can connect from any host
安裝
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ export DISPLAY=150.18.46.138:0.0
[oracle@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[oracle@localhost ~]$ cd /orasetup
[oracle@localhost orasetup]$ unzip linuxx64_12201_database.zip
......
[oracle@localhost orasetup]$ ls
database linuxx64_12201_database.zip
[oracle@localhost orasetup]$ cd database/
[oracle@localhost database]$ ls
install response rpm runInstaller sshsetup stage welcome.html
[oracle@localhost database]$ ./runInstaller
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 500 MB. Actual 23761 MB Passed
Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed
Checking monitor: must be configured to display at least 256 colors
>>> Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Some requirement checks failed. You must fulfill these requirements before
continuing with the installation,
Continue? (y/n) [n] y
>>> Ignoring required pre-requisite failures. Continuing...
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-08-09_03-14-24PM. Please wait ...
配置安全更新。前面√去掉(如果安裝框亂碼就搞字體包進去或者先export LANG=en_US英文安裝)
安裝選項。先僅安裝數據庫軟件
數據庫安裝選項。現在僅玩下單實例
數據庫版本。選企業版安裝
安裝位置。上面是oracle基目錄,下面是oracle產品目錄,這2目錄在之前oracle用戶.bash_profile中配好了,這裏直接讀取該文件
創建產品清單(如果是第二次安裝數據庫軟件時,需要把該目錄下的清冊幹掉)
操作系統組。各種操作所需的權限組,自己玩,都給dba好了
先決條件檢查。如果用的官方OEL系統,直接yum install oracle就ok。由於這裏用vmware裝的Centos7.6去玩,所以要根據下面的檢查結果點開每一個(more details)提示解決
"Checks"部分,1、修改swap大小 2、在/etc/security/limits.conf里加上oracle hard nofile 65536
"OS Kernel Parameters"部分,根據提示修改內核參數,把下面加到/etc/sysctl.conf,然後sysctl -p生效
kernel.sem=250 32000 100 128
fs.file-max=6815744
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
"Packages"部分,根據檢查用root把它們都yum安裝上 ( yum install compat* sysstat* ksh* smartmontools* -y)
修改完成後再點下【Check Again】重新檢查下,沒報錯就繼續
安裝過程出現下面提示,根據提示用root執行相應腳本
執行完腳本後點OK繼續
安裝完成,點關閉即可
安裝監聽 (NETCA)
在oracle用戶下輸入命令netca
[oracle@localhost ~]$ export DISPLAY=150.18.46.138:0.0
[oracle@localhost ~]$ env | grep -i display
DISPLAY=150.18.46.138:0.0
[oracle@localhost ~]$ xhost +
access control disabled, clients can connect from any host
[oracle@localhost ~]$ netca
選擇“監聽配置”,下一步
添加監聽,下一步
默認監聽名稱LISTENER,下一步
默認TCP協議,下一步
默認端口1521.下一步
不配置另一個監聽,下一步
監聽配置完成,下一步
點擊完成按鈕Finish,完成配置
創建數據庫
在用戶oracle下輸入命令dbca
默認創建數據庫,下一步
選擇高級配置,下一步
單實例數據庫 -> 一般用途(OLTP)或事務處理 -> 下一步
默認,下一步
12C後支持CDB和PDB(即容器數據庫Container Database和可插拔數據庫Pluggable Database),實例與數據庫形成一對多關係
選擇存儲屬性 -> OMF表空間管理 -> 下一步
快速閃回區的存儲方式、路徑和大小 (做練習,先不開歸檔)
可以看到已將加載出之前設置的監聽程序,下一步
做練習用,先不設安全選項,下一步
練習環境可以打上勾,內存情況請根據實際情況自行設置,下一步
如果共享內存設置超過總內存的一半,需要在系統中設置shm,虛擬內存頁大小
vi /etc/fstab -> tmpfs /dev/shm tmpfs defaults,size=12288M 0 0
保存後,umount /dev/shm再mount /dev/shm
這幾個選項涉及共享內存(sga/pga)、調整大小注意是進程大小、字符集默認AL32UTF8就好、連接模式選專用、實例方案可選
這裏不設置單機版的OEM,爲了後期加入到OEM CC中,下一步
自己練習玩的,統一口令好了,下一步
可以查看所有的初始化參數,也可以生成數據庫創建腳本來學習(這個腳本主要採用的是RMAN的CLONE技術),下一步
看下詳細的配置清單,檢查OK後,點擊完成開始建庫
數據庫創建完畢,關閉
本地NET服務名配置
oracle用戶下輸入netca
選擇本地net服務名配置
已經建庫了,直接測試即可,下一步
選擇庫名相同的服務,下一步
用system用戶測試,輸入密碼,測試成功
網絡配置
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ cd /home/app/oracle/product/12.2.0/db_1/network/admin
[oracle@localhost admin]$ vim listener.ora
[oracle@localhost admin]$ cat listener.ora
# listener.ora Network Configuration File: /home/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /home/app/oracle/product/12.2.0/db_1)
)
)
[oracle@localhost admin]$
啓動下監聽程序,下圖成功(snrctl stop -> lsnrctl start ->lsnrctl status)
[oracle@localhost admin]$ lsnrctl stop
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 11-9月 -2019 09:55:38
Copyright (c) 1991, 2016, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
命令執行成功
[oracle@localhost admin]$ lsnrctl start
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 11-9月 -2019 09:55:44
Copyright (c) 1991, 2016, Oracle. All rights reserved.
啓動/home/app/oracle/product/12.2.0/db_1/bin/tnslsnr: 請稍候...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
系統參數文件爲/home/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
寫入/home/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml的日誌信息
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production
啓動日期 11-9月 -2019 09:55:44
正常運行時間 0 天 0 小時 0 分 0 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程序參數文件 /home/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
監聽程序日誌文件 /home/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
服務摘要..
服務 "orcl" 包含 1 個實例。
實例 "orcl", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
命令執行成功
[oracle@localhost admin]$ lsnrctl status
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 11-9月 -2019 09:55:48
Copyright (c) 1991, 2016, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production
啓動日期 11-9月 -2019 09:55:44
正常運行時間 0 天 0 小時 0 分 4 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程序參數文件 /home/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
監聽程序日誌文件 /home/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
服務摘要..
服務 "orcl" 包含 1 個實例。
實例 "orcl", 狀態 UNKNOWN, 包含此服務的 1 個處理程序...
命令執行成功
[oracle@localhost admin]$
本地net服務名配置
[oracle@localhost admin]$ pwd
/home/app/oracle/product/12.2.0/db_1/network/admin
[oracle@localhost admin]$ vim tnsnames.ora
[oracle@localhost admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /home/app/oracle/product/12.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORAL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED) #採用專用模式
(SERVICE_NAME = orcl)
)
)
[oracle@localhost admin]$
Oracle啓動
[oracle@localhost admin]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 星期三 9月 11 10:02:42 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
連接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup nomount
ORACLE 例程已經啓動。
Total System Global Area 536870912 bytes
Fixed Size 8794848 bytes
Variable Size 306187552 bytes
Database Buffers 213909504 bytes
Redo Buffers 7979008 bytes
SQL> alter database mount;
數據庫已更改。
SQL> alter database open;
數據庫已更改。
SQL>