您好,登錄后才能下訂單哦!
oracle數據庫是一個相對龐大的應用軟件,對服務器的系統類型,內存和交換分區、硬盤空間、內核參數、軟件環境、用戶環境等都有相應的要求。只有滿足了必備的條件,才能確保oracle 12c安裝成功,運行穩定。
部署oracle 12c對系統的要求:
- 防火墻需要放行相關流量,oracle默認端口號是5500;
- SELinux必須關閉;
- 內核選擇3.10及以上版本;
- 物理內存;必須高于1G,交換空間,當物理內存為1~2G 時,交換分區為物理內存的1.5\~2倍,當物理內存為2\~16G時,交換分區與物理內存大小一樣就可以,當物理內存超過16G時,交換分區使用16GB就行了。
- 至少需要20GB的磁盤空間,如果不單獨給oracle創建分區,那么至少要保證根分區有15GB的可用磁盤空間
以上基本是硬件的要求,接下來開始為了可以部署oracle,還需要修改軟件方面的參數。
先下載oracle的安裝程序吧,我這里提供了一個oracle 12c的安裝文件百度網盤鏈接,是oracle 12c的版本,也可以去oracle中文官方網站,它支持oracle安裝文件的免費下載(需要注冊賬號,最新的版本是oracle 19c),找到所需的版本下載使用即可,我這里就安裝12c了。
安裝oracle數據庫前,要求規劃好主機名和IP。服務器的主機名、IP地址也應提前確定無誤,一旦oracle數據庫安裝完成,建議不要再修改主機名,否則會導致數據庫啟動失敗。一般需要執行以下操作:
[root@localhost ~]# hostnamectl set-hostname oracle #修改主機名,并寫入配置文件
[root@localhost ~]# bash #使主機名生效
[root@oracle ~]# echo "192.168.1.1 oracle" >> /etc/hosts #將本機主機名及IP對應寫入/etc/hosts文件,以便解析
#也可以通過DNS來解析,這里為了省事
[root@oracle ~]# tail -1 /etc/hosts #確認已添加
192.168.1.1 oracle
oracle 12c的安裝過程是在圖形界面中進行,因此建議使用帶有GNOME中文桌面環境的centos服務器,軟件開發工具當然也是必不可少的,可以使用yum安裝系統盤中的必要的軟件環境,具體如下:
[root@oracle ~]# mount /dev/cdrom /media #掛載系統盤
#以下是配置本地yum源
[root@oracle yum.repos.d]# cd /etc/yum.repos.d/
[root@oracle yum.repos.d]# mkdir /yum.repo.bak
[root@oracle yum.repos.d]# mv * /yum.repo.bak/
[root@oracle yum.repos.d]# vim system.repo #寫入以下內容
[oracle]
baseurl=file:///media
gpgcheck=0
[root@oracle yum.repos.d]# yum clean all #清除yum緩存
[root@oracle yum.repos.d]# cd
#以下是安裝一些開發工具
[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
[root@oracle ~]# vim /etc/sysctl.conf #調整內核參數,主要是內存調度、端口范圍、打開文件數、I/O請求等相關設置
..........................#省略部分內容
#在文件末尾寫入以下參數
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
[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
[root@oracle ~]# groupadd -g 54321 oinstall #創建安裝組
[root@oracle ~]# groupadd -g 54322 dba #創建管理組
[root@oracle ~]# useradd -u 54321 -g oinstall -G dba oracle #創建運行用戶
[root@oracle ~]# echo "123.comf" | passwd --stdin oracle #為該用戶設置密碼
[root@oracle ~]# mkdir -p /u01/app/oracle #創建基本目錄
[root@oracle ~]# chown -R oracle:oinstall /u01/app/ #更改屬組
[root@oracle ~]# chmod -R 755 /u01/app/oracle/ #更改權限
[root@oracle ~]# vim /home/oracle/.bash_profile #調整oracle用戶的環境變量
........................#省略部分內容
#寫入以下內容
umask 022
ORACLE_BASE=/u01/app/oracle #定義基本目錄
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/ #定義安裝家目錄
ORACLE_SID=orcl #定義數據庫實例名稱
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8 #確定使用何種語言環境
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用戶資源限制要求
進程會話限制可以采用pam_limits認證模塊來實現,通過修改登錄程序login的PAM設置以啟用該認證,然后修改/etc/security/limits.conf文件,使用戶oracle能夠打開的進程數、進程使用的文件數加大。如下:
[root@oracle ~]# vim /etc/pam.d/login #修改PAM設置以便啟用該認證
......................#省略部分內容
#在末尾寫入以下兩行:
session required /lib/security/pam_limits.so
session required pam_limits.so
[root@oracle ~]# vim /etc/security/limits.conf #修改該文件
......................#省略部分內容
#在文件末尾寫入以下內容:
oracle soft nproc 2047 #進程數軟限制
oracle hard nproc 16384 #進程數硬限制
oracle soft nofile 1024 #文件數軟限制
oracle hard nofile 65536 #文件數硬限制
oracle soft stack 10240 #Oracle軟堆棧限制
[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
不配置oracle用戶資源的限制,也不會影響到oracle數據庫的成功安裝,但是,若有糟糕的SQL語句對服務器的資源無限占用,導致長時間對用戶請求無響應,則建議提前限制oracle用戶資源。
準備工作至此就完成了,需要重啟系統,重啟之后,最好再次檢查之前的配置是否生效。建議不要做臨時配置。
[root@oracle ~]# mkdir /tmp/abc #創建目錄,/tmp目錄下,oracle用戶才可以讀取到
[root@oracle ~]# mount /dev/cdrom /media #掛載我提供的oracle光盤鏡像文件
[root@oracle ~]# ls /media/ #確認oracle文件存在
linuxx64_12201_database.zip
[root@oracle ~]# cd /tmp/abc #切換至/tmp/abc/目錄下
[root@oracle abc]# cp /media/linuxx64_12201_database.zip . #將安裝文件復制到當前目錄下,文件有點大,請耐心等待
[root@oracle abc]# unzip linuxx64_12201_database.zip #解壓該安裝文件
oracle 12c的安裝主要通過runInstaller腳本進行,訪問網頁welcome.html可以查看產品手冊,其中包括產品說明、發行注記、安裝指南等文檔,為我們提供了極為豐富的幫助信息。
所有前置條件準備好以后,就可以正式開始安裝了,如果當前的圖形桌面環境是以其他用戶的身份(如root)登錄的,則還應添加授權以允許oracle使用圖形終端。例如:“xhost + oracle@localhost”表示允許用戶oracle從本機訪問,執行“xhost +”表示取消所有限制。
以用戶oracle的身份登錄到centos 的圖形桌面環境,啟動database目錄下的runInstaller腳本文件,具體操作如下(若安裝oracle 19c則需要將存放oracle 19c的目錄下都更改屬主為oracle,如解壓出來的oracle安裝文件都位于/tmp/abc目錄下,那么需要執行命令:chown -R oracle /tmp/abc,以便更改它的屬主,否則會報錯,這里安裝的oracle 12c就不會出現這個問題。):
[root@oracle ~]# xhost + #一定要以root用戶在圖形環境中操作
[root@oracle ~]# su - oracle #切換至oracle用戶
[oracle@oracle ~]$ cd /tmp/abc/database/ #切換至剛才解壓出來的oracle安裝文件目錄
[oracle@oracle database]$ ./runInstaller #執行腳本進行安裝,執行該腳本后,就會啟動oracle圖形化的安裝程序
接下來的操作基本就是在圖形化窗口上進行操作了,如下:
執行runInstaller腳本后打開的窗口如下:
1、
2、
3、
4、
5、
6、
7、
8、
9、
10、
11、
12、
13、
14、在安裝過程中,會提示讓使用root身份,執行下面的兩個腳本,此時,切換一個工作區,使用root登錄,將腳本名復制過去執行以下,即可!如下:
15、使用root身份執行上面圖中提示的腳本:
[root@oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh
#執行第二個腳本時,會有兩次交互界面,第一次直接按回車鍵即可;
#第二次是要安裝oracle跟蹤文件分析器,可直接回車,也可輸入“yes”進行安裝
16、
17、安裝成功,關閉即可
安裝完成后,可以通過https://oracle服務器IP:5500/em ,實現訪問EM(Enterprise Manager,企業管理器)database Express 平臺,以便對oracle 12c的數據庫進行簡單管理,但訪問EM database express平臺,需要flase的支持。我這里使用的Windows客戶端直接訪問的(安裝了flase),若使用Linux自帶的火狐瀏覽器,可以下載我提供的Linux中的flase player插件,是個rpm格式的,直接執行命令rpm -ivh進行安裝即可。
登錄頁面如下:
上圖中提到的密碼,就是在下面這個過程中定義的口令:
登錄后的界面如下:
關于這個管理界面,就不多做介紹了,自行研究即可。
使用sqlplus命令可以在命令行界面訪問oracle數據庫,但是登錄到數據庫后,不可以使用上下鍵翻歷史命令,如果想要解決,可以進行以下操作。
1、下載我提供的tar.gz軟件包
2、掛載系統盤,然后執行以下命令:
[root@oracle ~]# yum -y install ncurses* readline* #安裝依賴包
[root@oracle abc]# tar -zxvf rlwrap-0.30.tar.gz #解壓我提供的tar包
[root@oracle abc]# cd rlwrap-0.30/ #進入解壓后的目錄
[root@oracle rlwrap-0.30]# ./configure && make && make install #編譯安裝
[root@oracle ~]# vim /home/oracle/.bash_profile #配置oracle用戶的環境變量,以便方便使用rlwrap命令
#經過以上配置,執行rlwrap + 原命令登錄到oracle數據庫,便可以使用上下鍵翻歷史命令了
[root@oracle ~]# su - oracle #切換到oracle用戶,才可以登錄到oracle數據庫
上一次登錄:三 9月 25 16:46:42 CST 2019
[oracle@oracle ~]$ rlwrap sqlplus / as sysdba #登錄數據庫
在上面的登錄數據庫命令中,是實現了sys以sysdba的身份連接到本機的oracle數據庫,sys用戶是oracle的最高管理員,以sys用戶登錄的時候一般要加上as sysdba,而其他用戶則不需要,若以其他用戶身份登錄oracle數據庫,可以執行命令:“[oracle@oracle ~]$ sqlplus system/oracle
”
進入SQL環境后的簡單操作(在SQL>模式下,不區分大小寫):
SQL> help index #查看支持的指令列表
SQL> show user #查看當前的用戶
如果在安裝oracle產品時不創建數據庫,那么要使用oracle系統就必須先創建數據庫。如果在安裝oracle時選擇建立數據庫,也可以再創建第二個數據庫(不過為了使oracle數據庫充分利用系統資源,建議一個服務器上只創建一個數據庫)。
創建數據庫的方法有兩種:通過圖形化界面,或者采用“CREATE DATABASE”命令,這里說一下圖形化界面創建數據庫的方法:
[oracle@oracle database]$ dbca #以oracle身份運行命令dbca,會彈出一個窗口
如果沒有彈出窗口,可以參考前面的步驟,以root用戶運行“xhost +”命令,再以oracle身份運行“export DISPLAY=:0.0”命令。
執行命令后會彈出以下窗口:
oracle數據庫的啟動與關閉是日常工作之一。對于大多數oracle DBA來說,啟動和關閉oracle數據庫最常用的方式是在命令行方式下執行。
要啟動和關閉數據庫,必須要以具有oracle管理員權限的用戶登錄,通常以具有SYSDBA權限的用戶登錄。
啟動一個數據庫需要三個步驟:①啟動oracle實例(非裝載階段);②由實例裝載數據庫(裝載階段);③打開數據庫(打開階段)。
在startup命令中,可以使用不同的選項來控制數據庫的不同啟動步驟。
1)startup nomount(該命令不常用)
nomount選項僅僅啟動一個oracle實例,讀取init.ora初始化參數文件、啟動后臺進程、初始化SGA。當實例啟動后,系統將顯示一個SGA內存結構和大小的列表,如下:
[oracle@oracle ~]$ rlwrap sqlplus / as sysdba #進入oracle數據庫
SQL> startup nomount #執行該命令
ORACLE 例程已經啟動。
Total System Global Area 1593835520 bytes
Fixed Size 8793256 bytes
Variable Size 1023411032 bytes
Database Buffers 553648128 bytes
Redo Buffers 7983104 bytes
2)startup mount(某些時候會用到該命令)
startup mount 命令啟動實例并且裝載數據庫,但是沒有打開數據庫。oracle系統讀取控制文件中關于數據文件和重做日志文件的內容,但并不打開該文件。這種打開方式常在數據庫維護操作中使用,如對數據文件的更名、改變重做日志及打開歸檔模式等。在這種打開方式下,除了可以看到SGA系統列表以外,系統還會給出“數據庫裝載完畢”的提示。
SQL> alter database mount; #由于上面已經執行了startup nomount命令,所以再更改它的狀態,就需要使用該命令
3)startup(正常時使用的命令)
startup命令完成啟動實例,裝載數據庫和打開數據庫三個步驟。此時,數據庫使數據文件和重做日志文件在線,通常還會請求一個或者多個回滾段;系統除了可以看到前面startup mount 方式下的所有提示外,還會給出一個“數據庫已經打開”的提示;數據庫系統處于正常的工作狀態,可以接收用戶的請求。
如果采用startup nomount或者startup mount的數據庫打開方式,必須采用alter database命令來執行裝載或打開數據庫的操作。
前面兩條命令都執行過了(startup nomount和alter database mount),所以這里再執行下面命令,數據庫就可以說是正確啟動完成了。如下:
SQL> alter database open; #執行該命令
正常來說,可以直接使用下面一條命令來正常啟動數據庫,如下:
SQL> startup #在數據庫關閉狀態下執行該命令,數據庫會依次啟動、裝載、打開。
ORACLE 例程已經啟動。
Total System Global Area 1593835520 bytes
Fixed Size 8793256 bytes
Variable Size 1023411032 bytes
Database Buffers 553648128 bytes
Redo Buffers 7983104 bytes
數據庫裝載完畢。
數據庫已經打開。
對于數據庫的關閉,有四種不同的關閉選項。
1)shutdown normal
shutdown normal是shutdown命令的默認選項。也就是說,如果用戶發出shutdown命令,即執行shutdown normal命令。
發出該命令后,任何新的連接都將不再允許連接到數據庫。在數據庫關閉之前,oracle將等待目前連接的所有用戶都從數據庫中退出后才開始關閉數據庫。采用這種方式關閉數據庫,在下一次啟動時不需要進行任何的實例恢復。但需要注意的是,采用這種方式時,也許關閉一個數據庫需要幾天或更長的時間。
2)shutdown immediate
shutdown immediate是常用的一種關閉數據庫的方式。若即想很快地關閉數據庫,又想讓數據庫“干凈”的關閉,則常采用這種方式。
發出該命令后,當前正在被oracle處理的SQL語句立即中斷,系統中任何沒有提交的事務全部回滾。如果系統中存在一個很長的未提交的事務,那么采用這種方式關閉數據庫也需要一段時間(該事務回滾時間)。系統不會等待連接到數據庫的所有用戶退出系統,而會強行回滾當前所有的活動事務,然后斷開所有的連接用戶。
3)shutdown transactional
shutdown transactional 命令常用來計劃關閉數據庫,它會等待當前連接到系統且正在活動的事務執行完畢,運行該命令后,任何新的連接和事務都是不允許的。它所有活動的事務執行完成后,數據庫將以和shutdown immediate同樣的方式關閉數據庫。
4)shutdown abort
shutdown abort是關閉數據庫方式的最后選擇,是在沒有任何辦法關閉數據庫的情況下不得不采用的方式,一般不要采用。在下列情況出現時可以考慮采用這種方式關閉數據庫。
在啟動數據庫實例時遇到問題。
發出該命令后,所有正在運行的SQL語句將立即中止,所有未提交的事務將不回滾,oracle也不等待目前連接到數據庫的用戶退出系統;下一次啟動數據庫時需要實例恢復,因此,下一次啟動可能比平時需要更多的時間。
在關閉數據庫時最好使用shutdown immediate方式,因為這種方式安全且相對較快。不是萬不得已不要使用shutdown abort 方式,因為這種方式會造成數據丟失,并且恢復數據庫也需要較長時間。
當oracle數據庫實例啟動完成后,為了使客戶端用戶能連接到oracle實例,DBA還需要在oracle所在的服務器上使用lsnrctl命令啟動監聽進程。如果數據庫實例關閉,一般也要關閉監聽進程。
啟動監聽是oracle用戶在操作系統下執行的命令,可以直接在lsnrctl后加參數,也可在該命令提示符后進行操作,具體如下:
[oracle@oracle ~]$ lsnrctl #執行該命令
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-9月 -2019 21:59:04
Copyright (c) 1991, 2016, Oracle. All rights reserved.
歡迎來到LSNRCTL, 請鍵入"help"以獲得信息。
LSNRCTL> start #啟動監聽
啟動/u01/app/oracle/product/12.2.0/dbhome_1//bin/tnslsnr: 請稍候...
TNSLSNR for Linux: Version 12.2.0.1.0 - Production
系統參數文件為/u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
寫入/u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日志信息
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for Linux: Version 12.2.0.1.0 - Production
啟動日期 25-9月 -2019 21:59:12
正常運行時間 0 天 0 小時 0 分 0 秒
跟蹤級別 off
安全性 ON: Local OS Authentication
SNMP OFF
監聽程序參數文件 /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
監聽程序日志文件 /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
監聽程序不支持服務
命令執行成功
也可以直接使用以下命令“來啟動監聽:
[oracle@oracle ~]$ lsnrctl start #啟動監聽
[oracle@oracle ~]$ lsnrctl stop #關閉監聽
LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-9月 -2019 22:00:31
Copyright (c) 1991, 2016, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
命令執行成功
———————— 本文至此結束,感謝閱讀 ————————
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。