Linux下部署Oracle 11g(詳細文檔)

1、環境準備html

有須要安裝時的軟件或安裝中遇到的一些問題,請私信解決!linux

1.linux.x64_11gR2_database_1of2.zipc++

linux.x64_11gR2_database_2of2.zip (下載地址sql

2.還可能會用到Xmanager中的Xstart數據庫

2、 安裝前準備vim

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

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用戶,並加入到oinstall和dba用戶組\
   
[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)

*:-g:指定用戶所屬的羣組 -G:指定用戶所屬的附加羣組 -m:自動創建用戶的登入目錄服務器

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

[root\@localhost admin]\# mkdir -p /data/oracle         \#安裝目錄

[root\@localhost admin]\# mkdir -p /data/oraInventory      \#配置文件目錄

[root\@localhost admin]\# mkdir -p /data/orapackage     \#軟件包解壓目錄

[root\@localhost admin]\# cd /usr

[root\@localhost usr]\# ls 
orapackage oracle oraInventory ...
[root\@localhost usr]\# chown -R oracle:oinstall /data/oracle 
  \#設置目錄全部者爲oinstall用戶組的oracle用戶
[root\@localhost usr]\# chown -R oracle:oinstall /data/oraInventory

[root\@localhost usr]\# chown -R oracle:oinstall /data/orapackage

三、修改OS系統標識併發

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

[root\@localhost admin]\#vi /etc/redhat-release   \#修改文件名稱
redhat-7

4.安裝oracle數據庫所須要的軟件包

可參考:https://docs.oracle.com/cd/E11882_01/install.112/e47689/pre_install.htm#BABCFJFG 安裝所需安裝包

[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個包都有安裝

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

五、關閉防火牆

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

# 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

# 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]\# sysctl –p

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

[root\@localhost admin]\# vi /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 (看仔細,很重要)
...........

export PATH

export ORACLE_BASE=/data/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,根據須要自行設定。

獲取安裝包文件的方式,可經過ftp服務器,也可經過wget下載到指定目錄,解壓方式以下

在oracle用戶中上傳1gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip安裝包上傳到/usr/local/src

[oracle\@localhost /]\$ cd /usr/local/src  \#進入/usr/local/src目錄

[oracle\@localhost src]\$ ls

linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip

[oracle\@localhost src]\$ unzip linux.x64_11gR2_database_1of2.zip –d
/data/database/                      \#解壓到data目錄下

(省略...)

[oracle\@localhost src]\$ unzip linux.x64_11gR2_database_2of2.zip -d
/data/database/              \#解壓到data目錄下

(省略...)

使配置生效

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

3、oracle安裝

[oracle\@localhost \~]\$ cd /data/database/

[oracle\@localhost database]\$ ls

doc install response rpm runInstaller sshsetup stage welcome.html
[oracle\@localhost database]\$ ./runInstaller

安裝問題:

  1. 安裝Oracle數據庫軟件,提示「檢查監視器」未經過

檢查臨時空間: 必須大於 120 MB。 實際爲 36939 MB 經過

檢查交換空間: 必須大於 150 MB。 實際爲 8047 MB 經過

檢查監視器: 監視器配置至少必須顯示 256 種顏色

\>\>\> 沒法使用命令 /usr/bin/xdpyinfo 自動檢查顯示器顏色。請檢查是否設置了

DISPLAY 變量。 未經過 <<<<

解決方法:根據報錯信息,首先想到的是配置DISPLAY變量(通常配置一下就能夠解決)

[root\@db130 \~]\# yum install -y xdpyinfo

[root\@db130 \~]\# xhost +

access control disabled, clients can connect from any host

[root\@db130 \~]\# su - oracle

[oracle\@db130 \~]\$ export DISPLAY=:0.0

[oracle\@db130 \~]\$ cd /data/database/database/

[oracle\@db130 database]\$ ./runInstaller

正在啓動 Oracle Universal Installer...

  1. 過程彈框界面是一個白色豎線通常,整個界面沒法點擊next按鈕

解決辦法這裏推薦使用Xmanager工具中的Xstart

保持CentOS聯網狀態,以root用戶登陸,執行命令:yum install -y xterm

安裝完畢後,啓動Xstart,輸入主機IP並用oracle用戶登陸,

輸入命令:/usr/bin/xterm -ls -display $DISPLAY

進入安裝界面

(1)以下圖所示,去掉「I wish receive security via My Oracle Support」的勾選,單擊「next」,選「yes」繼續。

(2)選中「Create and configure a database」,點擊「next」

第一項爲企業級應用

第二項只安裝數據庫

第三項爲升級現有數據庫

(3)選中「DesktopClass」,點擊「next」

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

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

4)這裏若是安裝前準備按照文檔操做的話,這裏只需填寫passwrod便可(無視警告),點擊「next」

默認選擇

(5)以後的配置通常都選擇默認,當流轉到這個界面時,選中Character sets選項,

修改字符集爲UTF-8後繼續「next」

(6)以後配置繼續按照默認便可,當流轉到這個界面時,能夠爲全部用戶設置密碼,我設置的oracle,點擊「next

(6)流轉到這個頁面,若是以前安裝依賴包會有下面圖中包提示失敗,一個一個檢查package,在準備階段中漏掉的,此處再安裝,有些系統報錯是由於現有的包的版本比檢測要高,最後忽略便可。(點擊Check_Again 多檢查幾回,根據錯提示進行操做)

(7)當安裝進度達到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

打開控制端,以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 ...

四、建立Oracle監聽

[oracle\@localhost \~]\$ netca

選擇監聽器協議,默認TCP,點擊Next 配置監聽端口,默認1521,點擊Next 配置完成,提示是否增長另外的監聽器,選擇No,點擊Next 點擊Finish結束配置程序,命令行界面會提示配置的信息並將新的監聽器啓動

監聽器的啓動和中止

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

查看監聽器運行狀態

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

五、安裝oracle數據庫實例

[oracle\@localhost \~]\$ dbca

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

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

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

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

點擊Finish,完成建立

啓動監聽:lsnrctl start #必須將監聽啓動,若是以前防火牆沒關,還須要關閉防火牆。

輸入:sqlplus /nolog

輸入:conn sys/sys[@orcl](https://my.oschina.net/u/3674287) as sysdba

其中,orcl是實例名,sys是它的密碼。若是出現下圖所示的「Connected.」則鏈接成功,說明數據庫創建成功(這裏是在CentOS終端上使用的)。

輸入:sqlplus scott/tiger@192.168.78.130:1521/orcl ,回車(查詢ip,使用ifconfig 命令)

查詢當前用戶:show user;

查詢用戶下有幾張表:select * from tab;

查詢表字段:desc emp ; #emp是表名

查詢表數據:select * from emp;

退出SQL命令模式exit;

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

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

錯誤緣由:dbstart和dbshut腳本文件中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腳本的運行級別

[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  \#客戶端字符集

[外鏈圖片轉存中...(img-iD0JQrjM-1576131393379)]

進入編輯界面,將ZHS16GBK改成AL32UTF8,保存退出

[oracle\@localhost \~]\$ vim /home/oracle/.bash_profile

那麼使配置生效

[oracle\@localhost \~]\$ source /home/oracle/.bash_profile

若是建立用戶名密碼登錄不上,仔細查看環境變量(vim /home/oracle/.bash_profile)是否正確,可能緣由找不到SID,執行:

[oracle\@localhost \~]\$ export ORACLE_SID=orcl

下面基本就完成部署了,若是有補充或修改還請留言哦!!///////

相關文章
相關標籤/搜索