CentOS7靜默安裝Oracle11g_轉載

前言

  我最近在阿里雲CentOS7上嘗試安裝Oracle11g,失敗了很多次之後終於成功。在此感謝網絡上的各位大神,興喜之餘,轉載一下,以做記錄。
  本文綜合了多篇文章,來源如下:

正文

  在雲端CentOS7上安裝Oracle11g,我們關心的無非下面三個問題:

  1. 之前安裝失敗的怎麼卸載?
  2. 怎麼安裝?
  3. 怎麼遠程連接?

  下面我們先進入第一個環節:安裝Oracle11g。

  阿里雲的CentOS7,沒有圖形化界面,所以需要靜默安裝Oracle11g。

1. 卸載Oracle11g

  這部分,可以看我轉載的另一篇文章 《CentOS卸載Oracle 11gR2(x64)_轉載》 https://blog.csdn.net/ShiJunzhiCome/article/details/106582308

2. 安裝Oracle11g

  這部分主要轉載自 linux凱《Centos7下靜默安裝Oracle 11g(無圖形化界面)》 https://blog.csdn.net/chenghuikai/article/details/85776622#commentBox

2.1 設置swap分區

  雲端的系統環境大致是:

  • 系統版本:Centos X64 7
  • 內核版本:3.10.0-514.26.2.el7.x86_64
  • 系統配置:1 CPU, 2G RAM

  系統默認是不提供swap分區的,這裏需要自己動手加一下,建議的交換空間 設置規則如下:

可用內存 需要交換空間
介於1 GB和2 GB之間 RAM大小的1.5倍
介於2 GB和16 GB之間 等於RAM的大小
超過16 GB 16GB

  設置swap分區的代碼如下:

[root@xxx ~]# dd if=/dev/zero of=/swap bs=1024 count=2048000
[root@xxx ~]# mkswap /swap
[root@xxx ~]# chmod 600 /swap
[root@xxx ~]# swapon /swap
[root@xxx ~]# echo "/swap swap swap default 0 0">>/etc/fstab  #設置成自動掛載

2.2 配置hostname

[root@xxx ~]# hostnamectl set-hostname oracledb
[root@xxx ~]# echo "127.0.0.1     oracledb" >>/etc/hosts

2.3 關閉selinux

[root@xxx ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config  
setenforce 0

2.4 下載Oracle11g

  官方網站:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/
  根據自己的服務器,下載相應的軟件,我的系統是64位的,所以下載的是 Linux x86-64的,下載完的兩個文件如下:

  • linux.x64_11gR2_database_1of2.zip
  • linux.x64_11gR2_database_2of2.zip

2.5 檢查軟件依賴環境

  注意:從Oracle 11g 11.2.0.2版本開始,在Linux x86_64上安裝時,只需要安裝64位的軟件包,但是,對於11.2.0.2之前的任何Oracle database 11g,下表中列出的32位和64位的安裝包都必須安裝。

binutils-2.23.52.0.1-12.el7.x86_64 
compat-libcap1-1.10-3.el7.x86_64 
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.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
unixODBC-2.3.1-6.el7.i686
unixODBC-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64

  簡單地說,運行下面的命令就好。

[root@xxx ~]# 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@xxx ~]# rpm -q 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 | grep "not installed"

2.6 創建所需的操作系統組和用戶

  如果要安裝Oracle數據庫,則需要以下本地操作系統組和用戶:

  • Oracle inventory組(通常爲 oinstall)
  • OSDBA組 (通常爲 dba)
  • OSOPER組 (通常爲 oper)
  • Oracle軟件所有者(通常爲 oracle)

  添加命令:

[root@xxx ~]# groupadd oinstall
[root@xxx ~]# groupadd dba
[root@xxx ~]# groupadd oper
[root@xxx ~]# useradd -g oinstall -G dba oracle

  修改oracle用戶密碼

[root@xxx ~]# passwd oracle

2.7 配置內核參數和資源限制

  (1) 在/etc/sysctl.conf添加如下參數,如果系統中某個參數高於下面的參數的值 ,保留較大的值,下面的數值只是官方要求的最小值,可以根據系統調整數值,以優化系統性能。

[root@xxx ~]# vim /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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

  (2) 使上面的內核參數配置生效:

[root@xxx ~]# sysctl -p

  (3) 在/etc/security/limits.conf中添加如下參數:

[root@xxx ~]# vim /etc/security/limits.conf

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536

  (4) 在/etc/pam.d/login文件中,添加下面內容:

[root@xxx ~]# vim /etc/pam.d/login

session required /lib64/security/pam_limits.so
session required pam_limits.so

  (5) 在/etc/profile 文件中添加如下內容:

[root@xxx ~]# 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

  (6) 使/etc/profile文件生效:

[root@xxx ~]# source /etc/profile

  (7) 禁用Transparent HugePages(啓用Transparent HugePages,可能會導致內存在運行時延遲分配,Oracle官方建議使用標準的HugePages)

  • 查看是否啓用 如果顯示[always],說明啓用了。
[root@xxx ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
  • 禁用Transparent HugePages,在/etc/grub.conf添加如下內容:
[root@xxx ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled

  重新啓動系統以使更改成爲永久更改。

2.8 創建oracle安裝目錄

[root@oracledb ~]# mkdir -p /data/app/
[root@oracledb ~]# chown -R oracle:oinstall /data/app/
[root@oracledb ~]# chmod -R 775 /data/app/

2.9 配置oracle用戶環境變量

  在文件/home/oracle/.bash_profile裏添加下面內容:

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ vim /home/oracle/.bash_profile

# 在末尾添加
umask 022
export ORACLE_HOSTNAME=oracledb
export ORACLE_BASE=/data/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ORCL
export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export LC_ALL="en_US"
export LANG="en_US"
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

  然後重啓下系統:

[root@oracledb ~]# reboot

2.10 解壓下載好的兩個Oracle數據庫文件

[root@oracledb ~]# unzip -q linux.x64_11gR2_database_1of2.zip -d /data
[root@oracledb ~]# unzip -q linux.x64_11gR2_database_2of2.zip -d /data
[root@oracledb ~]# mkdir -p /data/etc
[root@oracledb ~]# cp /data/database/response/* /data/etc/
[root@oracledb ~]# chown -R oracle:oinstall /data/database
[root@oracledb ~]# chown -R oracle:oinstall /data/etc

  在/data/etc/db_install.rsp修改以下變量的值,使用vim的 / 查找,n 下一個 N上一個。

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ vim /data/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY
DECLINE_SECURITY_UPDATES=true
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOSTNAME=oracledb
ORACLE_HOME=/data/app/oracle/product/11.2.0
ORACLE_BASE=/data/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba

2.11 開始安裝

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ cd /data/database
[oracle@oracledb database]$ ./runInstaller -silent -responseFile /data/etc/db_install.rsp -ignorePrereq

  安裝期間可以另開一個遠程ssh的窗口,使用tail命令監看oracle的安裝日誌:

#日誌文件名稱根據自己的實際執行時間變更
[root@oracledb ~]# tail -f /data/app/oracle/inventory/logs/installActions2019-01-02_06-03-30PM.log

  安裝完成後有如下提示,如果有類似如下提示,說明安裝完成:

[oracle@oracledb database]$ 

The following configuration scripts need to be executed as the "root" user. 
#!/bin/sh 
#Root scripts to run

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window 
2. Log in as "root" 
3. Run the scripts 
4. Return to this window and hit "Enter" key to continue

Successfully Setup Software.

[oracle@oracledb database]$ 

2.12 使用root用戶執行腳本

[oracle@oracledb database]$ su - root
password: 
[root@oracledb ~]# 
[root@oracledb ~]# sh /data/app/oracle/inventory/orainstRoot.sh
[root@oracledb ~]# sh /data/app/oracle/product/11.2.0/root.sh

2.13 配置監聽程序

[root@oracledb ~]# su - oracle
[oracle@oracledb ~]$ netca /silent /responsefile /data/etc/netca.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /data/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control:
      /data/app/oracle/product/11.2.0/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

[oracle@oracledb ~]$ 

  查看監聽端口:

2.14 靜默創建數據庫

  (1) 編輯應答文件/data/etc/dbca.rsp,使用vim的 / 查找,n 下一個 N上一個。

[oracle@oracledb ~]$ vim /data/etc/dbca.rsp

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION =/data/app/oracle/oradata
RECOVERYAREADESTINATION=/data/app/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"

  (2) 執行靜默建庫。

[oracle@oracledb ~]$ dbca -silent -responseFile /data/etc/dbca.rsp
Copying database files
1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/data/app/oracle/cfgtoollogs/dbca/orcl/orcl.log" for further details.

  (3) 查看進程。

[oracle@oracledb ~]$ ps -ef | grep ora_ | grep -v grep
oracle   19304     1  0 18:33 ?        00:00:00 ora_pmon_orcl
oracle   19306     1  0 18:33 ?        00:00:00 ora_vktm_orcl
oracle   19310     1  0 18:33 ?        00:00:00 ora_gen0_orcl
oracle   19312     1  0 18:33 ?        00:00:00 ora_diag_orcl
oracle   19314     1  0 18:33 ?        00:00:00 ora_dbrm_orcl
oracle   19316     1  0 18:33 ?        00:00:00 ora_psp0_orcl
oracle   19318     1  0 18:33 ?        00:00:00 ora_dia0_orcl
oracle   19320     1  0 18:33 ?        00:00:00 ora_mman_orcl
oracle   19322     1  0 18:33 ?        00:00:00 ora_dbw0_orcl
oracle   19324     1  0 18:33 ?        00:00:00 ora_lgwr_orcl
oracle   19326     1  0 18:33 ?        00:00:00 ora_ckpt_orcl
oracle   19328     1  0 18:33 ?        00:00:00 ora_smon_orcl
oracle   19330     1  0 18:33 ?        00:00:00 ora_reco_orcl
oracle   19332     1  0 18:33 ?        00:00:00 ora_mmon_orcl
oracle   19334     1  0 18:33 ?        00:00:00 ora_mmnl_orcl
oracle   19336     1  0 18:33 ?        00:00:00 ora_d000_orcl
oracle   19338     1  0 18:33 ?        00:00:00 ora_s000_orcl
oracle   19361     1  0 18:34 ?        00:00:00 ora_qmnc_orcl
oracle   19376     1  0 18:34 ?        00:00:00 ora_cjq0_orcl
oracle   19396     1  0 18:34 ?        00:00:00 ora_q000_orcl
oracle   19398     1  0 18:34 ?        00:00:00 ora_q001_orcl

  (4) 查看監聽狀態。

[oracle@oracledb ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 02-JAN-2019 18:36:15

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                02-JAN-2019 18:20:21
Uptime                    0 days 0 hr. 15 min. 54 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /data/app/oracle/product/11.2.0/network/admin/listener.ora
Listener Log File         /data/app/oracle/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracledb ~]$

2.15 至此數據庫就安裝成功了,下面我們登錄下數據庫

  (1) 登錄數據庫:

[oracle@oracledb ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0

  (2) 發現報錯,解決方式:

  • 輸入startup:
SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/data/app/oracle/product/11.2.0/dbs/initORCL.ora'
  • 根據提示,將$ORACLE_BASE/admin/orcl/pfile目錄下的init.ora.xxx形式的文件copy爲$ORACLE_HOME/dbs目錄下的initORCL.ora文件即可。
[oracle@oracledb ~]$ cd $ORACLE_BASE/admin/orcl/pfile
[oracle@oracledb pfile]$ pwd
/data/app/oracle/admin/orcl/pfile
[oracle@oracledb pfile]$ cp init.ora.022019183329 $ORACLE_HOME/dbs/initORCL.ora

  (3) 查看數據庫編碼:

SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
---------------------------------
AMERICAN_AMERICA.AL32UTF8

SQL>

  (4) 如果第(3)步,不是UTF8的話,需要手動修改一下編碼格式。

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup mount
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.

SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
// 提示我們的字符集:新字符集必須爲舊字符集的超集,這時我們可以跳過超集的檢查做更改:

SQL> ALTER DATABASE character set INTERNAL_USE AL32UTF8;
Database altered.

SQL> select * from v$nls_parameters;  //可以查看編碼

// 重啓檢查是否更改完成:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.

SQL> select userenv('language') from dual;

  (5) 如果第(4)步出現了ORA-01102: cannot mount database in EXCLUSIVE mode異常,可以做下面的處理。詳見 《ORA-01102: cannot mount database in EXCLUSIVE mode 處理方法》 https://blog.csdn.net/morigejile/article/details/54727679

[oracle@oracledb ~]$ tail -20f /data/app/oracle/diag/rdbms/orcl/ORCL/trace/alert_ORCL.log

Wed Jan 25 03:07:39 2017
MMNL started with pid=16, OS id=20451
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /data/app/oracle
Wed Jan 25 03:07:39 2017
ALTER DATABASE   MOUNT

# 重點是下面這兩行
sculkget: failed to lock /data/app/oracle/product/11.2.0/db_1/dbs/lkORCL exclusive
# 這個PID是一個伏筆
sculkget: lock held by PID: 17127

ORA-09968: unable to lock file
Linux Error: 11: Resource temporarily unavailable
Additional information: 17127
ORA-1102 signalled during: ALTER DATABASE   MOUNT...

[oracle@oracledb ~]$ cd $ORACLE_HOME/dbs
[oracle@oracledb dbs]$ ll

-rw-r----- 1 oracle oinstall    24 Oct 14  2014 lkORCL

[oracle@oracledb dbs]$ rm lkPROD4   #刪除lkPROD4 文件

[oracle@oracledb dbs]$ sqlplus / as sysdba
SQL> startup mount      #嘗試打開數據庫
ORACLE instance started.

Total System Global Area  941600768 bytes
Fixed Size                  1348860 bytes
Variable Size             549456644 bytes
Database Buffers          385875968 bytes
Redo Buffers                4919296 bytes
ORA-00205: error in identifying control file, check alert log for more info
#此時報出了另一個錯誤,先彆着急,咱照上文內容一步步排查,先關閉                 

SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.

[oracle@oracledb dbs]$ ps -ef |grep ora_ |grep orcl
oracle   17109     1  0 Jan24 ?        00:00:00 ora_pmon_orcl
oracle   17111     1  0 Jan24 ?        00:00:00 ora_psp0_orcl
oracle   17113     1  0 Jan24 ?        00:00:18 ora_vktm_orcl
oracle   17117     1  0 Jan24 ?        00:00:00 ora_gen0_orcl
oracle   17119     1  0 Jan24 ?        00:00:00 ora_diag_orcl
oracle   17121     1  0 Jan24 ?        00:00:00 ora_dbrm_orcl
oracle   17123     1  0 Jan24 ?        00:00:04 ora_dia0_orcl
oracle   17125     1  0 Jan24 ?        00:00:10 ora_mman_orcl

# 重點是這行 這PID熟悉不?
oracle   17127     1  0 Jan24 ?        00:00:01 ora_dbw0_orcl

oracle   17129     1  0 Jan24 ?        00:00:00 ora_lgwr_orcl
oracle   17131     1  0 Jan24 ?        00:00:04 ora_ckpt_orcl
oracle   17133     1  0 Jan24 ?        00:00:01 ora_smon_orcl
oracle   17135     1  0 Jan24 ?        00:00:00 ora_reco_orcl
oracle   17137     1  0 Jan24 ?        00:00:02 ora_mmon_orcl
oracle   17139     1  0 Jan24 ?        00:00:04 ora_mmnl_orcl
oracle   17141     1  0 Jan24 ?        00:00:00 ora_d000_orcl
oracle   17143     1  0 Jan24 ?        00:00:00 ora_s000_orcl
oracle   17244     1  0 Jan24 ?        00:00:00 ora_qmnc_orcl
oracle   17298     1  0 Jan24 ?        00:00:00 ora_q001_orcl
oracle   17330     1  0 Jan24 ?        00:00:01 ora_cjq0_orcl
oracle   17383     1  0 Jan24 ?        00:00:00 ora_smco_orcl
oracle   17743     1  0 Jan24 ?        00:00:00 ora_q002_orcl
oracle   20934     1  0 03:43 ?        00:00:00 ora_w000_orcl

# 這一步看見裏一個進程,其進程號和數據庫日誌中記錄的PID是相同的,
# 因此判斷此進程有佔用。殺掉該進程
[oracle@oracledb dbs]$ kill -9 17127

[oracle@oracledb dbs]$ sqlplus / as sysdba
# 再次嘗試啓動數據庫
SQL> startup mount
ORACLE instance started.

Total System Global Area  941600768 bytes
Fixed Size                  1348860 bytes
Variable Size             549456644 bytes
Database Buffers          385875968 bytes
Redo Buffers                4919296 bytes
Database mounted.

  (6) 查看數據庫版本:

SQL> select * from v$version;

BANNER
---------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE	11.2.0.1.0	Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

  (7) 激活scott用戶

SQL> alter user scott account unlock;
SQL> alter user scott identified by tiger;
SQL> select username,account_status from dba_users;

2.16 設置Oracle開機啓動

  (1) 修改/data/app/oracle/product/11.2.0/bin/dbstart

[oracle@oracledb ~]$ vim /data/app/oracle/product/11.2.0/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME

  (2) 修改/data/app/oracle/product/11.2.0/bin/dbshut

[oracle@oracledb ~]$ vim /data/app/oracle/product/11.2.0/bin/dbshut
ORACLE_HOME_LISTNER=$ORACLE_HOME

  (3) 修改/etc/oratab

[oracle@oracledb ~]$ vim /etc/oratab
orcl:/data/app/oracle/product/11.2.0:Y

  (4) 新建文件/etc/rc.d/init.d/oracle

[oracle@oracledb ~]$ 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/app/oracle/product/11.2.0
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

  (5) 給/etc/init.d/oracle添加執行權限

[oracle@oracledb ~]$ su - root
password:

[root@oracledb ~]# chmod +x /etc/init.d/oracle

  (6) 開機啓動oracle

[root@oracledb ~]# systemctl enable oracle
或
[root@oracledb ~]# chkconfig oracle on

  (7)給啓動文件加權限

[root@oracledb ~]# cd /data/app/oracle/product/11.2.0/bin/
[root@oracledb bin]# chmod 6751 oracle
[root@oracledb bin]# cd /var/tmp
[root@oracledb tmp]# chown -R oracle:oinstall .oracle

2.17 防火牆配置放開Oracle的端口

[root@oracledb ~]# firewall-cmd --zone=public --add-port=1521/tcp --permanent
[root@oracledb ~]# firewall-cmd --reload

2.18 雲端CentOS7 安全組放行1521端口

3. 遠程Oracle11g

  現在,就可以在windows的Navicat上連接這個雲端的Oracle了,如下圖所示:

linux_oracle
  linux系統上也可以安裝Navicat,不過比較麻煩,有IDEA的數據庫連接功能就可以了嘛😁

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章