• oracle数据文件迁移


    这篇文章是从网络上获取的,然后根据内容一步步操作,
    1、目前的疑问:移动日志文件的时候,为何要先进行切换?
    2、move操作后,再进行rename操作的原理
    -----------------------------------------
    环境: WinXP SP3Oracle10gR2
    数据文件,控制文件和日志文件原路径在:"C:ora10gBaseoradataoy",
    现在要将它们迁移至“D:D_Oracle_DBF”中。具体操作如下:
     
    数据文件迁移:
    SQL> select name from v$datafile;
    NAME
    -----------------------------------------
    C:ORA10GBASEORADATAOYSYSTEM01.DBF
    C:ORA10GBASEORADATAOYUNDOTBS01.DBF
    C:ORA10GBASEORADATAOYSYSAUX01.DBF
    C:ORA10GBASEORADATAOYUSERS01.DBF
    C:ORA10GBASEORADATAOYEXAMPLE01.DBF
    D:D_ORACLE_DBFEXAMPLE02.DBF
    D:D_ORACLE_DBFSYSAUX02.DBF
    D:D_ORACLE_DBFSYSTEM02.DBF
    D:D_ORACLE_DBFUNDOTBS02.DBF
    D:D_ORACLE_DBFUSERS02.DBF
    已选择10行。
    SQL> shutdown
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
     
    (以下的$move命令 应该等同于操作系统的剪切粘贴命令)
    SQL> $move C:ORA10GBASEORADATAOYSYSTEM01.DBF D:D_ORACLE_DBFSYSTEM01.DBF
    SQL> $move C:ORA10GBASEORADATAOYSYSAUX01.DBF D:D_ORACLE_DBFSYSAUX01.DBF
    SQL> $move C:ORA10GBASEORADATAOYUNDOTBS01.DBF D:D_ORACLE_DBFUNDOTBS01.DBF
    SQL> $move C:ORA10GBASEORADATAOYUSERS01.DBF D:D_ORACLE_DBFUSERS01.DBF
    SQL> $move C:ORA10GBASEORADATAOYEXAMPLE01.DBF D:D_ORACLE_DBFEXAMPLE01.DBF
    SQL> startup mount
    ORACLE 例程已经启动。
    Total System Global Area  209715200 bytes
    Fixed Size                  1248140 bytes
    Variable Size              92275828 bytes
    Database Buffers          113246208 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
     
    SQL>  alter database
      2   rename file
      3   'C:ORA10GBASEORADATAOYSYSTEM01.DBF',
      4   'C:ORA10GBASEORADATAOYSYSAUX01.DBF',
      5   'C:ORA10GBASEORADATAOYUNDOTBS01.DBF',
      6   'C:ORA10GBASEORADATAOYUSERS01.DBF',
      7   'C:ORA10GBASEORADATAOYEXAMPLE01.DBF'
      8   to
      9   'D:D_ORACLE_DBFSYSTEM01.DBF',
     10   'D:D_ORACLE_DBFSYSAUX01.DBF',
     11   'D:D_ORACLE_DBFUNDOTBS01.DBF',
     12   'D:D_ORACLE_DBFUSERS01.DBF',
     13   'D:D_ORACLE_DBFEXAMPLE01.DBF';
    数据库已更改。
     
    SQL> alter database open;
    数据库已更改。
    SQL> select name,status from v$datafile;
    NAME                                                         STATUS
    ------------------------------------------------------------ -------
    D:D_ORACLE_DBFSYSTEM01.DBF                                 SYSTEM
    D:D_ORACLE_DBFUNDOTBS01.DBF                                ONLINE
    D:D_ORACLE_DBFSYSAUX01.DBF                                 ONLINE
    D:D_ORACLE_DBFUSERS01.DBF                                  ONLINE
    D:D_ORACLE_DBFEXAMPLE01.DBF                                ONLINE
    D:D_ORACLE_DBFEXAMPLE02.DBF                                ONLINE
    D:D_ORACLE_DBFSYSAUX02.DBF                                 ONLINE
    D:D_ORACLE_DBFSYSTEM02.DBF                                 SYSTEM
    D:D_ORACLE_DBFUNDOTBS02.DBF                                ONLINE
    D:D_ORACLE_DBFUSERS02.DBF                                  ONLINE
    已选择10行。
     
    日志文件迁移
    SQL> select * from v$log;
        GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS    FIRST_CHANGE# FIRST_TIME
    -------- ------- ---------- ---------- ---------- --- --------- ------------- --------------
           1       1          5   52428800          1 NO  CURRENT          618740 27-4月 -11
           2       1          3   52428800          1 NO  INACTIVE         572830 26-4月 -11
           3       1          4   52428800          1 NO  INACTIVE         598395 27-4月 -11
     
    SQL> col type format a10
    SQL> col IS_RECOVERY_DEST_FILE format a10
    SQL> col member format a50
    SQL> select * from v$logfile;
        GROUP# STATUS   TYPE       MEMBER                                   IS_RECOVER
    ---------- -------- ---------- ---------------------------------------- ----------
    ########## STALE    ONLINE     C:ORA10GBASEORADATAOYREDO03.LOG      NO
    ########## STALE    ONLINE     C:ORA10GBASEORADATAOYREDO02.LOG      NO
    ##########          ONLINE     C:ORA10GBASEORADATAOYREDO01.LOG      NO
     
    SQL> alter system switch logfile;
    系统已更改。
    SQL> shutdown
    数据库已经关闭。
    已经卸载数据库。
    ORACLE 例程已经关闭。
    SQL> $ move C:ora10gBaseoradataoyREDO01.LOG  D:D_Oracle_DBFREDO01.LOG
    SQL> $ move C:ora10gBaseoradataoyREDO02.LOG  D:D_Oracle_DBFREDO02.LOG
    SQL> $ move C:ora10gBaseoradataoyREDO03.LOG  D:D_Oracle_DBFREDO03.LOG
    SQL> startup mount
    ORACLE 例程已经启动。
    Total System Global Area  209715200 bytes
    Fixed Size                  1248140 bytes
    Variable Size              92275828 bytes
    Database Buffers          113246208 bytes
    Redo Buffers                2945024 bytes
    数据库装载完毕。
     
    SQL> alter database
      2  rename file
      3  'C:ora10gBaseoradataoyREDO01.LOG',
      4  'C:ora10gBaseoradataoyREDO02.LOG',
      5  'C:ora10gBaseoradataoyREDO03.LOG'
      6  to
      7  'D:D_Oracle_DBFREDO01.LOG',
      8  'D:D_Oracle_DBFREDO02.LOG',
      9  'D:D_Oracle_DBFREDO03.LOG';
    数据库已更改。
    SQL> alter database open;
    数据库已更改。
    SQL> alter system switch logfile;
    系统已更改。
     
    控制文件迁移
     
     
    将数据库SHUTDOWN,然后修改pfile中的控制文件的路径,以pfile文件启动数据库,
    然后create spfile from pfile.最后以spfile启动数据库即可。
    SQL> create spfile from pfile='D:xxxxpfileinit.ora.2162010162124';
     
    -----------------------------
     
    此外,其他移动数据文件的方法(在数据库启动归档的情况下,可以开机迁移,还未测试是否正确):
     
    移动Oracle数据库表空间文件
     
    目的:把oracle表空间文件从一个地方移动到另外一个地方。
     
    详细操作步骤:
     
    第一、启用介质恢复模式:
    A、Shutdown immdiate;
    B、Startup mount;
    C、Alter database archivelog;
    D、Alter database open;
     
    第二、卸载表空间:
    A、Alter tablespace 表空间名字 offline;(注:如果为非归档模式后面加Drop);
     
    第三、在操作系统下移动文件到新位置。
     
    第四、告诉表空间数据文件已经移动:
    A、Alter database rename file '原文件路径' to '新文件路径';
     
    第五、装载表空间:
    A、Alter tablespace 表空间名字 online;
     
    第六、关闭数据库:
    A、Shutdown;
     
    第七、启动数据库:
    A、Startup force;
     
    Oracle数据库表空间文件移动成功。
  • 相关阅读:
    C#学习(五)- 正则表达式等
    C#学习(四)
    C#学习(三)
    C#学习(二)
    终于装好了VS2013,开始!(一)
    简短的开始,C#学习分享地。
    java虚拟机之虚拟机类加载机制
    在用mybatis向MySQL数据库中插入时间时报错:Incorrect datetime value: '' for column '' at row 1
    什么是高并发 ,一些常见的处理方式
    基本类型和引用类型的区别
  • 原文地址:https://www.cnblogs.com/sddychj/p/4724427.html
Copyright © 2020-2023  润新知