Oracle单实例移动数据文件的几种方法

阅读: 评论:0

Oracle单实例移动数据文件的几种方法

Oracle单实例移动数据文件的几种方法

单实例移动数据文件

  • 目录
  • 一、未开启归档情况下移动单个数据文件
  • 二、开启归档情况下移动单个数据文件
  • 三、开启归档情况下移动多个数据文件


目录

一、未开启归档情况下移动单个数据文件

方法一:此方法在数据库未开启归档的情况下想要移动数据文件,数据库需要重启一次,业务需要暂停。

需求:将数据文件/u01/app/oracle/orcl/cdr01.dbf 移到到/u01/oradata/cdr01.dbf

第一步:关闭数据库

sys@ORCL>shutdown immeidate;

第二步:在系统层面移动数据文件

[oracle@hisdb orcl]$ mv/cp cdr01.dbf /u01/oradata/
[oracle@hisdb oradata]$ ls
cdr01.dbf

第三步:启动数据库到mount状态

sys@ORCL>startup mount;
ORACLE 例程已经启动。Total System Global Area  768294912 bytes
Fixed Size		    2257192 bytes
Variable Size		  473960152 bytes
Database Buffers	  289406976 bytes
Redo Buffers		    2670592 bytes
数据库装载完毕。

第四步:在数据库中rename移动的数据文件

sys@ORCL>alter database rename file '/u01/app/oracle/orcl/cdr01.dbf' to '/u01/oradata/cdr01.dbf';数据库已更改。

第五步:将数据库打开到open

sys@ORCL>alter database open;数据库已更改。sys@ORCL>select name from v$datafile;NAME
--------------------------------------------------------------------------------
/u01/app/oracle/orcl/system01.dbf
/u01/app/oracle/orcl/sysaux01.dbf
/u01/app/oracle/orcl/undotbs01.dbf
/u01/app/oracle/orcl/users01.dbf
/u01/oradata/cdr01.dbf
/u01/app/oracle/orcl/retest01.dbf
/u01/app/oracle/orcl/zongzi01.dbf已选择7行。

下面是之前所有数据文件的位置,与上面对比数据文件已经移动成功,可再重启一下数据库验证。

sys@ORCL>select name from v$datafile;NAME
--------------------------------------------------------------------------------
/u01/app/oracle/orcl/system01.dbf
/u01/app/oracle/orcl/sysaux01.dbf
/u01/app/oracle/orcl/undotbs01.dbf
/u01/app/oracle/orcl/users01.dbf
/u01/app/oracle/orcl/cdr01.dbf
/u01/app/oracle/orcl/retest01.dbf
/u01/app/oracle/orcl/zongzi01.dbf

方法二:通过offline相关表空间的方法
需求:将数据文件/u01/app/oracle/orcl/retest01.dbf移动到 /u01/oradata/retest01.dbf

第一步:将相关表空间offline

sys@ORCL>alter tablespace retest offline;表空间已更改。

第二步:rename被移动的数据文件

sys@ORCL>alter database rename file '/u01/app/oracle/orcl/retest01.dbf' to '/u01/oradata/retest01.dbf';数据库已更改。

第三步:将之前offline的表空间online

sys@ORCL>alter tablespace retest online;表空间已更改。

二、开启归档情况下移动单个数据文件

需求:将数据文件/u01/oradata/retest01.dbff移动到 /u01/app/oracle/orcl/retest01.db

上面的方法一、方法二均适用

方法三:offline数据文件,必须在归档模式下

第一步:将要移动的数据文件offline

sys@ORCL>alter database datafile '/u01/oradata/retest01.dbf' offline;
或者
sys@ORCL>alter database datafile 6 offline;

第二步:移动数据文件(可在系统层面也可用rman copy)

RMAN> copy datafile 6 to '/u01/app/oracle/orcl/retest01.dbf';启动 backup 于 21-2月 -2022 16:29:13
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件: 文件号=00006 名称=/u01/oradata/retest01.dbf
输出文件名=/u01/app/oracle/orcl/retest01.dbf 标记=TAG20220221T162913 RECID=7 STAMP=1097252954
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 21-2月 -2022 16:29:14

第三步:用rman转换数据文件,等同于rename

RMAN> switch datafile 6 to copy;数据文件 6 已切换成数据文件副本 "/u01/app/oracle/orcl/retest01.dbf"

第三步:恢复数据文件

RMAN> recover datafile 6;启动 recover 于 21-2月 -2022 16:31:26
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2正在开始介质的恢复
介质恢复完成, 用时: 00:00:00完成 recover 于 21-2月 -2022 16:31:26

第四步:将数据文件online

sys@ORCL>alter database datafile 6 online;数据库已更改。

三、开启归档情况下移动多个数据文件

大量数据文件移动,适用于在新创建数据库时,数据文件目录未写到存储目录中,后期需要移动。

第一步:新建数据文件目录并赋权(存储目录)

root#mkdir orcl
root#chown -R oracle:oinstall /data 

第二步:关闭数据库

sql>shutdown immediate;  

第三步:移动数据文件

$cd /u01/app/oracle/oradata/orcl            
$ls
$cd ..
$nohup cp -rf orcl /data/oradata/ &            第三步将orcl数据文件夹复制到新的数据文件目录(是复制不是mv)后台拷贝
$cd /data/oradata/orcl
$while true
>do
>du -sh
>sleep 10
>done
拷贝观察,等待拷贝结束
拷贝结束后,将原有数据文件做备份,防止操作失误,可继续使用原有数据文件
$cd /u01/app/oracle/oradata/
$mv orcl orcl.bak

第四步:启动数据库到mount,因为控制文件目录和数据文件在同一目录,所以移动数据文件目录后需要修改控制文件路径参数。

SQL> startup mount               启动到mount,查看控制文集目录
ORACLE instance started.Total System Global Area 6.0930E+10 bytes
Fixed Size		    2268112 bytes
Variable Size		 3.0333E+10 bytes
Database Buffers	 3.0467E+10 bytes
Redo Buffers		  127143936 bytes
ORA-00205: error in identifying control file, check alert log for more infoSQL> show parameter control;NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time	     integer	 7
control_files			     string	 /u01/app/oracle/oradata/l, /u01/app/oracle/oradata/l
control_management_pack_access	     string	 DIAGNOSTIC+TUNING
SQL> alter system set control_files='/oradata/l','/oradata/l' scope=spfile;System altered.  

第五步:批量rename数据文件

sql>set line 200 pages 9999
select 'alter database rename file '''||name||''' to ''/home/oracle/oradata'||substr(name,length(name)-INSTR(reverse(name),'/')+1,INSTR(reverse(name),'/'))||''';' from v$datafile
union all
select 'alter database rename file '''||name||''' to ''/home/oracle/oradata'||substr(name,length(name)-INSTR(reverse(name),'/')+1,INSTR(reverse(name),'/'))||''';' from v$tempfile
union all
select 'alter database rename file '''||member||''' to ''/data/oradata/orcl'||substr(member,length(member)-INSTR(reverse(member),'/')+1,INSTR(reverse(member),'/'))||''';' from v$logfile;
---------------------alter database rename-------------------------
alter database rename file '/home/oracle/oradata/dbserver/system01.dbf' to '/oradata/dbserver/system01.dbf';
alter database rename file '/home/oracle/oradata/dbserver/sysaux01.dbf' to '/oradata/dbserver/sysaux01.dbf';
alter database rename file '/home/oracle/oradata/dbserver/undotbs01.dbf' to '/oradata/dbserver/undotbs01.dbf';
alter database rename file '/home/oracle/oradata/dbserver/users01.dbf' to '/oradata/dbserver/users01.dbf';
alter database rename file '/home/oracle/oradata/dbserver/temp01.dbf' to '/oradata/dbserver/temp01.dbf';
alter database rename file '/home/oracle/oradata/dbserver/redo01.log' to '/oradata/dbserver/redo01.log';
alter database rename file '/home/oracle/oradata/dbserver/redo02.log' to '/oradata/dbserver/redo02.log';
alter database rename file '/home/oracle/oradata/dbserver/redo03.log' to '/oradata/dbserver/redo03.log';

第六步:打开数据库到open

sql>alter database open;

本文发布于:2024-01-29 09:36:20,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170649218314358.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:实例   几种方法   文件   数据   Oracle
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23