论坛精华
>> Oracle 专栏
>> Oracle 8.0的几个使用技巧
由 guest 发布于: 2001-02-26 12:43
---- Oracle8企业版提供了多种高效、可靠、安全的数据管理。笔者在使用Oracle 8.0.4以及在新的平台上运行过程中积累了一些经验,希望与大家共同交流分享。
---- 一.汉字输入问题的解决
---- 用Oracle Report 3.0进行报表设计时,当输入汉字时,经常会造成软件非法错误,尤其是对已保存再打开进行修改的程序。对此,我们可以通过以下3种方式解决:
---- 1.在用Oracle Developer/2000开发的机器上安装时,语言请选择English(用户的机器选择Simplified Chinese),然后再用Regedit进行注册表编辑,选取"我的电脑"中的"HKEY-LOCAL-MACHINE"下的"Software→Oracle",选取Oracle下的NLS-LANG,其缺省值为:AMERICAN- AMERICA.WE8ISO8859P1,按"编辑"下的"修改",键入Server端NLS- LANG的值,可选择SIMPLIFIED CHINESE-CHINA.ZHS16CGB231280或AMERICAN-AMERICA.ZHS16CGB231280。
---- 2.在开发过程中,尽量在第一次将所有汉字输入完毕,待以后再进行调整。
---- 3.当在Report 3.0输入汉字产生非法错误时, 可用NOTEPAD输入汉字后保存在文件中,然后在Report 3.0 选单"File→Import→Text…",选择该文件,即可将该文件中的汉字输入。
---- 二.客户端省略数据库串的配置
---- 客户端在用"SQL Net Easy Configuration"成功配置数据库别名(如todec)后,在客户端每次连接数据库时,都要键入数据库别名,给用户造成了一定的不便,我们可以通过以下方法来解决:
---- 在Windows 95上选择"开始"按钮,启动"运行"图标,键入Regedit,进行注册表编辑。选取"我的电脑"中的"HKEY-LOCAL-MACHINE" 下的"Software→Oracle" 。在"注册表编辑器"选单上选取"编辑→新建→串值(S)"项,将新建的串值名改为local,键值为todec。
---- 三.屏蔽英文提示信息的两种方法
---- 在应用程序中,系统提示信息为用户提供参考信息,帮助用户正确使用系统。但运行Oracle form时,屏幕下方信息行的提示信息却是英文。当有两个以上信息等待在信息行上显示时,这些英文信息还会以窗口方式出现在屏幕中央。如何避免这种情况呢?
---- 笔者在实践中总结出解决此类问题的两种方法,希望能给初学者提供一些参考。
---- 1.压缩系统信息,禁止系统信息显示在信息行上 Oracle form将每个信息定义了重要级别,用于表明该信息是重要还是不重要。共有如下六个等级:
重要级别 意 义
0 所有信息
5 重申明显的条件
10 操作人员产生了一个过程错误
15 操作人员试图执行form未设计的动作
20 由于触发子问题或某些其他突出问题不能继续动作
25 可能引起form不正确完成任务的一个条件
>25 开发人员不能压缩的信息
---- 开发人员可压缩的最大信息级别为25,使用如下语句禁止系统信息显示:
system.massege-level:=′25′;
禁止显示信息级别不大于25的系统信息:
system.suppress-working:=′TRUE′;
禁止显示系统处理一个动作时的工作信息
注意:这种方法只能屏蔽信息级别小于等于25的系统信息。
---- 2.截获系统信息,转换为汉字提示信息
---- Oracle form中有两个触发子on-erro和on-message,分别在显示系统错误信息和通知信息(告诉操作人员当前处理状态或给出上下文相关的信息)时触发,在触发子中插入pl/sql代码实现汉字提示信息替换英文提示信息。例如:在on-erro触发子中插入以下编码:
Begin
If erro-code=40202 and error-type=′FRM′
Then message(′字段值必须键入!′); bell;
End if;
End;
---- 这样,当有"form--40202"号错误时,系统信息行的提示信息会由原来的英文"field must be enterd"变为汉字"字段值必须键入!",用户不用再为不认识的提示犯愁了。
---- 四.数据库回滚表空间的数据文件误删除的处理方法
---- 1. 首先改参数文件init< sid >.ora,使数据库能mount上来在system表空间内有一个system回滚段,是该回滚段上数据库所必须的,当数据库第一次建立时,它就随之建立,并随数据库的打开而自动在线。我们通常使用的回滚段是公用回滚段,而非system回滚段,若公用回滚段出现故障,我们暂可用system回滚段替代,使数据库能mount上来。
svrmgrl>Shutdown abort
$ vi $ORACLE_HOME/dbs/init< sid >.ora
rollback_segments=(system)
_corrupted_rollback_segments=(r01,r02,r03,r04)
svrmgrl>Startup mount
---- 2. 对数据库实施恢复,再将它打开
---- 从数据库的控制文件中将回滚段表空间rbs的数据文件rbs01.dbf离线并去掉 svrmgrl>alter database datafile ’##/##/rbs01.dbf’ offline drop; 对数据库进行恢复。 svrmgrl>recover database using backup controlfile;
---- 此时屏幕上可能会出现:
ORA_00280 Change #### for thread# is in sequence#
specify log:[< RET > for suggested|AUTO|from logsource|cancel]
---- 您可以根据sequence#号找到您需要的在线日志文件,并将日志文件输入(包括全路径),查找在线日志文件时可以使用svrmgrl>select * from v$log; 此时完成数据库恢复。再将数据库打开。svrmgrl>alter database open resetlogs;
---- 3. 重建新的回滚段
---- 将旧回滚段及回滚表空间删除。
svrmgrl>alter rollback_segment r01 offline drop;
svrmgrl>alter rollback_segment r02 offline drop;
svrmgrl>alter rollback_segment r03 offline drop;
svrmgrl>alter rollback_segment r04 offline drop;
svrmgrl>drop tablespace rbs including contents;
---- 重建新的回滚表空间及回滚段。
svrmgrl>connect internal
svrmgrl>create rollback segment ro tablespace system;
svrmgrl>alter rollback segment ro online;
svrmgrl>create tablespace rbs datafile ’##/##
/rbs01.dbf’ size ##k;
svrmgrl>create rollback segment r01 tablespace rbs;
svrmgrl>create rollback segment r02 tablespace rbs;
svrmgrl>create rollback segment r03 tablespace rbs;
svrmgrl>create rollback segment r04 tablespace rbs;
svrmgrl>alter rollback segment r01 online;
svrmgrl>alter rollback segment r02 online;
svrmgrl>alter rollback segment r03 online;
svrmgrl>alter rollback segment r04 online;
---- 4. 使用新建的回滚段启动数据库
svrmgrl>Shutdown abort
$ vi $ORACLE_HOME/dbs/init< sid >.ora
rollback_segments=(r01,r02,r03,r04)
将参数_corrupted_rollback_segment去掉
svrmgrl>Startup normal
---- 此故障的排除是数据库在归档方式上执行的, 已在HP-UX 10.20及Solaris2.5两种系统平台上成功通过。
---- 五.Oracle Report Wizard技巧
---- 在Report Wizard中,NCA Yellow模板出现"Print Dialog"窗口,而NCA Gray和 Gray Grid模板中没有出现该窗口。这是由于Report的系统参数 Printjob的缘故,Printjob值判断在打印过程中是否出现打印窗口。我们可在"Data Model→System Parameter→Print job "中将Initial Value的值由"NO"改为"YES"。
---- 在打印横向报表时,我们可先选择打印机为"横打"方式,然后设置系统参数Printjob值为"NO"。
---- 六. 数据库备份
---- 在企业的业务日益复杂的今天,我们谈Oracle数据库的备份,应该站在企业级的备份角度来考虑。例如我们的工程图文管理系统文档信息是存放在Oracle for Digital UNIX上,文档本身是存放在中文Windows NT Server 4.0上。如果单纯考虑数据库的备份可能会造成数据的不一致性,因此我们可用企业级的备份软件如Legato Networks来备份所有的企业数据。对于Oracle数据库,我们可采用冷备份的方式备份所有相关文件:数据文件、日志文件、控制文件和参数文件。
---- 首先,用sys或system用户在sqlplus中查询以下文件:
---- 1. 控制文件select * from V$controlfile
---- 2. 日志文件select * from V$logfile
---- 3. 数据文件select * from V$datafile
---- 4. 参数文件$ORACLE-HOME/dbs/initsid.ora
---- 然后将文件备份清单交由备份管理员,采用UNIX cron定时机制打开、关闭数据库实施备份。当数据库文件有变化时,要及时通知备份管理员。
__________________
我就是我,命运由我摆布。
|