Linux下啟動Oracle服務和監聽程序(基礎知識)
2024-08-29 13:53:51
供稿:網友
Oracle數據庫是重量級的,其管理非常復雜,將其在linux平臺上的啟動和關閉步驟整理一下。
安裝完畢oracle以后,需要創建oracle系統用戶,
并在/home/oracle下面的.bash_PRofile添加幾個環境變量:
ORACLE_SID,ORACLE_BASE,ORACLE_HOME。
比如:
export ORACLE_SID=test export ORACLE_BASE=oracle_install_dir export ORACLE_HOME=xxx
啟動步驟:注意$代表shell命令提示符,這里的oracle是9.0以上版本。
$ su - oracle
$ sqlplus / nolog
sql> conn / as sysdba
sql> startup (一般不需要加參數,只要設置好環境變量)
sql> quit (退出sql模式)
$ lsnrctl start (啟動監聽器)關閉oracle
$ lsnrctl stop(關閉監聽器,在這之前,應該先關閉應用程序)
$ sqlplus /nolog
sql>shutdown 其參數 :shutdown有四個參數,四個參數的含義如下:
Normal 需要等待所有的用戶斷開連接
Immediate 等待用戶完成當前的語句
Transactional 等待用戶完成當前的事務
Abort 不做任何等待,直接關閉數據庫
normal需要在所有連接用戶斷開后才執行關閉數據庫任務,所以有的時候看起來好象命令沒有運行一樣!在執行這個命令后不允許新的連接
immediate在用戶執行完正在執行的語句后就斷開用戶連接,并不允許新用戶連接。
transactional 在擁護執行完當前事物后斷開連接,并不允許新的用戶連接數據庫。
abort 執行強行斷開連接并直接關閉數據庫。
前三種方式不回丟失用戶數據。第四種在不的已的情況下,不建議采用!
SGA設置
oracle中有時候會遇到如下的錯誤,無法連接數據庫
如:ORA-04031:unable to allocate 2216 bytes of shared memory ("shared pool"... ...
這是表明oracle中SGA(系統全局區[包括緩沖高速緩存、共享池、java 池、大型池和重做日志緩沖])中某個池內存不足導致,
所以就得合理的配置SGA和SGA各個池大小。配置可以通過EM來進行。。。。
oracle10g提供了EM管理工具,可以在沒有安裝oracle客戶端的情況下通過web訪問設置數據庫各種參數。。。
啟動EM :emctl start dbconsole;
停止EM :emctl stop dbconsole;
查看狀態: emctl status dbconsole;
然后可以觀察到web路徑,通過web訪問并進行相應的操作。
也可以通過控制臺來登陸oracle進行SGA的操作設置。
查看系統中SGA中各個池大小
select pool,sum(bytes)/1024/1024 from v$sgastat group by pool
取得當前SGA大小
select sum(value)/1024/1024 from v$sga;
更新SGA大小
alter system set sga_target=200m;
設置SGA中共享池大小
alter system set shared_pool_size=32m;
設置SGA中大型池大小
alter system set large_pool_size=33m;
設置SGA中JAVA池大小
alter system set java_pool_size=11m;
設置SGA中高速緩沖池大小
alter system set db_cache_size=4m;
SGA雖然可以dba來設置固定的內存大小,SGA在程序和數據庫運行其中并不是固定的,
所以需要參考實際內存大小和系統,數據庫來具體設置。