如何修改数据库实例及数据库名

一、修改实例:

将原参数文件重命名即可


即原实例为orcl,原参数文件为spfileorcl.ora,则将其改为实例为credit的参数文件,即spfilecredit.ora

可以通过命令

SQL>create pfile='/home/dbs/pfilecredit.ora' from spfile='/home/dbs/spfileorcl.ora';

先创建一个pfie文件,然后通过命令

>create spfile from pfile

创建一个spfilecredit.ora的文件


二、修改数据库名


可以通过oracle的内部nid命令进行修改,此命令在$ORACLE_HOME/dbs/bin目录下

现将参数文件中的db_name参数修改到目标数据库名

>alter system set db_name=credit scpoe =both;

>shutdown immediate;

>startup mount

>! nid target=sys/123456 db_name=credit

Change database ID and database name zhuzerp to CREDIT? (Y/[N]) =》y

>
shutdown immedaite

>startup

>select name from v$database;

>select instance_name from v$instance;


-----------------------------------------------------------------------------------------------------------------------------------------------------------

另附参考:转自http://www.codesky.net/article/201202/166712.html

1.用oracle自带的工具nid改数据库名

    在本例中,假设原来的数据库名为test,要改成testdb,原实例名(service_name,instance_name)test,要改成testdb.

    nid是自带的工具,在oracle_home/bin目录中。以下方法假设登陆到数据库本机做。

    1.1 sqlplus “sys/password as sysdba”

    1.2 sql》shutdown immediate --先停掉数据库

    1.3 sql》startup mount --nid需要在mount状态下才能做。

    1.4sql》host nid target=sys/password dbname=new_dbname --nid是一个在操作系统下执行的命令,在sqlplus环境中用host 去调用操作系统环境下的命令。命令中,当你想将数据库名字改为TESTDB时,应写成dbname=testdb

    1.5执行后程序会询问:

    Change database ID and database name TEST to TESTDB? (Y/[N]) =》y

    敲y确定。

    之后程序会对控制文件,数据文件进行修改:

    Control File C:ORACLEORADATATESTCONTROL01.CTL - modified

    Control File C:ORACLEORADATATESTCONTROL02.CTL - modified

    Control File C:ORACLEORADATATESTCONTROL03.CTL - modified

    Datafile C:ORACLEORADATATEST YSTEM01.DBF - dbid changed, wrote new name

    Datafile C:ORACLEORADATATESTUNDOTBS01.DBF - dbid changed, wrote new nam

    Datafile C:ORACLEORADATATESTINDX01.DBF - dbid changed, wrote new name

    Datafile C:ORACLEORADATATESTTOOLS01.DBF - dbid changed, wrote new name

    Datafile C:ORACLEORADATATESTUSERS01.DBF - dbid changed, wrote new name

    Datafile D:DATAFILEPORMALS_SPA.DBF - dbid changed, wrote new name

    Datafile C:ORACLEORADATATESTOEM_REPOSITORY.DBF - dbid changed, wrote ne

    name

    Datafile D:DATAFILEPORMALS_SPA_01.DBF - dbid changed, wrote new name

    Datafile C:ORACLEORADATATESTTEMP01.DBF - dbid changed, wrote new name

    Control File C:ORACLEORADATATESTCONTROL01.CTL - dbid changed, wrote new

    name

    Control File C:ORACLEORADATATESTCONTROL02.CTL - dbid changed, wrote new

    name

    Control File C:ORACLEORADATATESTCONTROL03.CTL - dbid changed, wrote new

    name

    Database name changed to TESTDB.

    Modify parameter file and generate a new password file before restarting.

    Database ID for database TESTDB changed to 2321050327.

    All previous backups and archived redo logs for this database are unusable.

    Shut down database and open with RESETLOGS option.

    Succesfully changed database name and ID.

    DBNEWID - Completed succesfully.

    1.6 停库再到mount状态下改db_name:

    sql》shutdown immediate;

    sql》startup mount

    sql》alter system set db_name=testdb scope=spfile;

    sql》shutdown immediate;

    1.7 重新创建sys的password文件:

    passwd文件通常放在oracle_home/database目录下,文件命名形式为PWDsid.ora,sid为实例名(Service_name),如当前的数据库名及service_name为test,则passwd文件为PWDtest.ora

    sql》host orapwd file=c:oracleora92databasepwdtest.ora password=123456 entries=5

    要注意一下,此时虽然数据库名已经改成testdb了,但instance_name还是test,所以,passwd文件必须跟以前一样。否则会出错。

    1.8 开启数据库:(要open resetlogs)

    sql》startup mount

    sql》alter database open resetlogs;

    1.9 检查:

    sql》select dbid,name from v$database;

    2.改好数据库名后,接着改instance_name

    2.1如果是windows系统,要先把所有的oracle服务先关闭,否则会出错。

    2.2先将原来的service_name删除:

    在操作系统中,进入cmd,

    oradim -delete -sid test

    2.3创建密码文件

    orapwd file=c:/oracle/ora92/database/pwdtestdb.ora password=。…entries=

    2.4创建一个新的sid,也就是你想改名的sid:

    oradim -new -sid testdb -intpwd 密码 -startmode a -pfile c:oracleora92databaseinittestdb.ora

    当数据库启动时,会在database目录中找spfile,如果spfile不在就找initSID.ora这个文件来顶。所以,可以把pfile直接创建在这里。方便数据库的启动。

    2.5 进入oracle并创建spfile:

    c: set oracle_sid=testdb

    c:sqlplus “sys/password as sysdba”

    sql》create spfile from pile=‘c:oracleora92databaseinittestdb.ora’;

    2.6 reload listener:

    c:lsnrctl reload

    2.7 open resetlogs:

    ====================================================

    ============改数据库名字==精简版================

    1.用oracle自带的工具nid改数据库名

    1.1 sqlplus “sys/zhuzerp as sysdba”

    1.2 sql》shutdown immediate

    1.3 sql》startup mount

    1.4 sql》host nid target=sys/zhuzerp dbname=ORCLERP

    1.5 Change database ID and database name zhuzerp to ORCLERP? (Y/[N]) =》y

    1.6 sql》shutdown immediate

    sql》startup mount

    sql》alter system set db_name=ORCLERP scope=spfile;

    sql》shutdown immediate

    1.7 重新创建sys的password文件

    host orapwd file=D:OracledatabasePWDzhuzerp.ora password=orclerp entries=5

    1.8 sql》startup mount

    sql》alter database open resetlogs;

    1.9 sql》select dbid,name from v$database;

    2.更改instance_name

    2.1 net stop oracleservicezhuzerp

    2.2 oradim -delete -sid zhuzerp

    2.3 orapwd file=D:OracledatabasePWDORCLERP.ora password=orclerp entries=5

    2.4 修改文件中的db_name和instance_name

    D:Oracleadmintestpfileinit.ora.8252009155525

    2.5 oradim -new -sid ORCLERP -intpwd orclerp -startmode a -pfile D:Oracleadminzhuzerppfileinit.ora

    2.6 set oracle_sid=orclerp

    2.7 sqlplus “sys/orclerp as sysdba”

    2.8 create spfile from pfile=‘D:Oracleadminzhuzerppfileinit.ora’;

    2.9 lsnrctl reload

    ====================================================

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29802484/viewspace-1383653/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29802484/viewspace-1383653/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值