第一步:配置各种环境,包括口令文件,PFILE文件,SPFILE文件,各种DUMP文件(bdump ,cdump ,dpdump,pfile ,udump)
同时设置ORACLE_SID=saijuan 并且启动到NOMOUNT的状态
第二步:使用RMAN备份源数据库,包括备份数据文件,控制文件,归档日志文件
run{
allocate channel d1 device type disk;
backup as compressed backupset
incremental level=0
format='/u01/bak_qilin/rmanbak/inc0_%d_%U'
tag='inc0'
channel=d1
database plus archivelog delete input;
backup
format='/u01/bak_qilin/rmanbak/bkctl.ctl'
tag='bkctl'
channel=d1
current controlfile;
}
第三步:复制源数据库使用RMAN备份的备份文件(包括备份的数据文件,控制文件,归档日志文件)到目标数据库的指定目 录(/u01/bak_qilin/rmanbak)
第四步:通过DBMS包从备份文件中提取数据文件dbmsbkrs_datafile.sql
DECLARE
devtype varchar2(256);
done boolean;
BEGIN
devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'t1');
sys.dbms_backup_restore.restoreSetDatafile;
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>01,toname=>'/u01/oradata/qilin/system01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>02,toname=>'/u01/oradata/qilin/undotbs01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>03,toname=>'/u01/oradata/qilin/sysaux01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>04,toname=>'/u01/oradata/qilin/users01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>05,toname=>'/u01/oradata/qilin/example01.dbf');
sys.dbms_backup_restore.restoreDatafileTo(dfnumber=>06,toname=>'/u01/oradata/qilin/undotbs02.dbf');
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/u01/bak_qilin/rmanbak/ inc0_QILIN_1ilnutj5_1_1',params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;
/
运行该脚本 SQL> @/u01/bak_qilin/script/dbmsbkrs_datafile.sql
第五步:提取归档日志文件dbmsbkrs_arch.sql
DECLARE
devtype varchar2(256);
done boolean;
Begin
devtype:=sys.dbms_backup_restore.deviceAllocate (type=>'',ident=>'T1');
sys.dbms_backup_restore.restoreSetArchivedLog(DESTINATION=>'/u01/bak_qilin/archive/');
sys.dbms_backup_restore.restoreArchivedLogRange;
sys.dbms_backup_restore.restoreBackupPiece(done=>done,handle=>'/u01/bak_qilin/rmanbak/inc0_QILIN_1klnutmm_1_1',params=>null);
sys.dbms_backup_restore.deviceDeallocate;
END;
/
运行该脚本 SQL> @/u01/bak_qilin/script/dbmsbkrs_arch.sql
第六步:在源数据库上创建控制文件
alter database backup controlfile to trace;
ps -ef (
avahi 2288 1 0 12:15 ? 00:00:00 avahi-daemon: running [oracle10g.local])
在源数据库中/u01/admin/qilin/udump下从 qilin_ora_2288 .trc 中提取到以下的创建控制文件的内容做修改后房子在目标数据库下create_ctl.sql
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE set DATABASE "SAIJUAN" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/u01/oradata/qilin/redo01.log' SIZE 50M,
GROUP 2 '/u01/oradata/qilin/redo02.log' SIZE 50M,
GROUP 3 '/u01/oradata/qilin/redo03.log' SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u01/oradata/qilin/system01.dbf',
'/u01/oradata/qilin/undotbs01.dbf',
'/u01/oradata/qilin/sysaux01.dbf',
'/u01/oradata/qilin/users01.dbf',
'/u01/oradata/qilin/example01.dbf',
'/u01/oradata/qilin/undotbs02.dbf'
CHARACTER SET WE8ISO8859P1
;
运行该脚本 SQL> @/u01/bak_qilin/script/create_ctl.sql
第七步:设置归档日志的文件 SQL> set logsource '/u01/bak_qilin/archive';输入cancel
第八步: 查看状态SQL> select open_mode from v$database; 然后启动到MOUNT状态
第九步:启动到OPENT状态 SQL> alter database open resetlogs;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20976446/viewspace-674189/
,如需转载,请注明出处,否则将追究法律责任。