CentOS 7安裝Oracle 11gR2以及設置自啟動(2)


6、創建表空間和用戶授權

(1)、連接數據庫

$ sqlplus / as sysdba

(2)、創建數據庫表空間

語法:
create tablespace 表空間名 
datafile ‘物理地址(相當於文件路徑)’
size初始大小(單位M)
autoextend on next每次自增的大小(單位M)
maxsize unlimited (此關鍵字用於不限制表空間大小)

SQL> create tablespace test1_teblespace
datafile '/usr/oracle/oradata/orcl/test1_teblespace.dbf'
size 500M
autoextend on next 100M
maxsize unlimited;

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

語法:
create user 用戶名 identified by 口令[即密碼] default tablespace 表空間名;

 

 SQL> create user test1 identified by test1 default tablespace test1_teblespace;

 

 (4)、給用戶授予權限

語法:
grant 權限1, 權限2, 權限3…… to 用戶名

 

 SQL> grant connect,resource,dba to test1;

(5)、刪除表空間

語法:
drop tablespace 表空間名 including contents and datafiles cascade constraints;

 

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

including contents   刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,表空間無法刪除。
including datafiles  刪除表空間中的數據文件
cascade constraints  同時刪除表空間中表的外鍵參照

 

(6)、刪除用戶

語法:
drop user 用戶名 cascade; 
最后這個級聯特別有用(刪除用戶以及所有關聯的數據庫對象)

SQL> drop user test1 cascade;  

四、  設置數據庫自啟動

 方法一:

 1、安裝好Oracle數據庫后: 執行 dbstart和dbshut

$ dbshut

$ dbstart

錯誤原因:dbstart和dbshut腳本文件中ORACLE_HOME_LISTNER的設置有問題

分別打開兩個文件修改如下內容

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

 

$ vim $ORACLE_HOME/bin/dbstart

$ vi $ORACLE_HOME/bin/dbshut

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

2、Linux啟動時自動啟動Oracle監聽和實例

第一步:修改/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>)

 

$ vi /etc/oratab 

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

 root權限執行

# vi /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的權限

 # ll /etc/rc.d/rc.local 

添加執行權限

# chmod +x /etc/rc.d/rc.local 

3、重啟電腦后查看是否自啟動成功

# reboot

查看監聽是否自啟動成功

$ lsnrctl status LISTENER

查看Oracle服務狀態

$ ps -aux | grep oracle

4、oracle的啟動或關閉管理

啟動

$ dbstart

關閉

$ dbshut 

 方法二:

1、修改/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>)

 2、新建oracle自啟動服務腳本

[root@localhost oracle]# vi /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

3、檢查腳本能否執行

[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腳本

4、添加執行權限並建立鏈接

更改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腳本在運行級別為2、3、4、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

5、oracle的啟動或關閉管理

啟動
[root@localhost oracle]# service oracle start
停止
[root@localhost oracle]# service oracle stop
重啟
[root@localhost oracle]# service oracle restart

 五、數據庫字符集修改

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

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

1、修改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> 

 

2、修改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

修改完成

 

 

 

參考博客

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

https://www.cnblogs.com/VoiceOfDreams/p/8308601.html 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM