表空间数据文件迁移到另外的位置(backup as copy tablespace)

Posted hxlasky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表空间数据文件迁移到另外的位置(backup as copy tablespace)相关的知识,希望对你有一定的参考价值。

环境:

OS: Centos 7

DB:12.2.0.1 数据库必须在归档模式

1.创建表空间
12c pdb下创建表空间
create tablespace tps_data
logging
datafile ‘/u01/app/oracle/oradata/ora12c/ora12cpdb1/tps_data01.dbf‘
size 100m
autoextend on
next 10m maxsize 24G
extent management local;

表空间添加数据文件
alter tablespace tps_data add datafile ‘/u01/app/oracle/oradata/ora12c/ora12cpdb1/tps_data02.dbf‘ size 100m;

2.备份表空间tps_data
提前创建目录
mkdir -p /u01/app/oracle/oradata_temp/ora12cpdb1
rman target /
backup as copy tablespace  ORA12CPDB1:tps_data format ‘/u01/app/oracle/oradata_temp/ora12cpdb1/%N%f.dbf‘;
(%N为表空间名、%f为数据文件绝对文件号)

3.目录转移
将表空间进行offline
进入pdb
SQL> alter session set container=ORA12CPDB1;
SQL> alter tablespace  tps_data offline;

rman模式执行
RMAN> switch tablespace ORA12CPDB1:tps_data to copy;

datafile 13 switched to datafile copy "/u01/app/oracle/oradata_temp/ora12cpdb1/TPS_DATA13.dbf"
datafile 14 switched to datafile copy "/u01/app/oracle/oradata_temp/ora12cpdb1/TPS_DATA14.dbf"

RMAN> recover tablespace ORA12CPDB1:tps_data;

Starting recover at 06-DEC-19
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=71 device type=DISK

starting media recovery
media recovery complete, elapsed time: 00:00:00

Finished recover at 06-DEC-1

进入pdb
SQL> alter session set container=ORA12CPDB1;
SQL> alter tablespace  tps_data online;

Tablespace altered

4.验证
SQL> Select Name From v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ora12c/ora12cpdb1/system01.dbf
/u01/app/oracle/oradata/ora12c/ora12cpdb1/sysaux01.dbf
/u01/app/oracle/oradata/ora12c/ora12cpdb1/undotbs01.dbf
/u01/app/oracle/oradata/ora12c/ora12cpdb1/users01.dbf
/u01/app/oracle/oradata_temp/ora12cpdb1/TPS_DATA13.dbf
/u01/app/oracle/oradata_temp/ora12cpdb1/TPS_DATA14.dbf

6 rows selected.


但是原来的文件还是存在的,可以手工删除掉
[oracle@localhost ora12cpdb1]$ ls -1 /u01/app/oracle/oradata/ora12c/ora12cpdb1
sysaux01.dbf
system01.dbf
temp01.dbf
tps_data01.dbf
tps_data02.dbf
undotbs01.dbf
users01.dbf

 

--The End --

以上是关于表空间数据文件迁移到另外的位置(backup as copy tablespace)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL8数据迁移大表捷径【表空间迁移】

[20171121]rman backup as copy 2.txt

oracle如何移动表空间?

MySQL迁移数据目录(迁移数据库表InnoDB系统表空间状态文件/日志文件)

Oracle 使用RMAN COPY 移动 整个数据库 位置 示例

oracle impdp全库导入时如何指定表空间位置