-- 查看asm磁盘组状态:
SQL> select state,name,type from v$asm_diskgroup;
STATE
NAME
TYPE
----------- ------------------------------ ------
MOUNTED
ARCH
EXTERN
MOUNTED CRS EXTERN
MOUNTED
DATA
EXTERN
MOUNTED
NEW_DATA
EXTERN
-- 数据库状态:
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
MOUNTED
-- rman 迁移数据库文件 :
rman target /
Recovery Manager: Release 11.2.0.3.0 - Production on Wed
Sep 22 17:54:39 2021
Copyright (c) 1982, 2011, Oracle and/or its
affiliates. All rights reserved.
connected to target database: test (DBID=2180016091, not
open)
RMAN> backup as copy database format '+NEW_DATA';
Starting backup at 22-SEP-21
using target database control file instead of recovery
catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=762 instance=test2 device
type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00021
name=+DATA/test/test_dat4.dbf
--拷贝完成:查看
RMAN> list copy of database;
using target database control file instead of recovery
catalog
List of Datafile Copies
=======================
Key File S Completion Time Ckp SCN Ckp Time
------- ---- - --------------- ---------- ---------------
66 1 A 22-SEP-21 20820327812 22-SEP-21
Name: +NEW_DATA/test/datafile/system.309.1083965039
Tag: TAG20210922T184251
60 2 A 22-SEP-21 20820327812 22-SEP-21
Name: +NEW_DATA/test/datafile/sysaux.303.1083964797
Tag: TAG20210922T184251
-- switch
----数据文件拷贝已经完成,现在需要将数据库切换到新的文件,切换文件实际是告诉控制文件,数据文件被移到了新的位置。因此这个步骤只是改变控制文件的内容,会很快,但是需要将数据库置为mount状态
RMAN> switch
database to copy;
datafile 1 switched to datafile copy "+NEW_DATA/test/datafile/system.309.1083965039"
datafile 2 switched to datafile copy
"+NEW_DATA/test/datafile/sysaux.303.1083964797"
datafile 3 switched to datafile copy
"+NEW_DATA/test/datafile/test_ind_dat.266.1083955597"
datafile 4 switched to datafile copy "+NEW_DATA/test/datafile/users.310.1083965055"
datafile 5 switched to datafile copy
"+NEW_DATA/test/datafile/undotbs2.295.1083964007"
-- -switch成功,启库
SQL> alter database open;
Database altered.
-- 查看文件目录:
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+NEW_DATA/test/datafile/system.309.1083965039
+NEW_DATA/test/datafile/sysaux.303.1083964797
+NEW_DATA/test/datafile/test_ind_dat.266.1083955597
+NEW_DATA/test/datafile/users.310.1083965055
-- temp 表空间,修改新路径:
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
+DATA/pay/temp01.dbf
+DATA/pay/temp02.dbf
-- 创建新temp 表空间
SQL> create temporary tablespace temp03 tempfile
'+NEW_DATA' size 30M;
Tablespace created.
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
+DATA/test/temp01.dbf
+DATA/test/temp02.dbf
+NEW_DATA/test/tempfile/temp03.311.1084007975
-- 修改默认表空间:
SQL> alter database default temporary tablespace
temp03;
Database altered.
-- 删除旧表空间:
SQL> drop
tablespace temp including contents and datafiles;