SAP使用表空间传输异构系统迁移
? ? ? ? ? ? ? ? ? ? ? ?SAP使用表空間傳輸異構系統遷移
此文檔乃原創總結,僅適用于oracle數據庫。此方法特點,速度快、停機時間短,配合RMAN使用甚至可以做到不停機、在線遷移并可以支持裸設備和ASM。以次方法做遷移,在實際測試中,從Solaris sparc遷移到Solaris X86的停機時間根據硬件配置不同大概為:離線冷備時間+1個小時左右。CPU越高,時間越短。 方法如下:1.?????? 在目標機全新安裝同版本SAP系統。
2.?????? 在源系統做一次備份。(可選,推薦做)
3.?????? 在源系統執行exp.sh腳本分別導出PSAPSR3,PSAPSR37**,PSAPSR3usr。(exp.sh腳本參考附件一,此腳本非通用形腳本,需要根據自身情況修改)
4.?????? 使用sqlDevelopoer將源系統視圖創建命令導出。
5.?????? 將exp.sh命令導出的文件以及導出的創建視圖腳本傳到目標機。
6.?????? DROP掉目標機PSAPSR3,PSAPSR37**,PSAPSR3usr,3個表空間及其數據文件。
7.?????? 在RMAN中使用convert命令將數據文件轉換至目標平臺。
8.?????? 根據需要,將數據文件按照sap的數據文件存放方式,移動到各自目錄(可選,可自己寫腳本完成)。
9.?????? 使用imp腳本將表空間PSAPSR3,PSAPSR37**,PSAPSR3usr導入目標數據庫。(命令參考附件二)
10.?? 將PSAPSR3,PSAPSR37**,PSAPSR3usr3個表空間設置為可讀寫,再執行創建視圖的腳本。
11.?? 啟動SAP,完成SystemCopy后的后續操作。如SE06等,具體參考James Yan的文檔:
http://space.itpub.net/?uid-65240-action-viewspace-itemid-68431012.?? 大功告成!
附件一:exp.sh腳本,(此腳本僅供參考,如需直接使用建立對應目錄) #!/bin/bash echo -n "Enter tablespace name:" read TABLESPACEecho Transport tablespace $TABLESPACE Begin time:`date +%Y/%m/%d' '%H:%M:%S` >> /sappool/exp/exp_ts_$TABLESPACE.log
# VALUE=`sqlplus -S /nolog <<EOF set heading off set echo off set line 200 set pages 0 connect / as sysdba alter tablespace $TABLESPACE read only; exit; EOF`if [ "$VALUE" = "`echo -e '\nTablespace altered.'`" ]; then
?? echo Alter tablespace $TABLESPACE read only SUCCESS;
else?? echo Alter tablespace $TABLESPACE read only Failed;
?? echo "ERROR message is:"
?? echo "$VALUE"
fiecho exp tablespace $TABLESPACE Begin time:`date +%Y/%m/%d' '%H:%M:%S` >> /sappool/exp/exp_ts_$TABLESPACE.log
exp tablespaces=$TABLESPACE transport_tablespace=y file=/sappool/exp/exp_ts_$TABLESPACE.dmp log=/sappool/exp/log/exp_ts_$TABLESPACE.log
echo exp tablespace $TABLESPACE finish time:`date +%Y/%m/%d' '%H:%M:%S` >> /sappool/exp/exp_ts_$TABLESPACE.log
VALUE=`sqlplus -S /nolog <<EOF set heading off set echo off set line 200 set pages 0 set feed off connect / as sysdbaselect file_name from dba_data_files where tablespace_name=upper('$TABLESPACE');
exit; EOF`echo copy tablespace "$TABLESPACE"\'s datafie finish time :`date +%Y/%m/%d' '%H:%M:%S` >> /sappool/exp/exp_ts_$TABLESPACE.log
mkdir -p /sappool/exp/datafile_$TABLESPACE chmod -R 777 /sappool/exp/datafile_$TABLESPACE cp -p $VALUE /sappool/exp/datafile_$TABLESPACE/ echo copy tablespace beginecho copy tablespace "$TABLESPACE"\'s datafie finish time :`date +%Y/%m/%d' '%H:%M:%S` >> /sappool/exp/exp_ts_$TABLESPACE.log
VALUE=`sqlplus -S /nolog <<EOF set heading off set echo off set line 200 set pages 0 connect / as sysdba alter tablespace $TABLESPACE read write; exit; EOF`if [ "$VALUE" = "`echo -e '\nTablespace altered.'`" ]; then
?? echo Alter tablespace $TABLESPACE read write SUCCESS;
exit 0 else?? echo Alter tablespace $TABLESPACE read write Failed;
?? echo "ERROR message is:"
?? echo "$VALUE"
fiecho Transport tablespace $TABLESPACE Finish time:`date +%Y/%m/%d' '%H:%M:%S` >> /sappool/exp/exp_ts_$TABLESPACE.log
cat /sappool/exp/exp_ts_$TABLESPACE.log >> /sappool/exp/log/exp_ts_$TABLESPACE.log && rm -f /sappool/exp/exp_ts_$TABLESPACE.log
附件二:imp腳本和命令(以PSAPSR3700表空間為例,其他表空間參考)date >> /oracle/imp/log/imp_ts_psapsr3700.log.time && \
imp tablespaces=PSAPSR3700 \ transport_tablespace=y \ file='/oracle/exp_ts_psapsr3700.dmp'\ datafiles='/oracle/PRD/sapdata1/sr3700_5/sr3700.data5',\ '/oracle/PRD/sapdata1/sr3700_1/sr3700.data1',\ '/oracle/PRD/sapdata1/sr3700_9/sr3700.data9',\ '/oracle/PRD/sapdata1/sr3700_13/sr3700.data13',\ '/oracle/PRD/sapdata2/sr3700_2/sr3700.data2',\ '/oracle/PRD/sapdata2/sr3700_6/sr3700.data6',\ '/oracle/PRD/sapdata2/sr3700_10/sr3700.data10',\ '/oracle/PRD/sapdata2/sr3700_14/sr3700.data14',\ '/oracle/PRD/sapdata3/sr3700_7/sr3700.data7',\ '/oracle/PRD/sapdata3/sr3700_11/sr3700.data11',\ '/oracle/PRD/sapdata3/sr3700_15/sr3700.data15',\ '/oracle/PRD/sapdata3/sr3700_3/sr3700.data3',\ '/oracle/PRD/sapdata4/sr3700_16/sr3700.data16',\ '/oracle/PRD/sapdata4/sr3700_8/sr3700.data8',\ '/oracle/PRD/sapdata4/sr3700_12/sr3700.data12',\ '/oracle/PRD/sapdata4/sr3700_4/sr3700.data4'\ log=/oracle/imp/log/imp_ts_psapsr3700.log\?&& date >> /oracle/imp/log/imp_ts_psapsr3700.log.time
附件三:rman conver命令。CONVERT DATAFILE '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data1'
,'/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data2', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data3', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data4', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data5', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data6', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data7', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data8', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data9', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data10', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data11', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data12', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data13', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data14', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data15', '/sapbackup/hhdbackup/exp/datafile_psapsr3700/sr3700.data16'?FROM PLATFORM="Solaris[tm] OE (64-bit)"
?DB_FILE_NAME_CONVERT= "/sapbackup/hhdbackup/exp/datafile_psapsr3700/" "/oracle/convert/sapdata3/";
附件四:以SAP習慣移動數據文件。 #!/bin/bash for((i=1;i<=16;i++)); do c=$(($i%4)); if ((c==0)) then mkdir -p /oracle/QAS/sapdata4/sr3700.data$i/cp -p ./sr3700.data$i /oracle/QAS/sapdata4/sr3700_$i/
else mkdir -p /oracle/QAS/sapdata$c/sr3700_$i/cp -p ./sr3700.data$i /oracle/QAS/sapdata$c/sr3700_$i/
fi done轉載于:https://blog.51cto.com/moguiyang/1080233
總結
以上是生活随笔為你收集整理的SAP使用表空间传输异构系统迁移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 女人梦到蛇预示着什么周公解梦
- 下一篇: 梦到老虎扑向我想咬我是什么意思