由于本次安裝Oracle 12c軟件是在CentOS 7系統(tǒng)上實現(xiàn)的,那么首先安裝CentOS 7操作系統(tǒng),安裝要求如下:
創(chuàng)新互聯(lián)主打移動網(wǎng)站、網(wǎng)站制作、成都網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護、域名注冊、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再決定采用什么樣的設(shè)計。最后,要實現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計,我們還會規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
防火墻的配置選項設(shè)置為禁用;
SELinux設(shè)置為禁用;
默認安裝設(shè)置為軟件開發(fā);
- 內(nèi)核選擇3.10.0-862.el7.x86_64及以上版本;
Oracle數(shù)據(jù)庫是一個相對龐大的應用軟件,對服務(wù)器的系統(tǒng)類型、內(nèi)存和交換分區(qū)、硬盤空阿金、內(nèi)核參數(shù)、軟件環(huán)境、用戶環(huán)境等都有相應的要求。只要滿足了這些必備的條件,才能確保Oracle 12c安裝成功、穩(wěn)定運行。
Oracle 12c明確支持的Linux操作系統(tǒng)包括Oracle Linux 7、Oracle Linux 6、Oracle Linux 5、Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 6、Red Hat Enterprise Linux 5等,因為Red Hat Enterprise 和CentOS屬于同步并行的操作系統(tǒng),所以O(shè)racle 12 c同樣支持CentOS 7、CentOS 6、CentOS 5操作系統(tǒng)。在其他Linux系統(tǒng)中安裝時,個別軟件或配置文件可能需要進行適當?shù)恼{(diào)整。通過以下命令查看系統(tǒng)版本:
[root@Oracle ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core)
Linux操作系統(tǒng)要求:
物理內(nèi)存:必須高于1GB,對于VMware虛擬機建議不少于2GB;
- 交換空間:物理內(nèi)存為1~2GB時,交換分區(qū)為物理內(nèi)存的1.5~2倍;物理內(nèi)存為2~16GB時,交換分區(qū)于物理內(nèi)存大小相同;物理內(nèi)存超過16GB時,交換分區(qū)使用16GB就可以了;
如果交換分區(qū)空間不足的話,可以使用以下方式擴展交換分區(qū)
查看物理內(nèi)存和交換內(nèi)存的命令如下:
[root@Oracle ~]# grep MemTotal /proc/meminfo
MemTotal: 4030172 kB
[root@Oracle ~]# grep SwapTotal /proc/meminfo
SwapTotal: 8388604 kB
對于Oracle 12c數(shù)據(jù)庫,若程序文件和數(shù)據(jù)文件安裝在同一分區(qū),則該分區(qū)硬盤空間的最小要求為企業(yè)級為6.4GB,標準版6.1GB;除此之外,還應確保/tmp目錄的可用空間不少于1G??偟膩碚f,建議為Oracle 12c準備至少15GB的硬盤空間。通過以下命令查看磁盤空間的使用情況:
[root@Oracle ~]# df -hT
文件系統(tǒng) 類型 容量 已用 可用 已用% 掛載點
/dev/mapper/centos-root xfs 72G 21G 51G 30% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 960M 1008M 49% /dev/shm
tmpfs tmpfs 2.0G 9.0M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 xfs 197M 139M 59M 71% /boot
tmpfs tmpfs 394M 12K 394M 1% /run/user/42
tmpfs tmpfs 394M 0 394M 0% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt
安裝Oracle數(shù)據(jù)庫前,要求規(guī)劃好主機名和IP。服務(wù)器的主機名、IP地址應提前確認無誤,一旦Oracle數(shù)據(jù)庫安裝完成,建議不要再修改主機名,否則會導致數(shù)據(jù)庫啟動失敗。查看主機名可以通過hostname命令實現(xiàn),修改主機名通過配置文件/etc/hosts實現(xiàn),代碼如下:
[root@centos01 ~]# hostnamectl set-hostname Oracle
[root@centos01 ~]# bash
[root@oracle ~]# hostname
oracle
[root@Oracle ~]# vim /etc/hosts
192.168.100.10 oracle
Oracle 12c的安裝過程通常是在圖形界面中進行,因此建議使用已安裝有GNOME中文桌面環(huán)境的CentOS服務(wù)器,軟件開發(fā)工具當然是必不可少的,如gcc、glibc、binutils等軟件包,建議使用yum工具來安裝以下必要的軟件環(huán)境。具體操作如下:
[root@Oracle ~]# yum -y install binutils elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel unixODBC unixODBC-devel
yum倉庫選擇使用本地光盤即可,Oracle 12c自身集成了Java運行環(huán)境,但安裝界面對中文的支持并不完善,因此若希望使用中文的Oracle安裝界面,建議提前安裝好Java軟件包。
為了確保數(shù)據(jù)庫運行穩(wěn)定,Oracle 12c針對Linux內(nèi)核參數(shù),進程會話限制提出了一些要求,其中一部分設(shè)置可以在安裝過程中自動檢測并進行修復,但并一定很完整,所以最好的做法是根據(jù)安裝文檔提前進行配置。
內(nèi)核參數(shù)調(diào)整體現(xiàn)在/etc/sysctl.conf文件中,主要包括與內(nèi)存調(diào)度、端口范圍、打開文件數(shù)、I/O請求等相關(guān)的一些設(shè)置,相關(guān)數(shù)值不可低于安裝要求。修改完畢后通過執(zhí)行如下的“sysctl -p”命令使新配置立即生效。
[root@Oracle ~]# vim /etc/sysctl.conf
............
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
[root@Oracle ~]# sysctl -p
Oracle 12c需要固定的運行用戶oracle、安裝組oinstall、管理組dba,這些賬號應提前創(chuàng)建好。用來存放Oracle程序及數(shù)據(jù)庫文件的基本目錄(如/u01/app/oracle)也應提前創(chuàng)建好。具體創(chuàng)建的命令如下:
[root@Oracle ~]# groupadd -g 54321 oinstall
[root@Oracle ~]# groupadd -g 54322 dba
[root@Oracle ~]# useradd -u 54321 -g oinstall -G dba oracle
[root@Oracle ~]# passwd oracle
[root@Oracle ~]# mkdir -p /u01/app/oracle
[root@Oracle ~]# chown -R oracle:oinstall /u01/app/
[root@Oracle ~]# chmod -R 755 /u01/app/
Oracle 12c的安裝任務(wù)應以運行用戶oracle的身份執(zhí)行,需適當調(diào)整oracle用戶的環(huán)境配置以滿足需求。具體操作如下:
[root@Oracle ~]# vim /home/oracle/.bash_profile
............
umask 022
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/
ORACLE_SID=orcl
LANG=zh_CN.UTF-8
NLS_LANG="AMERICAN_AMERICA".ZHS16GBK
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LANG NLS_LANG PATH
[root@Oracle ~]# source /home/oracle/.bash_profile
進程會話限制可以采用pam_limits認證模塊來實現(xiàn),通過修改登錄程序login的PAM設(shè)置以啟用該認證,然后修改/etc/security/limits.conf 文件,使用戶oracle能夠打開的進程數(shù)、進程使用的文件數(shù)加大。具體操作如下:
[root@Oracle ~]# vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
............
[root@Oracle ~]# vim /etc/security/limits.conf
............
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
[root@Oracle ~]# vim /etc/profile
............
if [ $USER = "oracle"]; then
if [$SHELLO = "/bin/ksh"]; then
ulimit -p 16384
ulimit n 65536
else
ulimit -u 16384 -n 65536
fi
fi
不配置oracle用戶資源限制部分,也不會影響oracle數(shù)據(jù)庫的成功安裝,但是,若有糟糕的SQL語句對服務(wù)器資源的無限占用,導致長時間對用戶請求無響應,建議提前限制oracle用戶資源。
準備工作完成后重新啟動系統(tǒng),重啟之后,再次檢查之前的配置是否生效。
Oracle的中文官方網(wǎng)址是https://www.oracle.com/index.html 可以自行進行下載,也可通過網(wǎng)盤自行提取:[https://pan.baidu.com/s/1VWFYZH0itXjXN-xt7hlD0A
提取碼:9n84]進行安裝。具體操作如下:
[root@Oracle oracle]# ls
linuxx64_12201_database.zip
[root@Oracle oracle]# unzip linuxx64_12201_database.zip
[root@Oracle ~]# export DISPLAY=192.168.100.254:0.0
[root@Oracle ~]# xhost +
[root@Oracle ~]# su oracle
[oracle@Oracle root]$ cd
[oracle@Oracle ~]$ export DISPLAY=192.168.100.254:0.0
[oracle@Oracle ~]$ xhost +
[oracle@Oracle ~]$ /u01/app/oracle/database/runInstaller
正在啟動 Oracle Universal Installer...
執(zhí)行完成后過一會彈出圖形化界面,進行以下操作:
1)配置安全更新,什么也不選下一步即可
2)安裝選項選擇創(chuàng)建和配置數(shù)據(jù)庫,單擊下一步
3)系統(tǒng)類選擇服務(wù)器類,單擊下一步
4)數(shù)據(jù)庫安裝選項選擇單實例數(shù)據(jù)庫安裝,單擊下一步
5)安裝類型選擇典型安裝,單擊下一步
6)設(shè)置數(shù)據(jù)庫口令,單擊下一步
7)清單保持默認,單擊下一步
8)默認下一步
9)執(zhí)行腳本
[root@Oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@Oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh
10)安裝完成,通過瀏覽器訪問
11)瀏覽器訪問https://Oracle:5500/em 安裝flash player
12)驗證安裝結(jié)果,瀏覽器訪問https://Oracle:5500/em
*接下來使用SQLPlus命令在命令行界面中訪問Oracle 12c數(shù)據(jù)庫:**
[root@Oracle ~]# su oracle
[oracle@Oracle root]$ cd
[oracle@Oracle ~]$ source .bash_profile
[oracle@Oracle ~]$ sqlplus / as sysdba
SQL> help index
SQL> show user;
USER is "SYS"
在SQL>模式下,不區(qū)分大小寫,但是Linux提示符下區(qū)分大小寫。
如果在安裝oracle產(chǎn)品時不創(chuàng)建數(shù)據(jù)庫,那么要使用oracle系統(tǒng)就必須先創(chuàng)建數(shù)據(jù)庫。如果在安裝oracle時選擇建立數(shù)據(jù)庫,也可以再創(chuàng)建第二個數(shù)據(jù)庫。
創(chuàng)建數(shù)據(jù)庫的方法有兩種:通過圖形化界面,或者采用“CREATE DATABASE”命令,這里說一下圖形化界面創(chuàng)建數(shù)據(jù)庫的方法。
在Linux環(huán)境下,采用運行數(shù)據(jù)庫配置助手(database configuration assistant, DBCA)來實現(xiàn)。Oracle 12c安裝完成后,會在$ORACLE_HOME/bin目錄下生成Oracle系統(tǒng)可執(zhí)行程序,創(chuàng)建Oracle數(shù)據(jù)庫所用的DBCA也在該目錄下。
[oracle@Oracle ~]$ export DISPLAY=192.168.100.254:0.0
[oracle@Oracle ~]$ xhost +
[oracle@Oracle ~]$ dbca
彈出的圖形化界面如下:
數(shù)據(jù)庫已經(jīng)創(chuàng)建完成。為了使Oracle系統(tǒng)充分利用系統(tǒng)資源,建議一個服務(wù)器上只創(chuàng)建一個數(shù)據(jù)庫。
oracle數(shù)據(jù)庫的啟動與關(guān)閉是日常工作之一。對于大多數(shù)oracle DBA來說,啟動和關(guān)閉oracle數(shù)據(jù)庫最常用的方式是在命令行方式下執(zhí)行。
要啟動和關(guān)閉數(shù)據(jù)庫,必須具有Oracle管理員權(quán)限的用戶登錄,通常以具有SYSDBA權(quán)限的用戶登錄。
啟動(STARTUP)一個數(shù)據(jù)庫需要三個步驟:①啟動oracle實例(非裝載階段);②由實例裝載數(shù)據(jù)庫(裝載階段);③打開數(shù)據(jù)庫(打開階段)。
在STARTUP命令中,可以使用不同的選項來控制數(shù)據(jù)庫的不同啟動步驟。
NOMOUNT選項僅僅啟動一個oracle實例,讀取init.ora初始化參數(shù)文件、啟動后臺進程、初始化SGA。當實例啟動后,系統(tǒng)將顯示一個SGA內(nèi)存結(jié)構(gòu)和大小的列表,具體操作如下:
SQL> startup nomount;
ORACLE instance started.
Total System Global Area 1660944384 bytes
Fixed Size 8793448 bytes
Variable Size 1056965272 bytes
Database Buffers 587202560 bytes
Redo Buffers 7983104 bytes
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
STARTUP MOUNT命令啟動實例并且裝載數(shù)據(jù)庫,但是沒有打開數(shù)據(jù)庫。Oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重做日志文件的內(nèi)容,但并不打開該文件。這種打開方式常在數(shù)據(jù)庫維護操作中使用,如對數(shù)據(jù)文件的更名、改變重做日志及打開歸檔模式等。在這種打開方式下,除了可以看到SGA系統(tǒng)列表以外,系統(tǒng)還會給出“數(shù)據(jù)庫裝載完畢”的提示。具體操作如下:
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1660944384 bytes
Fixed Size 8793448 bytes
Variable Size 1056965272 bytes
Database Buffers 587202560 bytes
Redo Buffers 7983104 bytes
Database mounted.
SQL> alter database open;
Database altered.
STARTUP命令完成啟動實例,裝載數(shù)據(jù)庫和打開數(shù)據(jù)庫三個步驟。此時,數(shù)據(jù)庫使數(shù)據(jù)文件和重做日志文件在線,通常還會請求一個或者多個回滾段;系統(tǒng)除了可以看到前面STARTUP MOUNT方式下的所有提示外,還會給出一個“數(shù)據(jù)庫已經(jīng)打開”的提示;數(shù)據(jù)庫系統(tǒng)處于正常的工作狀態(tài),可以接收用戶的請求。
SQL> startup;
ORACLE instance started.
Total System Global Area 1660944384 bytes
Fixed Size 8793448 bytes
Variable Size 1056965272 bytes
Database Buffers 587202560 bytes
Redo Buffers 7983104 bytes
Database mounted.
Database opened.
如果采用STARTUP NOMOUNT或者STARTUP MOUNT的數(shù)據(jù)庫打開方式,必須采用alter database命令來執(zhí)行裝載或打開數(shù)據(jù)庫的操作。例如,如果以STARTUP NOMOUNT方式打開數(shù)據(jù)庫,也就是說實例已經(jīng)啟動,但是數(shù)據(jù)庫沒有裝載和打開。這時必須運行下面的兩條命令,數(shù)據(jù)庫才能正確啟動。命令如下:
SQL> alter database mount;
SQL> alter database open;
如果以STARTUP MOUNT方式啟動數(shù)據(jù)庫,只需要運行下面一條命令即可以打開數(shù)據(jù)庫:
SQL> alter database open;
對于數(shù)據(jù)庫的關(guān)閉,有四種不同的關(guān)閉選項。
SHUTDOWN NORMAL是SHUTDOWN命令的默認選項。也就是說,如果用戶發(fā)出SHUTDOWN命令,即執(zhí)行SHUTDOWN NORMAL命令。
發(fā)出該命令后,任何新的連接都將不再允許連接到數(shù)據(jù)庫。在數(shù)據(jù)庫關(guān)閉之前,Oracle將等待目前連接的所有用戶都從數(shù)據(jù)庫中退出后才開始關(guān)閉數(shù)據(jù)庫。采用這種方式關(guān)閉數(shù)據(jù)庫,在下一次啟動時不需要進行任何的實例恢復。但需要注意的是,采用這種方式時,也許關(guān)閉一個數(shù)據(jù)庫需要幾天或更長的時間。
SQL> shutdown;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> shutdown normal;
Database closed.
Database dismounted.
ORACLE instance shut down.
SHUTDOWN IMMEDIATE是常用的一種關(guān)閉數(shù)據(jù)庫的方式。若即想很快地關(guān)閉數(shù)據(jù)庫,又想讓數(shù)據(jù)庫“干凈”的關(guān)閉,則常采用這種方式。
發(fā)出該命令后,當前正在被Oracle處理的SQL語句立即中斷,系統(tǒng)中任何沒有提交的事務(wù)全部回滾。如果系統(tǒng)中存在一個很長的未提交的事務(wù),那么采用這種方式關(guān)閉數(shù)據(jù)庫也需要一段時間(該事務(wù)回滾時間)。系統(tǒng)不會等待連接到數(shù)據(jù)庫的所有用戶退出系統(tǒng),而會強行回滾當前所有的活動事務(wù),然后斷開所有的連接用戶。
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SHUTDOWN TRANSACTIONAL命令常用來計劃關(guān)閉數(shù)據(jù)庫,它會等待當前連接到系統(tǒng)且正在活動的事務(wù)執(zhí)行完畢,運行該命令后,任何新的連接和事務(wù)都是不允許的。它所有活動的事務(wù)執(zhí)行完成后,數(shù)據(jù)庫將以和SHUTDOWN IMMEDIATE同樣的方式關(guān)閉數(shù)據(jù)庫。
SQL> shutdown transactional;
Database closed.
Database dismounted.
ORACLE instance shut down.
SHUTDOWN ABORT是關(guān)閉數(shù)據(jù)庫方式的最后選擇,是在沒有任何辦法關(guān)閉數(shù)據(jù)庫的情況下不得不采用的方式,一般不要采用。在下列情況出現(xiàn)時可以考慮采用這種方式關(guān)閉數(shù)據(jù)庫。
SQL> shutdown abort;
ORACLE instance shut down.
數(shù)據(jù)庫處于一種非正常工作狀態(tài),不能用SHUTDOWN NORMAL或SHUTDOWN IMMEDIATE命令關(guān)閉數(shù)據(jù)庫;
需要立即關(guān)閉數(shù)據(jù)庫;
- 在啟動數(shù)據(jù)庫實例時遇到問題。
發(fā)出該命令后,所有正在運行的SQL語句將立即中止,所有未提交的事務(wù)將不回滾,oracle也不等待目前連接到數(shù)據(jù)庫的用戶退出系統(tǒng);下一次啟動數(shù)據(jù)庫時需要實例恢復,因此,下一次啟動可能比平時需要更多的時間。
在關(guān)閉數(shù)據(jù)庫時最好使用SHUTDOWN IMMEDIATE方式,因為這種方式安全且相對較快。不是萬不得已不要使用SHUTDOWN ABORT 方式,因為這種方式會造成數(shù)據(jù)丟失,并且恢復數(shù)據(jù)庫也需要較長時間。
當oracle數(shù)據(jù)庫實例啟動完成后,為了使客戶端用戶能連接到oracle實例,DBA還需要在oracle所在的服務(wù)器上使用lsnrctl命令啟動監(jiān)聽進程。如果數(shù)據(jù)庫實例關(guān)閉,一般也要關(guān)閉監(jiān)聽進程。
啟動(Start)監(jiān)聽是Oracle用戶在操作系統(tǒng)下執(zhí)行的命令,可以直接在lsnrctl后加參數(shù),也可在該命令提示符后進行操作,具體操作如下:
[oracle@oracle ~]$ lsnrctl
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 06-JAN-2020 19:28:52
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> start
Starting /u01/app/oracle/product/12.2.0/dbhome_1//bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date 06-JAN-2020 19:28:54
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
也可以直接使用以下命令“來啟動監(jiān)聽:
[oracle@Oracle ~]$ lsnrctl start
[oracle@oracle ~]$ lsnrctl stop
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 06-JAN-2020 19:33:04
Copyright (c) 1991, 2016, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
The command completed successfully
———————— 本文至此結(jié)束,感謝閱讀 ————————