返回顶部
首页 > 资讯 > 数据库 >rman迁移时间点恢复
  • 543
分享到

rman迁移时间点恢复

2024-04-02 19:04:59 543人浏览 薄情痞子
摘要

本来今天请假休息了,晚上8点吃饭的时候,主管打来电话让我恢复一个数据库,中午12点的时候开发人员不当操作,其中一个schema用来接收其他工厂的的数据,搞乱套了。~让我恢复到今天中午12点左右的数据,但是其

本来今天请假休息了,晚上8点吃饭的时候,主管打来电话让我恢复一个数据库,中午12点的时候开发人员不当操作,其中一个schema用来接收其他工厂的的数据,搞乱套了。
~
让我恢复到今天中午12点左右的数据,但是其他schema没问题,只恢复这一个schema,这个数据库1.7T大小,突然想到这套服务器是RAC,1节点数据泵中午12点备份,2节点是rman晚上8点备份,
吃完饭马上去找1节点备份,-_-||发现是空的,备份脚本出问题了。
只能用rman恢复了~马上去2节点拷贝昨天晚上的备份和昨天一天今天一天的归档文件,拷贝到新服务器,开始进行恢复,这相当于RAC到单节点的迁移了。





下面是操作步骤
安装数据库软件·······················很快就完成了。
拷贝其他的单实例数据库的init.ora文件, 启动到nomunt用到
修改init文件内数据库名和路径位置
直接启动

sql>STARTUP NOMOUNT;

然后rman进入rman管理界面恢复控制文件
恢复控制文件:

RMAN>RESTORE CONTROLFILE FROM '/oradata/backup/CTCNZQF/cntrl_540843_1_962057699';

注册备份目录到控制文件,-----------把拷贝过来的备份文件目录注册到控制文件,告诉控制文件我的备份在这个目录

RMAN> CATALOG START WITH '/oradata/backup/CTCNZQF/';

启动数据到MOUNT;

RMAN>alter database mount;

然后开始restore 还原数据文件,但是因为我RAC用的是ASM存储管理的,现在是本地文件,
需要修改数据文件名所以要newname一下
使用以下语句查出来所有的数据文件,改为本地文件名字

SQL>select 'SET NEWNAME FOR DATAFILE '|| file# ||' to ' ||''''|| name ||''''|| ';' from v$datafile;

然后把结果复制在文本上面,修改数据文件名字开始进行restore


RMAN>run {
allocate channel d1 type disk;   
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
set newname for datafile 1 to '/oradata/CTCNZQF/system01.dbf';
set newname for datafile 2 to '/oradata/CTCNZQF/sysaux02.dbf';
··························
set newname for datafile 667 to '/oradata/CTCNZQF/ctcnzjf_n648.dbf';
set newname for datafile 668 to '/oradata/CTCNZQF/farmbjhs_idx649.dbf';
restore database;
switch datafile all;
release channel d4;
release channel d3;
release channel d2;
release channel d1;
} 

第一遍执行的时候报错,并且数据文件没有还原到指定位置,不知道原因重新执行了一遍,数据文件还原了过来。
然后开始recovery

[oracle@stat ~]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh34:mi:ss' 指定时间格式
RMAN> recover database until time '2017-12-07 12:00:56' 指定恢复到的时间

然后报错,提示没有归档
rman迁移时间点恢复
但是我归档已经拷贝到我写的归档的目录下了,
查了很久之后才发现,因为控制文件不知道归档在那里,只知道备份,如果我不回复到中午12点,直接recovery就可以恢复到昨晚8点的状态,所以他要晚上8点到中午12点的归档。他找不到,,
那就注册,吧归档路径信息写到控制文件内,没找到怎么注册整个归档目录。只能一条条粘贴
-----注册拷贝过来的归档日志到控制文件 把所有最新的拷贝过来的归档日志一个个注册到控制文件内。

RMAN>catalog arcHivelog '/oradata/arch/CTCNZQF/thread_2_seq_92815.28569.962057619';
RMAN>···由于太多就不写那么多了
RMAN>catalog archivelog '/oradata/arch/CTCNZQF/thread_2_seq_93639.8125.962135299';

然后重新执行

RMAN> recover database until time '2017-12-07 12:00:56';

rman迁移时间点恢复
这个图说明正在恢复

rman迁移时间点恢复
提示已经恢复到12点6分了。说明已经恢复成功了。



然后添加日志组,修改日志组的名字,查找数据库所有日志名字

select 'alter database rename file '''||member||q'[' to '/oradata/fast_recovery_area/CTCNZQF/redo';]' from v$logfile;

修改好名字之后 。。执行

alter database rename file '+ASM_REDO1/CTCNZQF/ONLINELOG/group_1.257.954793817' to '/oradata/fast_recovery_area/CTCNZQF/redo1';
alter database rename file '+ASM_REDO2/CTCNZQF/ONLINELOG/group_1.258.954793817' to '/oradata/fast_recovery_area/CTCNZQF/redo2';
··········
alter database rename file '+ASM_REDO1/CTCNZQF/ONLINELOG/group_24.277.955022759' to '/oradata/fast_recovery_area/CTCNZQF/redo31';
alter database rename file '+ASM_REDO2/CTCNZQF/ONLINELOG/group_24.282.955022759' to '/oradata/fast_recovery_area/CTCNZQF/redo32';

完成了~启动数据库

RMAN> alter database open resetlogs;

是要打开数据时,重置重做日志,即将重做日志的sequence置零

SQl>create spfile from pfile;       创建spfile文件。

然后发现alter日志里面一大串报错·······吓了一大跳,发下是临时表空间,
rman迁移时间点恢复
因为恢复的时候没有临时文件,所以现在数据库没有临时表空间,重建~~
因为控制文件记录说已经存在了temp表空间,所以创建temp1临时表空间,设置temp1为默认,然后删除temp,再重新创建TEMP。设置为默认删除temp
创建temp1表空间

CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE '/oradata/CTCNZQF/temp01.dbf' SIZE 1024 m
,'/oradata/CTCNZQF/temp02.dbf' SIZE 1024 m,'/oradata/CTCNZQF/temp03.dbf' SIZE 1024 m
AUTOEXTEND ON NEXT 10 m MAXSIZE UNLIMITED;

---修改临时表空间为TEMP1

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP1;

删除TEMP表空间,

DROP TABLESPACE temp1 INCLUDING CONTENTS AND DATAFILES;

创建TEMP表空间:

CREATE TEMPORARY TABLESPACE TEMP1 TEMPFILE '/oradata/CTCNZQF/temp01.dbf' SIZE 1024 m
,'/oradata/CTCNZQF/temp02.dbf' SIZE 1024 m,'/oradata/CTCNZQF/temp03.dbf' SIZE 1024 m
AUTOEXTEND ON NEXT 10 m MAXSIZE UNLIMITED;

修改临时表空间为TEMP

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

删除TEMP1表空间就可以了

ok历经了两天终于完成了。restore这一步骤就用了10个小时
如果有1节点的数据泵备份,我就可以单独恢复一个schema,也不用折腾了两天了。
所以最最最最最最重要的还是备份
更更更更重要的是检查备份状态

剩下的就是让开发人员自己去整理数据了~(* ̄︶ ̄)

您可能感兴趣的文档:

--结束END--

本文标题: rman迁移时间点恢复

本文链接: https://lsjlt.com/news/38773.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • rman迁移时间点恢复
    本来今天请假休息了,晚上8点吃饭的时候,主管打来电话让我恢复一个数据库,中午12点的时候开发人员不当操作,其中一个schema用来接收其他工厂的的数据,搞乱套了。~让我恢复到今天中午12点左右的数据,但是其...
    99+
    2024-04-02
  • Oracle 学习之RMAN(十四)恢复实战--基于时间点恢复
    1. 我们先做一个全备RMAN> backup database ; Starting backup at 2015/07/09 ...
    99+
    2024-04-02
  • Oracle rman怎么恢复时间差异
    要使用Oracle RMAN恢复时间差异,您可以按照以下步骤进行操作: 确定要恢复的时间点:确定要将数据库恢复到的特定时间点。这...
    99+
    2024-04-09
    Oracle
  • 如何使用RMAN对CDB执行按时间点恢复
    这篇文章给大家分享的是有关如何使用RMAN对CDB执行按时间点恢复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用RMAN对CDB和PDB执行按时间点恢复 RMAN能够对CDB...
    99+
    2024-04-02
  • 如何使用RMAN对PDB执行按时间点恢复
    小编给大家分享一下如何使用RMAN对PDB执行按时间点恢复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对PDB执行按时间点恢复...
    99+
    2024-04-02
  • [RMAN]表空间的恢复
    1.     恢复条件     恢复表空间实际上就是恢复其所对应的数据文件(一个表空间可以对应 1 个或多...
    99+
    2024-04-02
  • 基于时间点的恢复
    1、  拷贝老库的binlog到恢复库(注意不要把新库的日志给覆盖掉) 2、  解析binlog找出at时间点: mysqlbinlog -vv my...
    99+
    2024-04-02
  • 使用RMAN备份对Non-CDB中的表按时间点进行恢复
    RMAN使用recover命令来将表或表分区恢复到指定的时间点。为了从RMAN备份中恢复表与表分区,你必须提供以下信息: .要被恢复的表或表分区 .表或表分区要被恢复到的特定时间点 .被恢复的表或...
    99+
    2024-04-02
  • Oracle表空间时间点恢复技术TSPITR
    假定Oracle数据库发生了以下情形: 1、表空间中,某个表的重要数据被破坏或删除。 2、误用DDL语言更改了表空间中的一个或多个表的结构,因此无法使用闪回来恢复这些表。 3、表...
    99+
    2024-04-02
  • Oracle单机迁移至Oracle RAC集群_Oracle RAC迁移_数据库迁移与备份恢复13
    风哥本套学习Oracle单机迁移至Oracle RAC集群过程Oracle单机迁移至Oracle RAC集群_Oracle备份恢复与数据迁移13课程地址:https://edu.51cto.com...
    99+
    2024-04-02
  • Oracle RAC集群迁移至Oracle单机_Oracle RAC迁移_数据库迁移与备份恢复12
    风哥本套课程熟悉生产环境Oracle RAC集群迁移至Oracle数据库单机的项目实施Oracle RAC集群迁移至Oracle单机_Oracle备份恢复与数据迁移12课程地址:https://edu.51...
    99+
    2024-04-02
  • MySQL实现基于时间点的恢复
    前期说明:我每天指定了数据库凌晨1点做全备,这天有人一不小心,删除了某个数据库里面的一个表,需要恢复,怎么弄? 参考 :http://blog.csdn.net/zhaoyangjian...
    99+
    2024-04-02
  • Oracle 12c如何使用RMAN备份对Non-CDB中的表按时间点进行恢复
    小编给大家分享一下Oracle 12c如何使用RMAN备份对Non-CDB中的表按时间点进行恢复,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起...
    99+
    2024-04-02
  • 实验记录:TSPITR 表空间定点时间恢复
    TSPITR是英文Tablespace Point In Time Recovery的缩写。也就是表空间定点时间恢复。 TSPITR是一种相对细粒度的不完全恢复技术。我们通常见到的还原操作,都是将所有的...
    99+
    2024-04-02
  • mongodb 中怎么利用oplog恢复时间点
    mongodb 中怎么利用oplog恢复时间点,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.首先创建hezi集合,并插入1...
    99+
    2024-04-02
  • RMAN中如何使用until time子句对Non-CDB中的表执行按时间点恢复
    这篇文章主要为大家展示了“RMAN中如何使用until time子句对Non-CDB中的表执行按时间点恢复”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“RMAN...
    99+
    2024-04-02
  • 数据库迁移需要多长时间
    这篇文章将为大家详细讲解有关数据库迁移需要多长时间,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。什么是数据库迁移?数据库迁移是从一个数据库到另一个数据库的任何类型的数据移...
    99+
    2024-04-02
  • MySQL 基于时间点的快速恢复方案
      之所以有这样一篇文章,是因为在前几天的一个晚上,要下班的时候,业务方忽然有一个需求,是需要恢复一个表里面的数据,当时问了下情况,大概是这样的:业务方不小心在一个表里面做了一个update的操作,可能是w...
    99+
    2022-05-13
    MySQL 快速恢复 mysql 基于时间点恢复
  • Mysql数据库中怎么按时间点恢复
    Mysql数据库中怎么按时间点恢复,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 按时间点恢复的技术实现如果客户在某时间节点由于误操作,导致数据丢失,RDS管控服务是如何进...
    99+
    2023-06-20
  • Linux环境Minio的数据迁移、备份和恢复
    Linux环境Minio的数据迁移、备份和恢复 1、请先确保服务器上已安装Minio客户端(已安装可忽略)2、服务器说明3、为Minio服务器设置别名4、从服务器A迁移数据到服务器B5、备份服...
    99+
    2023-09-06
    linux 服务器 centos
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作