Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)

时间:2021-08-13 08:31:21

这两天学习《OCP/OCA认证考试指南》,要创建新的数据库,因为此前我的电脑上已经被折腾了好久的Mysql 和oracle10g ,所以可能导致很多环境都变了,创建数据库的过程中出现了一些小问题,也是搞了好久才搞定,下面记录一下遇到的两个大问题吧。

1. 监听端口 

oracle默认的监听端口是本机的1521,这个我们用默认就好了。但是我不太清楚是不是因为我之前就已经在用了这个端口,所以在创建新的数据库的时候遇到这样的提示错误

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)

于是我再次运行Net Configuration Assistant时这个1521的监听端口明明是好好的,当时还不知道是需要手动启用并且在net Manager中进行配置。后来索性就重新删除了这个监听端口。想要重新建立监听端口的时候提示我1521端口已经被占用了,我就抓狂了,于是去网上搜查看监听端口的命令。

1. 在运行中输入 cmd 打开命令行工具

2. 输入 netstat -ano 

这个命令之后,你能看到本机上所有端口以及占用当前端口的进程的PID号:

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)

3. 找到PID后,接着输入tasklist|findstr 3476 

就可以得到这个PID对应的进程的名字了,如果没有什么很复杂的改动端口的操作的话,这个1521的端口基本是被TNSLSNR.exe占用的,然后我就索性把这个进程给强制关掉了,然后重新在net configuration Assistant 中重新配置,这下1521端口监听起来了,没有问题了。其实我就是强迫症想要重头再弄一边,感觉应该是没有必要的,关键步骤不在这里。

2. DB control requires database to be registered with atleast one listener

然后我就回到创建数据库的过程中,继续执行enterprise manager的安装时,仍旧弹出错误提示,不过这下提示换了:

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)

这个图是盗的,不过弹出的对话框是一样,从提示中可以看到,提示我们当前的database没有被注册到至少一个listener上,既然我们的linstener已经是ok的了,那就不是Net CA的问题了,于是继续google,找到了下面的解决办法,我也是误打误撞的,因为书里面根本没有写这些步骤。

1. 在cmd中运行下面的命令:lsnrctl  成功之后接着运行 status 可以查看listener的状态,我的运行出来以后是下面的界面:

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)


可以看到这里并没有我们的数据库是实例,所以接下来需要把之前创建半成功(为什么叫半成功,因为enterprise manager总是失败啊,我们现在就在解决这个问题)的db关联到listener上。

2. 打开Net Manager

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)

注意最顶上有个不是特别容易发现的下拉框,然后选中数据库服务,如果你和我一样没有配置,这里面应该是空的,选择下面的添加数据库,把相应的名称,SID和主目录添加进去,这里如果你和我一样按照OCP/COA那本书中介绍的话,名称应该也是ocp11g,那个目录因人而异了,不太清楚的重新读一下那本数中讲解的创建数据库的步骤,应该就ok了。

3. 好了,这个步骤完成之后,回到cmd窗口中,运行reload命令,再重新查看stauts,就会得到下面的界面:

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)


看到了吧,在最下面,服务ocp11g中包含了1个实例了,这样证明我们的db已经添加到1521上面的listener中去了。


到这里就大功告成了,返回你的DBCA中继续进行db的创建吧,这里应该就不会再弹出什么幺蛾子了。。。一直到创建成功的界面弹出,大喊一声 FINALLY!

Oracle11g 创建数据库中问题处理(必须运行Netca以配置监听程序)

恩,是的,这个图还是盗的,因为我的已经建立成功了,当时没有截图,反正就是这个界面,会告诉我们一个database control URL,据说这个URL很重要,要记号。。。