centos7.3系統中安裝oracle11g並使用Navicat遠端連線教程
阿新 • • 發佈:2018-12-20
最近在阿里雲上買了個輕量級伺服器,centos7.3版本,在裝oracle11g並實現Navicat遠連的時候出現了很多bug,在網上搜的時候發現沒有一篇部落格是可以完全適用的,所以把這些過程整理出來,希望能幫助後面的同學少走彎路。
- 建立swap分割槽
命令1:
dd if=/dev/zero of=/home/swap bs=1024 count=2097152
命令2:mkswap /home/swap
命令3:swapon /home/swap
檢視分割槽情況,若有Swap分割槽則為正確 命令4:free -m
命令5:vim /etc/fstab
新增一行/home/swap swap swap defaults 0 0
- 建立使用者和使用者組
命令1:
groupadd oinstall
命令2:groupadd dba
命令3:useradd -g oinstall -G dba -m oracle
命令4:groups oracle
命令5:passwd oracle
命令6:id oracle
- 建立安裝目錄和許可權
命令1:
mkdir -p /data/oracle
命令2:mkdir -p /data/oraInventory
命令3:mkdir -p /data/database
命令4:cd /data
命令5:chown -R oracle:oinstall /data/oracle
chown -R oracle:oinstall /data/oraInventory
命令7:chown -R oracle:oinstall /data/database
- 修改OS系統標識
命令1:
vim /etc/redhat-release
修改為redhat-7 - 關閉防火牆和selinux(阿里雲中已經關閉)
- 修改核心引數
命令1:
vim /etc/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 #共享記憶體的總量,8G記憶體設定:2097152*4k/1024/1024 kernel.shmall = 2097152 #最大共享記憶體的段大小 kernel.shmmax = 2147483648 #整個系統共享記憶體端的最大數 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 #可使用的IPv4埠範圍 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
命令2:sysctl -p
使檔案生效
命令3:vim /etc/security/limits.conf
增加如下內容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
- 配置oracle使用者的環境變數
命令1:
vim /home/oracle/.bash_profile
增加如下內容
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
#oracle啟動資料庫例項名
export ORACLE_SID=orcl11g
#新增系統環境變數
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin/samples
- 安裝需要的rpm包
命令1:
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel libXtst sysstat ksh make libXi compat-libcap1
- 解壓兩個安裝檔案到對應的資料夾下
命令1:
yum -y install zip unzip
命令2:unzip /opt/soft/linux.x64_11gR2_database_1of2.zip -d /data/database/
命令3:unzip /opt/soft/linux.x64_11gR2_database_2of2.zip -d /data/database/
- 進行安裝
命令1:
su - oracle
命令2:cd /data/database/database
命令3:./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /data/database/database/response/db_install.rsp
- 另開一個終端使用root使用者執行
命令1:
/data/oraInventory/orainstRoot.sh
命令2:/data/oracle/product/11.2.0/db_1/root.sh
執行完後第11步的終端介面會出現Successfully Setup Software,按回車即可 - 配置tnsnames.ora
命令1:
vim /data/oracle/product/11.2.0/db_1/network/admin/samples/tnsnames.ora
新增如下內容:
alioracle =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =0.0.0.0)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
- 建庫
命令1:
cd /data/oracle/product/11.2.0/db_1/bin
命令2:./dbca -silent -responseFile /data/database/database/response/dbca.rsp
這個時候xshell中會清屏,全是黑的,不要慌,隨便輸入點東西,回車,再隨便輸入點東西,在回車,就開始建庫了 - 配置listener.ora
命令1:
vim /data/oracle/product/11.2.0/db_1/network/admin/samples/listener.ora
新增以下內容:
LISTENER=(DESCRIPTION_LIST=(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=0.0.0.0)(PORT=1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=orcl)
(SID_NAME=orcl11g)
(ORACLE_HOME=/data/oracle/product/11.2.0/db_1)
(PRESPAWN_MAX=20)
(PRESPAWN_LIST=
(PRESPAWN_DESC=(PROTOCOL=tcp)(POOL_SIZE=2)(TIMEOUT=1))
)
)
)
- 去阿里雲控制檯,找到安全組,去新增1521埠的配置規則,否則用公網ip連線不到oracle資料庫,這一步很關鍵,否則無法用公網ip遠端連線。
- 開啟監聽
命令1:
lsnrctl start
命令1:lsnrctl stop
命令1:lsnrctl status
開啟後可在Windows命令列介面中使用telnet 公網ip 1521來測試網路是否連通 - 登入sqlplus,檢視例項狀態
命令1:
sqlplus / as sysdba
啟用scott使用者 命令2:alter user scott account unlock;
命令3:alter user scott identified by Tcc123456;
- 修改Oracle開機啟動檔案
命令1:
vim /data/oracle/product/11.2.0/db_1/bin/dbstart
把ORACLE_HOME_LISTNER=$1 改成ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1 命令2:vim /data/oracle/product/11.2.0/db_1/bin/dbshut
把ORACLE_HOME_LISTNER=$1 改成ORACLE_HOME_LISTNER=/data/oracle/product/11.2.0/db_1 命令3:vim /etc/oratab
把orcl11g:/data/oracle/product/11.2.0/db_1:N 改為orcl11g:/data/oracle/product/11.2.0/db_1:Y 命令4:vim /etc/rc.d/init.d/oracle
寫入以下內容
#! /bin/bash
# oracle: Start/Stop Oracle Database 11g R2
#
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
# processname: oracle
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/oracle/product/11.2.0/db_1
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
- 設定Oracle開機啟動
命令1:
systemctl enable oracle
命令2:cd /data/oracle/product/11.2.0/db_1/bin/
命令3:chmod 6751 oracle
命令4:cd /var/tmp
命令5:chown -R oracle:oinstall .oracle
- 系統重啟後需要執行的操作
命令1:
su - oracle
命令2:lsnrctl start
命令3:sqlplus / as sysdba
並在SQL中執行startup即可,此時已經可以用Navicat遠連了。