本文為原創:如要轉發,請注明出處地址!
1、下載Oracle安裝包:
官網:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip ,可以下載到本地,通過ftp服務上傳到Linux系統(參考CentOS7 FTP服務器搭建),也可以使用Linux系統的wget命令,下載檔案包;

2、創建運行oracle資料庫的系統用戶和用戶組:
用Root賬號登錄,運行下面指令,創建所需要用戶和用戶組;
groupadd oinstall #創建用戶組oinstall
groupadd dba #創建用戶組dba
useradd -g oinstall -g dba -m oracle #創建oracle用戶,并加入到oinstall和dba用戶組
groups oracle #查詢用戶組是否授權成功
passwd oracle #設定用戶oracle的登陸密碼,不設定密碼,在CentOS的圖形登陸界面沒法登陸
id oracle #查看新建的oracle用戶

3、創建oracle資料庫安裝目錄(運行下面指令,創建賬號和分配權限)
mkdir -p /data/oracle #oracle資料庫安裝目錄
mkdir -p /data/oraInventory #oracle資料庫組態檔目錄
mkdir -p /data/database #oracle資料庫軟體包解壓目錄
cd /data
ls #創建完畢檢查一下
chown -R oracle:oinstall /data/oracle
#設定目錄所有者為oinstall用戶組的oracle用戶
chown -R oracle:oinstall /data/oraInventory
chown -R oracle:oinstall /data/database

4、修改OS系統標識
oracle默認不支持CentOS系統安裝, 修改檔案 /etc/RedHat-release 內容為RedHat-7 vi /etc/redhat-release修改成redhat-7
將CentOS Linux release 7.5.1511 (Core) 修改為redhat-7,

5、安裝oracle資料庫所需要的軟體包
以下是按照需要依賴的安裝包,通過 yum install {包名} 來驗證是否安裝,例如yum install binutils
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
通過下列命令一鍵安裝
yum install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat.* unixODBC-2.* unixODBC-devel-2.* ksh*
yum install libaio-0.* glibc-2.* compat-libstdc++-33* libaio-devel-0.* libgcc* unixODBC-2.* unixODBC-devel-2.* ksh*
yum install tigervnc tigervnc-server
6、關閉防火墻和selinux
關閉firewall:
Centos 7關閉方法
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
Centos 6關閉方法
service iptables stop #停止firewall
chkconfig --del iptables #禁止firewall開機啟動
關閉SELINUX:
vi /etc/selinux/config
#SELINUX=enforcing #注釋掉
#SELINUXTYPE=targeted #注釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效

7、修改內核引數
vi /etc/sysctl.conf #要添加sysctl.conf內容
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #設定最大打開檔案數
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享記憶體的總量,8G記憶體設定:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享記憶體的段大小
kernel.shmmni = 4096 #整個系統共享記憶體端的最大數
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4埠范圍
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576

8、對oracle用戶設定限制,提高軟體運行性能(紅色為添加部分)
vi /etc/security/limits.conf #紅色部分要添加到Limits.conf內容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
9、配置用戶的環境變數
vi /home/oracle/.bash_profile #要追加bash_profile內容部分
export ORACLE_BASE=/data/oracle #oracle資料庫安裝目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle資料庫路徑
export ORACLE_SID=orcl #oracle啟動資料庫實體名
export ORACLE_TERM=xterm #xterm視窗模式安裝
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系統環境變數
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系統環境變數
export #防止安裝程序出現亂碼
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #設定Oracle客戶端字符集,必須與Oracle安裝時設定的字符集保持一致
配置完成,:wq保存退出,運行source /home/oracle/.bash_profile時上述配置生效

10、獲取安裝包檔案后解壓安裝包
解壓方式如下:
unzip linux.x64_11gR2_database_1of2.zip -d /data/database/ #解壓檔案1
unzip linux.x64_11gR2_database_2of2.zip -d /data/database/ #解壓檔案2
chown -R oracle:oinstall /data/database/database/
#分配安裝檔案授權Oracle
11、oracle用戶登錄系統,
使用命令列跳轉到data/database/database目錄下,輸入./runInstaller 調出安裝頁面;
oracle用戶登錄:
[oracle@centos7 ~]$ cd /data/database/database/
[oracle@centos7 database]$ ./runInstaller
這時會報錯,要求至少256種顏色
,,,,,,,display at least 256 colors”
解決辦法
yum install tigervnc-server
vncserver
export DISPLAY=192.168.43.173:1.0 //如果后面還報錯用這2個export反復試 //export DISPLAY=192.168.43.173:0.0 //export DISPLAY=:0.0
xhost +
這時再啟動./runInstaller
12 、圖形化安裝程序
(1)Configure Security Updates
全部選項都留空,包括“I wish to receive security updates via My Oracle Support”復選框,系統會提示沒有輸入email地址,點擊Yes繼續


(2)Installtion Option
選擇“Install database software only”,只安裝資料庫軟體,點擊Next繼續
第一項為安裝資料庫軟體并創建一個資料庫實體
第二項為只安裝資料庫軟體
第三項為升級已經存在的資料庫
選擇第二項,可以在安裝資料庫軟體后,手工通過dbca來創建實體,

(3)Grid Options
選擇第一項點擊Next繼續,對于單節點的資料庫選擇“Single instance database installation”進行安裝,如果是安裝集群資料庫則要選擇“Real Application Clusters database installation”這個選項進行安裝,

(4)Product Languages
這個界面上選擇支持的語言,在左面串列里面選擇“Simplified Chinese”,添加到右面串列,點擊Next繼續:

(5)Database Edition
這個界面選擇oracle的版本,選擇第一項“Enterprise Edition”企業版,點擊Next繼續,
Standard版(標準版)的oracle有很多功能上的限制,生產系統上務必選擇Enterprise Edition(企業版),

(6)Installation Location
選擇安裝位置,配置好oracle用戶的.bash_profile檔案后,安裝程式會自動把ORACLE_BASE變數作為Oracle Base,軟體安裝目錄Software Location取的是ORACLE_HOME變數,不用修改,直接在界面點擊Next繼續

(7)Create Inventory
選擇Inventory的位置,保持默認,點擊Next繼續,這個位置是在ORACLE_BASE下創建oraInventory目錄,用于注冊ORACLE_HOME下安裝的資料庫的組件及其版本,存放oracle軟體安裝的目錄資訊,oracle資料庫軟體的升級、增刪組件,都需要用到inventory,oracle OUI會創建一個有oraInst.ora檔案指定的全域inventory,

(8)Operating System Groups
選擇oralce使用的作業系統用戶組,保持默認,點擊Next繼續

(9)Prerequiste Checks
Oracle安裝程式用檢查系統引數,以確定是否滿足了安裝oracle的前提條件,包括系統內核、虛擬記憶體和軟體包等,安裝3.3章節介紹的方法把包安裝好之后,由于作業系統的包版本過高,會導致oracle提示如下包缺失,實際上已經安裝好了,勾選右上角的“Ignore All”復選框,點擊Next繼續:
如果提示沒有pdksh-5.2.14,請根據64位或者32位系統安裝對應的包,


(10)Summary
Oracle安裝程式提示安裝摘要,點擊Finish繼續:

(11)Summary
Oracle開始按照前面步驟的設定,開始安裝:

(12)Finish
使用root用戶執行系統提示的2個腳本,完成安裝:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh


對于腳本中的提示,直接回車確認即可,執行完畢后,點擊OK安裝程序就完成了,

13、配置監聽
vim /data/oracle/product/11.2.0/dbhome_1/network/admin/samples/listener.ora
# lstener.ora Network Configuration File: /data/oracle/product/11.2.0/dbhome_1/network/admin/samples/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=localhost)(PORT=1521))
)
)
ADR_BASE_LISTENER = /data/oracle
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
)
)
資料庫路徑(快速查找$ORACLE_HOME)
/data/oracle/product/11.2.0/dbhome_1
啟動和關閉監聽
lsnrctl start lsnrctl stop
無法啟動監聽
lsnrctl status 或netca或netmgr命令找不到,是因為vi /home/oracle/.bash_profile配置環境變數這一步資料庫路徑不對,
每次開機再source /home/oracle/.bash_profile一下,才能使用監聽命令
停止監聽報錯((HOST = localhost有空格)

14、配置oracle本地決議檔案
/data/oracle/product/11.2.0/dbhome_1/network/admin/samples/tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.73.143)(PORT = 1521))
)
(CONNECT_DATA =https://www.cnblogs.com/binghuaZhang/archive/2021/01/29/
(SERVER = DEDICATED)
(SERVICE_NAME =orcl)
)
zbh =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.73.143)(PORT = 1521))
)
(CONNECT_DATA =https://www.cnblogs.com/binghuaZhang/archive/2021/01/29/
(SERVER = DEDICATED)
(SERVICE_NAME =orcl)
)
)
15、安裝完后創建資料庫實體
su oracle
dbca (本人執行命令后一直報錯,后來重啟機器后沒報錯,
并修改了sqlnet.ora檔案 sqlnet.authentication_services=(all) )

(0)歡迎界面,在界面上點擊Next繼續

(1)選擇“Create a Database”,在界面上點擊Next繼續

(2)選擇“General Purpose”,在界面上點擊Next繼續
如果是單節點資料庫那么此處應該選擇“General Purpose”,如果是集群資料庫系統那么此處選擇“custom database”選項

(3)設定Global Database Name 和 SID,在界面上點擊Next繼續
當資料庫運行在沒有域服務的環境中時,兩個值是相同的;當運行在域環境中時,Global Database Name應該設定為SID.域名,注意:這里設定的SID值,要跟oracle用戶.bash_profile中的ORACLE_SID設定保持一致,


(4)設定Enterprise Manger,在界面上點擊Next繼續
Oracle Enterprise Manger (OEM)是oracle一套基于Web的監控和管理程式,管理程式是emctl,配置OEM會占用一部分系統資源,這里可以不勾選,

勾選之后,如果有下面的提示,可以根據8.1章節的介紹,用netca創建一個監聽并繼續:

(5)設定oracle用戶的密碼,建議為所有用戶設定相同的密碼,密碼最好不要含有”@”特殊字符,在界面上點擊Next繼續 (本人設定密碼:1242972899)

如果你設定的密碼太簡單,會有以下提示界面,選擇Yes繼續

(6)選擇存盤設定,這里選擇File System,把資料庫檔案保存在本地磁盤,在界面上點擊Next繼續
選擇File System,把資料庫檔案保存在本地磁盤,
ASM即自動存盤管理,是oracle提供的一套存盤管理程式,可以平臺無關的方式提供檔案系統、邏輯卷管理器以及軟體 RAID(磁盤陣列)等服務,有ASM管理經驗的可以選擇這個選項,


(7)在安裝界面上點擊Next繼續
這個界面設定Flash Recovery Area的位置和大小,保持默認即可,下面的復選框,“Enable Archiving”是啟用歸檔日志,并可以指定歸檔日志的位置,默認是沒有啟用歸檔日志的,

(8)在安裝界面上點擊Next繼續
這里選擇,是否安裝Oracle的演示資料,包括幾個測驗用戶及其表、視圖等資料,生產系統不用安裝這些演示資料,會占用一部分資源,而且會產生安全問題,

(9)初始化引數選項,設定完畢后在安裝界面上點擊Next繼續
u Memory選項
選擇Typical,Oracle會自動分配SGA和PGA大小,推薦物理記憶體的75%
或者選擇Custom,SGA設定為記憶體的一半,PGA設定為SGA的一半,即
MEM:SGA:PSA =4:2:1
如果SGA設定超過1G,那么必須設定為16M的倍數,SGA設定小于等于1G,那么必須將它的大小設定為4M的倍數,這個倍數被稱之為granules(顆粒),SGA必須是granules的整數倍,

* Sizing選項
即同時連接到資料庫的客戶端行程的最大數目,在專用服務器模式下,等同于oracle前臺行程的數量,恒生推薦值是 1500到3000

u Character Sets選項
必須選擇ZHS16GBK,否則保存和顯示中文資料的時候會產生亂碼

u Connetction Mode選項
選擇oracle資料庫作業在專用模式還是共享模式,現在生產系統都是專用模式,性能更好一些,適合于中間件與資料庫保持持續連接,

(10)資料庫檔案的存放位置,設定完畢后,在界面上點擊Next繼續

這個界面設定控制檔案(Controlfile)、資料檔案(Datafiles)和重做日志組(Redo Log Groups)的位置和大小,對于重做日志組,檔案大小默認是50M,默認值太小了,對于業務比較頻繁的系統建議調整到500M至1G,重做日志組資料量默認為3個,增加到5個,盡可能減少日志切換發生checkpoint時造成資料庫性能下降,如果沒有在這個界面添加,也可以通過以下陳述句手工添加:
alter database add logfile group 4 ('/u02/oradata/redo04_1.dbf','/u02/oradata/redo04_2.dbf') size 500m;
alter database add logfile group 5 ('/u02/oradata/redo05_1.dbf','/u02/oradata/redo05_2.dbf') size 500m;
推薦將上面所有檔案保存在/u02/oradata目錄
(11)確認創建資料庫實體,在安裝界面上點擊Finish結束
保持默認即可,不用保存模版,也不用保存資料庫的創建陳述句,

(12)確認創建資料庫實體,在界面上點擊OK

(13)oracle執行創建實體的程序

(14)實體安裝完畢

16、測驗連接
在linux無論怎么連接資料庫都報錯,下面是報錯截圖
//sqlplus /nolog
sqlplus system/1242972899@zbh
連接報錯

sqlplus / as sysdba
連接報錯
ERROR:
ORA-01031: insufficient privileges

chown -R oracle:dba oracle
chmod 6751 $ORACLE_HOME/bin/oracle
ls -la oracle

用本地測驗連通性
L/SQL不論是連接LINUX上的baiduORACLE還是windows上的oracle 都是一樣的,只要你把服務zhi器上的監聽dao打開,根本不用去管服務端是啥作業系統,
最簡單的辦法是在你的本機上裝個oracle客戶端,安裝完成后
在開始選單中選擇oracle-》配置和移植工具-->net manager
出來一個oracle net manager 的工具 其中選擇 本地-》服務器命名
再點下左邊的綠色加號,添加一個新的
第一步:網路服務名:這個填寫你連接時需要使用的字串可隨便取名如test
第二步:選擇TCP/IP
第三步:主機名:填寫服務器IP 埠: 一般為1521
第四步:填寫oracle的實體名
第五步:測驗連通性
然后就完成了配置

發現在windows連接Linux測驗還是不同
后來在windows用pl/sql工具成功連接,
登錄測驗,

完成

17、自動啟動Oracle
Oracle實體和監聽創建完畢后,需要設定oracle隨著作業系統自動啟動,這里介紹兩種方法,rc.local方式或者增加一個系統服務,兩者是等效的,
方式一:rc.local
1、root用戶修改oratab
# vi /etc/oratab
檔案尾部的N改為Y:
orcl:/u01/app/oracle/product/11.2.0/db_1:Y
2、root用戶修改
vi /etc/rc.local
在檔案尾部添加:
su - oracle -c "dbstart"; su - oracle -c "lsnrctl start"
勘誤:有以上兩步就足夠了,有的檔案要求設定/app/oracle/product/11.2.0/db_1/bin/dbstart的ORACLE_HOME_LISTNER,這是沒有必要的,su - oracle -c "dbstart";將啟動實體,su - oracle -c "lsnrctl start"啟動監聽,
方式二:系統服務
1、root用戶修改oratab
# vi /etc/oratab
把檔案尾部的N改為Y:
orcl:/u01/app/oracle/product/11.2.0/db_1:Y
2、增加oracle服務
用root用戶創建并編輯服務腳本:
touch /etc/init.d/dbora
chmod 750 /etc/init.d/dbora
chkconfig --level 345 dbora on
vi /etc/init.d/dbora
將內容設定為:
#!/bin/sh
# description: Oracle auto start-stop script.
# chkconfig: - 20 80
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.
ORA_HOME=/u01/app/oracle/product/11.2.0/db_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start"
su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop"
;;
esac
勘誤:有以上兩步就足夠了,有的檔案會要求執行
ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora和
ln -s /etc/init.d/dbora /etc/rc3.d/S99dbora
這是沒有必要的,chkconfig --level 345 dbora on會自動創建這些鏈接,
18、安裝后的引數優化
關閉OEM,使用oracle用戶登錄,執行命令:
emctl status dbconsole
emctl stop dbconsole
以下命令推薦用sys用戶登錄PLSQL Developer,使用命令視窗執行:
Oracle 11g默認密碼過期日為180天,設定為永不過期:
alter profile default limit PASSWORD_LIFE_TIME unlimited;
Oracle 11g默認密碼是大小寫敏感的,設定為大小寫不敏感:
alter system set sec_case_sensitive_logon=false scope=spfile;
Oracle 11g新特性: deferred_segment_creation延遲段創建,如果不修改會導致空表無法通過exp匯出:
alter system set deferred_segment_creation = false scope=spfile;
優化最大連接數
alter system set processes=2000 scope=spfile sid='*';
優化游標數
alter system set open_cursors=20000 scope=spfile sid='*';
alter system set session_cached_cursors=300 scope=spfile;
設定dbwr行程數
alter system set db_writer_processes=4 scope=spfile;
查詢優化器設定:
06版應該設定為基于成本的:
alter system set optimizer_mode=ALL_ROWS scope=spfile sid='*';
alter system set OPTIMIZER_INDEX_COST_ADJ=10 scope=spfile;
UF20設定為基于規則的:
alter system set optimizer_mode= RULE scope=spfile sid='*';
取消登錄失敗超過10次鎖定用戶的限制
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
關閉job
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_CONFIG_JOB');
exec dbms_scheduler.disable('ORACLE_OCM.MGMT_STATS_CONFIG_JOB');
exec sysman.emd_maintenance.remove_em_dbms_jobs;
其他優化專案
alter system set "_gc_undo_affinity"=false scope=spfile sid='*';
重新設定SGA和PGA大小:(慎用)
如果啟用了AMM(Automatic memory management)自動記憶體管理:
alter system memory_target=1800M scope=spfile;
alter system memory_max_target=1800M scope=spfile;
如果為SGA和PGA分別設定:
alter system set sga_max_size=1200M scope=spfile;
alter system set sga_target=1200M scope=spfile;
alter system set pga_aggregate_target=600M scope=spfile;
請根據實際情況修改上面的值,如果啟用了AMM則將memory_target和memory_max_target設定為物理記憶體的75%,這部分記憶體oracle會動態的分配給SGA和PGA,如果分別為SGA和PGA設定,前2個命令設定SGA,最后一個命令設定PGA,修改完畢后重啟實體檢查資料庫是否正常,
附:
Linux下啟動和關閉ORACLE
sqlplus system/1242972899@zbh
SQL> startup
SQL> shutdown
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/254395.html
標籤:其他
上一篇:【轉】如何在ClickHouse中實作RANK OVER排序 ("開窗函式")
下一篇:全球首例銀行“大型機”下移背后
