拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Oracle
  3. 正文

ORACLE——RMAN——异机恢复(源端、目的端为克隆环境)

2019年10月28日 1226点热度 0人点赞 0条评论

一、源端环境和目的环境

    1、源端环境:SRQ测试机

    2、目的环境:SRQ测试机克隆机

二、前提条件:

    1、测试机数据库环境必须处于归档模式:archive log list;

查看list backupset,截图看有没有备份 

    2、恢复步骤

    (1)RMAN自动恢复和还原backups and copies这个过程,例如,运行以下命令within RMAN去还原和恢复数据库到当前状态
    (2)SHUTDOWN IMMEDIATE; # shuts down database
    (3)STARTUP MOUNT; # starts and mounts database
    (4)RESTORE DATABASE; # restores all datafiles——————还原的完整备份或者是增量备份中的0级备份,如:/oracle/SRQ/sapdata2/sr3_3/sr3.data3
    (5)RECOVER DATABASE; # recovers database using all available redo——恢复的是增量备份中的1级增量备份,备份的归档日志写入到归档目录中: /oracle/SRQ/oraarch/,并进行归档日志的恢复;或者可以把源端的arch文件直接拷贝到目的端的/oracle/SRQ/oraarch/,进行recover恢复。

    (5)recover database
    (6)ALTER DATABASE OPEN; # reopens the database——如果上述recover恢复,无法恢复到最新时刻数据库,可以在open后面加参数resetlogs;

  三、 在spfile删除情况下

    1、进入rman

SRMQAS 121/dbs% rman target /
Recovery Manager: Release 12.1.0.2.0 - Production on Fri Oct 18 15:06:09 2019
Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.
connected to target database (not started)

    2、关闭目标数据库(rman和sqlplus都可以关闭和打开)

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

    3、创建原始参数文件(注意与数据库安装路径相对应, 可以参照当前数据库的"ORACLE_HOME\admin\orcl\pfile\init.ora.xxxx"和备份的SPFILE进行编写)

    (1)查看源端的spfile文件:SRMQAS:/databackup/rmanbak # strings Spfile_SRQ_1736226733_20191021_155_1_1.bak 

    (2)并将有效字符拷贝,考入到/oracle/SRQ/121/dbs/init.ora中,vim写入如下参数,保存,授权(只拷贝蓝色内容,红色内容不能拷贝)

SRMQAS:/databackup/rmanbak # strings Spfile_SRQ_1736226733_20191021_155_1_1.bak 

}|{z

|gSRQ

TAG20191021T020346

SRQ.__oracle_base='/oracle/SRQ'#ORACLE_BASE set from environment

*._B_TREE_BITMAP_PLANS=FALSE

*._IN_MEMORY_UNDO=FALSE

*._INDEX_JOIN_ENABLED=FALSE

*._OPTIM_PEEK_USER_BINDS=FALSE

*._OPTIMIZER_MJC_ENABLED=FALSE

*._SORT_ELIMINATION_COST_RATIO=10

*._TABLE_LOOKUP_PREFETCH_SIZE=0

*.audit_file_dest='/oracle/SRQ/saptrace/audit'

*.compatible='12.1.0.2.0'

*.control_file_record_keep_time=30

*.control_files='/oracle/SRQ/origlogA/cntrl/cntrlSRQ.dbf','/oracle/SRQ/origlogB/cntrl/cntrlSRQ.dbf','/oracle/SRQ/sapdata1/cntrl/cntrlSRQ.dbf'

*.db_block_size=8192

*.db_cache_size=4554479370

*.db_name='SRQ'

*.db_recovery_file_dest='/oracle/SRQ/oraflash'

*.db_recovery_file_dest_size=30000M

*.diagnostic_dest='/oracle/SRQ/saptrace'

*.FILESYSTEMIO_OPTIONS='setall'

*.log_archive_dest_1='LOCATION=/oracle/SRQ/oraarch/SRQarch'

*.log_archive_format='%t_%s_%r.dbf'

*.log_checkpoints_to_alert=true

*.max_dump_file_size='20000'

*.open_cursors=2000

*.parallel_execution_message_size=16384

*.parallel_threads_per_cpu=1

*.pga_aggregate_target=6072639160

*.processes=190

*.query_rewrite_enabled='false'

*.recyclebin='off'

*.remote_login_passwordfile='exclusive'

*.replication_dependency_tracking=false

*.sessions=380

*.shared_pool_size=4554479370

*.star_transformation_enabled='true'

*.undo_tablespace='PSAPUNDO'

/oracle/SRQ/121/dbs/spfileSRQ.ora

将上述蓝色字体内容拷贝到“/oracle/SRQ/121/dbs/initSRQ.ora",注意权限oracle:oinstall中

image.png

image.png

4、加载参数文件,这个pfile路径就是上面的参数文件路径

    SRMQAS:/oracle/SRQ/121/dbs # su - orasrq

RMAN> startup nomount pfile="/oracle/SRQ/121/dbs/initSRQ.ora"

  image.png

 5、加载控制文件(可以加载最新控制文件)

RMAN> restore controlfile from "/databackup/rmanbak/control_SRQ_1736226733_20191020_143.bak";

对三个控制文件都进行了还原

image.png

6、挂载数据库

RMAN> alter database mount;

image.png

7、将备份集信息重新导入到当前控制文件中

RMAN> catalog start with "/databackup/rmanbak";

image.png

8、检查备份

  RMAN> crosscheck backup;

image.png

9、删除过期的备份

rman>delete  noprompt expired backup;

image.png

再次查看已经删除

RMAN>crosscheck backup;

image.png

10、还原(转储)文件(restore):

RMAN> restore database;

restore 还原操作:还原完整备份或者是增量备份中的0级备份

11、恢复文件(recover):

recover恢复增量备份中的1级增量文件、同时还原archilog备份文件到/oracle/SRQ/oraarch/

RMAN> sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";

RMAN> recover database until time '2019-10-22 09:00:00';

此处需要加时间

(1)首先恢复1级增量

image.png

(2)再次恢复archivelog 备份文件到恢复区/oracle/SRQ/oraarch中,从oraaarch中进行恢复到要求的时间点

image.png

image.png

(3)因时间点在170号文件之后,所以需要继续恢复更新的archivelog文件。又因为恢复更新的archivelog,需要读取控制文件,此时数据库为mount状态,无法加载控制文件,所以即使把archivelog的bak文件考入到/databackup/rman中,也无法识别

所以,也可以把源端文件中的archivelog/oracle/SRQ/oraarch中的3043序列文件加入即可。

image.png

(4)如果重新recover database,可以看到已经找到指定恢复时间,所需要的最新序列3043

image.png


此句可以不开:

12--先只读打开确认数据是否符合要求(测试)

SQL> alter database open read only;

image.png


12.创建spfile文件,并以resetlogs方式打开

RMAN> create spfile from pfile='/oracle/SRQ/121/dbs/initSRQ.ora';

注意:此处的pfile文件,需要从spfile备份中strings 获取。

RMAN> alter database open resetlogs; 

image.png

至此,数据rman恢复正常。

四、spfile存在情况下

   (1)RMAN自动恢复和还原backups and copies这个过程,例如,运行以下命令within RMAN去还原和恢复数据库到当前状态
    (2)SHUTDOWN IMMEDIATE; # shuts down database

    (3)STARTUP NOMOUNT;

    (4)RMAN> restore controlfile from "/databackup/rmanbak/control_SRQ_1736226733_20191021_154.bak";

    (5)RMAN> alter database mount;

    (6)RMAN> catalog start with '/databackup/rmanbak';

    (7)RMAN> restore database;

    (5)RMAN> reover database; # recovers database using all available redo,还原归档日志和在线日志时报错,说scn不一致,如下图
    (6)ALTER DATABASE OPEN; # reopens the database

image.png

image.png

image.png

image.png

image.png

image.png

五、遇到的问题
1、RMAN>restore database;

2、恢复数据库:

    > sql "alter session set nls_date_format=''yyyy-mm-dd hh24:mi:ss''";

    > recover database until time'2019-10-12 12:00:00';

出现报错:RMAN-06094:datafile 1 must be restored

image.png

13、查看对象:report schema,RB segs是***,说明为识别到,

image.png

14、查看正常的数据文件:report schema;

image.png

15、尝试alter database open,提示错误,有个错误显示“RMAN-06067: RECOVER DATABASE required with a backup or created control file”

说明控制文件不是最新的;或者需要重新导入控制文件

    注:我做的增量备份,也就是0级备份+1级备份

    0级备份的数据文件是2019.10.14,控制文件是2019.10.14;

    1级备份的数据文件是2019.10.17,控制文件是2019.10.17;

    我用的是2019.10.14的备份+2019.10.17的控制文件,所以提示错误:如下:

    (1)RMAN-06094: datafile 1 must be restored

    (2)RMAN-06067: RECOVER DATABASE required with a backup or created control file

image.png

使用旧的控制文件即可,使用就得控制文件,进行recover,出现如下错误:

image.png

image.png

image.png

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020年4月25日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号