日期:2014-05-16 浏览次数:20673 次
有些时候需要将Oracle的多个数据文件以及日志文件重定位或者迁移到新的分区或新的位置,比如磁盘空间不足,或因为特殊需求。对于这种情形可以采取批量迁移的方式将多个数据文件或者日志文件实现一次性迁移。当然备份恢复也是其中的方式之一。本文主要描述如何使用批量方式来迁移数据文件,日志文件。如需要也可以将整个数据库迁移到新的位置以及重命名数据库。
1、环境及需求 robin@SZDB:~> cat /etc/issue Welcome to SUSE Linux Enterprise Server 10 SP3 (x86_64) - Kernel \r (\l). robin@SZDB:~> sqlplus -v SQL*Plus: Release 10.2.0.3.0 - Production 下面的迁移主要是将数据库/u02/database/SYBO2SZ下的所有文件迁移到一个新的目录/u02/database/SY5221BK下面。 源路径:数据库SYBO2SZ所有的数据文件,日志文件,控制文件全部位于SYBO2SZ下的相应子目录。 新路径:数据库SYBO2SZ所有的数据文件,日志文件,控制文件全部移动到SY5221BK相应的子目录下。 2、当前数据库文件位置(来源于数据字典) sys@SYBO2SZ> @dba_files_all_2.sql Tablespace Name / File Class Filename File Size Auto ----------------------------- ------------------------------------------------------- --------------- ---- GOEX_ACCOUNT_IDX /u02/database/SYBO2SZ/oradata/SYBO2SZ_account_idx.dbf 16,777,216 YES GOEX_ACCOUNT_TBL /u02/database/SYBO2SZ/oradata/SYBO2SZ_account_tbl.dbf 25,165,824 YES GOEX_ARCHIVE_IDX /u02/database/SYBO2SZ/oradata/SYBO2SZ_archive_idx.dbf 20,971,520 YES -- ......... ......................... SOE /u02/database/SYBO2SZ/oradata/soe.dbf 934,043,648 YES SOEINDEX /u02/database/SYBO2SZ/oradata/soeindex.dbf 713,031,680 YES SYSAUX /u02/database/SYBO2SZ/oradata/sysauxSYBO2SZ.dbf 325,058,560 YES SYSTEM /u02/database/SYBO2SZ/oradata/sysSYBO2SZ.dbf 524,288,000 YES TBST /u02/database/SYBO2SZ/oradata/tbst.dbf 10,485,760 YES TEMP /u02/database/SYBO2SZ/temp/tempSYBO2SZ.dbf 432,013,312 YES UNDOTBS1 /u02/database/SYBO2SZ/undo/undotbsSYBO2SZ.dbf 429,916,160 YES UNDOTBS2 /u02/database/SYBO2SZ/undo/undotbsSYBO2SZ2.dbf 314,572,800 YES [ ONLINE REDO LOG ] /u02/database/SYBO2SZ/redolog/log3aSYBO2SZ.log 20,971,520 [ ONLINE REDO LOG ] /u02/database/SYBO2SZ/redolog/log3bSYBO2SZ.log 20,971,520 [ ONLINE REDO LOG ] /u02/database/SYBO2SZ/redolog/log4aSYBO2SZ.log 20,971,520 [ ONLINE REDO LOG ] /u02/database/SYBO2SZ/redolog/log4bSYBO2SZ.log 20,971,520 --------------- sum 5,107,376,128 41 rows selected. 3、创建相应的目录 oracle@SZDB:/u02/database/SYBO2SZ> more mkdir_SY5221BK.sh #!/bin/sh rm -rf /u02/database/SY5221BK/archive rm -rf /u02/database/SY5221BK/backup rm -rf /u02/database/SY5221BK/bdump rm -rf /u02/database/SY5221BK/cdump rm -rf /u02/database/SY5221BK/udump rm -rf /u02/database/SY5221BK/controlf rm -rf /u02/database/SY5221BK/oradata rm -rf /u02/database/SY5221BK/redolog rm -rf /u02/database/SY5221BK/undo rm -rf /u02/database/SY5221BK/temp rm -rf /u02/database/SY5221BK/ref_data rm -rf /u02/database/SY5221BK/BNR rm -rf /u02/database/SY5221BK/BNR/full rm -rf /u02/database/SY5221BK/BNR/dump rm -rf /u02/database/SY5221BK/dbcreatelogs mkdir -p /u02/database/SY5221BK/flash_recovery_area mkdir -p /u02/database/SY5221BK mkdir -p /u02/database/SY5221BK/archive mkdir -p /u02/database/SY5221BK/backup mkdir -p /u02/database/SY5221BK/bdump mkdir -p /u02/database/SY5221BK/cdump mkdir -p /u02/database/SY5221BK/udump mkdir -p /u02/database/SY5221BK/controlf mkdir -p /u02/database/SY5221BK/oradata mkdir -p /u02/database/SY5221BK/redolog mkdir -p /u02/database/SY52