各位大侠:
现在我的数据库需要从一台机器移植到另一台机器,具体情况和要求如下
1。操作系统为 AIX
2。oracle版本为10g
3。数据库大小为100G左右
4。数据库要求最快的速度切换
5。exp/imp肯定不能满足要求请各位大侠指导,谢谢!
现在我的数据库需要从一台机器移植到另一台机器,具体情况和要求如下
1。操作系统为 AIX
2。oracle版本为10g
3。数据库大小为100G左右
4。数据库要求最快的速度切换
5。exp/imp肯定不能满足要求请各位大侠指导,谢谢!
调试欢乐多
-- 如果数据文件太大,而当前负载不是很大,可以考虑用 RMAN 压缩备份( 10g支持 RMAN 压缩备份)
-- 当未使用Catalog方式进行RMAN备份时,将备份集转移到其他主机时,除非目录结构相同,否则控制文件将无法识别路径不同的备份集,针对这类问题,
-- 可以使用dbms_backup_restore包进行文件回复;但是从Oracle 10g开始,Oracle 终于简化了这类问题的处理,现在通过RMAN就可以很容易地处理不同主机的RMAN备份集恢复。-- 通过以下实例来看一下Oracle的这一新特性增强。首先备份源数据库,并以这个备份做为恢复的基础:
RMAN> backup database plus archivelog;......-- 再备份控制文件:
RMAN> backup current controlfile;-- 然后生成源数据库的参数文件,修改后传送至目标数据库,修改后的参数文件可以用于数据库启动,主要修改的参数应该包括:*_dump_dest、controlfiles、
-- db_recover_file_dest、db_create_file_dest等。-- 在Windows平台下,可以通过oradim创建一个服务启动Oracle环境:
C:\> oradim -new -sid julia-- 然后可以通过RMAN来启动数据库到nomount状态:
C:\> set oracle_sid=julia
C:\> rman target /......RMAN> startup nomount;......-- 通过备份的控制文件恢复出控制文件:
RMAN> restore controlfile to
'E:\ORADATA/JULIA\CONTROLFILE\1.CTL'
from
'E:\ORADATA\BACKUPSET\2007_04_23\01_MF_NCNNF_TAG20070423T143224_32RNQT90_.BKP';......-- 有了控制文件之后,数据库可以被加载:
RMAN> alter database mount;......-- 注 意 ----------------------------------------------------------------------------
-- 前面恢复出来的控制文件位置及名称取决于你在参数文件中的设置。--------------------------------------------------------------------------------------- 关键的步骤是向控制文件中加载备份集,这是Oracle 10g 新增加的特性,通过Catalog Start With 命令,Oracle 可以搜索制定目录中的备份文件,
-- 并将这些备份文件加入控制文件,从而使得从这些文件的恢复成为可能:
RMAN> catalog start with 'e:\oradata\backupset';......是否确实将上述文件列入目录 (输入 YES 或 NO)? YES......-- 然后可以通过crosscheck backup进行备份集校验,源数据库的备份文件肯定是无法发现的,所以会被标记出来。解析来通过控制文件获得表空间及数据文件列表:
RMAN> report schema;......-- 通过列表编写恢复脚本,然后执行恢复:
RMAN> run {
set newname for datafile 1
to 'E:\ORADATA\JULIA\DATAFILE\SYSTEM.DBF';
set newname for datafile 2
to 'E:\ORADATA\JULIA\DATAFILE\UNDOTBS1.DBF';
set newname for datafile 3
to 'E:\ORADATA\JULIA\DATAFILE\SYSAUX.DBF';
set newname for datafile 4
to 'E:\ORADATA\JULIA\DATAFILE\USERS.DBF';
restore database;
switch datafile all;
}......-- 在数据文件恢复出来以后,可以对数据库应用归档日志进行恢复:
RMAN> recover database;......-- 最后通过Resetlogs方式打开数据库:
RMAN> alter database open resetlogs;
我想三种方案
1。硬copy(copy数据文件,参数文件,控制文件,日志文件)
2。exp/imp(太慢)
3。方案比较复杂(先更新影响系统的数据库对象,其他实效性要求不高的就慢慢导入)
数据库要求最快的速度切
-- 这个允许有多长时间? 如果时间长,可以考虑用10g的数据泵(expdp/impdp)。 在导出和导入的时候加上parallel 并行参数, 只要服务器CPU 的压力不大, 一个小时应该可以搞定。
这个搬迁肯定是需要时间。 不管用哪种方法, 都需要时间。 RMAN 复制的话,还需要把备份文件copy 过去,这个过程也是需要时间。 楼主自己做决定吧。