以Centos7為列
創建運行Oracle數據庫的系統用戶和用戶組
1 #切換root用戶 2 [px@localhost /]$ su - root 3 [px@localhost /]$ su - root 4 密碼: 5 #創建用戶組oinstall 6 [root@localhost /]# groupadd oinstall 7 #創建用戶組dba 8 [root@localhost /]# groupadd dba 9 #創建oracle用戶並加入組oinstall和附加組dba 10 [root@localhost /]# useradd -g oinstall -G dba -m oracle 11 #設置oracle密碼 12 [root@localhost /]# passwd oracle 13 #查看新建的oracle用戶信息 14 [root@localhost /]# id oracle 15 uid=1002(oracle) gid=1002(oinstall) 組=1002(oinstall),1003(dba)
創建Oracle數據庫安裝目錄
1 #oracle數據庫安裝目錄 2 [root@localhost home]# mkdir -p /home/app/oracle 3 #oracle數據庫配置文件目錄 4 [root@localhost home]# mkdir -p /home/app/oraInventory 5 #oracle數據庫軟件包解壓目錄 6 [root@localhost home]# mkdir -p /home/app/database 7 #創建完檢查一下 8 [root@localhost app]# ls 9 database oracle oraInventory 10 #設置目錄所有者為oinstall用戶組的oracle用戶 11 [root@localhost app]# chown -R oracle:oinstall /home/app/oracle 12 [root@localhost app]# chown -R oracle:oinstall /home/app/oraInventory 13 [root@localhost app]# chown -R oracle:oinstall /home/app/database
修改OS系統標識
1 [root@localhost app]# cat /proc/version 2 Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015 3 [root@localhost app]# cat /etc/redhat-release 4 CentOS Linux release 7.2.1511 (Core) 5 [root@localhost app]# vi /etc/redhat-release 6 [root@localhost app]# cat /etc/redhat-release 7 redhat-7
安裝oracle的依賴包
1 #為了確保沒問題多找了幾個,我都執行了一遍(參考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG) 2 3 yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*.i686 elfutils-libelf-devel gcc gcc-c++ glibc*.i686 glibc glibc-devel glibc-devel*.i686 ksh libgcc*.i686 libgcc libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libaio libaio*.i686 libaio-devel libaio-devel*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686 libXp 4 5 6 yum -y 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-7.* unixODBC-2.* unixODBC-devel-2.* pdksh* 7 8 9 binutils-2.23.52.0.1-12.el7.x86_64 10 compat-libcap1-1.10-3.el7.x86_64 11 gcc-4.8.2-3.el7.x86_64 12 gcc-c++-4.8.2-3.el7.x86_64 13 glibc-2.17-36.el7.i686 14 glibc-2.17-36.el7.x86_64 15 glibc-devel-2.17-36.el7.i686 16 glibc-devel-2.17-36.el7.x86_64 17 ksh 18 libaio-0.3.109-9.el7.i686 19 libaio-0.3.109-9.el7.x86_64 20 libaio-devel-0.3.109-9.el7.i686 21 libaio-devel-0.3.109-9.el7.x86_64 22 libgcc-4.8.2-3.el7.i686 23 libgcc-4.8.2-3.el7.x86_64 24 libstdc++-4.8.2-3.el7.i686 25 libstdc++-4.8.2-3.el7.x86_64 26 libstdc++-devel-4.8.2-3.el7.i686 27 libstdc++-devel-4.8.2-3.el7.x86_64 28 libXi-1.7.2-1.el7.i686 29 libXi-1.7.2-1.el7.x86_64 30 libXtst-1.2.2-1.el7.i686 31 libXtst-1.2.2-1.el7.x86_64 32 make-3.82-19.el7.x86_64 33 sysstat-10.1.5-1.el7.x86_64
關閉防火牆
1 --centos7默認用的firewalld作為防火牆 2 #查看防火牆狀態 3 [root@localhost /]# systemctl status firewalld 4 #關閉防火牆 5 [root@localhost /]# systemctl stop firewalld 6 #禁止使用防火牆,重啟后還是是禁止 7 [root@localhost /]# systemctl disable firewalld.service
關閉selinux(需重啟生效)
1 [root@localhost /]# vi /etc/selinux/config 2 #此處修改為disabled 3 [root@localhost /]# cat /etc/selinux/config 4 SELINUX=disabled
修改內核參數
1 [root@localhost /]# vi /etc/sysctl.conf 2 net.ipv4.icmp_echo_ignore_broadcasts = 1 3 net.ipv4.conf.all.rp_filter = 1 4 fs.file-max = 6815744 #設置最大打開文件數 5 fs.aio-max-nr = 1048576 6 kernel.shmall = 2097152 #共享內存的總量,8G內存設置:2097152*4k/1024/1024 7 kernel.shmmax = 2147483648 #最大共享內存的段大小 8 kernel.shmmni = 4096 #整個系統共享內存端的最大數 9 kernel.sem = 250 32000 100 128 10 net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范圍 11 net.core.rmem_default = 262144 12 net.core.rmem_max= 4194304 13 net.core.wmem_default= 262144 14 net.core.wmem_max= 1048576 15 #使配置生效 16 [root@localhost /]# sysctl -p
對oracle用戶設置限制,提高軟件運行性能
1 #添加如下內容 2 [root@localhost /]# vi /etc/security/limits.conf 3 oracle soft nproc 2047 4 oracle hard nproc 16384 5 oracle soft nofile 1024 6 oracle hard nofile 65536
配置oracle用戶的環境變量
1 [root@localhost /]# vim /home/oracle/.bash_profile 2 export ORACLE_BASE=/home/app/oracle #oracle數據庫安裝目錄 3 export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 #oracle數據庫路徑 4 export ORACLE_SID=gdlisnet #oracle啟動數據庫實例名 5 export ORACLE_TERM=xterm #xterm窗口模式安裝 6 export PATH=/home/app/oracle/product/11.2.0/dbhome_1/bin:$PATH #添加系統環境變量 7 export LD_LIBRARY_PATH=$ORACLE_HOME/usr:/lib:/usr/lib #添加系統環境變量 8 export LANG=C #防止安裝過程出現亂碼 9 export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #設置Oracle客戶端字符集,必須與Oracle安裝時設置的字符集保持一致,如:ZHS16GBK,否則出現數據導入導出中文亂碼問題 10 #即時生效 11 [root@localhost /]# source /home/oracle/.bash_profile
上傳Oracle安裝包
安裝包可去下載https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
1 #將安裝包上傳到/usr/local/src,然后解壓 2 [root@localhost /]# cd /usr/local/src/ 3 #可以使用ftp上傳,或者用rz,sz,如果沒安裝進行安裝 4 yum -y install lrzsz 5 #上傳完后解壓 6 [root@localhost src]$ unzip linux.x64_11gR2_database_1of2.zip -d /home/app/database/ 7 [root@localhost src]$ unzip linux.x64_11gR2_database_2of2.zip -d /home/app/database/ 8 [root@localhost src]# chown -R oracle:oinstall /home/app/database/database/
圖形界面登錄oracle用戶安裝
1 #處理界面為英文或者中文,默認英文 2 [root@localhost /]# export LANG="en_US" 3 #中文 4 [root@localhost /]# export LANG="zh_CN" 5 #中文后會亂碼,需要將中文包zysong.ttf拷入解決 6 [root@localhost /]# cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/ 7 #啟動oralce安裝,到/home/app/database/database/目錄下,執行runInstaller 8 [oracle@localhost database]# ./runInstaller
安裝檢測,遇到問題,按照提示一個一個解決
我遇到交換空間不足問題(有些包是版本高,可直接忽略14)
1 #swap空間不足解決 :(要求2.67G 實際2G) 2 #查看當前虛擬內存 3 [root@localhost /]# free -m 4 #將當前swap空間由2048M 增加到 3048M 新增一個2014的swap文件 5 [root@localhost /]# dd if=/dev/zero of=/home/swap bs=1024 count=1024000 6 [root@localhost /]# mkswap /home/swap 7 [root@localhost /]# free -m 8 #增加並啟用虛擬內容 9 [root@localhost /]# swapon /home/swap
如圖:直接全部忽略,完成安裝
安裝到84%時候會出現灰色豎道,直接選中右鍵關閉即可,后邊按提示執行腳本!
配置監聽,創建實例
dbca創建數據庫之前必須先配置監聽,並且啟動
1 #現在root下執行xhost + 2 [root@localhost ~]# xhost + 3 xhost: unable to open display "" 4 #如果報錯,執行如下,然后再執行xhost + 5 [root@localhost ~]# export DISPLAY=localhost:1 6 [root@localhost ~]# xhost + 7 xhost: unable to open display "localhost:1" 8 #然后切換到oracle用戶 9 [root@localhost ~]# su - oracle 10 [oracle@localhost ~]$ export DISPLAY=:0.0 11 #建立監聽 12 [oracle@localhost bin]$ ./netca 13 #創建監聽完成查看監聽,必須啟動 14 [oracle@localhost bin]$ lsnrctl stat
15 [oracle@localhost bin]$ dbca
測試連接
1 [root@localhost /]# su - oracle 2 [oracle@localhost ~]$ sqlplus /nolog 3 4 SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 26 13:26:10 2020 5 6 Copyright (c) 1982, 2009, Oracle. All rights reserved. 7 8 SQL> connect / as sysdba 9 Connected. 10 SQL> startup 11 ORACLE instance started. 12 13 Total System Global Area 764121088 bytes 14 Fixed Size 2217264 bytes 15 Variable Size 494930640 bytes 16 Database Buffers 260046848 bytes 17 Redo Buffers 6926336 bytes 18 Database mounted. 19 Database opened.
設置開機自啟動
1 1 #設置開機自啟 2 2 [oracle@centos7 /]$ vim /etc/oratab 3 3 gdlisnet: /home/app/oracle/product/11.2.0:Y 4 4 [oracle@centos7 bin]$ vim /home/app/oracle/product/11.2.0/bin/dbstart 5 5 #將ORACLE_HOME_LISTNER=$1改成 6 6 ORACLE_HOME_LISTNER=$ORACLE_HOME 7 7 [root@centos7 bin]# vim /etc/rc.local 8 8 su - oracle -c '/home/app/oracle/product/11.2.0/bin/lsnrctl start' 9 9 su - oracle -c '/home/app/oracle/product/11.2.0/bin/dbstart' 10 10 [root@centos7 bin]# chmod +x /etc/rc.d/rc.local 11 11 12 12 #同步網絡時間 13 13 [root@centos7 /]# yum -y install ntp 14 14 [root@centos7 /]# ntpdate -u ntp.api.bz 15 15 [root@centos7 /]# hwclock –w
開啟防火牆
1 #開啟防火牆 2 systemctl start firewalld 3 #開放指定端口 4 firewall-cmd --zone=public --add-port=1521/tcp --permanent 5 #命令含義: 6 --zone #作用域 7 --add-port=1521/tcp #添加端口,格式為:端口/通訊協議 8 --permanent #永久生效,沒有此參數重啟后失效 9 #重啟防火牆 10 firewall-cmd --reload 11 12 #查看端口號 13 #查看當前所有tcp端口· 14 netstat -ntlp 15 #查看所有1935端口使用情況· 16 netstat -ntulp |grep 1521 17 18 #iptables防火牆 19 /sbin/iptables -I INPUT -p tcp --dport 1521 -j ACCEPT
使用命令
lsnrctl status 查看狀態
lsnrctl start 啟動
lsnrctl stop 停止
sqlplus /nolog //登錄sqlplus
connect /as sysdba //連接oracle
startup //起動數據庫
shutdown //關閉數據庫 shutdown immediate
exit //退出sqlplus
環境變量改錯的話,執行如下:
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
