linux下oracle安裝運行常見問題

如何修改linux中oracle數據庫的最大連接數


用putty連接linux服務器,切換到
   su - oracle
   sqlplus /nolog 連接到數據庫;
   conn / as sysdba
   show parameter session
   alter system set sessions = values(比如400) scope = spfile;//注意此處的分號;
   show parameter process
   alter system set processes = values(比如450)scope = spfile;//注意此處的分號;
   show parameter license   //查看最大的process;
   重新啓動服務器;
ORACLE的連接數(sessions)與其參數文件中的進程數(process)有關,它們的關係如下:
               sessions=(1.1*process+5)
但是我們增加process數時,往往數據庫不能啓動了。這因爲我們還漏調了一個unix系統參數:它是/etc/system/ 中semmns,這是unix系統的信號量參數。每個process會佔用一個信號量。semmns調整後,
需要重新啓動unix操作系統,參數才能生效。不過它的大小會受制於硬件的內存或ORACLE SGA。範圍可從200——2000不等。
semmns的計算公式爲:SEMMNS>processes+instance_processes+system

processes=數據庫參數processes的值 instance_processes=5(smon,pmon,dbwr,lgwr,arch)
system=系統所佔用信號量。系統所佔用信號量可用下列命令查出:#ipcs -sb


ora-00845 MEMORY_TARGET not supported on this system



解決辦法:用root用戶運行下列命令
# mount -o remount,size=4G /dev/shm
 詳細:http://space.itpub.net/20570073/viewspace-566773

sqlplus下用戶操作的命令

#su - oracle
$ sqlplus /nolog
SQL> connect / as sysdba
--//創建臨時表空間
create temporary tablespace test_temp
tempfile '/data/oracle/oradata/test/test_temp01.dbf' --//Linux下的文件系統
size 64m
autoextend on
next 64m maxsize 2048m
extent management local;

--//創建數據表空間
create tablespace test_data
logging
datafile '/data/oracle/oradata/test/test_data01.dbf' --//Linux下的文件系統
size 64m
autoextend on
next 65m maxsize 2048m
extent management local;

--//創建用戶並指定表空間 用戶名和密碼均爲"test"
create user test identified by test
default tablespace test_data
temporary tablespace test_temp;


--//給用戶授予權限

grant connect,resource to test;

--//刪除表空間
drop tablespace test_temp including CONTENTS and datafiles;

--//修改用戶密碼
alter user test identified by new_password;

--//刪除用戶
drop user 用戶名 cascade; --//執行該語句請小心,會級聯刪除該用戶下所有對象。


--//給用戶分配權限

SQL> grand connect to test_user;
SQL> grand resource to test_user;
SQL> grand create view to test_user;

 

使數據庫實例和linux系統一起啓動

在/etc/rc.d/rc.local中加入如下語句即可實現同系統啓動實例:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"

用dbstart和dbshut啓動和關閉數據庫實例時要修改的兩個文件

 
先啓動監聽 lsnrctl start
啓動實例  dbstart
 
使用dbstart命令啓動數據庫比較方便,但是在linux上安裝好oracle之後,第一次使用dbstart命令可能會報如下錯誤:
 
ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener
Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

 

原因:
dbstart和dbshut腳本文件中ORACLE_HOME_LISTNER的設置有問題,分別打開兩個文件找到:用vi編輯dbstart,ORACLE_HOME_LISTNER=$1,修改爲
ORACLE_HOME_LISTNER=$ORACLE_HOME


然後保存退出,此時再運行dbstart,已經不報錯了,但是沒有任何反應,ps一下進程,沒有oracle的進程,說明oracle實例沒有正常啓動。
 
此時的原因是在/etc/oratab的設置問題,我們vi一下,發現
zgz:/home/oracle/product/10g:N
最後設置的是"N"(我的環境中只有一個實例,因此只有一行配置語句),我們需要把“N”修改爲“Y”。
 
以上的工作做好之後,dbstart就可以正常使用了:

 

 

oracle lrm-00109: could not open parameter file '/opt/oracle

今天開發服務器突然連接不上,sqlplus /nolog、conn /as sysdba、startup命令後顯示

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle10g/product/10.2/db_1/dbs/initORA10G.ora'

查找文件,果然不存在。估計是非法關機造成的。

 

這是因爲在oracle9i和oracle10g中,oracle默認將使用spfile啓動數據庫,如果spfile不存在,則就會出現上述錯誤。

 

解決方法1(已經驗證):
將$ORACLE_BASE/admin /數據庫名稱/pfile目錄下的init.ora.012009233838形式的文件copy到$ORACLE_HOME/dbs目錄下 initoracle.ora即可。(注:initoracle.ora中的oracle爲你的實例名 ORACLE_SID)

 

解決方法2:

用oraenv命令來改變當前環境的SID,然後用pfile重新產生spfile,就可以啟動數據庫了.
改變SID:
[oracle@willie root]$ source oraenv
ORACLE_SID = [oracle] ? test1
bash: /root/.bashrc: Permission denied
重新產生spfile:
SQL> create spfile from pfile;
File created.

SQL> startup
ORACLE instance started.

 

 

 

附:Linux下oracle操作命令

 

重啓oracle

lsnrctl stop
sqlplus /nolog
conn /as sysdba
shutdown (startup)
exit
lsnrctl start

 

啓動oracle
sqlplus /nolog
conn /as sysdba
startup
exit

lsnrctl start


關閉oracle
lsnrctl stop
sqlplus /nolog
conn /as sysdba
shutdown
exit

 

查看Oracle是否啓動

netstat -an |grep 1521

 

 

重要提示:手工啓動關閉數據庫時,linux會讀取系統的ORACLE_SID系統變量。 如果存在多個數據庫,在操作之前應該修改一下ORACLE_SID變量使之指向要操作的數據庫 。如 export ORACLE_SID=OANET,則啓動、關閉的都是OANET實例。

附加:啓動時的SID要與dbs下的“initSID.ora”中的SID一致。這樣才能相對應。如果沒有需從$ORACLE_BASE/admin /數據庫名稱/pfile目錄下copy init.ora.012009233838形式的文件,後把ora改成對應的SID.


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章