当前位置: 首页 > news >正文

rman 迁移数据到其他机器实际实验

用rman 跨机器迁移数据
 先做好源数据的查询准备并记录结果,为后面迁移奠定基础

SQL> select dbid from v$database;

      DBID
----------
1003169116


SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\CONTROL01_WIND.CTL
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\CONTROL02_WIND.CTL
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\CONTROL03_WIND.CTL

select file_id, file_name from dba_data_files;

   FILE_ID
----------
FILE_NAME
--------------------------------------------------------------------------------
         1
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDSYSTEM01.DBF

         2
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDSYSAUX01.DBF

         3
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDUNDOTBS01.DBF


   FILE_ID
----------
FILE_NAME
--------------------------------------------------------------------------------
         4
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDBLOBS01.DBF

         5
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDINDEX01.DBF

         6
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDUSERS01.DBF


   FILE_ID
----------
FILE_NAME
--------------------------------------------------------------------------------
         7
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDWCAUDIT01.DBF


7 rows selected.

SQL> select * from v$logfile
  2  ;

    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
         1         ONLINE
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDREDO01.LOG
NO

         2         ONLINE
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDREDO02.LOG
NO

    GROUP# STATUS  TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---

         3         ONLINE
E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDREDO03.LOG
NO


查询是否归档模式

select name, log_mode from v$database;
NAME      LOG_MODE
--------- ------------
WIND      NOARCHIVELOG


切换到归档模式
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

查询默认归档路径
ARCHIVE LOG LIST;


//另外备份和查看一下控制文件生成脚本,有助于恢复数据库
ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'E:\oracle\rman\backup_trace.trc';


备份控制文件
备份数据文件

rman target /

run {
  allocate channel ch1 type disk;
  allocate channel ch2 type disk;
  backup as compressed backupset database format 'E:\oracle\rman\2024121101\data\fulldb_%T_%U';
  sql 'alter system archive log current'; 数据没有打开需要注释
  backup as compressed backupset archivelog all format 'E:\oracle\rman\2024121101\data\arc_%T_%U' delete all input;
  backup current controlfile format 'E:\oracle\rman\2024121101\data\con_%T_%U';
  release channel ch2;
  release channel ch1;
}

report obsolete;
crosscheck backup;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired backup;
list backup summary;


另外可以参考
BACKUP DATABASE PLUS ARCHIVELOG FORMAT 'E:\oracle\rman\2024120901\%U'; 归档模式

列出备份的参数文件,如果没有,需要单独备份参数文件
LIST BACKUP OF SPFILE;

列出备份的控制文件
LIST BACKUP OF CONTROLFILE;

查询归档scn
LIST BACKUP OF ARCHIVELOG ALL;

查询备份集合
LIST BACKUP OF DATABASE;

备份参数文件

create pfile='E:\oracle\rman\2024121101\initwind.ora' from spfile


//将所有的备份文件迁移到目标机器上去

在新机器上创建数据库实例
oradim -new -sid WIND -startmode a


C:\Users\Administrator>set sid=wind

C:\Users\Administrator>rman target /

恢复管理器: Release 11.2.0.1.0 - Production on 星期三 12月 11 10:56:01 2024

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库 (未启动)

RMAN> startup nomount

启动失败: ORA-01078: failure in processing system parameters
LRM-00109: ???????????????? 'D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITWIND.ORA'

在没有参数文件的情况下启动 Oracle 实例以检索 spfile

startup nomount 一定需要再rman工具中执行,在sqlplus中执行,下面的restore spfile命令无法执行
 
恢复参数文件
restore spfile to 'E:\oracle\rman\2024121101\pfile\spfile.ora' from 'E:\oracle\rman\2024121101\data\FULLDB_20241211_1H3CDHJS_1_1';


create pfile='E:\oracle\rman\2024121101\pfile\pfile.ora' from spfile='E:\oracle\rman\2024121101\pfile\spfile.ora';


create spfile from pfile ='E:\oracle\rman\2024121101\pfile\pfile.ora';

shu immediate

startup nomount;


rman target /

这一步不能忘记
 set dbid 1003169116
 
 恢复参数文件

restore controlfile from 'E:\ORACLE\RMAN\2024121102\DATA\CON_20241211_1K3CDHKC_1_1';


这一步不能忘记,否则会报错
archive log list

需改归档路径和源环境保持一致

alter system set log_archive_dest_1='location=E:\app\fff\product\11.2.0\dbhome_1\RDBMS'scope=spfile

如果没有这个路径需要创建这个路径 mkdir E:\app\fff\product\11.2.0\dbhome_1\RDBMS


archive log list

恢复数据库文件

catalog start with 'E:\ORACLE\RMAN\2024121101\DATA\';

 RUN{
set newname for datafile 1 to 'E:\oracle\oradata\wind\WINDSYSTEM01.DBF';
set newname for datafile 2 to 'E:\oracle\oradata\wind\WINDSYSAUX01.DBF';
set newname for datafile 3 to 'E:\oracle\oradata\wind\WINDUNDOTBS01.DBF';
set newname for datafile 4 to 'E:\oracle\oradata\wind\WINDBLOBS01.DBF';
set newname for datafile 5 to 'E:\oracle\oradata\wind\WINDINDEX01.DBF';
set newname for datafile 6 to 'E:\oracle\oradata\wind\WINDUSERS01.DBF';
set newname for datafile 7 to 'E:\oracle\oradata\wind\WINDWCAUDIT01.DBF';
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
 }


也可以参考
RUN {

allocate channel d1 type disk;
set until sequence 30 thread 1;
set newname for datafile 1 to 'E:\oracle\oradata\wind\WINDSYSTEM01.DBF';
set newname for datafile 2 to 'E:\oracle\oradata\wind\WINDSYSAUX01.DBF';
set newname for datafile 3 to 'E:\oracle\oradata\wind\WINDUNDOTBS01.DBF';
set newname for datafile 4 to 'E:\oracle\oradata\wind\WINDBLOBS01.DBF';
set newname for datafile 5 to 'E:\oracle\oradata\wind\WINDINDEX01.DBF';
set newname for datafile 6 to 'E:\oracle\oradata\wind\WINDUSERS01.DBF';
set newname for datafile 7 to 'E:\oracle\oradata\wind\WINDWCAUDIT01.DBF';
restore database;
switch datafile all;
recover database;
release channel d1;

}

修改重做日志路径,适应新的机器
alter database rename file 'E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDREDO01.LOG' to 'E:\oracle\oradata\wind\REDO01.LOG';

alter database rename file 'E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDREDO02.LOG' to 'E:\oracle\oradata\wind\REDO02.LOG';

alter database rename file 'E:\PTC\WINDCHILL_10.2\OCU\ORADATA\WIND\WINDREDO03.LOG' to 'E:\oracle\oradata\wind\REDO03.LOG';

// 打开数据库
alter database open resetlogs;


select * from wcadmin.wtdocument


下面是可能遇到异常和解决方法

如果发生这样错误,尝试下面的解决方法
发生报错ORA-06553: PLS-801: 内部错误 [56327]。尝试解决如下:

SQL>shutdown abort
SQL> startup upgrade
SQL> @?/rdbms/admin/utlirp
SQL> shutdown immediate


此时,又发生了报错ORA-12432: LBAC 错误: zllesesinit:OCIStmtExecute。继续尝试执行:

SQL>shutdown abort
SQL> startup upgrade
SQL> @?/rdbms/admin/utlrp
此后在此步骤一直卡住不动了,尝试开启了新的窗口,重新执行:

SQL> shutdown abort
SQL> startup migrate
SQL> @?/rdbms/admin/catnools.sql  
此时数据库竟然没报错,再次使用以下命令后,数据库正常启动。

SQL> shutdown immediate
SQL> startup
SQL> select * from v$version where rownum<2;

如果需要手动生成控制文件

ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS 'E:\oracle\rman\backup_trace.trc';


无法找到归档日志
归档日志线程=1 序列=160
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 12/11/2024 17:13:49 上) 失败
RMAN-06054: 介质恢复正在请求未知的线程 1 序列 160 的归档日志以及起始 SCN 3541079

如果报错无法找到归档日志
可以采用 方法  recover database until scn 3541079


http://www.mrgr.cn/news/79910.html

相关文章:

  • hive—常用的日期函数
  • ES6 混合 ES5学习记录
  • 【数据结构——栈与队列】链栈的基本运算(头歌实践教学平台习题)【合集】
  • 【蓝桥杯每日一题】砍竹子
  • 黑马商城微服务复习(6)
  • MVC配置文件及位置
  • 【C语言】浮点数的原理、整型如何转换成浮点数
  • 计算机组成原理复习
  • 【漏洞复现】CVE-2022-26619 CVE-2022-32994 Arbitrary File Upload
  • 多发电站实现光伏发电预测的统一管理模式
  • CSDN原力值说明
  • mac 安装CosyVoice (cpu版本)
  • 通用定时器之输出比较的功能
  • 0001.简易酒店管理系统后台
  • MOTR: End-to-End Multiple-Object Tracking with Transformer
  • PyQt5入门(四)--------下拉选择框控件(comboBox)
  • 【Neo4J】neo4j docker容器下的备份与恢复
  • 微信小程序web-view 嵌套h5界面 实现文件预览效果
  • 餐饮平台数仓建模案例
  • Spann3R:基于DUSt3R的密集捕获数据增量式重建方法