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 贺荣心 阅读(197) | 评论 (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 贺荣心 阅读(459) | 评论 (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 贺荣心 阅读(179) | 评论 (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 贺荣心 阅读(258) | 评论 (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 贺荣心 阅读(267) | 评论 (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 贺荣心 阅读(349) | 评论 (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 贺荣心 阅读(650) | 评论 (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 贺荣心 阅读(136) | 评论 (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 贺荣心 阅读(233) | 评论 (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 贺荣心 阅读(163) | 评论 (0)编辑 收藏

     摘要: 通过之前一篇基于SSH2框架Struts2拦截器的登录验证实现的文章,我们简单的运用了拦截器来实现功能,这次大象将在前面的基础上再进行一次扩展,运用AspectJ AOP切面实现登录登出日志的功能。     AOP切面是一个非常不错的特性,为我们带来了一种新的编程方式,对代码的无侵入性是它最大的特点。像上篇我们用到的Struts2拦截器就是AOP的一个典型运用。从...  阅读全文

posted @ 2011-05-31 12:54 贺荣心 阅读(410) | 评论 (0)编辑 收藏

这是我最近写的一篇教程,希望对大家有用。

本文为您讲述了如何在Windows或Linux下进行Tomcat集群的安装配置。

Windows下Tomcat集群的安装配置与Linux下稍有区别,道长为了在一篇教程中讲解两种操作系统的配置,因此使用两台机器进行安装工作,一台 为Windows操作系统,一台为Linux,每台机器都安装一个Tomcat;使用Apache作为集群的代理服务器(它可以安装在任何一台机器上), 它同时也负责负载均衡。

您在学习过程中,完全不必遵循本文的操作系统搭配:你可以将Tomcat安装在两台Windows上,也可以安装在两台Linux上,甚至可以安装到一台机器上。

此外,您在实际练习过程中,各类软件的版本亦不必与本文完全相同。例如本文的环境均为32位操作系统,如您为64位,请不要惊慌,这没有什么不同。



posted @ 2011-05-31 12:49 贺荣心 阅读(102) | 评论 (0)编辑 收藏