当前位置:  数据库>oracle

Linux平台下使用RMAN进行Oracle数据库迁移

    来源: 互联网  发布时间:2017-05-28

    本文导语: 实验目的:将Oracle数据库从一台机器迁移到另外的一台机器(同为linux平台),设置为不同的路径,不同的实例名源端:ORACLE_BASE=/u01/app/oracleORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1ORACLE_SID=test数据文件位置:/oradata/test目标端:ORACLE_...

实验目的:将Oracle数据库从一台机器迁移到另外的一台机器(同为linux平台),设置为不同的路径,不同的实例名
源端:
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
ORACLE_SID=test
数据文件位置:/oradata/test
目标端:
ORACLE_BASE=/u02/app/oracle
ORACLE_HOME=/u02/app/oracle/product/10.2.0/db_1
ORALCE_SID=test2
数据文件位置:/oradata2/test2
注:两台主机非一台,但是主机名一致均为model.rhel5

第一步:在源端取得备份数据
查询一下MAI用户下的数据,做最后校验使用
MAI@test > select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BONUS TABLE
DEPT TABLE
EMP TABLE
SALGRADE TABLE
TEST TABLE
TEST01 TABLE
开始备份:
$ oracle@model /mnt/hgfs/software/backup> rman target /
RMAN> run{
2> allocate channel c1 device type disk format '/mnt/hgfs/software/backup/%T_%U';
3> backup database;
4> backup current controlfile format '/mnt/hgfs/software/backup/%T_CTL_%U';
5> backup spfile format '/mnt/hgfs/software/backup/%T_SPFILE_%U';
6> release channel c1;
7> }
备份集信息:
$ oracle@model /mnt/hgfs/software/backup> ls -lh
total 304M
-rwxrwxrwx 1 root root 594M Aug 29 20:31 20120829_02njsrtb_1_1*
-rwxrwxrwx 1 root root 6.9M Aug 29 20:31 20120829_03njss0b_1_1*
-rwxrwxrwx 1 root root 6.8M Aug 29 20:31 20120829_CTL_04njss0k_1_1*
-rwxrwxrwx 1 root root 96K Aug 29 20:31 20120829_SPFILE_05njss0m_1_1*

第二步:备端的准备
1、安装数据库软件,基位置参考上文说明。
2、创建相关的目录:
$ oracle@model ~> env | grep ORACLE
ORACLE_BASE=/u02/app/oracle
ORACLE_HOME=/u02/app/oracle/product/10.2.0/db_1
$ oracle@model ~> cd $ORACLE_BASE
$ oracle@model /u02/app/oracle> mkdir flash_recovery_area
$ oracle@model /u02/app/oracle> mkdir -p admin/test2
$ oracle@model /u02/app/oracle> cd admin/test2
$ oracle@model /u02/app/oracle/admin/test2> mkdir {a,b,c,d,u}dump

第三步:开始恢复,此时恢复的实例名为test
$ oracle@model ~> export ORACLE_SID=test
$ oracle@model ~> rman target /
RMAN> startup nomount
1、恢复spfile:
RMAN> restore spfile from '/mnt/hgfs/software/backup/20120829_SPFILE_05njss0m_1_1';
RMAN> shutdown immediate;
2、编辑参数文件,使参数中的相关路径变更为新路径
$ oracle@model ~> sqlplus / as sysdba
SYS@test > create pfile from spfile;
编辑生成的$ORACLE_HOME/dbs/inittest.ora文件,将文件中的路径改为新的路径,即:
/oradata/test/修改为/oradata2/test2/
/u01/app/oracle/修改为/u02/app/oracle
/u01/app/oracle/admin/test修改为/u02/app/oracle/admin/test2
$ oracle@model ~> sqlplus / as sysdba
SYS@test > create spfile from pfile;
3、恢复控制文件:
$ oracle@model ~> rman target /
RMAN> startup nomount
RMAN> restore controlfile from '/mnt/hgfs/software/backup/20120829_CTL_04njss0k_1_1';
4、恢复数据文件:
RMAN> alter database mount;
RMAN> run {
2> set newname for datafile 1 to '/oradata2/test2/system01.dbf';
3> set newname for datafile 2 to '/oradata2/test2/undotbs01.dbf';
4> set newname for datafile 3 to '/oradata2/test2/sysaux01.dbf';
5> set newname for datafile 4 to '/oradata2/test2/users01.dbf';
6> set newname for datafile 5 to '/oradata2/test2/example01.dbf';
7> restore database;
8> }
5、重建控制文件,更新控制文件中的数据文件路径
$ oracle@model ~> sqlplus / as sysdba
SYS@test > alter database backup controlfile to trace;
到$ORACLE_BASE/admin/udump中找到刚才生成的TRACE文件,复制出其中的创建文件集的片段,修改其中的路径信息为新的路径信息,备用
SYS@test > shutdown immediate;
SYS@test > startup nomount
利用刚才修改过的控制文件创建脚本重建控制文件:
SYS@test > CREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/oradata2/test2/redo01.log' SIZE 50M,
9 GROUP 2 '/oradata2/test2/redo02.log' SIZE 50M,
10 GROUP 3 '/oradata2/test2/redo03.log' SIZE 50M
11 -- STANDBY LOGFILE
12 DATAFILE
13 '/oradata2/test2/system01.dbf',
14 '/oradata2/test2/undotbs01.dbf',
15 '/oradata2/test2/sysaux01.dbf',
16 '/oradata2/test2/users01.dbf',
17 '/oradata2/test2/example01.dbf'
18 CHARACTER SET ZHS16GBK
19 ;
SYS@test > alter database open resetlogs;
至此,数据库已经能够正常启动了,但是此时的实例名以及数据库名均为test,需要将其更改为test2,继续向下走

更多详情见请继续阅读下一页的精彩内容:

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密


    
 
 

您可能感兴趣的文章:

  • 关于LINUX系统迁移的问题
  • 将java从windows迁移到linux??
  • 将java从windows迁移到linux
  • 请教一个关于linux系统备份和迁移的问题
  • xp下的mysql数据库如何迁移到linux中的mysql
  • linux VPS之间网站数据的备份与恢复(网站迁移教程)
  • 请问这类Linux下的C语言结构如何迁移到windows下
  • linux下objdump命令用法介绍及如何使用objdump命令进行反汇编
  • oracle10g装在redhat linux es3 下进行pro*cc++进行编程的问题
  • 紧急求救,我电脑本来是装了win2000和linux flag,今天我对硬盘进行了fdisk操作,本以为把所有的东西都清掉了,可是当我c盘进行了format
  • 我是一个linux新手,不知道如何在linux进行C语言的编写和使用?
  • 请问挂软驱该如何在Linux命令行下进行?(一个Linux初学者)
  • linux下TCP连接进行容错怎么实现的
  • 大家进行Linux程序开发时,安装的Linux是什么发行版?
  • LINUX主机绑定进行授权管理,怎么样才有效?
  • linux下怎样进行C编程
  • 在linux下 和windows对应的dll 的技术是什么啊? 也就是说;在linux下进行函数和类的封装 使用什么技术啊?
  • 请问LINUX操作系统是怎样对外围设备进行操作的
  • 使用Linux/UNIX的系统用户进行PHP用户登录验证
  • Linux下如何对Gprs Modem进行编程?
  • 能否在win在进行linux编程?
  • 求linux高手进行培训(南京市区)
  • UNIX/Linux IP终端与主机的联机怎样进行设置?
  • linux中使用sort命令进行排序的问题
  • 请问在linux/unix下有没有象GetKeyboardState()一样对键盘状态进行控制的函数?
  • linux图形界面下怎么进行中文编辑?
  • linux模块中可以进行文件操作吗
  • linux c/c++ IP字符串转换成可比较大小的数字 iis7站长之家
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux和windows下用mysql c++ library操作Mysql数据库
  • 请问在红旗Linux多功能服务器版上(不是数据库服务器版)能否正常安装使用Oracle?红旗Linux数据库服务器版要比红旗Linux多功能服务器版贵
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • Linux下Oracle数据库,dbstart持续不动,数据库无法启动解决
  • 请教在linux系统开发环境下,有没有db和dbf数据库引擎,如何使用这个数据库?
  • linux小白提问linux备份oracle数据库的问题
  • 装linux enterprise3 ,没有选择数据库,自行安装了mysql-max-5.0.22-linux-i686,请问
  • Linux不是免费的嘛,怎么在红旗的网站只有桌面版下载?没有server版下载?哪有红旗Linux数据库服务器3.0版下载?
  • 【急……】求助linux数据库相关问题
  • linux下不知有什么小型的数据库?要求速度比较快,开销最小。并且支持单文件数据库及多表的
  • linux上安装oracle 数据库后,是否能写shell程序实现数据库的自动启动。
  • 千分求Linux 下数据库编程的问题!急!
  • 刚接触linux,公司要一个web服务器和一个数据库服务器,请问现在用linux哪个版本好,给点建议吧
  • 关于Linux与Windows之间数据库互相访问的问题。
  • linux下用什么办法连接oracle数据库并且读取数据呢?(用c++代码实现时)
  • 求教,LINUX里用C语言读取微型数据库文件方法
  • linux开机自启动程序可以访问数据库吗?
  • linux下能调用*.sql备份的数据库数据么?
  • 嵌入式linux下数据库使用
  • Linux 下的C语言实现数据库连接池操作。
  • linux数据库,高手指点
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,