WindowsServer 2012資料庫遷移記錄

你好我是李白發表於2020-06-10

情景

Windows Server遷移到WIndows Server
資料量3T,歸檔每小時30G左右。
網路100Mbps
儲存,源庫IP-SAN儲存,目標端SSD。
遷移方式:RMAN

遷移

1.全量備份
由於有一個bigfile表空間2.8T,備份時間非常緩慢,可以使用以下命令加快bigfile表空間備份:
/* 注意通道,資源充足開足夠並行度,下面為示例,以實際為準
RMAN> backup as compressed backupset section size 100M tablespace users format '/rman/user_%d_%T_%s_%p.bak';
/* 如果可以,儘量不用bigfile表空間,備份恢復的時候會很難受。
2.傳輸基礎備份到目標端
網路對映磁碟到目標端,然而,網速與磁碟寫入速度都是龜速,500G壓縮過的備份集,傳輸了10個小時。
3.目標端安裝資料庫軟體
最好版本與源端相同,如果涉及升級,再進行升級。
3.目標端建立例項服務
oradim -NEW -SID <sid> -STARTMODE manual -PFILE "D:\ORADATA\PFILE.ORA"
使用sqlplus啟動例項到nomount,恢復控制檔案,然後mount,恢復資料檔案
不同目錄使用SET NEWNAME FOR與switch datafile all即可。
4.源端再次備份增量歸檔,傳輸,恢復
backup as compressed backupset archivelog from sequence <sequence#> format '/rman/arch_%d_%T_%s_%p';
5.源端最後備份一次增量以及current redo log
傳輸恢復,最後的redo log使用sqlplus恢復
SQL > recover database using backup controlfile until cancel;
d:\oradata\redo08.log
6.redo log rename
將所有redo log進行rename
ALTER DATABASE RENAME FILE '' TO '';
7.開啟資料庫,處理臨時表空間
SQL> alter database open resetlogs;
SQL> CREATE TEMPORARY TABLESPACE TEST_TEMP TEMPFILE 'E:\ORADATA\TEMP01.DBF' SIZE 30G AUTOEXTEND OFF;
SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEST_TEMP;
SQL> SELECT * FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';
/* 刪除原來temp表空間
SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;
8.建立監聽,保證資料庫註冊到監聽
netca
lsnrctl status
9.如果有windows防火牆,注意設定出站規則,入站規則,放開監聽埠。
10.檢視alert日誌是否有錯誤
有之前建立的索引採用nologging,導致有索引塊損壞,需要重建索引。
ALTER INDEX <index_name> REBUILD ONLINE PARALLEL 8 NOLOGGING LOCAL;
ALTER INDEX <index_name> noparallel;

總結

Windows Server需要注意,使用起來並不是很友好,不是很方便,希望以後頻寬能提高到至少1000Mbps,磁碟給個足足的SSD吧~

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439444/viewspace-2697464/,如需轉載,請註明出處,否則將追究法律責任。

相關文章