zoukankan      html  css  js  c++  java
  • 修改ORACLE实例名

    修改数据库的SID  

    举例说明,我的数据库的SID叫testdb,现在要改成oral.更改ORACLE数据库的sid,涉及到的用东西比较多,但是大概来说就以下六步

    1、停止所有的Oracle服务。 
    2、修改initSID.ora文件,修改instance_name为新的SID 
    3、修改注册表的ORACLE_SID 
    4、修改listener.ora中的SID_NAME 
    5、oradim删除原来SID的服务,添加新SID的服务 
    6、orapwd生成新SID的口令 

    下面我详细的解释一下

    1、 停止所有的Oracle服务。 
    这个没有什么好解释的,根据你的oracle 安装的不同 
    包括数据库的服务,监听器等等

    2、修改initSID.ora文件,修改instance_name为新的SID 

    找到你的初始化参数文件,里面有下面的一下参数
    db_name = "testdb" 
    instance_name = testdbl 
    service_names = testdb 

    改成 
    db_name = "testdb" 
    instance_name = oral 
    service_names = oral 

    注意,db_name不要改,因为我们的数据库还是叫testdb,但是它的服务也就是sid,改成oral,否则会报错.修改之后,保存好这个文件 

    3、修改注册表的ORACLE_SID 

    在注册表的local machine 下面的software下面,找到oracle 的hom0主键,下面有个参数,叫做ORACLE_SID,改成oral 记住,只改这一个.其他的不用改了,比方说服务.等等,否则会报错

    4、修改listener.ora中的SID_NAME 

    SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
    (SID_NAME = PLSExtProc) 
    (ORACLE_HOME = E:oracleora81) 
    (PROGRAM = extproc) 

    (SID_DESC = 
    (GLOBAL_DBNAME = testdb) 
    (ORACLE_HOME = E:oracleora81) 
    (SID_NAME = oral) 



    把里面的SID_NAME 给成oral,如上面的例子所表示

    5、oradim删除原来SID的服务,添加新SID的服务 

    这步比较复杂,涉及到oradim命令的用法.下面我简单的介绍一下它 的用法 

    创建例程: 
    -NEW -SID sid | -SRVC 服务 [-INTPWD 口令] [-MAXUSERS 数量] [-STARTMODE a|m] [-PFILE 文件] [-TIMEOUT秒
    编辑例程: 
    -EDIT -SID sid [-NEWSID sid] [-INTPWD 口令] [-STARTMODE auto|manual] [-PFILE 文件名] [-SHUTMODE a|i|n] 
    [-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT 秒
    删除例程: 
    -DELETE -SID sid | -SRVC 服务名称 
    启动服务和例程: 
    -STARTUP -SID sid [-USRPWD 口令] [-STARTTYPE srvc|inst|srvc,inst] [-PFILE 文件名
    关闭服务和例程: 
    -SHUTDOWN -SID sid [-USRPWD 口令] [-SHUTTYPE srvc|inst|srvc,inst] [-SHUTMODE a | i | n] 
    查询帮助: 
    -? | -h | -help 
    -SID sid 
    指定要启动的实例名称 
    -SRVC 服务 
    指定要启动的服务名称 
    -USRPWD 口令 
    指定内部用户的口令,如果作为NT管理员登录,不用此参数 
    -PFILE 文件名 
    为实例指明初始化参数文件,如果参数文件在Oracle的默认位置,则不需要此命令 
    -STARTTYPE srvc|inst|srvc,inst 
    表示要启动什么 
    srvc————只启动服务 
    inst————启动实例,服务必须已经启动并开始工作了 
    srvc,inst —服务和实例都启动 

    -SHUTTYPE srvc|inst|srvc,inst 
    表示要终止什么,参数选项同上 
    -STARTMODE a|m 
    表示启动实例所使用的模式 
    a————auto方式(自动) 
    m————manual方式(手动) 
    -SHUTMODE a|i|n 
    表示终止实例所使用的关闭模式 
    a————abort方式 
    i————immediate方式 
    n————normal方式 
    例子: 
    在服务里生成一个新的实例管理服务,启动方式为手工 
    oradim -NEW -SID test -STARTMODE manual -PFILE "D:Oracleadmin estpfileinittest.ora 
    oradim -NEW -SRVC OracleServicetest -STARTMODE manual -PFILE "D:Oracleadmin estpfileinittest.ora 
    注:有效的服务名为 “OracleService” 后跟“ SID” 
    -SID test 与 -SRVC OracleServicetest 等价 
    删除此实例或服务 
    oradim -DELETE -SID test 
    oradim -DELETE -SRVC OracleServicetest 
    编辑此实例,启动方式改为手动 
    oradim -EDIT -SID test -STARTMODE manual 
    编辑此实例,启动方式改为自动 
    oradim -EDIT -SID test -STARTMODE auto 
    启动test 
    oradim -STARTUP -SID test 
    oradim -STARTUP -SID test -STARTTYPE srvc,inst 
    只启动test服务 
    oradim -STARTUP -SID test -STARTTYPE srvc 
    只启动test实例 
    oradim -STARTUP -SID test -STARTTYPE inst 
    关闭test 
    oradim -SHUTDOWN -SID test 
    oradim -SHUTDOWN -SID test -SHUTTYPE srvc,inst 


    testdb中 
    我们使用 
    oradim –DELETE –SID testdb 
    删除了testdb 实例 
    然后 
    oradim –NEW –SID oral 
    添加新的实例 
    注意,这个命令,可以写到控制文件和注册表的服务里面,我更改后,可以看到在服务里面,服务名称已经改过来了
    但是这个时候还是不可以登录到oracle.提示为权限不足


    6、orapwd生成新SID的口令 
    具体的orapwd,我想大家都知道了,要创建一个密码文件就要用它,至于为什么我们需要重新创建密码文件,我还不是很清楚,等我弄清楚了之后,我会把更新我的文档

    需要注意的是,生成的密码文件,一定要保存到orale homedatabase下面 
    而且密码文件的名字一定要PWDsid.ora 
    具体的为什么我还不是很清楚

    好了.现在你可以通知你的客户端,把他们的tnsname.ora中的 
    SZ = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.47.0.1)(PORT = 1521)) 

    (CONNECT_DATA = 
    (SERVICE_NAME = oral) 


    service_name 都改成oral ,就可以用了

  • 相关阅读:
    选择排序
    冒泡排序
    排序介绍
    如何在服务器搭建JavaWeb项目环境(阿里轻量级)
    SSM整合配置文件
    如何删干净MySQL数据库
    spring概述
    Git简单命令
    第六天——读操作(二)
    第六天——文件操作(一)
  • 原文地址:https://www.cnblogs.com/Venom/p/3934487.html
Copyright © 2011-2022 走看看