1.启动数据库 cd @ORACLE_HOME/bin lsnrctl start 2. @ORACLE_HOME/dbs目录下存放实例配置文件 3. 在java中以odbc方式连接oracle 1.配置sqlnet easy configration 2.在windows中配置odbc,添加 system DSN,其中data source name可任意指定, sol*net connect string为在sol*net 中指定的Database alias 3.确保path指向orawin95\bin 4.执行oracle中的32-bit odbc test 测试连接 5. java中参数指定如下: driver: "sun.jdbc.odbc.JdbcOdbcDriver", dbURL: "jdbc:ODBC:odbc DSN 名", logid: "", logpass: "" 4. 在java中使用oracle 的 driver连接oracle driver: "oracle.jdbc.driver.OracleDriver", dbURL: "jdbc:oracle:thin:@机器名:1521:数据库", logid: "", logpass: ""); 5. 设置日期格式 服务器端: export NLS_DATE_FORMAT='DD-MON_RR' 客户端: 进入win95注册表,选KEY_LOCAL_MACHINE->SOFTWARE->ORACLE,然后 从菜单选择编辑->新建->字符串值:输入NLS_DATE_FORMAT,然后编辑这个 新串,在值域输入DD_MON_RR(或RRRR) 6. 处理用户被锁住的方法 首先执行下列语句,确定用户是否真的被锁住: select a.username,a.sid,a.serial#,b.id1,c.sql_text from v$session a,v$lock b,v$sqltext c where a.lockwait = b.kaddr and a.sql_address = c.address and a.sql_hash_value = c.hash_value; USERNAME SID SERIAL# ID1 SQL_TEXT --------- --- ----------- --------- SCOTT 11 9 131080 update plsql_user.s_employee set salary=5000 结果SCOTT在做update时被锁住了 下一步确定是谁锁住了该用户,这个用户在做何种操作: select a.username,a.sid,a.serial#,b.id1,c.sql_text from v$session a,v$lock b,v$sqltext c where b.id1 in (select distinct e.id1 from v$session d,v$lock e where d.lockwait=e.kaddr) and a.sid = b.sid and c.hash_value=a.sql_hash_value and b.request=0; USERNAME SID SERIAL# ID1 SQL_TEXT --------- --- ----------- --------- PLSQL_USER 10 26 131080 update s_employee set salary=10000 结果显示是由于PLSQL_USER和SCOTT对同一个表做update时将SCOTT锁住了 可以通过kill session释放锁,例如可以kill掉PLSQL_USER的session: alter system kill session '10,26' 7. 使用查询优化器 Oracle Server提供了基于成本(Cost Based)和基于规则(Rule Based) 两种优化器,简称为CBO和RBO,用于查询操作的执行计划.可以使用下列 方法使用CB 方法1:在INIT<sid>.ORA文件中设置参数 OPTIMIZER_MODE=choose 方法2:在session级设置 OPTIMIZER_GOAL=FIRST_ROWS或ALL_ROWS 例如: alter session set optimitzer_goal=first_rows 方法3:在查询中使用hint,包括: CHOOSE,ALL_ROWS,FIRST_ROWS等 8. 确定某个查询使用了那一种优化器 使用EXPLAIN PLAN命令生成该查询语句的执行计划,然后检查PLAN_TABLE 表中POSITION字段,如果值为NULL,说明使用了Rule based优化器,否则表明 使用了Cost Based优化器: select decode(nvl(position,-1),-1,'RBO','CBO') from plan_table where id=0; 9. 使用estimate方式对表进行分析 10. 建立一个与现存数据库相同,但不包含数据的空库 对全库作俄Export或Import时,使用参数ROWS=N 例: exp system/manager full=Y rows=N file = full.dmp imp system/manager full=Y rows=N file=full.dmp 11. 使某些host不能通过SQL*NETV2访问Oracle server 可以通过编辑$ORACLE_HOME/network/admin/protocol.ora文件完成 例如: protocol.ora tcp.validnode_checking=yes tcp.invited_nodes=(138.3.39.150) 这样只有138.3.39.150才能通过sol*netv2访问Oracle Server 又例如: protocol.ora tcp.validnode_checking=yes tcp.exclued_nodes=(138.3.39.150) 这样138.3.39.150被拒绝 12.在sol*plus中,向表中插入"'" 可以用chr(39)来标示"'" 例如: insert into test values('i'||chr(39)||'m'); select * from test; coll --- i'm 13. 在win95或winNT上运行oracle Net8 Assistant 或 Net8 EasyConfguration 时报错"unhandled exception erro in java.exe" oracle Net8 Assistant 或 Net8 EasyConfguration调用了java,而java 在win95或winNT上对系统的分辨率和颜色都有要求,应把系统的分辨率 调到大于640X480,颜色大于256但不能设置成true color 14. 安装oracle 8 for windows NT 需要NT的service pack 3 15. 在oracle7和oracle8之间export/import数据 必须先在oracle8数据库上以internal或sys用户运行catexp7.sql svrmgr>connect internal svrmgr>@?/rdbms/admin/catexp7.sql 16. 为远程用户设置"internal"口令 先在数据库端的init<sid>.ora文件中设置 remote_login_passwordfile=execlusive 并且为oracle owner设置环境变量 ORA_<SID>_PWFILE=orapw<sid>.pwd 然后以oracle owner 运行以下命令: $cd $ORACLE_HOME/dbs $orapwd file=orapw<sid>.pwd password=<passwd> entries=5 17. 手工安装sqlplus的help facility 以oracle用户运行以下命令 $cd $ORACLE_HOME/bin $SYSTE system/manager;export SYSTEM_PASS $helpins 18. 查出前台正在发出的sql语句 先查出正在运行的前台程序的sid: sql>select sid,serial#,username,program from v$session where status='ACTIVE'; 然后根据上面得到的sid,可查出正在运行的前台程序发出的sql语句: sql>select user_name,sql_text from v$open_cursor where sid=xx; 19. 在数据库一级设置sql trace 在init.ora中加入参数sql_trace=true,然后重新启动 20. 在sql*plus中对某一session设置sql trace sql*plus>alter session set sql_trace=true; 可以使用下列命令关闭trace sql*plus>alter session set sql_trace=false; 21. 移动数据文件的位置 1. 正常关闭数据库 2. 复制文件到新位置 $cp $ORACLE_HOME/dbs/dbsNEW.DBF /usr3/oracle/db2NEW.dbf 3.svrmgrl connect internal; startup mount; alter database rename file'<$ORACLE_HOME>/dbs/db2NEW.dbf' to 'usr3/oracle/db2NEW.dbf'; alter database open 22. 移动LOG文件的位置 可以先添加新的LOG文件,再删除原来的LOG文件 svrmgrl>connect internal; alter database add logfile '<$ORACLE_HOME>/usr3/oracle/logNEW.dba'; alter database drop logfile '<$ORACLE_HOME>/dbs/logNEW.dbf'; 23. 确定安装了何种NETWORK DRIVER 使用'nm'命令,例如tcp/ip driver的符号为'nttini',要检查oracle是否 链接了该符号,可以利用下列命令: nm oracle|grep nttini 如果nttini存在,表示rdbms已经链接了tcp/ip driver 24. 检查已安装的sql*net版本 可以在?/orainst目录下使用'inspdver'命令检查 $inspdver|grep SQL*NET 2.3.4.0.0 SQL*NEW(V2) 25. 备份数据库 把orant\database目录备份下来即可 26. 在unix下察看实例名 .pfofile文件