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自啟動服務指令碼
[[email protected] 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、檢查指令碼能否執行
[[email protected] oracle]# /etc/init.d/oracle start #啟動oracle指令碼 [[email protected] oracle]# /etc/init.d/oracle stop #關閉oracle指令碼 [[email protected] oracle]# /etc/init.d/oracle restart #重啟oracle指令碼
4、新增執行許可權並建立連結
更改oracle指令碼的執行許可權
[[email protected] oracle]# chmod a+x /etc/init.d/oracle
建立連結
將啟動指令碼新增到系統服務並設定自啟動
[[email protected] 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指令碼的執行級別
[[email protected] oracle]# chkconfig --level 2345 oracle on
說明:設定oracle指令碼在執行級別為2、3、4、5時,都是on(開啟)狀態,off為關閉
檢視oracle自動啟動設定
[[email protected] 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是一樣,作為知識筆記記錄,可以不執行)
[[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc0.d/K61oracle [[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc1.d/K61oracle [[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc2.d/S61oracle [[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc3.d/S61oracle [[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc4.d/S61oracle [[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc5.d/S61oracle [[email protected] oracle]# ln –s /etc/rc.d/init.d/oracle /etc/rc6.d/K61oracle
5、oracle的啟動或關閉管理
啟動
[[email protected] oracle]# service oracle start
停止
[[email protected] oracle]# service oracle stop
重啟
[[email protected] oracle]# service oracle restart
參考部落格
CentOS 7安裝Oracle 11gR2以及設定自啟動
https://www.cnblogs.com/VoiceOfDreams/p/8308601.html