CentOS 7安裝Oracle 11gR2以及設置自啓動

1、環境準備

一、正確無誤的CentOS 7系統環境

CentOS 7安裝http://www.cnblogs.com/VoiceOfDreams/p/8043958.htmlhtml

二、正確的JDK環境

 CentOS 7安裝JDK:http://www.cnblogs.com/VoiceOfDreams/p/8376978.htmljava

三、Oracle11g安裝包

下載地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.htmllinux

 

安裝包包含兩個文件c++

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

2、  安裝前準備

一、建立oracle數據庫的系統用戶和用戶組

[admin @localhost ~]$ su root
Password:
[root@localhost admin]# groupadd oinstall                      #建立用戶組oinstall
[root@localhost admin]# groupadd dba                           #建立用戶組dba
[root@localhost admin]# useradd -g oinstall -G dba -m oracle   #建立oracle用戶,並加入到oinstalldba用戶組
[root@localhost admin]# passwd oracle                          #設置用戶oracle的登錄密碼
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:                                            #確認密碼
passwd: all authentication tokens updated successfully.
[root@localhost admin]# id oracle                                #查看新建的oracle用戶
uid=1001(oracle) gid=1002(dba) groups=1002(dba)
[root@localhost admin]#
-g:指定用戶所屬的羣組
-G:指定用戶所屬的附加羣組
-m:自動創建用戶的登入目錄

二、建立oracle數據庫安裝目錄

[root@localhost admin]# mkdir -p /usr/oracle    #安裝目錄 [root@localhost admin]# mkdir -p /usr/oraInventory   #配置文件目錄 [root@localhost admin]# mkdir -p /usr/orapackage    #軟件包解壓目錄 [root@localhost admin]# cd /usr [root@localhost usr]# ls  orapackage oracle oraInventory ... [root@localhost usr]# chown -R oracle:oinstall /usr/oracle   #設置目錄全部者爲oinstall用戶組的oracle用戶 [root@localhost usr]# chown -R oracle:oinstall /usr/oraInventory [root@localhost usr]# chown -R oracle:oinstall /usr/orapackage [root@localhost usr]#  

三、安裝包準備

因爲使用U盤安裝,首先進行U盤掛載,再將安裝包拷貝到對應目錄sql

查看文件系統的磁盤空間佔用狀況:數據庫

[root@localhost admin]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root       50G   22G   29G  43% /
devtmpfs                 1.8G     0  1.8G   0% /dev
tmpfs                    1.9G  6.3M  1.9G   1% /dev/shm
tmpfs                    1.9G  9.0M  1.8G   1% /run
tmpfs                    1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/sda1                    494M  227M  267M  46% /boot
/dev/mapper/centos-home      412G  4.3G  407G   2% /home
tmpfs                    370M   32K  370M   1% /run/user/1000
/dev/sdb1 15G 7.3G 7.3G 51% /run/media/admin/4291-25E5
[root@localhost admin]#

紅色爲U盤信息vim

建立U盤掛載目錄,進行U盤掛載centos

[root@localhost admin]# mkdir –p /mnt/usb
[root@localhost admin]# mount /dev/sdb1 /mnt/usb

將U盤中的安裝包拷貝到本身指定目錄安全

[root@localhost admin]# cp –r /mnt/usb/oracle/* /usr/orapackage
[root@localhost admin]# cd /usr/orapackage
[root@localhost orapackage]# ls
linux.x64_11gR2_database_1of2.zip   linux.x64_11gR2_database_2of2.zip

解壓縮到當前目錄bash

[root@localhost orapackage]# unzip linux_11gR2_database_1of2.zip
[root@localhost orapackage]# unzip linux_11gR2_database_2of2.zip
[root@localhost orapackage]# ls
database  linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip

U盤使用完成後卸載U盤掛載點

[root@localhost admin]# umount /dev/sdb1

四、修改OS系統標識

oracle默認不支持CentOS系統安裝,修改文件 /etc/RedHat-release

[root@localhost admin]# cat /proc/version 
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) ) 
[root@localhost admin]# cat /etc/redhat-release  
CentOS Linux release 7.2.1511 (Core) 
[root@localhost admin]# vi /etc/redhat-release         #進入編輯界面,將內容更改成redhat-7
[root@localhost admin]# cat /etc/redhat-release 
redhat-7 
[root@localhost admin]# 

五、安裝oracle數據庫所須要的軟件包

參考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm

Oracle Linux 7 and Red Hat Enterprise Linux 7  

The following packages (or later versions) must be installed:

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

To use ODBC on Linux x86-64, the following additional ODBC RPMs are required:

On Oracle Linux 7, and Red Hat Enterprise Linux 7:

unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later

安裝所需安裝包

[root@localhost admin]# yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686

 檢測是否31個包都有安裝

[root@localhost admin]# 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
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.x86_64
unixODBC-2.3.1-6.el7.i686
unixODBC-devel-2.3.1-6.el7.x86_64
unixODBC-devel-2.3.1-6.el7.i686

版本號只能大於規定的版本,不能小於

六、關閉防火牆

CentOS 7默認使用的是firewall做爲防火牆

[root@localhost admin]# systemctl status firewalld.service                    #查看防火牆狀態
 firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2016-04-07 18:54:29 PDT; 2h 20min ago
[root@localhost admin]# systemctl stop firewalld.service                    #關閉防火牆
[root@localhost admin]# systemctl status firewalld.service                  #再次查看防火牆狀態
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Thu 2016-04-07 21:15:34 PDT; 9s ago
[root@localhost admin]# systemctl disable firewalld.service                 #關閉開機制動啓動

 七、關閉selinux(需重啓生效)

[root@localhost /]# vi /etc/selinux/config
[root@localhost /]# cat /etc/selinux/config

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled                                                 #此處修改成disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

八、修改內核參數

[root@localhost admin]# vi /etc/sysctl.conf [root@localhost admin]# cat /etc/sysctl.conf # System default settings live in /usr/lib/sysctl.d/00-system.conf. # To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file # # For more information, see sysctl.conf(5) and sysctl.d(5). net.ipv4.icmp_echo_ignore_broadcasts = 1 net.ipv4.conf.all.rp_filter = 1 fs.file-max = 6815744 #設置一個進程能夠打開的最大打開文件數 fs.aio-max-nr = 1048576 #限制未完成的併發請求,避免I/O系統故障 kernel.shmall = 2097152 #共享內存的總量,應不小於shmmax/page_size缺省值就是2097152 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  #發送緩衝區最大值 [root@localhost admin]#

使配置參數生效

[root@localhost admin]# sysctl –p

九、設置用戶限制,提升軟件運行性能

[root@localhost admin]# vi /etc/security/limits.conf 
[root@localhost admin]# cat /etc/security/limits.conf
…
#@student        -       maxlogins       4

oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
# End of file

十、配置用戶的環境變量

 

[root@localhost /]# vi /home/oracle/.bash_profile 
[root@localhost /]# cat /home/oracle/.bash_profile
…
export PATH

export ORACLE_BASE=/usr/oracle                            #oracl安裝目錄
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 LANG=C                                             #防止安裝過程出現亂碼
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK    #設置Oracle客戶端字符集,必須與Oracle客戶端安裝時設置的字符集保持一致。有的是設爲AL32UTF8,根據須要自行設定。

使配置生效

[root@localhost admin]# source /home/oracle/.bash_profile

3、oracle安裝

 

一、使用Oracle帳戶登陸

二、爲了防止安裝時提示框出錯沒法顯示,啓動安裝時添加本地JDK路徑

查看配置文件
[oracle@localhost ~]$ vi + /etc/profile
…
#Path JDK1.8
JAVA_HOME=/usr/java/jdk1.8
JRE_HOME=/usr/java/jdk1.8/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
[oracle@localhost ~]$ cd /usr/orapackage/database
[oracle@localhost database]$ ls
doc  install  response  rpm  runInstaller  sshsetup  stage  welcome.html
[oracle@localhost database]$ ./runInstaller –jreLoc /usr/java/jdk1.8

三、安裝界面安裝流程

去除選中,不自動接收Oracle的安全更新,next。

肯定,next

第一項爲企業級應用

第二項只安裝數據庫

第三項爲升級現有數據庫


第一項爲桌面類:通常適用於臺式機和筆記本,包含最小數據庫和最低配置要求,安裝時只有基本選項。

第二項爲服務類:適用於服務器,例如,它會向您提供數據中心和用於支持企業級的應用程序。

會自動根據配置的環境變量獲取路徑,設置orcl用戶的密碼,確認密碼

默認選擇

這幾個系統報錯是由於現有的包的版本比檢測要高,忽略便可

如有須要能夠保存一下文件,Finish

當安裝進度達到68%時,會出現如上圖所示報錯

查找安裝目錄下該文件:/usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

[admin @localhost ~]$ su root
Password:
[root@localhost admin]# vim /usr/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk

修改以下文件內容(11行左右)

ctxhx: $(CTXHXOBJ) 
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) 
修改成: 
ctxhx: $(CTXHXOBJ) 
-static $(LINK_CTXHX) $(CTXHXOBJ)$(INSO_LINK) /usr/lib64/libc.a

保存(:wq)後,點擊Retry繼續安裝

有以下圖所示報錯

打開此安裝目錄下文件:/usr/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk

修改以下內容(190行左右)

$(MK_EMAGENT_NMECTL)
修改成   
$(MK_EMAGENT_NMECTL) -lnnz11

保存(:wq)後,點擊Retry繼續安裝

點擊OK

打開控制端,以root權限執行所示兩個腳本

[root@localhost /]# sh /usr/oraInventory/orainstRoot.sh
[root@localhost /]# sh /usr/oracle/product/11.2.0/db_1/root.sh
此處輸入紅色部分的路徑回車:
Enter the full pathname of the local bin directory: [/usr/local/bin]: 
 Copying dbhome to /usr/local/bin ...
 Copying oraenv to /usr/local/bin ...
 Copying coraenv to /usr/local/bin ...

點擊OK,安裝完成,關閉界面

四、建立Oracle監聽

[oracle@localhost ~]$ netca

選擇監聽器協議,默認TCP,點擊Next

配置監聽端口,默認1521,點擊Next

配置完成,提示是否增長另外的監聽器,選擇No,點擊Next

點擊Next

點擊Finish結束配置程序,命令行界面會提示配置的信息並將新的監聽器啓動

Listener configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /usr/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0

監聽器的啓動和中止

lsnrctl start LISTENER            #啓動名爲LISTENER的監聽器
lsnrctl stop LISTENER             #關閉名爲LISTENER的監聽器

查看監聽器運行狀態

lsnrctl status LISTENER           #查看名爲LISTENER的監聽器的運行狀態

五、安裝oracle數據庫實例

[oracle@localhost ~]$ dbca

默認選擇,點擊Next

默認爲普通的事務數據庫,點擊Next

填寫數據的全局名稱和數據庫id

默認,點擊Next

設置密碼,全部用戶使用同一密碼,點擊Next

選擇用本地的數據文件模版地址,點擊Next

設置數據恢復路徑,默認,點擊next

設置建立實例方案表空間,能夠不建立,點擊Next

設置數據庫內存,做爲服務器數據庫設置爲70%,切換到鏈接數設置的時候會報如下錯誤

 

若是使用自動內存管理,默認設置的/dev/shm 大小不夠用,此時須要去修改/dev/shm的空間大小。

1)、在/etc/fstab中明確指定/dev/shm的掛載sizes大小參數

查看/dev/shm的大小

[oracle@localhost ~]$ df –h /dev/shm
Filesystem               Size  Used Avail Use% Mounted on
tmpfs 1.9G 29M 1.8G 2% /dev/shm

能夠看到/dev/shm的大小爲1.9G,設置爲70%的時候所需空間的大小爲2582M,已經超出其最大空間。/dev/shm默認爲物理內存大小的一半,根據須要我將其設爲3G,以root權限執行如下命令:

[root@localhost oracle]# vi /etc/fstab
tmpfs                   /dev/shm                tmpfs   defaults        0 0
修改成
tmpfs                   /dev/shm                tmpfs   defaults,size=3G        0 0

若是沒有就直接添加上去,保存退出(:wq)

2)、將/dev/shm從新掛載

[root@localhost oracle]# mount -o remount /dev/shm
[root@localhost oracle]# df –h /dev/shm
Filesystem               Size  Used Avail Use% Mounted on
tmpfs                    3.0G   25M  3.0G   1% /dev/shm

此種方式是永久更改/dev/shm 的空間大小,若是隻要臨時更改(重啓無效),執行以下命令:

[oracle@localhost ~]$ sudo mount -o size=3G -o remount /dev/shm

設置鏈接數,默認爲150,根據須要設置

設置字符集,選擇與安裝Oracle時的設置相同的字符集ZHS16GBK若是Oracle用的字符集爲AL32UTF8,就選擇AL32UTF8。固然,若是這裏字符集選錯了,安裝好了也是能夠修改的,只是稍有麻煩。

設置鏈接類型,共享內存或者獨享內存,也能夠默認,點擊Next

點擊Next

選擇Generate Database Creation Scripts(生成數據庫建立腳本),能夠爲手工建庫腳本提供參考

點擊Finish,完成建立

建立數據庫,建立完成後點擊Exist退出

六、建立表空間和用戶受權

1)、鏈接數據庫

[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Jan 19 10:23:13 2018
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn / as sysdba
Connected.
SQL>

2)、建立數據表空間

SQL> CREATE TABLESPACE ALS LOGGING DATAFILE '/usr/oracle/oradata/orcl/ALS.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

說明:

CREATE TABLESPACE 表空間名 LOGGING DATAFILE '存放路徑' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

3)、建立用戶並指定表空間

SQL> CREATE USER sa IDENTIFIED BY kcsm111 DEFAULT TABLESPACE ALS;

說明:

CREATE USER 用戶名 IDENTIFIED BY 密碼 DEFAULT TABLESPACE 表空間名;

4)、給用戶授予權限

SQL>grant connect,resource,dba to sa;

說明:

grant connect,resource,dba to 用戶名;

5)、刪除表空間

SQL> drop tablespace ALS including contents and datafiles cascade constraints;

說明:

drop tablespace 表空間名 including contents and datafiles cascade constraints;
including contents 刪除表空間中的內容,若是刪除表空間以前表空間中有內容,而未加此參數,表空間沒法刪除。 including datafiles 刪除表空間中的數據文件 cascade constraints  同時刪除表空間中表的外鍵參照

至此全部安裝完成

4、  設置數據庫自啓動

方法一:

一、安裝好Oracle數據庫後: 執行 dbstart和dbshut

[oracle@localhost ~]$ dbstart
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /usr/oracle/product/11.2.0/db_1/bin/dbstart ORACLE_HOME

錯誤緣由:dbstartdbshut腳本文件中ORACLE_HOME_LISTNER的設置有問題

[oracle@localhost ~]$ vim $ORACLE_HOME/bin/dbstart
[oracle@localhost ~]$ vim $ORACLE_HOME/bin/dbshut

分別打開兩個文件修改(50行左右)

ORACLE_HOME_LISTNER=$1
修改成:
ORACLE_HOME_LISTNER=$ORACLE_HOME

修改後保存退出,問題解決

二、Linux啓動時自動啓動Oracle監聽和實例

第一步:修改/etc/oratab文件

[oracle@localhost ~]$ vim /etc/oratab
找到: orcl:/usr/oracle/product/11.2.0/db_1:N 修改成: orcl:/usr/oracle/product/11.2.0/db_1:Y (這個路徑跟安裝路徑有關,$ORACLE_SID:$ORACLE_HOME:<N|Y>

第二步:把lsnrctl start和dbstart添加到rc.local文件中:

root權限執行

[root@localhost oracle]# vim /etc/rc.d/rc.local

添加:

su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su - oracle -lc "/usr/oracle/product/11.2.0/db_1/bin/dbstart"

說明:

第一行爲開機啓動數據庫監聽服務,第二行爲開機啓動數據庫。(路徑跟安裝路徑相關)。

注意:CentOs7中/etc/rc.d/rc.local不會開機執行,需添加執行權限。

查看/etc/rc.d/rc.local的權限

[root@localhost oracle]# ll /etc/rc.d/rc.local

添加執行權限

[root@localhost oracle]# chmod +x /etc/rc.d/rc.local

三、重啓電腦後查看是否自啓動成功

查看監聽是否自啓動成功

[oracle@localhost ~]$ lsnrctl status LISTENER

查看Oracle服務狀態

[oracle@localhost ~]$ ps –ef | grep oracle

四、oracle的啓動或關閉管理

[root@localhost oracle]# dbstart                   #啓動
[root@localhost oracle]# dbshut                    #中止

方法二:

一、修改/etc/oratab文件

root權限執行

[root@localhost oracle]# vim /etc/oratab
找到: orcl:/usr/oracle/product/11.2.0/db_1:N 修改成: orcl:/usr/oracle/product/11.2.0/db_1:Y (這個路徑跟安裝路徑有關,$ORACLE_SID:$ORACLE_HOME:<N|Y>

二、新建Oracle服務自啓動腳本

[root@localhost oracle]# vim /etc/init.d/oracle

將如下腳本複製到文件中,保存退出(:wq)

#!/bin/sh
# chkconfig: 2345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/usr/oracle                                          #oracle安裝位置
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1                     #Oracle安裝路徑
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0

三、檢查腳本可否執行

[root@localhost oracle]# /etc/init.d/oracle start            #啓動oracle腳本
[root@localhost oracle]# /etc/init.d/oracle stop             #關閉oracle腳本
[root@localhost oracle]# /etc/init.d/oracle restart          #重啓oracle腳本

四、添加執行權限並創建連接

更改oracle腳本的執行權限

[root@localhost oracle]# chmod a+x /etc/init.d/oracle

創建連接

將啓動腳本添加到系統服務並設置自啓動

[root@localhost oracle]# chkconfig --add oracle

當這個命令被執行的時候,會去腳本文件oracle中尋找# chkconfig: 2345 61 61這行註釋,並解析這行註釋,根據解析結果分別在

/etc/rc.d/rc2.d

/etc/rc.d/rc3.d

/etc/rc.d/rc4.d

/etc/rc.d/rc5.d

中建立符號鏈接文件S61oracle,此文件在系統啓動時根據運行級別執行,此文件是指向/etc/init.d/oracle文件。啓動時系統向此文件發送一個start參數,執行oracle文件中的start分支。另外還會在

/etc/rc.d/rc0.d

/etc/rc.d/rc1.d

/etc/rc.d/rc6.d

中建立符號鏈接文件K61oracle,此文件在系統關閉時執行,此文件也指向/etc/init.d/oracle文件,關閉時系統向此文件發送一個stop參數,執行oracle文件中的stop分支。

 

# chkconfig: 2345 61 61

# 代表腳本應該在運行級 2, 3, 4, 5 啓動,啓動優先權爲61,中止優先權爲 61。

 

修改服務運行等級(雖然腳本里寫過,但仍是從新設置一下),能夠自行設置oracle腳本的運行級別

[root@localhost oracle]# chkconfig --level 2345 oracle on

說明:設置oracle腳本在運行級別爲二、三、四、5時,都是on(開啓)狀態,off爲關閉

查看oracle自動啓動設置

[root@localhost oracle]# chkconfig –list oracle
Oracle   0:off 1:off 2:on 3:on 4:on 5:on 6:off
等級0表示:表示關機
等級1表示:單用戶模式
等級2表示:無網絡鏈接的多用戶命令行模式
等級3表示:有網絡鏈接的多用戶命令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多用戶模式
等級6表示:從新啓動

手動建立符號連接文件(執行效果和執行chkconfig --add oracle是同樣,做爲知識筆記記錄,能夠不執行)

[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle
[root@localhost oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle

五、oracle的啓動或關閉管理

啓動
[root@localhost oracle]# service oracle start
中止
[root@localhost oracle]# service oracle stop
重啓
[root@localhost oracle]# service oracle restart

5、  數據庫字符集修改

注意事項:修改字符集前先將數據庫進行備份

此處演示將ZHS16GBK字符集修改成AL32UTF8

一、修改server端字符集

登陸sqlpus查看字符集設置

[oracle@localhost ~]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Wed Jan 24 13:55:51 2018
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> conn /as sysdba
Connected to an idle instance.                  #數據庫未啓動,先啓動數據庫。最好將數據庫設未開機啓動
SQL> startup
SQL> conn /as sysdba
Connected.                                      #鏈接成功
SQL> select userenv('language') from dual;      #server端字符集查詢

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

依次執行以下命令

SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOUNT; SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION; SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0; SQL>ALTER DATABASE OPEN; SQL>ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8; SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP;
SQL
> select userenv('language') from dual; USERENV('LANGUAGE') ---------------------------------------------------- AMERICAN_AMERICA.AL32UTF8 SQL>

二、修改client端字符集

查看系統環境變量設置的字符集(client端字符集)

[oracle@localhost ~]$ cat /home/oracle/.bash_profile ... PATH=$PATH:$HOME/.local/bin:$HOME/bin export PATH export ORACLE_BASE=/usr/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export ORACLE_TERM=xterm export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib export LANG=C export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #客戶端字符集
進入編輯界面,將ZHS16GBK改成AL32UTF8,保存退出 [oracle@localhost ~]$ vim /home/oracle/.bash_profile 使配置生效 [oracle@localhost ~]$ source /home/oracle/.bash_profile

修改完成

相關文章
相關標籤/搜索