LINUX-下ORACLE利用rman备份迁移数据库
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一医院数据库迁移的实施步骤
利用RMAN备份正式库
全库备份及控制文件
RMAN>run{
allocate channel c1 device type disk;
sql 'alter system archive log current';
backup as compressed backupset database format '+ FRA/DYYY/BACKUPSET/db_%d_%T_%U'; sql 'alter system archive log current';
backup current controlfile format '+ FRA/DYYY/controlfile/cntrl_%s_%p_%s';
release channel c1;
}
生成数据库还原脚本restoredatafil e.sql
检查是否有增加数据文件select count(*)from v$datafile;
如果有增加数据库文件必须重新生成
sqlplus /nolog
conn /as sysdba
set serveroutput on;
set linesize 200
spool restore_datafile.rman
declare
cursor df is select file#, name from v$datafile;
begin
dbms_output.put_line('run');
dbms_output.put_line('{');
for dfrec in df loop
dbms_output.put_line('set newname for datafile ' ||
dfrec.file# || ' to ''' || ||''' ;');
end loop;
dbms_output.put_line('restore database;');
dbms_output.put_line('switch datafile all;');
dbms_output.put_line('}');
end;
/
spool off
利用FTP工具拷贝RMAN备份
远程登录到192.0.1.12
ftp
open 192.0.12 7788 密码:xzf111017s
lcd /hisbak/
bin
get “文件名”
在目标库开启归档,设置归档路径
Alter database archivelog
Alter system set log_archive_dest_1 = ‘location=+HISDATA’;
关闭节点2
关闭节点2数据库
设置节点1 cluster_database 参数为False,设置为单实例
alter system set cluster_database = flase scope=spfile;
shutdown immediate
恢复控制文件、注册备份集
rman target /
sqlplus /nolog
conn / as sysdba
startup nomount
restore controlfile from 'path\rman_controlfile_backup';
alter database mount
catalog start with 'path'
清除无效备份
crosscheck backup;
delete expired backup;
执行还原数据文件脚本restoredatafil e.sql
Run{
set newname for datafile 1 to '+HISDATA/dyyy/comm_tab08.ora' ; set newname for datafile 2 to '+HISDATA/dyyy/inpsick_tab208.ora' ; set newname for datafile 3 to '+HISDATA/dyyy/report_tab11.ora' ; restore database;
switch datafile all;
}
拷贝归档
Catalog start with ‘归档日志路径’
Recover database
拷贝最近的几个归档日志
recover database
如果做不完全恢复,恢复到丢失归档前的时间点如:s
recover database until sequence=2310 thread=2;
关闭changing track
alter database disable block change tracking;
重启数据库
修改日志的路径
查看日志的路径
Select member from v$logfile;
生成修改日志路径的脚本
select 'alter database rename file ''' || member||''' to '||'''+HISDATA/ '||DECODE(substr(member,1,3),'+DA',substr(member,7,length(member)),substr(member,6,lengt h(member)))||''';' from v$logfile;
执行脚本修改日志路径
alter database rename file '+FRA/dyyy/onlinelog/group_20.723.752328865' to '+HISDATA/dyyy/onlinelog/group_20.723.752328865';
修改数据库为最大性能模式
alter database set standby database to maximize performance;
打开数据库
alter database open resetlogs;