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