在計(jì)算機(jī)信息安全領(lǐng)域中,數(shù)據(jù)庫系統(tǒng)無疑有著舉足輕重的地位。例如,微軟的SQL server、IBM的DB2,以及甲骨文公司的Oracle、MySQL等,都是比較知名的數(shù)據(jù)庫管理軟件,其中Oracle數(shù)據(jù)庫更是在電信、銀行、證券、交通等大型應(yīng)用場合擁有著絕對(duì)領(lǐng)先的優(yōu)勢。
這里我們就來說說Oracle 12c的安裝。
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. SUSE Linux Distributions .NeoKylin Linux Advanced Server Distributions。 因?yàn)镽ed Hat Enterprise 和CentOS屬于同步發(fā)行的操作系統(tǒng),所以O(shè)racle 12c也同樣支持CentOS7. CentOS6. CentOS5 操作系統(tǒng)。在其他Linux系統(tǒng)中安裝時(shí),個(gè)別軟件或配置文件可能需要做適當(dāng)調(diào)整。
創(chuàng)新互聯(lián)建站專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、銅川網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城網(wǎng)站制作、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為銅川等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
Linux 系統(tǒng)要求:
- 物理內(nèi)存: 必須高于1GB,對(duì)于VMware虛擬機(jī)建議不少于2GB.
- 交換空間: 物理內(nèi)存為1~ 2GB時(shí),交換分區(qū)為物理內(nèi)存的1.5~2倍;物理內(nèi)存為2~ 16GB時(shí),交換分區(qū)與物理內(nèi)存大小相同:物理內(nèi)存超過16GB時(shí),交換分區(qū)使用16GB 就可以了。
一、準(zhǔn)備工作
系統(tǒng)配置要求
對(duì)于Oracle 12c 數(shù)據(jù)庫,若程序文件和數(shù)據(jù)文件安裝在同一分區(qū),則該分區(qū)硬盤空間的最小要求為企業(yè)版6.4GB.標(biāo)準(zhǔn)版6.1GB,除此以外,還應(yīng)確保/tmp 目錄的可用空間不少于1GB.總地
來說,建議為Oracle 12c 準(zhǔn)備至少15GB的硬盤空間。
實(shí)驗(yàn)環(huán)境下,如果不單獨(dú)給Oracle 創(chuàng)建分區(qū),那么至少要保證根分區(qū)有15GB的可用磁盤空間。如果當(dāng)前的磁盤空間不足,可以考慮在虛擬機(jī)中添加一塊硬盤,格式化為XFS文件系統(tǒng)。同時(shí)創(chuàng)建/u01目錄,將新創(chuàng)建的分區(qū)掛載到/u01目錄。還要記得修改/etc/fstab文件,讓其開機(jī)自動(dòng)掛載。
安裝Oracle數(shù)據(jù)庫前,要求規(guī)劃好主機(jī)名和IP。服務(wù)器的主機(jī)名、IP 地址也應(yīng)提前確定無誤.一旦 Oracle 數(shù)據(jù)庫安裝完成,建議不要再修改主機(jī)名,否則會(huì)導(dǎo)致數(shù)據(jù)庫啟動(dòng)失敗。查看主機(jī)名可以通過hostname命令實(shí)現(xiàn),修改主機(jī)名通過配置文件/etc/hosts實(shí)現(xiàn)
[root@oracle /]# hostname
oracle
[root@oracle /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.10 oracle
軟件環(huán)境要求
Oracle 12c 的安裝過程通常在圖形界面中進(jìn)行,因此建議使用已安裝有GNOME中文桌面環(huán)境的CentOS服務(wù)器。軟件開發(fā)工具當(dāng)然也是必不可少的,如gcc. glibc, binutils 等軟件包
[root@oracle /]# yum -y install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
內(nèi)核要求
為了確保數(shù)據(jù)庫運(yùn)行穩(wěn)定,Oracle 12c針對(duì)Linux內(nèi)核參數(shù).進(jìn)程會(huì)話限制提出了一些要求,其中一部分設(shè)置可以在安裝過程中自動(dòng)檢測并修復(fù),但并不一定很完整 ,所以最好的做法是根據(jù)安裝文檔提前進(jìn)行配置。
內(nèi)核參數(shù)調(diào)整體現(xiàn)在/etc/sysctl .conf文件中,主要包括與內(nèi)存調(diào)度.端口范圍、打開文件數(shù).
VO請求等相關(guān)的一些設(shè)置,相關(guān)數(shù)值不可低于安裝要求。修改完畢后通過執(zhí)行如下的"sysctl -p”命令使新配置立即生效。
[root@oracle /]# vim /etc/sysctl.conf # 編輯
................... // 省略部分內(nèi)容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
................... //省略部分內(nèi)容
[root@oracle /]# sysctl -p # 重新加載配置文件
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
Oracle 用戶環(huán)境要求
Oracle 12c 需要固定的運(yùn)行用戶oracle.安裝組oinsall.管理組dba,這些賬號(hào)應(yīng)提前建好。用
來存放Oracle程序及數(shù)據(jù)庫文件的基本目錄(如/u01/app/oracle) 也應(yīng)該提前創(chuàng)建好
[root@oracle /]# groupadd -g 54321 oinstall # 創(chuàng)建安裝組
[root@oracle /]# groupadd -g 54322 dba # 創(chuàng)建管理組
[root@oracle /]# useradd -u 54321 -g oinstall -G dba oracle # 創(chuàng)建運(yùn)行用戶
[root@oracle /]# passwd oracle # 配置密碼
更改用戶 oracle 的密碼 。
新的 密碼:
無效的密碼: 密碼未通過字典檢查 - 過于簡單化/系統(tǒng)化
重新輸入新的 密碼:
passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。
[root@oracle /]# mkdir -p /u01/app/oracle # 創(chuàng)建基本目錄
[root@oracle /]# chown -R oracle:oinstall /u01/app/
[root@oracle /]# chmod -R 775 /u01/app/oracle/
Oracle 12c的安裝任務(wù)應(yīng)以運(yùn)行用戶oracle的身份執(zhí)行,需適當(dāng)調(diào)整oracle 用戶的環(huán)境配置以滿足要求:
[root@oracle /]# vim /home/oracle/.bash_profile
........................ // 省略部分內(nèi)容
umask 022
ORACLE_BASE=/u01/app/oracle # 定義基本目錄
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/ # 定義安裝家目錄
ORACLE_SID=orcl # 定義數(shù)據(jù)庫實(shí)例名稱
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8 # 確定使用何種語言環(huán)境
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID
export DISPLAY=:0.0
Oracle 用戶資源限制要求
進(jìn)程會(huì)話限制可以采用pam. Jimits認(rèn)證模塊來實(shí)現(xiàn).通過修改登錄程序login的PAM設(shè)置以啟用該認(rèn)證,然后修改/etc/security/imits. conf 文件,使用戶oracle能夠打開的進(jìn)程數(shù).進(jìn)程使用的文件數(shù)加大
[root@oracle /]# vim /etc/pam.d/login
................... // 省略部分內(nèi)容
session required /lib/security/pam_limits.so
session required pam_limits.so
[root@oracle /]# vim /etc/security/limits.conf
................ // 省略部分內(nèi)容
oracle soft nproc 2047 # 進(jìn)程數(shù)軟限制
oracle hard nproc 16384 # 進(jìn)程數(shù)硬限制
oracle soft nofile 1024 # 文件數(shù)軟限制
oracle hard nofile 65536 # 文件數(shù)硬限制
oracle soft stack 10240 # Oracle 軟堆棧限制
[root@oracle /]# vim /etc/profile
................... // 省略部分內(nèi)容
if [ $USER = "oracle" ];then
if [ $SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
不配置oracle用戶資源限制部分,也不會(huì)影響Oracle數(shù)據(jù)庫的成功安裝,但是,若有糟糕的SQL語句對(duì)服務(wù)器的資源無限占用,導(dǎo)致長時(shí)間對(duì)用戶請求無響應(yīng),則建議提前限制oralce用戶資源,準(zhǔn)備工作完成后重啟操作系統(tǒng),重啟之后再次檢查之前的配置是否生效,建議不要做臨時(shí)配置。
二、安裝 Oracle
Oracle的中文官方網(wǎng)址為https ://www . oracle .com/cn.它支持Oracle 12c安裝文件的免費(fèi)下載(需注冊賬號(hào)).正確選擇所使用的系統(tǒng)平臺(tái)(如Linux x86-64),然后下載linuxx64 .12201.database .zip這個(gè)ZP壓縮包到/tmp/abc文件夾(自行創(chuàng)建).解壓后可獲得database文件夾, Oracle 的安裝腳本.產(chǎn)品手冊等文檔都位于此文件夾中
也可下載本人提供的安裝包:
開始安裝
[root@oracle /]# mkdir /tmp/abc # 為什么要在tmp下創(chuàng)個(gè)目錄呢,因?yàn)閠mp的權(quán)限都放開了,一會(huì)需要切換Oracle用戶來進(jìn)行安裝
[root@oracle /]# cd /tmp/abc/
[root@oracle abc]# ls
flash-player-npapi-26.0.0.131-release.x86_64.rpm linuxx64_12201_database.zip
[root@oracle abc]# unzip linuxx64_12201_database.zip
[root@oracle abc]# ls database/
install response rpm runInstaller sshsetup stage welcome.html
Oracle 12c 的安裝主要通過runlsaller 腳本進(jìn)行,訪問網(wǎng)頁welcome .html可以查閱產(chǎn)品手冊,其中包括產(chǎn)品說明,發(fā)行注記、安裝指南等文檔,為管理員提供了極為豐富的幫助信息。
所有前置條件都準(zhǔn)備好以后,就可以正式開始安裝了。如果當(dāng)前的圖形桌面環(huán)境是以其他用戶的身份(如root)登錄的,則還應(yīng)添加授權(quán)以允許用戶oracle 使用圖形終端。例如,“xhost +
oracle@localhost" 表示 允許用戶oracle從本機(jī)訪問,執(zhí)行,xhost+” 表示取消所有 限制。
以用戶oracle的身份登錄到CentOS的圖形桌面環(huán)境,啟動(dòng)database/ 目錄下的runstaller腳本文件
[root@oracle abc]# xhost + # 一定要以root用戶在圖形環(huán)境中操作
access control disabled, clients can connect from any host
[root@oracle abc]# su - oracle # 切換為 Oracle用戶
[oracle@oracle ~]$ cd /tmp/abc/database/
[oracle@oracle database]$ ./runInstaller
正在啟動(dòng) Oracle Universal Installer...
檢查臨時(shí)空間: 必須大于 500 MB。 實(shí)際為 28334 MB 通過
檢查交換空間: 必須大于 150 MB。 實(shí)際為 2047 MB 通過
檢查監(jiān)視器: 監(jiān)視器配置至少必須顯示 256 種顏色。 實(shí)際為 16777216 通過
準(zhǔn)備從以下地址啟動(dòng) Oracle Universal Installer /tmp/OraInstall2019-12-11_09-32-31PM. 請稍候...
[root@oracle /]# /u01/app/oraInventory/orainstRoot.sh # 直接執(zhí)行即可
更改權(quán)限/u01/app/oraInventory.
添加組的讀取和寫入權(quán)限。
刪除全局的讀取, 寫入和執(zhí)行權(quán)限。
更改組名/u01/app/oraInventory 到 oinstall.
腳本的執(zhí)行已完成。
[root@oracle /]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh # 執(zhí)行后出現(xiàn)提示直接回車即可
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /u01/app/oracle/product/12.2.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]: # 回車
安裝 flash player
[root@oracle /]# cd /tmp/abc/
[root@oracle abc]# ls
database linuxx64_12201_database.zip
flash-player-npapi-26.0.0.131-release.x86_64.rpm
[root@oracle abc]# rpm -ivh flash-player-npapi-26.0.0.131-release.x86_64.rpm
準(zhǔn)備中... ################################# [100%]
正在升級(jí)/安裝...
1:flash-plugin-26.0.0.131-release ################################# [100%]
下圖就是Oracle 的企業(yè)管理器
Oracle 12c 數(shù)據(jù)庫的創(chuàng)建
[oracle@oracle /]$ sqlplus / as sysdba # 登錄數(shù)據(jù)庫
SQL*Plus: Release 12.2.0.1.0 Production on 星期三 12月 11 22:00:15 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
連接到:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
sys用戶是Oracle的最高管理員,以sys用戶登錄的時(shí)候一般要加上as sysdba,
而其他用戶則不需要。
SQL> help index # ketongguy可通過此命令來查看支持的指定列表
創(chuàng)建數(shù)據(jù)庫:
[oracle@oracle /]$ dbca # shuru輸入此命令可彈出創(chuàng)建數(shù)據(jù)庫的向?qū)?/code>
Oracle 12c 數(shù)據(jù)庫的啟動(dòng)與關(guān)閉
1. 數(shù)據(jù)庫的啟動(dòng)
啟動(dòng)(STARTUP) 一個(gè)數(shù)據(jù)庫需要三個(gè)步驟,①啟動(dòng)Oracle實(shí)例(非裝 載階段);②由實(shí)例裝載
數(shù)據(jù)庫(裝載階段);③打開數(shù)據(jù)庫(打開階段)。
在STARTUP命令中,可以通過不同的選項(xiàng)來控制數(shù)據(jù)庫的不同啟動(dòng)步驟。
1) STARTUP NOMOUNT
NOMOUNT選項(xiàng)僅僅啟動(dòng)一個(gè)Oracle實(shí)例,讀取init ora初始化參數(shù)文件、啟動(dòng)后臺(tái)進(jìn)程、初始
化SGA.當(dāng)實(shí)例啟動(dòng)后,系統(tǒng)將顯示一個(gè)SGA內(nèi)存結(jié)構(gòu)和大小的列表,如下所示.
SQL> startup nomount
ORACLE instance started.
Total System G1obal Area 2516582400 bytes
Fixed Size 8795904 bytes
Variable Size 671090944 bytes
Database Buffers 1828716544 bytes
Redo Buffers 7979008 bytes
2) STARTUP MOUNT
STARTUP MOUNT命令啟動(dòng)實(shí)例并且裝載數(shù)據(jù)庫,但沒有打開數(shù)據(jù)庫。Oracle 系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重做日志文件的內(nèi)容,但并不打開該文件。這種打開方式常在數(shù)據(jù)庫維護(hù)操作中使用,如對(duì)數(shù)據(jù)文件的更名,改變重做日志及打開歸檔模式等,在這種打開方式下,除了可以看到SGA系統(tǒng)列表以外,系統(tǒng)還會(huì)給出“數(shù)據(jù)庫裝載完畢 ”的提示。
3) STARTUP
STARTUP命令完成啟動(dòng)實(shí)例、裝載數(shù)據(jù)庫和打開數(shù)據(jù)庫三個(gè)步驟。此時(shí),數(shù)據(jù)庫使數(shù)據(jù)文件和重做日志文件在線,通常還會(huì)請求一個(gè)或者多個(gè)回滾段;系統(tǒng)除了可以看到前STARTUP MOUNT方式下的所有提示外,還會(huì)給出一個(gè)‘?dāng)?shù)據(jù)庫已經(jīng)打開” 的提示: 數(shù)據(jù)庫系統(tǒng)處于正常工作狀態(tài),可以接收用戶請求。
如果采用STARTUP NOMOUNT或者STARTUP MOUNT的數(shù)據(jù)庫打開方式,必須采用ALTER DATABASE命令來執(zhí)行裝載或打開數(shù)據(jù)庫的操作。例如,如果以STARTUP NOMOUNT方式打開數(shù)據(jù)庫,也就是說實(shí)例已經(jīng)啟動(dòng),但是數(shù)據(jù)庫沒有裝載和打開。這時(shí)必須運(yùn)行下面的兩條命令,數(shù)據(jù)庫才能正確啟動(dòng)。
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
如果以STARTUP MOUNT方式啟動(dòng)數(shù)據(jù)庫,只需要運(yùn)行下面-條命令即可以打開數(shù)據(jù)庫。
ALTER DATABASE OPEN;
2.數(shù)據(jù)庫的關(guān)閉
對(duì)于數(shù)據(jù)庫的關(guān)閉(SHUTDOWN), 有四種不同的關(guān)閉選項(xiàng).
1) SHUTDOWN NORMAL
SHUTDOWN NORMAL是SHUTDOWN命令的默認(rèn)選項(xiàng)。也就是說,如果用戶發(fā)出SHUTDOWN命令,即執(zhí)行SHUTDOWN NORMAL命令。
發(fā)出該命令后,任何新的連接都將不再允許連接到數(shù)據(jù)庫。在數(shù)據(jù)庫關(guān)閉之前,Oracle 將等待目前連接的所有用戶都從數(shù)據(jù)庫中退出后才開始關(guān)閉數(shù)據(jù)庫。采用這種方式關(guān)閉數(shù)據(jù)庫,在下一-次啟動(dòng)時(shí)不需要進(jìn)行任何的實(shí)例恢復(fù)。但需要注意的是.采用這種方式時(shí),也許關(guān)閉一個(gè)數(shù)據(jù)庫需要幾天或更長的時(shí)間。
2) SHUTDOWN IMEDIATE
SHUTDOWN IMEDIATE是常用的一種關(guān)閉數(shù)據(jù)庫的方式。若既想很快地關(guān)閉數(shù)據(jù)庫,又想讓數(shù)據(jù)庫“干凈”地關(guān)閉,則常采用這種方式。
發(fā)出該命令后,當(dāng)前正在被Oracle處理的SaL語句立即中斷,系統(tǒng)中任何沒有提交的事務(wù)全部回滾。如果系統(tǒng)中存在-個(gè)很長的未提交的事務(wù),那么采用這種方式關(guān)閉數(shù)據(jù)庫也需要一段時(shí)間 (該事務(wù)回滾時(shí)間)。系統(tǒng)不會(huì)等待連接到數(shù)據(jù)庫的所有用戶退出系統(tǒng),而會(huì)強(qiáng)行回滾當(dāng)前所有的活動(dòng)事務(wù),然后斷開所有的連接用戶。
3) SHUTDOWN TRANSACTIONAL
SHUTDOWN TRANSACTIONAL命令常用來計(jì)劃關(guān)閉數(shù)據(jù)庫,它會(huì)等待當(dāng)前連接到系統(tǒng)且正在活動(dòng)的事務(wù)執(zhí)行完畢,運(yùn)行該命令后 ,任何新的連接和事務(wù)都是不允許的。在所有活動(dòng)的事務(wù)執(zhí)行完成后,數(shù)據(jù)庫將以和SHUTDOWN IMEDIATE同樣的方式關(guān)閉數(shù)據(jù)庫.
4) SHUTDOWN ABORT
SHUTDOWN ABORT是關(guān)閉數(shù)據(jù)庫方式的最后選擇,是在沒有任何辦法關(guān)閉數(shù)據(jù)庫的情況下不得不采用的方式,- -般不要采用。在下列情況出現(xiàn)時(shí)可以考慮采用這種方式關(guān)閉數(shù)據(jù)庫。
(1)數(shù)據(jù)庫處于一種非正常工作狀態(tài),不能用SHUTDOWN NORMAL 或SHUTDOWN IMEDIATE 命令關(guān)閉數(shù)據(jù)庫。
(2) 需要立即關(guān)閉數(shù)據(jù)庫。
(3)在啟動(dòng)數(shù)據(jù)庫實(shí)例時(shí)遇到問題.
發(fā)出該命令后,所有正在運(yùn)行的SQL語句將立即中止,所有未提交的事務(wù)將不回滾,Oracle 也不等待目前連接到數(shù)據(jù)庫的用戶退出系統(tǒng),下-次啟動(dòng)數(shù)據(jù)庫時(shí)需要實(shí)例恢復(fù),因此,下一-次啟動(dòng)可能比平時(shí)需要更多的時(shí)間。
在關(guān)閉數(shù)據(jù)庫時(shí)最好使用SHUTDOWN IMMEDIATE方式,因?yàn)檫@種方式安全且相對(duì)較快。不是萬不得已不要使用SHUTDOWN ABORT方式,因?yàn)檫@種方式會(huì)造成數(shù)據(jù)丟失,并且恢復(fù)數(shù)據(jù)庫也需要較長時(shí)間。