• How To Change Database Name


     


    How To Change Database Name

    前言:
    数据库的名字是在Create Database时,就已经由init.oradb_name的参数决定了。一台Server上,数据库的名字必须是独一的,它可以与Instance_name相同或不同,但是为了方便管理,通常建议将这两个参数,设为相同的值。 若在数据库建立后,需要变更数据库的名字时,则需要重新建立control file,因为数据库的名字存放在control file中。不过control file是数据库中相当重要的档案,因此在对数据库重新命名时,必须相当的小心,以免毁损数据库。

    步骤:

     

    A. 产生数据库Control fileTrace file

    C:\sqlplus system/manager
    SQL>select name from v$database;
    (确定联机的数据库为欲更名的数据库)
    Name
    -------------------------
    FRANK
    SQL>Alter database backup controlfile to trace resetlogs;

    将目前数据库的control file备份成文字文件到User_Dump_Dest参数所设定的路径。

    SQL>show parameter user_dump_dest;

    Name

    Type

    Value

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

    user_dump_dest

    string

    C:\oracle\admin\Frank\udump

    Trace file产生在C:\oracle\admin\Frank\udump

    SQL>host dir C:\oracle\admin\Frank\udump

    磁盘区 C 中的磁盘没有卷标。
    磁盘区序号: 08F8-D0AC
    目录: C:\oracle\admin\Frank\udump

    2001/09/03 11:51a

     

    .

    2001/09/03 11:51a

     

    ..

    2001/07/26 11:02p

     

    73,858 ORA01372.TRC

    2001/09/03 12:06p

     

    4,612 ORA01640.TRC

    2001/09/03 12:11p

     

    1,785 ORA01968.TRC

     

    3 个档案

    80,255 字节

     

    2 个目录

    3,428,466,688 字节可用

    这里出现三个trace file,那一个才是我们要的trace file

    SQL>select spid from v$process where
    addr=(select paddr from v$session where
    sid=(select distinct sid from v$mystat));
    SPID
    ---------
    1968

    因此我们得知ORA01968.TRC为我们这个server process所写的trace file
    SQL>exit(离开sqlplus环境,准备将trace file改成数据库更名的script)

     

    B. 产生数据库更名的script

    C:\notepad oracle\admin\frank\udump\ORA01968.TRC
    利用任一文字编辑器修改

    1. startup nomount这行以上都删除。
    2. REUSEDATABASE这两个关键词之间,加入SET这关键词。并将"FRANK"改成新的数据库名字即可。
    3. 删去RECOVER DATABASE USING BACKUP CONTROLFILE这行,保留其它行的内容。
    4. 删除所有以#开始的行。
    5. 将此档案另存为renamedb.sql

     

    C. 修改initfrank.ora(parameter file)

    C:\notepad c:\oracle\admin\frank\pfile\init.ora
    利用任一文字编辑器修改


    db_name=FRANK改成db_name=Newname

     

    D. 备份数据库

    SQL>shutdown immediate;
    SQL>exit;

    请进行Whole Database Backup

     

    E. 执行数据库更名的script

    C:\sqlplus /nolog
    SQL>connect / as sysdba or connect sys/password as sysdba
    SQL>@c:\oracle\admin\frank\udump\renamedb.sql

    已启动 ORACLE 执行项次

    Total System Global Area

    68991004 bytes

    Fixed Size

    75804 bytes

    Variable Size

    20365312 bytes

    Database Buffers

    48472064 bytes

    Redo Buffers

    77824 bytes

    控制檔已被建立
    数据库已被更改
    SQL>select name from v$database;
    Name
    ------------
    Newname

     

    F. 这时数据库已经更名成功

    因为数据库已经resetlogs,所以之前的备份已经不能使用,请立刻进行Closed Backup

    结论:
    以上为将数据库重新命名的步骤,当然还有许多的情况无法一一详述,不过这已包含大多数的情况。通常这个动作,主要是一开始数据库名字没取好,或者想利用OS Backup所产生的档案,在同一Server建立另一个数据库。

  • 相关阅读:
    [UVA1149]Dominating Patterns
    [HDOJ1358]Period
    [HDOJ3065]病毒侵袭持续中
    【RQNOJ356】myt的格斗
    【rqnoj39】 饮食问题
    【rqnoj28】[Stupid]愚蠢的宠物
    【rqnoj378】 约会计划
    layer弹框在实际项目中的一些应用
    layer弹框在实际项目中的一些应用
    移动开发之css3实现背景几种渐变效果
  • 原文地址:https://www.cnblogs.com/jimeper/p/577912.html
Copyright © 2020-2023  润新知