1、
* 数据库名:用于区分数据库的内部标记,以二进制方式存储于数据库控制文件中,不能修改。
           参数文件PFILE中也存在此参数(DB_NAME)
* 实例名:用于和操作系统之间的联系(通过ORACLE_SID),
          存于参数文件PFILE中(instance_name),一个数据库可以存在多个实例
* 数据库域名与服务名:数据库名+域名=数据库域名 SERVICE_NAMES 

解决方案 »

  1.   

    你用net configuration assistant 改的服务名不是数据库的SERVICE_NAMES ,而是客户端连接服务器的服务名,保存在tnsnames.ora文件中。
      

  2.   

    在客户端必须通过在tnsnames.ora中配置的连接来访问服务器
    而在服务器端可以不通过,而通过ORACLE_SID的环境变量来访问数据库
      

  3.   

    楼主上面所有的问题都是源于楼主没有搞懂ORACLE中实例名、服务名的关系我就不一一解释了,相信楼主看了以下应该就会明白。
    Oracle的实例(SID)是ORACLE在WINDOWS操作系统当中代表数据库的一个进程(在WINDOWS的服务中体现),唯一标识一个数据库。好像LINUX和UNIX就没有,Windows中服务OracleServiceORACLE9代表了当前有一个实例被安装一个机器上可以安装多个数据库,即一个机器上可以有多个实例被启动。一般情况下实例名与数据库名相同这样便于标识。
    一个数据库可以有多个实例来管理(双机系统),但一个实例只能管理一个数据库,
    很多人经常会把实例名和服务名搞混,事实上服务名包含实例名和主机IP的,是对外连接的一个名称
    比如:ORACLE数据库实例名为oracle9,那么它的服务名可以任意定义dbserver、oracle9、mydb等
    实例名一但确定下来之后就不能再改了,但服务名可以根据需要随时修改。
      

  4.   

    你可以使用Net Configure Assistent进行增加.你也可以使用Net Configure Management进行管理.而Sid是定的,而网络号是可以变更的.
      

  5.   

    2、用户名密码有错
    3、tnsnames.ora没有配置orcl
    4、sys登陆采用操作系统认证方式,登陆操作系统后不用密码即可以SYSDBA登陆数据库
    5、Listener用来监听客户端的连接请求
      

  6.   

    oracle enterprise manager登录时,那个服务名我也不知道是怎么来的,怎么默认的是orcldb,而且是灰显的。
    数据库的SERVICE_NAMES 是什么时候设定的,这个可以改吗?