资源描述
. . . . .
第一医院数据库迁移的实施步骤
利用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;
}
生成数据库复原脚本restoredatafile.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 ''' || dfrec.name ||''' ;');
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;
执行复原数据文件脚本restoredatafile.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,length(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;
重建临时表空间
SELECT NAME FROM V$TEMPFILE;
ALTER TABLESPACE TEMP ADD TEMPFILE '+HISDATA';
ALTER TABLESPACE TEMP DROP TEMPFILE '/ temp01.dbf';
拷贝归档并做归档日志的恢复
Catalog start with ‘归档日志路径’
Recover database
准备的IP地址
模拟切换的IP地址:
192.0.1.225 hisrac1
192.0.1.226 hisrac2
192.0.1.228 hisrac1-vip
192.0.1.230 hisrac2-vip
正式切换的IP地址:
192.0.1.12 hisrac1
192.0.1.17 hisrac2
192.0.1.85 hisrac1-vip
192.0.1.18 hisrac2-vip
测试修改public ip 和vip
1.使用“ifconfig –a〞命令,可以得到VIP是被绑定在eth0这个网络接口上。
2.停掉所有与VIP相关的资源停止顺序:①停止数据库实例;③停止nodeapps。
$srvctl stop database -d dyyy
$srvctl stop listener
$srvctl stop nodeapps -n hisrac1
$srvctl stop nodeapps -n hisrac2
使用“ifconfig -a〞命令确认VIP已经停用
如果网关地址一样可以不做修改改变两个节点的public ip
首先看一下当前的状态:
$ oifcfg getif查看IP
通过以下命令修改:
$ oifcfg delif -global eth0
$ oifcfg setif -global eth0/192.0.1.0:public
$ oifcfg setif -global eth0/192.0.1.0:public
修改之后,我们再通过命令验证修改结果
$ oifcfg getif
修改VIP地址
修改VIP需要我们用root用户:
$su root
#srvctl modify nodeapps -n hisrac1 -A 192.0.1.228 /255.255.0.0/eth0
#srvctl modify nodeapps -n hisrac2 -A 192.0.1.230/255.255.0.0/eth0
检查修改结果:
#srvctl config nodeapps
关闭CRS
关闭CRS需要在两个节点上都运行,命令如下:
#./crsctl stop crs
这个命令会将RAC相关的所有服务全部停掉。
修改OS IP
修改/etc/hosts和/etc/sysconfig/network-scripts/ifcfg-eth0
修改listener.ora的IP地址
重启服务器后
查看crs状态
crs_stat -t
注意:操作系统网卡IP 必须最后修改,在测试过程中,由于先改操作系统的网卡IP地址,导致RAC 资源无法连接,重新改回原来的IP,再按以上步骤往下修改,修改IP成功。正式修改public ip 和vip
同上
192.0.1.12 hisrac1
192.0.1.17 hisrac2
192.0.1.85 hisrac1-vip
192.0.1.18 hisrac2-vip
5 / 5
展开阅读全文