这篇文章是从网络上获取的,然后根据内容一步步操作,
1、目前的疑问:移动日志文件的时候,为何要先进行切换?
2、move操作后,再进行rename操作的原理
-----------------------------------------
环境: WinXP SP3\Oracle10gR2
数据文件,控制文件和日志文件原路径在:"C:\ora10gBase\oradata\oy",
现在要将它们迁移至“D:\D_Oracle_DBF”中。具体操作如下:
数据文件迁移:
SQL> select name from v$datafile;
NAME
-----------------------------------------
C:\ORA10GBASE\ORADATA\OY\SYSTEM01.DBF
C:\ORA10GBASE\ORADATA\OY\UNDOTBS01.DBF
C:\ORA10GBASE\ORADATA\OY\SYSAUX01.DBF
C:\ORA10GBASE\ORADATA\OY\USERS01.DBF
C:\ORA10GBASE\ORADATA\OY\EXAMPLE01.DBF
D:\D_ORACLE_DBF\EXAMPLE02.DBF
D:\D_ORACLE_DBF\SYSAUX02.DBF
D:\D_ORACLE_DBF\SYSTEM02.DBF
D:\D_ORACLE_DBF\UNDOTBS02.DBF
D:\D_ORACLE_DBF\USERS02.DBF
已选择10行。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
(以下的$move命令 应该等同于操作系统的剪切粘贴命令)
SQL> $move C:\ORA10GBASE\ORADATA\OY\SYSTEM01.DBF D:\D_ORACLE_DBF\SYSTEM01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\SYSAUX01.DBF D:\D_ORACLE_DBF\SYSAUX01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\UNDOTBS01.DBF D:\D_ORACLE_DBF\UNDOTBS01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\USERS01.DBF D:\D_ORACLE_DBF\USERS01.DBF
SQL> $move C:\ORA10GBASE\ORADATA\OY\EXAMPLE01.DBF D:\D_ORACLE_DBF\EXAMPLE01.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:\ORA10GBASE\ORADATA\OY\SYSTEM01.DBF',
4 'C:\ORA10GBASE\ORADATA\OY\SYSAUX01.DBF',
5 'C:\ORA10GBASE\ORADATA\OY\UNDOTBS01.DBF',
6 'C:\ORA10GBASE\ORADATA\OY\USERS01.DBF',
7 'C:\ORA10GBASE\ORADATA\OY\EXAMPLE01.DBF'
8 to
9 'D:\D_ORACLE_DBF\SYSTEM01.DBF',
10 'D:\D_ORACLE_DBF\SYSAUX01.DBF',
11 'D:\D_ORACLE_DBF\UNDOTBS01.DBF',
12 'D:\D_ORACLE_DBF\USERS01.DBF',
13 'D:\D_ORACLE_DBF\EXAMPLE01.DBF';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> select name,status from v$datafile;
NAME STATUS
------------------------------------------------------------ -------
D:\D_ORACLE_DBF\SYSTEM01.DBF SYSTEM
D:\D_ORACLE_DBF\UNDOTBS01.DBF ONLINE
D:\D_ORACLE_DBF\SYSAUX01.DBF ONLINE
D:\D_ORACLE_DBF\USERS01.DBF ONLINE
D:\D_ORACLE_DBF\EXAMPLE01.DBF ONLINE
D:\D_ORACLE_DBF\EXAMPLE02.DBF ONLINE
D:\D_ORACLE_DBF\SYSAUX02.DBF ONLINE
D:\D_ORACLE_DBF\SYSTEM02.DBF SYSTEM
D:\D_ORACLE_DBF\UNDOTBS02.DBF ONLINE
D:\D_ORACLE_DBF\USERS02.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:\ORA10GBASE\ORADATA\OY\REDO03.LOG NO
########## STALE ONLINE C:\ORA10GBASE\ORADATA\OY\REDO02.LOG NO
########## ONLINE C:\ORA10GBASE\ORADATA\OY\REDO01.LOG NO
SQL> alter system switch logfile;
系统已更改。
SQL> shutdown
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> $ move C:\ora10gBase\oradata\oy\REDO01.LOG D:\D_Oracle_DBF\REDO01.LOG
SQL> $ move C:\ora10gBase\oradata\oy\REDO02.LOG D:\D_Oracle_DBF\REDO02.LOG
SQL> $ move C:\ora10gBase\oradata\oy\REDO03.LOG D:\D_Oracle_DBF\REDO03.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:\ora10gBase\oradata\oy\REDO01.LOG',
4 'C:\ora10gBase\oradata\oy\REDO02.LOG',
5 'C:\ora10gBase\oradata\oy\REDO03.LOG'
6 to
7 'D:\D_Oracle_DBF\REDO01.LOG',
8 'D:\D_Oracle_DBF\REDO02.LOG',
9 'D:\D_Oracle_DBF\REDO03.LOG';
数据库已更改。
SQL> alter database open;
数据库已更改。
SQL> alter system switch logfile;
系统已更改。
控制文件迁移
将数据库SHUTDOWN,然后修改pfile中的控制文件的路径,以pfile文件启动数据库,
然后create spfile from pfile.最后以spfile启动数据库即可。
SQL> create spfile from pfile='D:\xxxx\pfile\init.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数据库表空间文件移动成功。
- Oracle 数据文件迁移
背景 这两天做一个oracle数据库迁移,以前都是用exp.imp来走,这次用到了expdp.impdp,的确有些优势,但同时又想起了只是拷贝数据文件迁移的方式,其实这个方式不常用做迁移,更多用在磁盘 ...
- Oracle数据文件迁移到裸设备
本文主要描述如何将Oracle表空间的文件系统形式的数据文件迁移到LV裸设备上. 前提条件 1.oracle运行正常. 2.已使用LVM命令规划好LV文件.如/dev/vgoracle/lvdatat ...
- Oracle 10g DG 数据文件迁移
背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来. 环境:Oracle 10.2.0.5 DG 单机 首先 ...
- Oracle 11g Rac 用rman实现把本地数据文件迁移到ASM共享存储中
在Oracle Rac环境中,数据文件都是要存放在ASM共享存储上的,这样两个节点才能同时访问.而当你在某一节点下把数据文件创建在本地磁盘的时候,那么在另一节点上要访问该数据文件的时候就会报错,因为找 ...
- 收缩Oracle数据文件
最近有网友提到收缩Oracle数据文件的问题,这是DBA经常碰到的一个常见问题.通常我们需要收缩相应的数据文件以减少来自磁盘空间的压力以及提高数据库的整体性能.但这并非对于所有情形都是适用的,尤其是生 ...
- Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据
Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软 ...
- SqlServer:SqlServer(数据库备份,数据文件迁移,增加数据库文件组,递归查询一周报送情况,查询近X天未报送单位,截断数据库日志,复制单个或多个数据库表到另一个数据库 )
1.数据备份 ) ) ) )),'-','') ) SET @savePath = 'f:/DatabaseBackup/' DECLARE My_Cursor CURSOR FOR ( select ...
- 批量迁移Oracle数据文件,日志文件及控制文件
有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求.对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移.当 ...
- oracle之 RAC本地数据文件迁移至ASM
系统环境:CentOS release 6.7 (Final)Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit 操作过 ...
随机推荐
- 【hdu5306】 Gorgeous Sequence
http://acm.hdu.edu.cn/showproblem.php?pid=5306 (题目链接) 题意 区间取$min$操作,区间求和操作,区间求最值操作. Solution 乱搞一通竟然A ...
- 【洛谷P3600】 随机数生成器
https://www.luogu.org/problem/show?pid=3600#sub (题目链接) 题意 一个$n$个数的序列,里面每个数值域为$[1,X]$.给$q$个区间,每个区间的权值 ...
- Bash: about .bashrc, .bash_profile, .profile, /etc/profile, etc/bash.bashrc and others
Some interesting excerpts from the bash manpage:When bash is invoked as an interactive login shell, ...
- Java: |(或运算) 与 多选判断
今天需要在程序中做一个多选判断,突然想起以前经常遇到的 x |= y | z; 这样的,我也明白这个是多选的用意,但为什么能达到我们希望的多选操作,我还真的没去研究过. 今天早上,百度了一下,搜索到了 ...
- Linux中的Diff和Patch
本文主要记录两个命令的学习情况:diff 和 patch.diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上.在数学上说,diff就是对两个集 ...
- Quadratic.java
/****************************************************************************** * Compilation: javac ...
- Hadoop生态圈-Oozie部署实战
Hadoop生态圈-Oozie部署实战 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Oozie简介 1>.什么是Oozie Oozie英文翻译为:驯象人.一个基于工作流 ...
- JVM总结(二):垃圾回收器
这一节我们来总结一下JVM垃圾收集器方面的东西. 垃圾回收器 判断对象引用是否失效 对象生存判断算法 引用判断过程 垃圾收集算法简介 垃圾收集器 新生代垃圾收集器 老年代垃圾收集器 新生代和老年代垃圾 ...
- 淘宝开源编辑器Kissy Editor和简易留言编辑器【转】
原来也写过一篇关于百度Ueditor编辑器的介绍:百度Ueditor编辑器的使用,ASP.NET也可上传图片 最开始是使用CuteEditor控件,需要好几mb的空间,因为刚开始学习ASP.NET的时 ...
- Java编程思想 学习笔记10
十.内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性.然而必须要了解,内部类和组合是 ...