返回顶部
首页 > 资讯 > 数据库 >利用RMAN IMAGE COPY,启动新的数据库
  • 450
分享到

利用RMAN IMAGE COPY,启动新的数据库

2024-04-02 19:04:59 450人浏览 八月长安
摘要

    通过IMAGE COPY技术,可以得到一个数据库的完整副本,快速打开数据库,避免数据库还原和恢复的漫长时间。下面是利用IMAGE COPY进行一个数据库完整恢复的案例。由于该测试

    通过IMAGE COPY技术,可以得到一个数据库的完整副本,快速打开数据库,避免数据库还原和恢复的漫长时间。下面是利用IMAGE COPY进行一个数据库完整恢复的案例。由于该测试是在同一台数据库主机上面进行,因此需要注意oracle_SID环境变量,以及相关路径下的文件不能被覆盖。


--1. 创建DB 0级 IMAGE COPY 备份

[oracle@sqlaudit ~]$ rman target /
RMAN> BACKUP AS COPY INCREMENTAL LEVEL 0 TAG 'SRCDB-IMAGE' DATABASE FORMAT '/oradata/srcdb_img/SRCDB-LVL0-%U';


--2. 创建测试数据

[oracle@sqlaudit ~]$ sqlplus / as sysdba
SQL> create table scott.test_backup  
  2  as
  3  select rownum rn from dual connect by rownum <= 1000000;


--3. 创建DB 1级 IMAGE COPY 备份

RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF TAG 'SRCDB-IMAGE' DATABASE FORMAT '/oradata/srcdb_img/SRCDB-LVL1-%U' PLUS ARCHiveLOG;

Starting backup at 2018-01-31 07:48:41
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=2 RECID=1 STAMP=961989888
input archived log thread=1 sequence=3 RECID=2 STAMP=966842424
input archived log thread=1 sequence=4 RECID=3 STAMP=966842833
input archived log thread=1 sequence=5 RECID=4 STAMP=966842838
input archived log thread=1 sequence=6 RECID=5 STAMP=966842911
input archived log thread=1 sequence=7 RECID=6 STAMP=966842915
input archived log thread=1 sequence=8 RECID=7 STAMP=966844055
input archived log thread=1 sequence=9 RECID=8 STAMP=966844059
input archived log thread=1 sequence=10 RECID=9 STAMP=966844121
channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:42
channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:43
piece handle=/oracle/app/oracle/product/11.2.0.4/db_1/dbs/12sq1nmp_1_1 tag=SRCDB-IMAGE comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2018-01-31 07:48:43
Starting backup at 2018-01-31 07:48:43
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/oracle/app/oracle/oradata/srcdb/system01.dbf
input datafile file number=00002 name=/oracle/app/oracle/oradata/srcdb/sysaux01.dbf
input datafile file number=00005 name=/oracle/app/oracle/oradata/srcdb/ggtbs01.dbf
input datafile file number=00003 name=/oracle/app/oracle/oradata/srcdb/undotbs01.dbf
input datafile file number=00004 name=/oracle/app/oracle/oradata/srcdb/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:43
channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:44
piece handle=/oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1 tag=SRCDB-IMAGE comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental level 1 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:45
channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:46
piece handle=/oradata/srcdb_img/SRCDB-LVL1-14sq1nms_1_1 tag=SRCDB-IMAGE comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2018-01-31 07:48:46
Starting backup at 2018-01-31 07:48:46
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=11 RECID=10 STAMP=966844126
channel ORA_DISK_1: starting piece 1 at 2018-01-31 07:48:46
channel ORA_DISK_1: finished piece 1 at 2018-01-31 07:48:47
piece handle=/oracle/app/oracle/product/11.2.0.4/db_1/dbs/15sq1nmu_1_1 tag=SRCDB-IMAGE comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2018-01-31 07:48:47


--4. 对 DB 0级 IMAGE COPY 备份进行恢复操作

RMAN> RECOVER COPY OF DATABASE WITH TAG 'SRCDB-IMAGE';

Starting recover at 2018-01-31 07:48:57
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00001 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1niv
recovering datafile copy file number=00002 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2
recovering datafile copy file number=00003 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njk
recovering datafile copy file number=00004 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njl
recovering datafile copy file number=00005 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njh
channel ORA_DISK_1: reading from backup piece /oradata/srcdb_img/SRCDB-LVL1-0vsq1nko_1_1
channel ORA_DISK_1: piece handle=/oradata/srcdb_img/SRCDB-LVL1-0vsq1nko_1_1 tag=SRCDB-IMAGE
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile copies to recover
recovering datafile copy file number=00001 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1niv
recovering datafile copy file number=00002 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2
recovering datafile copy file number=00003 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njk
recovering datafile copy file number=00004 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njl
recovering datafile copy file number=00005 name=/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njh
channel ORA_DISK_1: reading from backup piece /oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1
channel ORA_DISK_1: piece handle=/oradata/srcdb_img/SRCDB-LVL1-13sq1nmr_1_1 tag=SRCDB-IMAGE
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
Finished recover at 2018-01-31 07:48:59


--5. 源库执行备份控制文件操作,获取日志中的信息

SQL> alter database backup controlfile to trace;
--    Set #1. NORESETLOGS case
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "SRCDB" NORESETLOGS FORCE LOGGING ARCHIVELOG
......
;


--6. 创建新的对象,用于后续完全恢复时进行稽核

SQL> create table scott.test22 (id number);
SQL> alter system switch logfile;
SQL> shutdown immediate;


--7. 创建 IMAGE COPY 数据库所需的参数文件(参数文件中的db_name不能修改,audit_file_dest与control_files路径要进行调整)

[oracle@sqlaudit ~]$ cd $ORACLE_HOME/dbs
[oracle@sqlaudit dbs]$ cp orapwsrcdb orapwsrcdbnew
[oracle@sqlaudit dbs]$ strings spfilesrcdb.ora > initsrcdbnew.ora
[oracle@sqlaudit dbs]$ cat initsrcdbnew.ora | grep '/oracle/'
*.audit_file_dest='/oracle/app/oracle/admin/srcdbnew/adump'
*.control_files='/oradata/srcdb_img/control01.ctl','/oradata/srcdb_img/control02.ctl'
[oracle@sqlaudit dbs]$ mkdir -p /oracle/app/oracle/admin/srcdbnew/adump

--8. 启动数据库实例

[oracle@sqlaudit dbs]$ export ORACLE_SID=srcdbnew
[oracle@sqlaudit dbs]$ sqlplus / as sysdba
SQL> startup nomount;


--9. 复制在线日志文件到新目录用于完全恢复

[oracle@sqlaudit archive]$ cp /oracle/app/oracle/oradata/srcdb/redo01.log /oradata/srcdb_img/redo01.log
[oracle@sqlaudit archive]$ cp /oracle/app/oracle/oradata/srcdb/redo02.log /oradata/srcdb_img/redo02.log
[oracle@sqlaudit archive]$ cp /oracle/app/oracle/oradata/srcdb/redo03.log /oradata/srcdb_img/redo03.log


--10. 重建控制文件

CREATE CONTROLFILE REUSE DATABASE "SRCDB" NORESETLOGS
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/oradata/srcdb_img/redo01.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 '/oradata/srcdb_img/redo02.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 '/oradata/srcdb_img/redo03.log'  SIZE 50M BLOCKSIZE 512
DATAFILE
  '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSTEM_FNO-1_0nsq1niv',
  '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-SYSAUX_FNO-2_0osq1nj2',
  '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-UNDOTBS1_FNO-3_0qsq1njk',
  '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-USERS_FNO-4_0rsq1njl',
  '/oradata/srcdb_img/SRCDB-LVL0-data_D-SRCDB_I-595837900_TS-GGTBS_FNO-5_0psq1njh'
CHARACTER SET WE8MSWIN1252
;
SQL> SELECT NAME FROM V$DATAFILE;


--11. 源库检查检查需要注册的日志文件

[oracle@sqlaudit dbs]$ export ORACLE_SID=srcdb
SQL> startup mount;
RMAN> list backup of archivelog all;
BS Key  Size      Device Type Elapsed Time Completion Time    
------- ---------- ----------- ------------ -------------------
19      3.50K      DISK        00:00:00    2018-01-31 07:48:46
        BP Key: 19  Status: AVaiLABLE  Compressed: NO  Tag: SRCDB-IMAGE
        Piece Name: /oracle/app/oracle/product/11.2.0.4/db_1/dbs/15sq1nmu_1_1
  List of Archived Logs in backup set 19
  Thrd Seq    Low SCN    Low Time            Next SCN  Next Time
  ---- ------- ---------- ------------------- ---------- ---------
  1    11      969636    2018-01-31 07:48:41 969648    2018-01-31 07:48:46


--12. 新库注册源库的日志文件

SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_11_961988430.dbf';
SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_12_961988430.dbf';
SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_13_961988430.dbf';
SQL> ALTER DATABASE REGISTER LOGFILE '/oracle/archive/1_14_961988430.dbf';
SQL> RECOVER DATABASE;
SQL> ALTER DATABASE OPEN;


--13. 创建新的临时文件

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/oradata/srcdb_img/temp01.dbf' SIZE 100M AUTOEXTEND OFF;


您可能感兴趣的文档:

--结束END--

本文标题: 利用RMAN IMAGE COPY,启动新的数据库

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

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

猜你喜欢
  • 利用RMAN IMAGE COPY,启动新的数据库
        通过IMAGE COPY技术,可以得到一个数据库的完整副本,快速打开数据库,避免数据库还原和恢复的漫长时间。下面是利用IMAGE COPY进行一个数据库完整恢复的案例。由于该测试...
    99+
    2024-04-02
  • 如何利用RMAN备份重建数据库
    这篇文章主要介绍了如何利用RMAN备份重建数据库,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。有时数据库由于某些原因需要全部销毁重建,之前的...
    99+
    2024-04-02
  • mysql数据库新安装无法启动
    mysql数据库源码编译之后,启动失败具体报错日志如下: 2018-04-13 23:45:46 67547 [Note] Plugin 'FEDERATED' is disabled. /usr/loca...
    99+
    2024-04-02
  • 如何利用rman copy的方法实现存储上裸设备数据文件的迁移ITPUB
    小编给大家分享一下如何利用rman copy的方法实现存储上裸设备数据文件的迁移ITPUB,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 利用rman copy的方法实现存储上裸设备数据...
    99+
    2024-04-02
  • 使用RMAN恢复数据库的过程
    这篇文章主要讲解了“使用RMAN恢复数据库的过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“使用RMAN恢复数据库的过程”吧!由于需要搭建一个测试环境,把...
    99+
    2024-04-02
  • Oracle 19c 利用触发器在数据库启动后自动打开 PDB
    以 sys 用户创建如下触发器,Oracle数据库启动完成后会自动打开所有的 PDB。当然,可以自动指定打开哪些 PDB。 CREATE OR REPLACE TRIGGER OPEN_PDBS AFTER...
    99+
    2024-04-02
  • rac启动后数据库不能自动启动的原因
    本篇内容主要讲解“rac启动后数据库不能自动启动的原因”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“rac启动后数据库不能自动启动的原因”吧!查看资源配置:[o...
    99+
    2024-04-02
  • 利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性
    利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性作者:赵全文  网名:guestart我们生产环境的Oracle数据库都做了RMAN备份,是采用了一周的RMAN备份保留策略;除了使...
    99+
    2024-04-02
  • db2数据库的启动和关闭
    在一个DB2 实例下,可以创建多个database(具体每个实例下可以创建多少个database,可以通过DB2 GET DBM CFG查看.一旦建立了数据库之后,就可以对其进行操作,然而,在向数据库中建立对象或访问数据库中的对象(数据)之...
    99+
    2023-06-06
  • vue中怎么利用express启动数据服务
    本篇文章为大家展示了vue中怎么利用express启动数据服务,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。build->dev.sever.js配置var&...
    99+
    2024-04-02
  • 阿里云的数据库如何启动使用
    简介 阿里云提供了丰富的云计算服务,其中包括强大的数据库服务。本文将介绍如何在阿里云上启动和使用数据库。步骤一:创建数据库实例首先,登录阿里云控制台,在左侧导航栏中选择“数据库RDS”,然后点击“创建实例”。在创建实例页面,填写实例的基本信...
    99+
    2024-01-20
    阿里 数据库
  • 如何将Oracle数据库改为归档模式并启用RMAN备份
    本篇内容主要讲解“如何将Oracle数据库改为归档模式并启用RMAN备份”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何将Oracle数据库改为归档模式并启用...
    99+
    2024-04-02
  • MySQL数据库启动报错的处理
    今天在linux中启动mysql时提示mysql Starting MySQL..The server quit without updating PID file了,下面我来给大家介绍解决办法从网上找了一...
    99+
    2024-04-02
  • MySQL数据库启动过程的简述
    1.读取事物日志,获取最近的checkpoint . 2.遍历系统表空间,获取double_write,检查页面, 同步数据 到独立表空间。 3.遍历该checkpoint后的事物,重做数据。 根据[spa...
    99+
    2024-04-02
  • Linux启动/停止/重启Mysql数据库的方法
    查看mysql版本方法一:status;方法二:select version(); Mysql启动、停止、重启常用命令a、启动方式1、使用 service 启动:[[email protected] /]# service mysqld s...
    99+
    2014-12-13
    Linux启动/停止/重启Mysql数据库的方法 数据库入门 数据库基础教程
  • Linux启动、停止、重启Mysql数据库的方法
    1、查看mysql版本 方法一:status; 方法二:select version(); 2、Mysql启动、停止、重启常用命令 a、启动方式 1、使用 service 启动: [root@localho...
    99+
    2022-05-18
    mysql linux
  • 如何用docker容器启动mysql数据库?
    docker下载镜像docker pull mysql docker images创建容器docker run -d -e MYSQL_ROOT_PASSWORD=root --name mysql57 -...
    99+
    2024-04-02
  • 数据库容器化:开启云端数据库新时代的钥匙
    简化部署 数据库容器化通过将数据库环境打包成轻量级的、可独立部署的单元,极大简化了数据库部署。它消除了在不同环境中安装和配置数据库的复杂性,使得在云端或混合环境中快速部署数据库成为可能。 提高可移植性 容器化的数据库可以轻松地从一个平台迁...
    99+
    2024-04-02
  • 利用python中pymysql操作MySQL数据库的新手指南
    目录一. pymysql介绍 二. 连接数据库的完整流程 1. 引入pymysql模块 2. 创建连接对象 3. 使用连接对象创建游标对象 4. 准备需要使用的sql语句 5. 使用...
    99+
    2024-04-02
  • MySQL数据库的启动与终止方法
    本篇内容介绍了“MySQL数据库的启动与终止方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!由于MySQ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作