如果只是迁移表空间或者数据文件,可以先将表空间或者数据文件离线之后移动位置,并通过
警报数据库重命名和改变表空间重命名将位置变化写入控制文件即可
例迁移数据文件
修改数据库数据文件的所要迁移的数据文件的离线;
拷贝到新位置
改变数据库重命名文件的索要迁移的数据文件”到“新位置的数据文件的;
介质恢复
RECOVE丢失的新位置的数据文件的
将相应数据文件在线
修改数据库数据文件的新位置的数据文件的;
例迁移表空间
将表空间离线
改变表空间表空间名离线;
拷贝到新位置
改变表空间表空间名命名数据文件的旧位置文件”到“新位置文件的;
表空间在线
改变表空间表空间名在线;
在山状态下迁移整个数据库
需要考虑数据文件,撤销,临时,重做和控制文件的迁移
<强>数据文件强>
1查看数据文件所在位置
从DBA_DATA_FILES选择FILE_NAME
UNION ALL
选择FILE_NAME DBA_TEMP_FILES;
2创建新文件夹存放数据文件
mkdir
3编写脚本进行备份(其实也可以手动但是一方面手动的话需要输入大量的命令二方面可能会因为连接中断而导致进展的不顺利)
vim rcopy。sh
# !/bin/ksh
export LANG=en_US
RMAN_LOG_FILE=$ {0} .out
ORACLE_HOME=/u01/app/oracle/产品/11.2.0/db_1出口ORACLE_HOME
RMAN=$ ORACLE_HOME/bin/出口RMAN RMAN
ORACLE_SID=出口ORACLE_SID戴夫
ORACLE_USER=出口ORACLE_USER oracle
,
回声“ORACLE_SID: $ ORACLE_SID”在祝辞美元RMAN_LOG_FILE
回声“ORACLE_HOME: $ ORACLE_HOME”在祝辞美元RMAN_LOG_FILE
回声“ORACLE_USER: $ ORACLE_USER”在祝辞美元RMAN_LOG_FILE
回声”=========================="祝辞祝辞美元RMAN_LOG_FILE
,
chmod 666美元RMAN_LOG_FILE
,
RMAN nocatalog目标/msglog RMAN_LOG_FILE美元附加& lt; & lt; EOF
运行{
分配频道c1类型磁盘;
分配频道c2类型磁盘;
复制数据文件'/u01/app/oracle/oradata/戴夫/users01。dbf”到“/u01/app/oracle/oradata/安庆users01.dbf”;
复制数据文件'/u01/app/oracle/oradata/戴夫/undotbs01。dbf”到“/u01/app/oracle/oradata/安庆undotbs01.dbf”;
复制数据文件'/u01/app/oracle/oradata/戴夫/sysaux01。dbf”到“/u01/app/oracle/oradata/安庆sysaux01.dbf”;
复制数据文件'/u01/app/oracle/oradata/戴夫/system01。dbf ' '/u01/app/oracle/oradata/安庆/system01.dbf’;
复制数据文件'/u01/app/oracle/oradata/戴夫/example01。dbf”到“/u01/app/oracle/oradata/安庆example01.dbf”;
复制数据文件'/u01/app/oracle/oradata/戴夫/temp01。dbf”到“/u01/app/oracle/oradata/安庆temp01.dbf的;
释放通道c2;
释放通道c1;
}
EOF
,
回声在祝辞RMAN_LOG_FILE美元退出
这里记得要赋予该脚本权限chmod
4将DB启动到山状态
shoutdown立即启动
山
5启动脚本
$ nohup sh/u01/rcopy.sh> rcopy。出2祝辞,1,
工作美元工作
当任务完成后确认数据文件是否已经拷贝到指定的文件夹当中
ls lh
6 rname数据文件
# !/bin/ksh
sqlplus/sysdba<& lt;EOF
改变数据库重命名文件'/u01/app/oracle/oradata/戴夫/users01。dbf”到“/u01/app/oracle/oradata/安庆users01.dbf”;
改变数据库重命名文件'/u01/app/oracle/oradata/戴夫/undotbs01。dbf”到“/u01/app/oracle/oradata/安庆undotbs01.dbf”;
改变数据库重命名文件'/u01/app/oracle/oradata/戴夫/sysaux01。dbf”到“/u01/app/oracle/oradata/安庆sysaux01.dbf ';,
改变数据库重命名文件'/u01/app/oracle/oradata/戴夫/system01。dbf”到“/u01/app/oracle/oradata/安庆system01.dbf ';,
改变数据库重命名文件'/u01/app/oracle/oradata/戴夫/example01。dbf”到“/u01/app/oracle/oradata/安庆example01.dbf的;
EOF退出
,
记得给权限chmod
运行nohup sh重命名。sh在重命名。出2祝辞,1,
7查看数据库验证是否迁移成功
从DBA_DATA_FILES选择FILE_NAME
UNION ALL
选择FILE_NAME DBA_TEMP_FILES;
这里我们会发现临时表空间可能并未进行迁移接下来我们进行处理临时表空间数据文件