需求:把oracle数据库的数据文件,redo文件,控制文件迁移到本地的其它目录。

1.测试环境:

操作系统redhat 6.3,数据库oracle 11.2.0.1.0

[root@dbtest1 ~]# uname -a
Linux dbtest1 2.6.-.el6.x86_64 # SMP Wed Jun :: EDT x86_64 x86_64 x86_64 GNU/Linux SQL> select * from v$version; BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1. - 64bit Production
PL/SQL Release 11.2.0.1. - Production
CORE 11.2.0.1. Production
TNS for Linux: Version 11.2.0.1. - Production
NLSRTL Version 11.2.0.1. - Production

源数据文件位置:/home/data/oracle/dbtest/

目标数据文件位置:/oracle_data/

2.关闭数据库监听,禁止外部访问数据库

-bash-4.1$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.1. - Production on -DEC- ::

Copyright (c) , , Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=dbtest)))
The command completed successfully

3.关闭oracle数据库

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

4.备份pfile,spfile,控制文件(至少备份一个)

-bash-4.1$ cd /$ORACLE_HOME/dbs
-bash-4.1$ cp initdbtest.ora initdbtest.ora.
-bash-4.1$ cp spfiledbtest.ora spfiledbtest.ora.
-bash-4.1$ cd /home/data/oracle/dbtest/
-bash-4.1$ cp control01.ctl control01.ctl.

5.更新pfile,从spfile创建pfile

SQL> create pfile='$ORACLE_HOME/dbs/initdbtest.ora' from spfile='$ORACLE_HOME/dbs/spfiledbtest.ora';

注:默认位置的话,可以直接使用create pfile from spfile来创建的,创建后检查一下时间戳来确认。

6.修改pfile中的控制文件的位置

把/home/data/oracle/dbtest/control01.ctl修改为/oracle_data/control01.ctl

-bash-4.1$ cd /$ORACLE_HOME/dbs/
-bash-4.1$ ls
hc_dbtest.dat initdbtest.ora initdbtest.ora. init.ora lkDBTEST orapwdbtest spfiledbtest.ora spfiledbtest.ora.
-bash-4.1$ cat initdbtest.ora |grep control
*.control_files='/home/data/oracle/dbtest/control01.ctl','/home/app/ora11g/flash_recovery_area/dbtest/control02.ctl'
使用vi编辑该文件
-bash-4.1$ cat initdbtest.ora |grep control
*.control_files='/oracle_data/control01.ctl','/home/app/ora11g/flash_recovery_area/dbtest/control02.ctl'

注:如果有多个要修改的话,方法是一样的。

7.复制源数据目录下的文件,包括控制文件,数据文件和redo文件

-bash-4.1$ cp /home/data/oracle/dbtest/*  /oracle_data/ 

8.使用pfile来启动数据库到mount状态

SQL> startup pfile='$ORACLE_HOME/dbs/initdbtest.ora' mount
ORACLE instance started. Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted.

9.重命名数据文件,redo文件的位置

SQL> ALTER DATABASE RENAME FILE '/home/data/oracle/dbtest/redo01.log' to '/oracle_data/redo01.log';

Database altered.

SQL>ALTER DATABASE RENAME FILE '/home/data/oracle/dbtest/system01.dbf' to '/oracle_data/system01.dbf';

Database altered.

......

10. 打开数据库

SQL> alter database open;

Database altered.

11.检查数据文件,redo等文件位置是否正确

SQL> select file_name from dba_data_files;

FILE_NAME
--------------------------------------------------------------------------------
/oracle_data/users01.dbf
/oracle_data/undotbs01.dbf
/oracle_data/sysaux01.dbf
/oracle_data/system01.dbf
/oracle_data/laputa_dat.dbf
/oracle_data/laputa_idx_01.dbf rows selected. SQL> select file_name from dba_temp_files; FILE_NAME
--------------------------------------------------------------------------------
/oracle_data/temp01.dbf SQL> select name from v$controlfile; NAME
--------------------------------------------------------------------------------
/oracle_data/control01.ctl
/home/app/ora11g/flash_recovery_area/dbtest/control02.ctl SQL> select member from v$logfile; MEMBER
--------------------------------------------------------------------------------
/oracle_data/redo03.log
/oracle_data/redo02.log
/oracle_data/redo01.log

12.同步spfile到新的文件(简化写法)

SQL> create spfile from pfile;

File created.

13.重启一次数据库确认一切正常

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down. SQL> startup
ORACLE instance started. Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted.
Database opened.
SQL>

14.开启数据库监听

-bash-4.1$ lsnrctl start

注意问题:

1.在rename文件的时候,如果涉及到的文件比较多,建议把语句放在一个sql文件中,然后再在sqlplus中执行,否则可能会导致语句在中间断裂(一条语句被命令行看成2行,会报错)。如果发生了语句的断裂,重新把语句放在sql文件中执行即可,这些rename语句重复执行会报错,但是不影响最终的结果。

2.迁移redo文件可以在线执行,用添加redo group,删除redo group的办法。

3.非系统表空间可以在不关闭数据库的方法迁移,对表空间进行offline,移动对应数据文件,rename数据文件,online表空间。

ORACLE 本地冷迁移的更多相关文章

  1. 数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下

    数据迁移_把RAC环境备份的数据,恢复到另一台单机Oracle本地文件系统下 作者:Eric 微信:loveoracle11g 1.创建pfile文件 # su - ora11g # cd $ORAC ...

  2. OpenStack虚拟机冷迁移与热迁移

    一.虚拟机迁移分析 openstacvk虚拟机迁移分为冷迁移和热迁移两种方式. 1.1冷迁移: 冷迁移(cold migration),也叫静态迁移.关闭电源的虚拟机进行迁移.通过冷迁移,可以选择将关 ...

  3. vsphere 虚拟机的迁移,冷迁移,vmotion(热迁移)

    备注:(理论部分参考王春海老师的课程) 一.概述 1.vsphere数据中心当处于某种目的进行维护时,需要将某台主机上运行或关闭的虚拟机,迁移到其他主机上,这个时候就需要使用迁移 2.可以使用冷迁移或 ...

  4. openstack热迁移和冷迁移

    转自: http://www.cnblogs.com/pycode/p/6494848.html 迁移类型: *非在线迁移 (有时也称之为‘迁移’).也就是在迁移到另外的计算节点时的这段时间虚拟机实例 ...

  5. 使用SSMS 2014将本地数据库迁移到Azure SQL Database

    使用SQL Server Management Studio 2014将本地数据库迁移到Azure SQL Database的过程比较简单,在SSMS2014中,有一个任务选项为“将数据库部署到Win ...

  6. OpenStack的Resize和冷迁移代码解析及改进

    原文:http://www.hengtianyun.com/download-show-id-79.html OpenStack的Resize(升级)功能,我们可以改变虚拟机的CPU核数.内存及磁盘大 ...

  7. MS SQL到Oracle的数据迁移笔记

    MS SQL到Oracle的数据迁移笔记 一.任务背景 旧系统使用MS SQL Server数据库,新系统使用Oracle数据库,现在需要将旧系统中的数据迁移到新系统中,旧数据按照约定的规则转换后,能 ...

  8. oracle 数据库数据迁移解决方案

    大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁移,接下来把心得与大家分享一下   去年年底做了不少系统的数据迁移,大部分系统由于平台和版本的原因,做的是逻辑迁移,少部分做的是物理迁 ...

  9. 【openstack N版】——云主机调整大小\冷迁移

    一.先决条件 云主机冷迁移,即:将一台云主机从一个计算节点上,迁移到另外一个计算节点上.因为环境原因,所以我们需要准备两个计算节点. 1.1准备环境 在控制节点上,安装一个计算节点 #在控制节点安装n ...

随机推荐

  1. NAT集群部署solo之session server

    author:JevonWei 版权声明:原创作品 使用Nginx做代理服务器,部署solo,使用session server做会话黏滞 拓扑图 环境 tomcatA 172.16.253.108 t ...

  2. Linux安装解压缩版jdk

    #解压到指定目录 tar zxvf ./jdk-7-Linux-i586.tar.gz  -C /usr/lib/jvm 配置环境变量 #vi  /etc/profile 编辑文件,在最后添加: ex ...

  3. 深入理解JVM(八)——java堆分析

    上一节介绍了针对JVM的监控工具,包括JPS可以查看当前所有的java进程,jstack查看线程栈可以帮助你分析是否有死锁等情况,jmap可以导出java堆文件在MAT工具上进行分析等等.这些工具都非 ...

  4. UIImageView动画制作

    1.先初始化一个UIImageView的视图窗口 如:anima UIImageView *anima = [UIImageView alloc]initWithFrame(0,0,100,100); ...

  5. JavaScript学习日志(四):BOM

    BOM的核心对象就是window,这一章没什么好说的,总结一些比较常用的: 1,a未定义,a; //报错window.a; //undefined 不能用delete删除全局变量 2,html5不支持 ...

  6. AJAX 处理xml 数据

    //这个方式返回的得是 xml标准的对象,可以返回 xml字符串,前端js 使用转为xml   function createXml(str){ if(document.all){//IE浏览器 va ...

  7. 换个角度审视NAT技术

    NAT (Network address translation,网络地址转换 )是局域网连接到互联网的一个对接工作. 首先要知道NAT是一个技术或者说软件而不是协议 后面你会知道NAT 是偏应用层但 ...

  8. 封装bootstrap-treegrid组件

    封装bootstrap-treegrid组件   阅读目录 一.开源的treegrid 1.组件效果预览 2.组件开源地址 二.封装treegrid 1.组件封装的必要性 2.组件封装代码示例 3.封 ...

  9. 手机设备访问PC页面如果跳转到手机页面?

    //例如:iphone访问www.baidu.com自动跳转到wap.baidu.com,只需在pc端模版页面引入以下js代码//pc zhuan mobile var mobileAgent = n ...

  10. CentOS6.5下LNMP环境的搭建

    #写的不好,大牛勿喷 #其实我很努力 OS:CentOS6.5 1.关闭SELinux,关闭防火墙 原因:1.SELinux确实可以提高服务器的安全性,但是对于服务器的性能存在一定的影响,同时它的复杂 ...