Oracle同一台服务器创建多个数据库

有时候我们需要再同一台机器上创建多个数据库服务(不是单纯的数据库实例),每一个数据库可以有单独的服务运行,只是在一个机器环境而已。可以在不同的端口上监听,也可以在相同端口监听

创建多个数据库步骤

安装完Oracle数据库后,会自动安装很多工具,这里我们使用Database Configuration Assistant工具来创建数据库

按照提示一步步确定和填写信息即可,注意第三部填写自己要创建的数据库名称:

整个过程和第一次创建数据库一模一样,注意按需选择字符集、连接数等即可。

创建成功后,我们的呢服务列表services.msc中会自动运行刚才创建好的数据库服务,比如我这里刚才创建的名字叫looorcl:

连接指定数据库

  • 一般情况下,创建成功后,直接采用sqlplus去连接就行,只不过连接字符串改成上面刚新加的就行,比如:
    sqlplus sys/nhis@looOrcl as sysdba 我这里是本地所以没有制定ip
  • 如果连接时报错:ERROR:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
  1. 此时要检查,首先是否书写错误。确保你在连接时使用的服务名与 tnsnames.ora 文件中定义的服务名一致。

  2. 检查tnsnames.ora这个文件的配置,具体路径在创建数据库的时候已经有提示,不改动的话默认就是数据库目录的product\11.2.0\dbhome_1\NETWORK\ADMIN目录中,比如我的在D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora,文件内容中会多出一个节点,比如:

  3. 然后再查看 相同目录中的listener.ora文件,检查监听是否已经加入,也就是我们刚创建的数据库服务名称,是不是已经加入到文件,没有的话,可以手动填写,比如像我这样子:

  4. 重启监听
    lsnrctl stop
    lsnrctl start

    启动成功后重新连接即可,这样等于是相同的端口,监听了两个不同的数据库。我们打开Net Manager可以看到,我们监听了两个出具库服务

创建不同监听端口的数据库服务

只需在上面的Net Manager中删除刚新建的数据库配置,然后新加监听,重新制定数据库名和SID,重新指定一个端口即可。