2011年5月31日

          SQL>conn / as sysdba

           SQL>  shutdown   immediate

          SQL> startup
          ORACLE 例程已經啟動。

          Total System Global Area  135338868 bytes
          Fixed Size                   453492 bytes
          Variable Size             109051904 bytes
          Database Buffers           25165824 bytes
          Redo Buffers                 667648 bytes
           ORA-01991: ???????'E:\oracle\ora92\DATABASE\PWDsdnt.ORA'

          解決方法,由于未運行在歸檔模式下,使用orapwd重建oracle的密碼文件:

          host del E:\oracle\ora92\DATABASE\PWDsdnt.ORA

          host orapwd file=E:\oracle\ora92\DATABASE\PWDsdnt.ORA password=system entries=10

          alter database open
          SQL>conn / as sysdba

           SQL>  shutdown   immediate
          重啟tomcat問題解決,又可以正常的訪問數據庫了

          posted @ 2011-05-31 13:11 賀榮心 閱讀(204) | 評論 (0)編輯 收藏

          為什么tomcat和oracle都做成服務了,但是tomcat的應用無效呢?


          解決辦法:
          打開bin/service.bat文件,

          echo Using JVM:              %PR_JVM%
          "%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop

          一句后面加上 --DependsOn   oracle偵聽服務;oracledatabse
          注意用;號隔開依賴的服務
          再執行bin/service.bat install jnszcg ,即可安裝Tomcat服務,并且依賴oracle

          其實很簡單就是制定服務的依賴關系;

          最后采取的方案成功了:

          1、把tomcat做到服務里面,手工啟動;
          2、新建一個批處理net start tomcat
          3、新建一個任務,在計算機啟動的時候執行批處理ok
          是不是問題已經解決了

          posted @ 2011-05-31 13:10 賀榮心 閱讀(470) | 評論 (0)編輯 收藏

          第一種方式用以下方法修改密碼: 

           

                  sqlplus /nolog;
            connect / as sysdba
            alter user sys identified by newpassword ;
            alter user system identified by newpassword  ;

           

          第二種方法用以下方法修改密碼:

           

          orapwd file=pwdxxx.ora password=newpassword entries=10

           

            設定完后,重新啟動服務,再次登陸就可以了

          posted @ 2011-05-31 13:09 賀榮心 閱讀(186) | 評論 (0)編輯 收藏

          【背景介紹】
          ===================================================================
          最近在使用Oracle9i數據庫進行數據插入、查詢、導入/出,有時會出現亂碼的情況,具體的情形有以下兩種:

          1.首次插入/顯示亂碼

          2.首次插入/顯示正常、但把數據用工具導出為本地文件(例如TXT)文件,再在另一個客戶端中打開該文件并執行時再次插入的數據顯示為亂碼。

          遂在本地創建兩個數據庫,一個為AL32UTF8字符集,一個為ZHS16GBK字符集,配合客戶端NLS_LANG的不同設置,測試亂碼的情況及進行原因分析。    
          ===================================================================

          【測試目的】
          ===================================================================
          測試不同的數據庫字符集和客戶端NLS_LANG搭配下,中文字符/中文日期的插入、顯示
          ===================================================================

          【測試環境】
          ===================================================================
          Windows 2000 Professional (英文版) + Oracle 9.2.0.1.0 + SQL*Plus: Release 9.2.0.1.0

          注:此次測試的客戶端應用工具為SQL*PLUS,如果是使用TOAD、PL/SQL Develop之類工具,得到的結果會和以下有些不同。推薦使用SQL*PLUS作為一切客戶端應用的測試工具
          ===================================================================

          【測試數據庫】
          ===================================================================
          本機數據庫1: SID: PAULLIN 登陸參數: qprod/qprod@paullin
          本機數據庫2:SID: PAUL    登陸參數:qlinpen/pengpenglin@paul
          ===================================================================

          【測試字符集】
          ===================================================================
          客戶端應用/操作系統字符集:GB2312

          客戶端NLS_LANG設置:
            AMERICAN_AMERICA.US7ASCII
            AMERICAN_AMERICA.WE8MSWIN1252
            AMERICAN_AMERICA.ZHS16GBK
            AMERICAN_AMERICA.AL32UTF8
            SIMPLIFIED CHINESE_CHINA.ZHS16GBK

          數據庫端字符集:
            PAULLIN: AL32UF8
            PAUL: ZHS16GBK
          ===================================================================

          【測試腳本】
          ===================================================================
          --登陸數據庫    
               sqlplus
          qprod/qprod@paullin     
               sqlplus
          qlinpen/pengpenglin@paul

          --執行測試腳本
               drop table test;
               drop table testdate;    

               create table test (id number(1), name varchar2(20));
               create table testdate (birthday date);  

               insert into test values(1,'Tom');
               insert into test values(2,'張三');
               insert into test values(3,'易建聯');
               commit;
              
               insert into testdate values(TO_Date( '01/08/2008 04:14:00 下午',
                     'MM/DD/YYYY HH:MI:SS AM'));
               commit;
              
          --查看測試結果    
               select * from test;
               select * from testdate;    
          ===================================================================

          【測試一:數據庫端字符集為AL32UTF8的情況】
          ===================================================================
          1.登陸數據庫:
            C:\Documents and Settings\qlinpen.E0015609D6309>sqlplus qprod/qprod@paullin

          2.查看數據庫字符集:
            SQL> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';    

          3.測試內容及測試結果:
            1).客戶端NLS_LANG設置為AMERICAN_AMERICA.US7ASCII:
                中文字符測試:插入/顯示中文字符均為亂碼
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required

            2).客戶端NLS_LANG設置為AMERICAN_AMERICA.WE8MSWIN1252:
                中文字符測試:插入/顯示中文字符均為正常
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required
              
            3).客戶端NLS_LANG設置為AMERICAN_AMERICA.ZHS16GBK:
                中文字符測試:插入/顯示中文字符均為正常
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required
            
            4).客戶端NLS_LANG設置為AMERICAN_AMERICA.AL32UTF8:
                中文字符測試:插入/顯示中文字符均為正常
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required
              
            5).客戶端NLS_LANG設置為SIMPLIFIED CHINESE_CHINA.ZHS16GBK:
                中文字符測試:插入/顯示中文均為正常
                中文日期測試:插入/顯示中文日期均為正常,格式為DD-MM-YY(例如:08-1月 -08)  

          4.測試結論:
            從測試結果來看,當數據庫端字符集為AL32UTF8時,能夠使到中文字符被正確插入/顯示的NLS_LANG的字符集為:  WE8MSWIN1252、ZHS16GBK、AL32UTF8。
            
            但是要使到中文格式的時間能夠被正確插入,則NLS_LANG的LANGUAGE和TERRITORY設置必須為:SIMPLIFIED_CHINESE_CHINA
          ===================================================================

          【測試二:數據庫端字符集為ZHS16GBK的情況】
          ===================================================================
          1.登陸數據庫:
            C:\Documents and Settings\qlinpen.E0015609D6309>sqlplus qlinpen/pengpenglin@paul

          2.查看數據庫字符集:
            SQL> select * from nls_database_parameters where parameter = 'NLS_CHARACTERSET';    

          3.測試內容及測試結果:
            1).客戶端NLS_LANG設置為AMERICAN_AMERICA.US7ASCII:
                中文字符測試:插入/顯示中文字符均為亂碼
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required

            2).客戶端NLS_LANG設置為AMERICAN_AMERICA.WE8MSWIN1252:
                中文字符測試:插入/顯示中文字符均為亂碼
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required
              
            3).客戶端NLS_LANG設置為AMERICAN_AMERICA.ZHS16GBK:
                中文字符測試:插入/顯示中文字符均為正常
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required
            
            4).客戶端NLS_LANG設置為AMERICAN_AMERICA.AL32UTF8:
                中文字符測試:插入/顯示中文字符均為亂碼
                中文日期測試:ORA-01855: AM/A.M. or PM/P.M. required
              
            5).客戶端NLS_LANG設置為SIMPLIFIED CHINESE_CHINA.ZHS16GBK:
                中文字符測試:插入/顯示中文均為正常
                中文日期測試:插入/顯示中文日期均為正常,格式為DD-MM-YY(例如:08-1月 -08)  

          4.測試結論:
            從測試結果來看,當數據庫端字符集為ZHS16GBK時,能夠使到中文字符被正常插入/顯示的NLS_LANG的字符集為:ZHS16GBK。
            
            而且要使到中文格式的時間能夠被正確插入,則NLS_LANG的LANGUAGE和TERRITORY設置必須為:SIMPLIFIED CHINESE_CHINA
          ===================================================================

          【測試總結】
          ===================================================================
          從上面兩個測試的結果就可以明顯看出,把數據庫端的字符集設置為AL32UTF8比起ZHS16GBK更加有優勢。

          UTF8支持從客戶端應用字符集為WE8MSWIN1252、ZHS16GBK、AL32UTF8的環境下進行中文字符的插入,而ZHS16GBK只支持客戶端應用字符集為ZHS16GBK環境下的的中文字符插入。

          其次我們來看看日期格式為:01/08/2008 04:14:00 下午的記錄為什么只能在NLS_LANG的LANGUAGE和TERRITORY為SIMPLIFIED CHINESE_CHINA的情況下才能正確插入?

          我們知道客戶端NLS_LANG的值由3部分構成,即<LANUAGE>_<TERRITORY>.<CHARACTERSET>,而掌管日期中月份和日顯示的恰恰就是<LANGUAGE>部分,所以很明顯<LANGUAGE>為AMERICAN的情況下,是不可能正確插入的(西方用AM、PM來表示上、下午)。

          依次類推,如果以后出現貨幣和數字格式、地區和計算星期及日期的習慣插入、轉換失敗,那么我們就要檢查第二個元素<TERRITORY>。

          posted @ 2011-05-31 13:05 賀榮心 閱讀(267) | 評論 (0)編輯 收藏

          Oracle 通過dbca命令來啟動數據庫創建界面,其中在windows下的dbca.bat文件有幾個參數至關重要,分別是:

          A.@set OH=C:\Develop\Oracle\product\10.2.0\db_1
          B.@set JRE_CLASSPATH=C:\Develop\Oracle\product\10.2.0\db_1\jdk\jre\lib\rt.jar
          C.@set I18N_CLASSPATH=C:\Develop\Oracle\product\10.2.0\db_1\jdk\jre\lib\i18n.jar
          D.@set SWING_CLASSPATH=%OH%\jlib\swingall-1_1_1.jar
          E.@set JDBC_CLASSPATH=%OH%\jdbc\lib\classes12.zip
          F.@set DBCA_CLASSPATH=%OH%\assistants\dbca\jlib\dbca.jar

          從上至下分別設置了:

          A.Oracle Home目錄位置,即Oracle數據庫的根目錄(注意不是產品的根目錄)
          B.JRE運行時路徑,即運行java命令所需的運行時類庫
          C.I18N jar包,即支持Oracle安裝數據庫時多國語言包
          D.Swing jar包,即支持Oracle安裝數據庫時的Swing包
          E.JDBC jar包,即Oracle為Java提供的驅動程序
          F.DBCA jar包,即運行dbca.bat文件最終運行調用的命令所在的包

          最終通過運行如下的命令:

          "C:\Develop\Oracle\product\10.2.0\db_1\jdk\jre\BIN\JAVA" -DORACLE_HOME="%OH%" -DJDBC_PROTOCOL=thin -mx128m oracle.sysman.assistants.dbca.Dbca  %*

          其中最后的oracle.sysman.assistants.dbca.Dbca就是位于上面提到的DBCA_CLASSPATH指定的jar包


          posted @ 2011-05-31 13:04 賀榮心 閱讀(274) | 評論 (0)編輯 收藏

          1--查詢當前會話和相關進程信息的SQL語句
           2select s.saddr,
           3       s.sid,
           4       s.serial#,
           5       s.paddr,
           6       s.username,
           7       s.status,
           8       s.osuser,
           9       s.process,
          10       s.machine,
          11       s.program,
          12       s.type,
          13       s.action,
          14       s.logon_time,
          15       p.pga_used_mem,
          16       p.pga_alloc_mem
          17  from v$session s, v$process p
          18 where s.PADDR = p.ADDR
          19 order by sid
          20
          21 --查詢當前會話等待情況及對應進程信息的SQL語句
          22 select s.SID,
          23       s.SERIAL#,
          24       s.PADDR,       
          25       s.PROGRAM,
          26       s.ACTION,
          27       s.TYPE,
          28       s.MACHINE,
          29       s.SCHEMANAME,
          30       s.USERNAME,
          31       s.STATUS,
          32       w.SEQ#,
          33       w.EVENT,
          34       w.SECONDS_IN_WAIT,
          35       w.STATE
          36  from v$session s, v$session_wait w
          37 where s.sid = w.sid
          38 order by s.sid
          39
          40 --查看SQL語句執行效率的語句
          41 select sql_text,
          42       executions,
          43       fetches,
          44       parse_calls,
          45       disk_reads,
          46       buffer_gets,
          47       optimizer_mode,
          48       cpu_time,
          49       elapsed_time
          50  from v$sql
          51 order by cpu_time desc, executions desc

          posted @ 2011-05-31 13:04 賀榮心 閱讀(355) | 評論 (0)編輯 收藏

          【一】對ORACLE_SID的理解


          Oracle中SID的作用類似于一個“開關變量”---引導Oracle在實例啟動時如何去默認位置下讀取適當的參數文件并加載,以正確啟動實例。

          我們知道實例的啟動需要指定pfile/spfile(Oracle9i之前是使用pfile--即init文件,從9i開始就默認使用spfile--即服務器端參數文件,兩者的不同請參考《Oracle 10g Concept》手冊,關鍵在于修改其中參數后是否會自動持久化)。這兩個文件的存放位置為:

          A.pfile:名字為init<ORACLE_SID>.ora
          B.spfile:名字為spfile<ORACLE_SID>.ora

          我們看到init文件和spfile文件都帶有ORACLE_SID的標識,這就是SID的作用了:

          【1】當我們要啟動一個實例時,我們首先通過:set ORACLE_SID = XXX 或者export ORACLE_SID = XXX 的方式告訴Oracle接下來要啟動的實例

          【2】當我們執行startup nomount時,由于已經指定了SID,那么Oracle知道了如何去默認的目錄下查找該實例對應的參數文件--就是靠SID去匹配每個init/spfile文件

          【3】當Oracle找到該文件后(init/spfile),就會讀取該文件的內容,將一系列參數用于分配內存空間,構建后臺進程等實例的啟動過程

          【4】當這個實例成功啟動后,我們又可以重新執行 set ORACLE_SID = XXX 或 export ORACLE_SID = XXX 命令再次將“開關撥向”另一個SID,然后重復以上步驟

          從上面的過程我們看到Oracle SID的作用是一個明顯的“開關變量”,它拔向那一邊,那么Oracle就會去找和它對應的參數文件來啟動實例。其次SID也起到進程隔離的作用--即SID會在實例的一系列后臺進程中得到體現,如ora_dbw0_paullin,ora_dbw0_boblin。通過SID來命名后臺進程。

          操作系統也必須通過SID來和Oracle實例打交道,操作系統并不知道什么INSTANCE_NAME,只知道ORACLE_SID,在Oracle內部由Oracle自己根據這個SID去識別不同的實例。所以ORACLE_SID更多的是“Oracle和外部操作系統溝通的一個窗口”。


          【二】對INSTANCE_NAME的理解
          相比于ORACLE_SID這樣的“開關變量”,INSTANCE_NAME則是一個實實在在的參數。它是在init/pfile文件中配置的(db_name)。用于標識數據庫實例的名稱,其缺省值就是ORACLE_SID。

          INSTANCE_NAME就像一個人的名稱一樣,而SID則是這個人的身份證號碼。通過SID我們找到對應的init/spfile文件,而init/spfile文件中又通過instance_name這個參數告訴我們對應的實例叫什么名字。這樣就把ORACLE_SID、參數文件、INSTANCE_NAME聯系起來了。

          造成ORACLE_SID不同,但INSTANCE_NAME相同的原因通常是因為復制了原有的參數文件,但忘記了修改其中的INSTANCE_NAME參數的值。不過在10G之后INSTANCE_NAME這個參數以及從init/spfile中消失了,以免引起混亂。


          【三】對DB_NAME的理解
          我們已經知道了ORACLE_SID是一個“開關變量”,INSTANCE_NAME是用來描述實例的。那么DB_NAME則是描述實例掛載的數據庫名稱,通過這個DB_NAME我們可以知道對應的磁盤上的控制文件、日志文件、數據文件的位置。

          DB_NAME在創建數據庫時被指定,默認情況下和ORACLE_SID的名字一樣。但和INSTANCE_NAME一樣。DB_NAME一旦被確定下來就不能修改了,因為它會同時存儲在init/spfie,控制文件,日志文件,數據文件。你只能修改init/spfile文件中DB_NAME參數的值,但是不能手工修改其它文件的值。所以一旦修改后引起幾個文件的值不匹配那么數據庫的啟動就會失敗。

          A.一個實例可以MOUNT并打開任何數據庫(通過init/spfile中配置DB_NAME參數),但是同一時間一個實例只能打開一個數據庫。
          B.一個數據庫可以被一個或多個實例所MOUNT并打開(只能是在RAC環境下,普通環境下一個數據庫只能同時被一個實例MOUNT并打開)。

          那么如何知道實例應該掛載到那個數據庫并打開呢?就是靠init/spfile中的“control_files”參數來告訴Oracle去那里讀取控制文件,而控制文件中又記錄了數據文件的位置。所以最終形成一個完整的鏈條:

          ORACLE_SID --> init/spfile文件 --> instance_name、db_name、control_files --> 實例名、數據庫名、控制文件 --> 數據文件 --> 完成掛載并打開


          【四】ORACLE_SID、INSTANCE_NAME、DB_NAME對應關系
          我們已經知道ORACLE_SID是用來隔離同一個ORACLE_HOME下不同的實例的。但對于不同的ORACLE_HOME呢?能否有相同名稱的SID呢?

          實際上這就和文件系統的規則是一樣的:在同一個目錄下不允許有同名的文件存在,但不同的目錄下可以有同名的文件。同樣的在同一個ORACLE_HOME下不能有相同的SID存在,而不同的ORACLE_HOME下可以有重名的SID(即便是同一臺機,只要ORACLE_HOME不同就可以)。

          那么對于INSTANCE_NAME呢?默認情況下INSTANCE_NAME和ORACLE_SID是相同的,也可以是不同的;而且不同的實例可以具有相同的實例名。這聽起來有點混亂是不?其實我們可以用一個簡單的生活化例子來解析:

          在一個班級Class_1里面,有兩個學生,他們的名稱都叫張三,但他們的學號肯定不同。在這里“張三”就是INSTANCE_NAME,而學號就是SID。所以INSTANCE_NAME重復沒關系,只要SID不同就可以區分開來。

          但是在另外一個班級Class_2里面,也有學號相同的學生,這時候就出現了我們說的SID相同的問題,那么如何區分呢?別忘了我們還有班級這個概念啊!對應于ORACLE就是ORACLE_HOME了。

          至于INSTANCE_NAME和DB_NAME的對應關系,這個很好理解了,不同的實例可以掛載到不同的DB,也可以掛載到相同的DB嘛。可以把這理解為“多個進程同時對同一份磁盤文件的競爭性訪問”。

          A. 相同ORACLE_HOME下,INSTANCE_NAME可以相同,但ORACLE_SID必須唯一。通過ORACLE_SID來區分不同的實例
          B. 不同ORACLE_HOME下,ORACLE_SID可以相同,通過ORACLE_HOME來區分不同的SID
          C.不同INSTANCE_NAME可以對應不同的DB_NAME,也可以對應相同的DB_NAME。但是如果不是在RAC環境下,只能同時啟動實例而不能同時掛載






          【五】Oracle實例啟動過程的相關參數文件

          前面說到Oracle實例啟動時,需要指定pfile/spfile參數,對應的就是init文件和spfile文件。那么當這兩個文件同時存在時Oracle如何決定讀取那個呢?

          以Oracle 9i為例,由于默認采用了spfile來啟動實例,所以查找的順序是:

          spfile<ORACLE_SID>.ora ---> spfile.ora ---> init<ORACLE_SID>.ora

          即默認加載和SID對應的參數文件,如果找不到則采用默認的參數文件,再找不到就用舊的init文件,如果還是找不到則實例無法啟動。下面我們來看看這些文件的內容(以Oracle 10g為例)

          A.spfile<ORACLE_SID>.ora:

          paullin.__db_cache_size=339738624
          paullin.__java_pool_size
          =4194304
          paullin.__large_pool_size
          =4194304
          paullin.__shared_pool_size
          =92274688
          paullin.__streams_pool_size
          =0
          *.audit_file_dest
          ='C:\Develop\Oracle\product\10.2.0/admin/paullin/adump'
          *.background_dump_dest
          ='C:\Develop\Oracle\product\10.2.0
          /admin/paullin/bdump'
          *.compatible
          ='10.2.0.1.0
          '
          *.control_files
          ='C:\Develop\Oracle\product\10.2.0\oradata\paullin\control01.ctl',

                               'C:\Develop\Oracle\product\
          10.2.0\oradata\paullin\control02.ctl',
                               'C:\Develop\Oracle\product\
          10.2.0\oradata\paullin\control03.ctl'
          *.core_dump_dest
          ='C:\Develop\Oracle\product\10.2.0
          /admin/paullin/cdump'
          *.db_block_size
          =8192

          *.db_domain
          =''
          *.db_file_multiblock_read_count
          =16

          *.db_name
          ='paullin'
          *.db_recovery_file_dest
          ='C:\Develop\Oracle\product\10.2.0
          /flash_recovery_area'
          *.db_recovery_file_dest_size
          =2147483648

          *.dispatchers
          ='(PROTOCOL=TCP) (SERVICE=paullinXDB)'
          *.job_queue_processes
          =10

          *.open_cursors
          =300
          *.pga_aggregate_target
          =148897792
          *.processes
          =150
          *.remote_login_passwordfile
          ='EXCLUSIVE'
          *.sga_target
          =447741952

          *.undo_management
          ='AUTO'
          *.undo_tablespace
          =
          'UNDOTBS1'
          *.user_dump_dest
          ='C:\Develop\Oracle\product\10.2.0/admin/paullin/udump'

          B.init<ORACLE_SID>.ora

          SPFILE='C:\Develop\Oracle\product\10.2.0\db_1/dbs/spfilepaullin.ora'

          我們看到spfile<ORACLE_SID>.ora文件的內容就是我們創建數據庫時在DBCA中填寫的參數,而init<ORACLE_SID>.ora文件的內容則指向了該spfile,所以不論如何都是從spfile來啟動實例了。


          posted @ 2011-05-31 13:03 賀榮心 閱讀(656) | 評論 (0)編輯 收藏

          echo "begin to start oracle"
          lsnrctl start
          sqlplus /nolog 
          <<EOF
          connect /as sysdba
          startup
          exit
          exit
          echo "oracle have started

          posted @ 2011-05-31 13:00 賀榮心 閱讀(145) | 評論 (0)編輯 收藏

          下`按照下面的命令操作

          #cp /etc/oratab /etc/oratab.bak.0  備份
          #vim /etc/oratab

          ORCL:/opt/oracle/product/10.2.0/db_1:Y
          主要是黑體的部分

          配置/etc/init.d/oracle-10g啟動腳本
          #touch /etc/init.d/oracle-10g
          #vim /etc/init.d/oracle-10g
          內容如下:

          #!/bin/bash
          # chkconfig: 345 99 10
          # description: Startup Script for Oracle Databases
          # /etc/rc.d/init.d/dbstart

          export ORACLE_BASE=/opt/oracle
          export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
          export ORACLE_SID=ORCL
          export PATH=$PATH:$ORACLE_HOME/bin
          ORA_OWNR="oinstall"
          # 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
          echo -n "Starting Oracle: "
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbstart"
          touch /var/lock/Oracle
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
          echo "OK"
          ;;
          stop)
          # Oracle listener and instance shutdown
          echo -n "Shutdown Oracle: "
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/dbshut"
          su - $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
          rm -f /var/lock/Oracle
          echo "OK"
          ;;
          reload|restart)
          $0 stop
          $0 start
          ;;
          *)
          echo "Usage: `basename $0` start|stop|restart|reload"
          exit 1
          esac
          exit 0

          保存退出。
          注意:要把里面的對應目錄和SID修改成你自己對應的配置。

          添加自啟動
          #chkconfig --add oracle-10g

          #chkconfig --edit oracle-1g
          內容如下
          oracle-10g on


          #chkconfig --list oracle-10g

          oracle-10g                0:off  1:off  2:on   3:on   4:on   5:on   6:off
          這就OK了。

          最后,再去
          /opt/oracle/product/10.2.0/db_1/network/admin目錄,查看tnsnames.ora文件,檢查你的監聽配置。

          #cat tnsnames.ora
          內容如下:


          LISTENER_ORCL =
            (ADDRESS = (PROTOCOL = TCP)(HOST = CCXFIT-DBSERVER)(PORT = 1521))


          ORCL =
            (DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP)(HOST = CCXFIT-DBSERVER)(PORT = 1521))
              (CONNECT_DATA =
                (SERVER = DEDICATED)
                (SERVICE_NAME = ORCL)
              )
            )

          EXTPROC_CONNECTION_DATA =
            (DESCRIPTION =
              (ADDRESS_LIST =
                (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC3))
              )
              (CONNECT_DATA =
                (SID = PLSExtProc)
                (PRESENTATION = RO)
              )
            )

          最重要的是關注端口,我開始以為默認是1521端口,可是怎么也連不上,一看,才知道,原來自動配置的是1523端口。
          所以,在此需要核實一下監聽端口的配置。

          至此,配置完畢。重啟系統以驗證配置是否生效。

          以后如果需要重啟,可以執行
          /etc/init.d/oracle-10g restart
          來進行重啟。

          posted @ 2011-05-31 12:59 賀榮心 閱讀(243) | 評論 (0)編輯 收藏

          oracle參數查看和修改方法:
          root#sqlplus sys@orcl as sysdba
          SQL>show parameter spfile;
          SQL>show parameter pfile;
          SQL>show parameter sessions;
          SQL>show parameter transaction;
          SQL>show parameter processes;
          SQL>alter system set processes=500 scope=spfile;
          SQL>alter system set sessions=1000 scope=spfile;
          SQL>shutdown immediate;
          SQL>startup;

          posted @ 2011-05-31 12:56 賀榮心 閱讀(173) | 評論 (0)編輯 收藏

               摘要: 通過之前一篇基于SSH2框架Struts2攔截器的登錄驗證實現的文章,我們簡單的運用了攔截器來實現功能,這次大象將在前面的基礎上再進行一次擴展,運用AspectJ AOP切面實現登錄登出日志的功能。     AOP切面是一個非常不錯的特性,為我們帶來了一種新的編程方式,對代碼的無侵入性是它最大的特點。像上篇我們用到的Struts2攔截器就是AOP的一個典型運用。從...  閱讀全文

          posted @ 2011-05-31 12:54 賀榮心 閱讀(412) | 評論 (0)編輯 收藏

          這是我最近寫的一篇教程,希望對大家有用。

          本文為您講述了如何在Windows或Linux下進行Tomcat集群的安裝配置。

          Windows下Tomcat集群的安裝配置與Linux下稍有區別,道長為了在一篇教程中講解兩種操作系統的配置,因此使用兩臺機器進行安裝工作,一臺 為Windows操作系統,一臺為Linux,每臺機器都安裝一個Tomcat;使用Apache作為集群的代理服務器(它可以安裝在任何一臺機器上), 它同時也負責負載均衡。

          您在學習過程中,完全不必遵循本文的操作系統搭配:你可以將Tomcat安裝在兩臺Windows上,也可以安裝在兩臺Linux上,甚至可以安裝到一臺機器上。

          此外,您在實際練習過程中,各類軟件的版本亦不必與本文完全相同。例如本文的環境均為32位操作系統,如您為64位,請不要驚慌,這沒有什么不同。



          posted @ 2011-05-31 12:49 賀榮心 閱讀(104) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 汕尾市| 清丰县| 屯留县| 郎溪县| 东港市| 西青区| 门头沟区| 麻栗坡县| 淮阳县| 楚雄市| 津南区| 汾阳市| 洪泽县| 杭锦后旗| 临颍县| 湖口县| 兖州市| 平江县| 自贡市| 龙川县| 巧家县| 双桥区| 全州县| 湖州市| 元朗区| 凤冈县| 舞阳县| 教育| 凤凰县| 凌源市| 读书| 湘潭市| 巴林左旗| 库尔勒市| 吉水县| 岳池县| 沾益县| 科技| 敦化市| 梅州市| 若尔盖县|