数据库问题小结_数据库心得
数据库问题小结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“数据库心得”。
学习小结 1.前言:
前段时间的学习一直都没有融入实际的操作,因此这个阶段的学习我想结合着数据库来对配置数据进行一个定位。为了达到这个目的我就决定再我自己机子上安装oracle数据库,并安装omm网管服务器软件,虽然这个过程自己自认为已经相当娴熟了,(呵呵)可是实际的操作中由于数据库,网管软件安装的先后顺序不同出现了很多的问题。在这里我就想把我所遇到的问题以及解决办法告诉大家。
2.安装数据库
首先声明下我是在window下安装我的数据库软件的,因此配置过程不像linux上面安装时需要做诸多修改。虽然自己以前也装过,但是为了提高准确性还是从网管部人那里要了一个安装文档,一切按部就班按着文档走也没出现什么问题。直到配置监听程序时候出现了点问题:这里需要解释下我的数据库实例名为:tomc,IP为:10.62.88.71。
2.1 监听问题
在配置完监听程序之后我按照文档在listener.ora文件中加入了
(SID_DESC =(SID_NAME = tomc(ORACLE_HOME = D:oracleproduct10.2.0db_1)(global_dbname = tomc)也就是加了一个tomc的数据库监听实例,本来这个文件里面是有一个默认的监听实例,想想也是有道理的我就没多想,继续进行本地net服务名配置,在即将结束的时候输入网络服务名,一般默认输入数据库实例名(记住这点和listener.ora文件里的监听实例是必须对应的)。可是文档中输入的是:
开始我也没细想,就按照文档完成了输入,结果进行连接测试的时候老测试不成功。出现这样的提示:
我就对前面的配置进行了检查最后发现应该是刚才那个网络服务名出现了错误。如果设置成tomc_10.61.88.71的话在tnsnames.ora文件中会相应的生成TOMC_10.61.88.71 =(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = 10.61.88.718)(PORT = 1521))(CONNECT_DATA =(SID = TOMC)))而我们前面的监听程序里面却是tomc,因此导致连接不成功。意识到这一点之后我决定不按照文档了(反正这一段自己以明白),在配置监听程序的时候listener.ora文件我不做修改采用默认,本地Net服务名配置时网络名我设置成tomc_10.62.88.71,其余按照规定的填写。可是奇怪的事情又发生了,当我测试连接的时候:
然后貌似卡住了,什么都不显示了。。
2.2 注册表问题
我百思不得其解,颇为郁闷,自信心受到严重的打击,哈。不过既然问题出来了,就要想办法解决,首先我对前面的配置数据默默的回想了一遍确定没什么问题,然后考虑到是否是上一次配置失败对这次的连接有了影响从而导致局部死机的情况出现。
1.我想到了关闭进程,在任务管理器中我讲自己怀疑有可能的进程都一一关掉,结果丝毫没有发生任何变化。。。。。。失败。2.最后打开注册表编辑器(运行regedit),我搜索 oracle 字段,鼠标直到:
具体的东西也看不明白,不过看到OracleOraDb10g_home1TNSListener这个子树。我就意识到或许是由于它在作祟,第一次错误配置时已经在注册表中生成了相应的信息,后面的配置可能无法对他进行覆盖。虽然原因不是很明白但是大概可以定位到这里了,我就将这个表项删除,然后重启机器。(不知道linux服务器遇到是否会遇到这个问题)机器起来后按照刚才的监听配置完成之后测试:
成功!
3.导入数据库备份数据
这里先做个说明:早先我从网管服务器上导出了一份数据,此时我想讲这份数据导入到我自己数据库中,这样我自己也可以随时查看并做修改。文件存放的目录为:D:网管版本包
3.1缺少指定导入用户参数
懒得用工具了,我就随手打开命令端口输入:
结果导入失败 生成相应的日志文件,内容如下:
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0Production With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入.正在将 SYSTEM 的对象导入到 SYSTEM.正在将 UEP 的对象导入到 UEP IMP-00003: 遇到 ORACLE 错误 1435 ORA-01435: 用户不存在成功终止导入, 但出现警告。
这个时候我真郁闷,开始我怀疑命令错误了,可是这个命令自己早已经乱熟于心了。不过我还是进入D:NetNumenums-svrtoolsoraEIPT打开了网管软件里面提供的工具,我用UltraEdit-32 软件打开run.bat,先讲这个工具里代码的调用关系理清然后找到导入文件那一段代码:
通过代码也坚定了我的命令内容,格式的正确性。(如果有兴趣的兄弟可以把那些工具都打开然后仔细地看看里面的内容,其实还蛮有意思)
3.3 真相大白
排除了命令的原因之后,实在想不到还有什么问题。无奈之下给黄建军总共发了一封邮件,说了一下情况,还是人家黄总猛啊,我问题一说黄总马上就答复我了:
黄总一说我也顿时明白了,我刚装的数据库里面还没有和网管匹配的表结构,这样导入数据时数据就不知道在数据口中如何的分布。在这里黄总还提到了一点数据库版本有对上号,oracle 10g的数据和oracle 9i的数据就不能兼容。此外还要考虑到网关版本的问题,不同的网管版本其表结构也不一样,因此在数据导入的时候一定要注意到这点。
余下的安装omm服务器就没什么好说的了,然后再次导入之后果然成功了。
4.查看数据库
安装完数据库之后,我自然没有忘记我的初衷(根据网管配置数据再查看相应的数据库表)。在这里向大家介绍一款工具,PLSQL Developer,这款工具是数据库开发者的最爱,里面有图形化的操作界面,可以图形化进行创建,插入,删除等操作,十分方便。由于大学中我经常用这个工具因此一切轻车熟路。
进去之后,直接点开索引寻找库里的表:
然而貌似没有我在参数字典上看到的那些熟悉的表名,问了研发部的一个哥们,才知道自己犯了多么愚蠢的一个错误。在网管软件中我们所有的配置数据都在数据库中的uep用户下保存(此时我才真正明白了uep的含义,同时也明白了为什么导出数据的时候都是导出uep用户的),而所有告警信息都存放在trns_pm 用户下。明白了这点,我马上在网管的相关属性文件里找到了这两个用户的密码:
trns_pmtrnspm uepu_tywg_2008
后面的事情就没什么好说的了。呵呵
4.经验总结
上面遇到的这些问题如果大家都用脚本运行的话,估计都不会出什么错误,但是我认为作为一个高级技术支持人员还是要对一些东西理解的清晰一点,通过发现问题----思索问题---定位问题----解决问题 这个过程我增强了自己对系统的理解,并提高了自己的动手以及解决问题的能力。