热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用RMAN传输数据_创建可传输的表空间集(CreatingTransportableTablespaceSets)

传输数据比对相同的数据执行exportimport或unloadload操作更快。因为对于用户定义的表空间,数据文件包含所有拷贝到目标位置的实际数据,你


传输数据比对相同的数据执行export/import或unload/load操作更快。因为对于用户定义的表空间,数据文件包含所有拷贝到目标位置的实际数据,你使用Data Pump只传输数据库对象的元数据到新数据库

本章阐述如何使用RMAN通过还原备份来创建可传输的表空间集。




1.创建可传输的表空间集概述

可以使用RMAN或可传输的表空间特性来创建可传输的表空间集。

本节阐述从RMAN备份中创建可传输的表空间集涉及的基本概念和任务。本章中的讨论假设你熟悉《Oracle Database Administrator’s Guide》中描述的transportable tablespace过程。本章中的过程是一个生成可传输的表空间集的备选技术。




1.1.创建可传输的表空间集的目的

可传输的表空间集包含一组表空间的数据文件和包含表空间组的结构元数据的export文件。export文件由Data Pump Export生成。

可传输的表空间集的一个用途是创建表空间仓库。例如,如果你有一个数据库含有某些用于季度报告的表空间,你可以为这些表空间创建可传输集存储在表空间仓库中。随后,可以从仓库中请求表空间的各个版本,附加到另外的数据库用于生成报告。

RMAN的TRANSPORT TABLESPACE命令的主要好处是它不需要访问要传输的表空间的活动的数据文件。相反,在《Oracle Database Administrator’s Guide》中描述的可传输的表空间技术要求要传输的表空间在传输期间是以只读方式打开的。因此,从备份中传输改善了数据库的可用性,特别是对于大的表空间,因为要传输的表空间可以在操作期间保持打开来写。同时,将表空间置于只读模式会花很长时间,取决于当前数据库的活动。

RMAN的TRANSPORT TABLESPACE命令让你可以指定在恢复窗口期间的目标时间点,SCN,或还原点,传输表空间在那个时间存在的数据。例如,如果你的备份保留策略保证一个星期的恢复窗口,如果你想基于数据库在每月的最后一天的内容创建可传输的表空间,那么RMAN可以在下个月的第一个星期期间的任何时间执行这个任务。




1.2.可传输的表空间集的基本概念

通过作为TARGET连接RMAN到源数据库,然后执行TRANSPORT TABLESPACE命令来创建可传输的表空间集。源数据库包含要传输的表空间。

你必须拥有RMAN可以用来恢复到指定时间点的所有需要的表空间和redo日志文件的备份来执行TRANSPORT TABLESPACE操作。Figure 27-1阐述了可传输的表空间创建的基本过程。

在这里插入图片描述

Figure 27-1中显示的过程按以下阶段发生:
1)RMAN启动一个辅助实例。
辅助实例在与源数据库相同的主机上由RMAN创建来执行还原和恢复表空间。RMAN自动为辅助实例创建初始化参数文件和以NOMOUNT模式启动。
2)RMAN还原源数据库控制文件的备份用作辅助实例的控制文件和挂载这个控制文件。
3)RMAN从源数据库的备份中还原辅助集和可传输集数据文件。
辅助集包括数据文件和其他表空间传输要求的文件,但它们本身不是可传输的表空间集的一部分。辅助集通常包括SYSTEM和SYSAUX表空间,临时文件和包含回滚或undo段的数据文件。辅助集实例有其他与它关联的文件,比如它自己的控制文件,参数文件和在线日志,但它们不是辅助集的一部分。

RMAN存储辅助集文件在选择的辅助集目的地。辅助集目的地是RMAN可以存储传输期间的辅助集文件比如参数文件,数据文件(不同于可传输集中的那些数据文件),控制文件和辅助实例的在线日志的磁盘位置。如果传输成功,那么RMAN删除这些文件。

RMAN存储可传输集的文件在表空间目的地。表空间目的地是一个缺省情况下当表空间传输命令完成时包含数据文件副本和其它输出文件的磁盘位置。

4)RMAN在辅助实例上执行数据库时间点恢复(DBPITR)。
恢复更新辅助和可传输集数据文件到它们在TRANSPORT TABLESPACE命令指定的目标时间时的内容,然后RMAN使用所有可用的redo恢复。RMAN从备份中还原必要的归档redo日志到辅助目的地(或其他位置),然后在应用它们之后删除它们。

5)RMAN使用RESETLOGS选项打开辅助数据库。
数据文件现在反映表空间的内容为表空间传输操作的目标SCN时的内容。

6)RMAN将辅助实例的可传输集表空间置于只读模式,RMAN也在可传输模式调用Data Pump Export来为可传输集创建export dump文件。

缺省情况下,dump文件位于表空间目的地。你可以为dump文件指定替代的位置。

RMAN也生成Data Pump import样本脚本在当插入可传输的表空间到目标数据库时使用。脚本的内容被写到表空间目的地中一个名称为impscript.sql的文件中。使用该脚本的命令也包含在RMAN命令输出中。

7)如果前面的步骤成功,那么RMAN关闭辅助实例和删除在TRANSPORT TABLESPACE操作期间创建的除了可传输集文件,Data Pump Export文件和样本导入脚本之外的所有文件。




1.3.创建可传输的表空间集的基本步骤

为创建可传输的表空间集,在辅助实例初始化参数文件中设置需要的参数,然后使用TRANSPORT TABLESPACE命令。

创建可传输表空间集的基本步骤如下:
1)启动RMAN客户端,连接到源数据库和恢复目录(如果使用的话)。

2)确保满足TRANSPORT TABLESPACE命令的前提条件。

3)如果必要,在辅助实例参数文件中设置额外的参数。

4)执行TRANSPORT TABLESPACE命令。

5)如果TRANSPORT TABLESAPCE命令失败,故障诊断问题,然后重试命令直到成功。

6)返回到《Oracle Database Administrator’s Guide》中描述的传输表空间过程。




2.为辅助实例自定义初始化参数

当RMAN创建辅助实例时,它创建一个初始化参数文件。缺省值对大部分TRANSPORT TABLESPACE情况有用,特别是如果在TRANSPORT TABLESPACE命令中指定AUXILIARY DESTINATION选项。
RMAN也可以使用包含额外初始化参数值的辅助实例参数文件。这些值覆盖在缺省初始化参数文件中定义的参数值。




2.1.关于为辅助实例设置初始化参数

RMAN为自动辅助实例定义某些基本的初始化参数用于传输表空间。

你可能由于以下原因使用辅助实例参数文件来包含额外的参数:
1)增加STREAMS_POOL_SIZE和SHARED_POOL_SIZE如果Data Pump Export需要。
2)管理辅助实例数据文件的位置。例如,你不想所有辅助实例数据文件存储在磁盘的相同位置中,但你不想单独指定每个文件的位置。
3)使用LOG_FILE_NAME_CONVERT指定在线redo日志的名称。

辅助实例参数文件不是想作为辅助实例的完整的初始化参数文件。任何指定的参数会增加到或覆盖辅助实例的缺省参数。没有必要指定初始化文件中你不打算覆盖的参数。

下表描述了辅助实例的初始化参数。


初始化参数
DB_NAME与源数据库相同的DB_NAME
COMPATIBLE与源数据库相同的兼容性设置
DB_UNIQUE_NAME基于DB_NAME生成的唯一值
DB_BLOCK_SIZE与源数据库相同的DB_BLOCK_SIZE
DB_FILES与源数据库相同的DB_FILES
SGA_TARGET280M建议值
DB_CREATE_FILE_DEST辅助目的地(只有如果设置了TRANSPORT TABLESPACE的AUXILIARY DESTINATION参数)。RMAN在这个位置创建Oracle管理的控制文件和在线日志。

使用不合适的值覆盖辅助实例参数文件中的基本的初始化参数会导致TRANSPORT TABLESPACE失败。如果你遇到问题,那么尝试回退初始化参数到它的缺省值。




2.2.设置辅助实例参数文件的位置

缺省情况下,RMAN在运行RMAN客户端的主机上操作系统相关的位置中查找辅助的初始化参数文件。这个位置可能不在运行辅助实例的主机上。对于UNIX系统,这个位置是?/rdbms/admin/params_auxint.ora,其中问号代表运行RMAN的主机的ORACLE_HOME。如果在缺省位置中找不到文件,那么RMAN不会产生错误。

如果你为辅助实例使用缺省的初始化参数,那么在运行TRANSPORT TABLESPACE之前检查辅助实例参数文件是否存在。

为了给辅助实例参数文件指定一个不同的位置,你可以在RUN块中在TRANSPORT TABLESPACE命令之前使用RMAN的SET AUXILIARY INSTANCE PARAMETER FILE命令。如辅助实例参数文件的缺省位置一样,使用SET AUXILIARY INSTANCE PARAMETER FILE命令指定的路径是客户端路径。

以下示例描述如何在TRANSPORT TABLESPACE中使用初始化参数文件。

在运行RMAN客户端的主机上创建名称为/tmp/auxinstparams.ora的文件。这个文件包含以下初始化参数:
SHARED_POOL_SIZE=150M;

文件中的SHARED_POOL_SIZE覆盖RMAN创建辅助实例时使用的SHARED_POOL_SIZE的缺省值。

以下命令在创建可传输表空间时使用初始化参数文件:
RUN
{
 SET AUXILIARY INSTANCE PARAMETER FILE TO ‘/tmp/auxinstparams.ora’;
 TRANSPORT TABLESPACE tbs_2
  TABLESPACE DESTINATION ‘/disk1/transportdest’
  AUXILIARY DESTINATION ‘/disk1/auxdest’;
}




3.创建可传输的表空间集

这个过程描述在大部分基本和自动情况中使用TRANSPORT TABLESPACE。

假设已经满足TRANSPORT TABLESPACE命令要求的前提条件(参考《Oracle Database Backup and Recovery Reference》)。它也假设已经满足《Oracle Database Administrator’s Guide》中描述的以下要求:
1)确认表空间传输在源和目的地平台之间被支持
2)确认自包含的表空间集包括在可传输集中

创建可传输的表空间集:
1)启动RMAN客户端,连接到源数据库和恢复目录数据库(如果有使用)。

2)在RMAN中运行TRANSPORT TABLESPACE命令。

在大部分基本情况中,你指定AUXILIARY DESTINATION子语句,它是可选的但是建议的。RMAN使用对大部分情况有效的缺省值。如果你不指定辅助位置,那么确保为所有辅助实例文件指定位置。

以下示例创建包括表空间tbs_2和tbs_3的可传输表空间集。
TRANSPORT TABLESPACE tbs_2, tbs_3
 TABLESPACE DESTINATION ‘/disk1/transportdest’
 AUXILIARY DESTINATION ‘/disk1/auxdest’;

在命令成功完成之后,注意以下结果:
a.可传输集数据文件使用它们原始的名称留在位置/disk1/transportdest。可传输的表空间集数据文件不会通过TRANSPORT TABLESPACE命令自动转换为目的地数据库的endian格式。如果必要,在创建可传输集之后使用CONVERT命令转换数据文件为目的地数据库的endian格式。
b.可传输集的Data Pump export dump文件命名为dmpfile.dmp,export日志命名为explog.log,样本import脚本被命名为impscrpt.sql。
所有文件创建在/disk1/transportdest中。如果有与export dump文件名称相同的文件在表空间目的地中存在,那么TRANSPORT TABLESPACE调用Data Pump Export时失败。如果你重复先前的TRANSPORT TABLESPACE操作,删除先前的输出文件,包括export dump文件。
c.辅助集文件会从/disk1/auxdest中移除。

3)如果必要,编辑样本import脚本。
样本import脚本假设用于import表空间到目的地数据库的文件存储在通过TRANSPORT TABLESPACE命令创建它们时所在的相同位置。如果文件在插入之前被移动到新的磁盘位置,那么必须在使用脚本插入传输表空间之前使用文件的新位置更新样本脚本。

4)返回到《Oracle Database Administrator’s Guide》中描述的传输表空间过程。




4.创建可传输的表空间集场景

4.1.创建在指定时间或SCN的可传输表空间集

可以使用TRANSPORT TABLESPACE命令指定目标时间或SCN。在表空间传输操作期间,RMAN在辅助实例上使用目标时间之前的备份还原表空间和在辅助数据库上执行时间点恢复到指定的时间点。时间点恢复需要的备份和归档redo日志必须可用。

以下示例使用SCN指定目标时间(在当前转生或它的祖先):
TRANSPORT TABLESPACE tbs_2
 TABLESPACE DESTINATION ‘/disk1/transportdest’
 AUXILIARY DESTINATION ‘/disk1/auxdest’
 UNTIL SCN 11379;

以下示例指定还原点作为创建可传输的表空间集的目标时间:
TRANSPORT TABLESPACE tbs_2
 TABLESPACE DESTINATION ‘/disk1/transportdest’
 AUXILIARY DESTINATION ‘/disk1/auxdest’
 TO RESTORE POINT ‘before_upgrade’;

以下示例指定结束时间作为创建可传输的表空间集的目标时间:
TRANSPORT TABLESPACE tbs_2
 TABLESPACE DESTINATION ‘/disk1/transportdest’
 AUXILIARY DESTINATION ‘/disk1/auxdest’
 UNTIL TIME ‘SYSDATE-1’;




4.2.指定Data Pump文件的位置

可以更改可传输集的Data Pump export dump文件的名称,在目标数据库上使用的样本import脚本,Data Pump Export生成的日志文件和这些文件写到的目录。

缺省情况下,这些文件存储在表空间目的地里,名称如下:
1)Data Pump export dump文件的名称为dmpfile.dmp。
2)export日志文件的名称为explog.log。
3)样本import脚本的名称为impscrpt.sql。

可以使用TRANSPORT TABLESPACE命令的DATAPUMP DIRECTORY子语句传入数据库目录对象的名称。DATAPUMP DIRECTORY使用的数据库目录对象不是实际的文件系统目录的路径,这个传入的值对应Data Pump Export的命令行参数DIRECTORY

可以使用TRANSPORT TABLESPACE命令的DUMP FILE,EXPORT LOG和IMPORT SCRIPT子语句重命名这些文件。文件名称不能包含目录名称的全文件路径。如果DUMP FILE或EXPORT LOG文件名称指定文件路径,那么TRANSPORT TABLESPACE失败当它尝试生成export dump文件时。使用DATAPUMP DIRECTORY子语句指定数据库目录对象来定位Data Pump Export输出的位置

以下场景阐述使用命令TRANSPORT TABLESPACE的DATAPUMP DIRECTORY,DUMP FILE,EXPORT LOG,IMPORT SCRIPT子语句指定文件名称。假设你创建一个如下的数据库目录对象给Data Pump Export使用:
CREATE OR REPLACE DIRECTORY mypumpdir as ‘/datapumpdest’;

以下示例显示TRANSPORT TABLESPACE命令和可选的指定输出文件位置的参数。
TRANSPORT TABLESPACE tbs_2
 TABLESPACE DESTINATION ‘/transportdest’
 AUXILIARY DESTINATION ‘/auxdest’
 DATAPUMP DIRECTORY mypumpdir
 DUMP FILE ‘mydumpfile.dmp’
 IMPORT SCRIPT ‘myimportscript.sql’
 EXPORT LOG ‘myexportlog.log’;

在成功运行之后,RMAN清除辅助目的地,创建Data Pump export dump文件和export日志在DATAPUMP DIRECTORY指向的目录中(/datapumpdest/mydumpfile.dmp和/datapumpdest/myexportlog.log),存储可传输集数据文件在/transportdest。




4.3.指定辅助文件位置

在传输期间创建的辅助示例文件的位置。

如果RMAN确认由任何指定辅助文件位置的方法指明的辅助文件包含一个适合用于传输操作的期望的时间点的数据文件副本,那么使用数据文件副本而不是还原数据文件。任何数据文件副本是当前的但不适合这个传输操作,因为它们比请求的时间点更近,或不能识别为目标数据库的一部分,会在还原数据文件时被覆盖。

最简单的技术时使用TRANSPORT TABLESPACE命令的AUXILIARY DESTINATION子语句,让RMAN自动管理所有文件位置。

下表按RMAN使用的优先顺序列出了当迁移某些或所有辅助实例文件时指定文件位置的技术,具体使用方法可以参考“执行RMAN表空间时间点恢复”章节。


优先顺序辅助文件命名技术
1SET NEWNAME FOR DATAFILES
SET NEWNAME FOR TABLESPACE
SET NEWNAME FOR DATABASE
2CONFIGURE AUXNAME
3TRANSPORT TABLESPACE命令的AUXILIARY DESTINATION子语句
4初始化参数文件中的LOG_FILE_NAME_CONVERT和DB_FILE_NAME_CONVERT参数

示例1:
RUN
{
 SET NEWNAME FOR DATAFILE ‘/oracle/dbs/tbs_12.f’
TO ‘/bigdrive/auxdest/tbs_12.f’;
 SET NEWNAME FOR DATAFILE ‘/oracle/dbs/tbs_11.f’
TO ‘/bigdrive/auxdest/tbs_11.f’;
 TRANSPORT TABLESPACE tbs_2
  TABLESPACE DESTINATION ‘/disk1/transportdest’
  AUXILIARY DESTINATION ‘/disk1/auxdest’;
}



示例2:

CONFIGURE AUXNAME FOR DATAFILE ‘/oracle/dbs/tbs_12.f’
TO ‘/disk1/auxdest/tbs_12.f’;

TRANSPORT TABLESPACE tbs_11
 AUXILIARY DESTINATION ‘/myauxdest’
 TABLESPACE DESTINATION ‘/disk1/transportdest’;







来源:《Oracle Database Backup and Recovery User’s Guide,19c》







推荐阅读
  • MPLS VP恩 后门链路shamlink实验及配置步骤
    本文介绍了MPLS VP恩 后门链路shamlink的实验步骤及配置过程,包括拓扑、CE1、PE1、P1、P2、PE2和CE2的配置。详细讲解了shamlink实验的目的和操作步骤,帮助读者理解和实践该技术。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了如何使用vue-awesome-swiper组件,包括在main.js中引入和使用swiper和swiperSlide组件,以及设置options和ref属性。同时还介绍了如何在模板中使用swiper和swiperSlide组件,并展示了如何通过循环渲染swipes数组中的数据,并使用picUrl属性显示图片。最后还介绍了如何添加分页器。 ... [详细]
author-avatar
7777-丿M
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有