公司项目大部分用的oracle数据库,用了一年多也遇到过许多问题,一直想记录下,最近抽空来写下这一系列。首先是oracle有许多的版本,包括10g、11g以及最新的12c系列,安装在不同得操作系统上对各种硬件也有要求。本文以常见的11gR2为例,oracle分为服务端和客户端,打开oracle安装包双击steup.exe运行程序,oracle首先会检查电脑系统参数,完成后一般会出现如下画面:
出现这种界面一般点击是继续安装也是没有问题的,如果想下次安装是不弹出该界面可以修改对应安装程序配置,在解压后的Oracle安装文件目录中,找到 stage\cvu\cvu_prereq.xml 文件,用记事本打开:
我们可以看到11gr2配置的系统版本最新为win7和server2008,所以使用win10或者server2012安装时会给出响应的条件不满足提示,
我们可以找到value=windows 7的OPERATING_SYSTEM段,复制整段,并修改Release = 6.2, value = windows 10;如下:
<OPERATING_SYSTEM RELEASE="6.2">
<VERSION VALUE="3"/>
<ARCHITECTURE VALUE="64-bit"/>
<NAME VALUE="Windows 10"/>
<ENV_VAR_LIST>
<ENV_VAR NAME="PATH" MAX_LENGTH="1023" />
</ENV_VAR_LIST>
</OPERATING_SYSTEM>
其他系统类似,保存后安装就没有这个提示了。
oracle11g的具体安装过程可以参考:Oracle11G r2数据库安装配置详细步骤_千铭丶博客-CSDN博客_oracle11g安装步骤
oracle12c的具体安装过程可以参考:Oracle12cWindows安装、介绍及简单使用(图文) - itcui - 博客园
如果有两个安装包,可以将两个同时解压到一个database文件夹内合并,也可以用一个覆盖另一个,本质上就是将winx64_12102_database_2of2文件夹中database\stage\components目录下的所有文件夹,复制到winx64_12102_database_1of2文件夹中的database\stage\components目录中,然后打开 winx64_12102_database_1of2文件夹点击setup.exe安装。
常见的问题还有在遇到服务器创建数据库实例的时候卡在有可能是服务器核数太多的原因(16),也有可能是上面单独安装导致文件夹缺失,可以修改服务器设置。遇到的其他问题可以参考:在云服务器windows server 2008 R2上安装ORACLE11g遇到的一些问题以及解决方式_建站教程_华仔部落_个人博客。
需要注意的是oracle管理口令是配置system用户登陆的,默认密码为(manager),而sys用户具有最高权限(默认密码change_on_install),可以以sysdba和sysoper角色登陆,
oracle提供了web管理数据库界面,地址为:https://localhost:1158/em/,需要注意的是在口令管理中sysman用户是跟EM资料档案库有关的,而DBSNMP用户是跟database control服务有关的,
最近打算使用oem(oracle enterprise manager)来管理数据库,结果发现登陆不上去,折腾了好久才解决,首先打开浏览器登陆em管理后,提示如下问题:
百度参考了正确修改 sysman 用户的密码 - 无双的小宝 - 博客园和EM无法登录,提示ORA-28001: the password has expired (DBD ERROR: OCISessionBegin) - 凡轩之 - 博客园这两篇博文,采用了第一种方案,结果重启后又出现
当然我的监听程序是绿色正常的,oracle主服务也是正常的,不然就要重启监听了,百度了多种方案,
参考了如下博文:【oracle】Enterprise Manager 无法连接到数据库实例。下面列出了组件的状态---个人解决方案 - gegeman - 博客园或者Oracle:Enterprise Manager 无法连接到数据库实例。下面列出了组件的状态。 以及 Oracle11g OracleDBConsoleorcl服务无法启动问题 - 黑泽君 - 博客园。
试着重装了EM,中间出了许多问题,最后发现dbconsole服务也启动不了,想了下又试了几次,重启电脑后有一次成功了,具体过程如下:
首先以管理员身份打开cmd,使用emtcl工具对服务进行操作:查看服务emctl status dbconsole,启动服务:emctl start dbconsole,停止服务emctl stop dbconsole,
推测因为安装了客户端等多个oracle软件或者服务损坏环境原因报了许多异常,设置了对应变量进入emca步骤:
开始重装,首先删除原有资料档案库(必要时删除dbcontrol配置):emca -repos drop,emca -deconfig dbcontrol db,两者可以直接写成emca -deconfig dbcontrol db -repos drop,
dbcontrol删除配置失败,这是因为有些数据没有清理,可以打开sqlplus执行如下命令:
(感谢这篇博主,我先前一直删除不干净:手动方式重建oracle的EM - myLittleGarden - 博客园)
如下sql可以通过该连接下载:oracle重装EM档案库dbcon服务命令-Oracle文档类资源-CSDN下载
删除成功后dbcontrol配置也就删除了,接下来就可以重装了,使用emca -repos create安装资料库,系统会创建sysman用户表,然后使用emca -config dbcontrol db来
配置dbconsole服务,两者可以写成emca -config dbcontrol db -repos create,安装启动成功。
还有就是有的小伙伴看服务也是正常的结果打开网页后进入不了管理界面,这是因为重装后对应的端口地址发生变化,
如上图所示,我的变成了https://localhost:5501/em(第一次装成功后没发现进入不了又重装了一次),上面这些命令也可以写成:
emca -config dbcontrol db -repos recreate,但不一定成功,这是因为通过手动或者dbca来删除不一定能删除干净导致重装失败,
具体错误一般就是sysman用户或者配置没删除干净还存在,可以查看对应日志解决,还有端口可以通过如下命令修改:
首先停止oem:emctl stop dbconsole,然后:emca -reconfig ports -DBCONTROL_HTTP_PORT 1158,这样就完成了。