您好,登錄后才能下訂單哦!
由于服務器更換,或者硬盤損壞等問題,在有些場景下,我們需要對數據庫進行遷移。
Oracle 數據庫有多種備份方式,如果可以停機,建議最好使用冷備的方式,直接遷移數據文件,這樣效率會比較高。
由于兩臺主機都是Windows server,為了方便直接使用復制文件的方式,由于特殊原因,遷移前的數據目錄和遷移后的數據目錄是不一致的。直接遷移數據后,啟動會報如下錯誤:
SQL> startup ORACLE 例程已經啟動。 Total System Global Area 1071333376 bytes Fixed Size 1334380 bytes Variable Size 301990804 bytes Database Buffers 754974720 bytes Redo Buffers 13033472 bytes 數據庫裝載完畢。 ORA-01157: 無法標識/鎖定數據文件 1 - 請參閱 DBWR 跟蹤文件 ORA-01110: 數據文件 1: 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF'
查看文件路徑:
SQL> select name from v$controlfile;
NAME --------------------------------------------------------- F:\APP\ADMINISTRATOR\ORADATA\AGRISK\CONTROL01.CTL F:\APP\ADMINISTRATOR\ORADATA\AGRISK\CONTROL02.CTL F:\APP\ADMINISTRATOR\ORADATA\AGRISK\CONTROL03.CTL
SQL> select name from v$datafile;
NAME --------------------------------------------------------- D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSAUX01.DBF D:\APP\ADMINISTRATOR\ORADATA\AGRISK\UNDOTBS01.DBF D:\APP\ADMINISTRATOR\ORADATA\AGRISK\USERS01.DBF D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK.DBF
SQL> select name from v$tempfile;
NAME --------------------------------------------------------- D:\APP\ADMINISTRATOR\ORADATA\AGRISK\TEMP01.DBF D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK_TEMP.DBF
SQL> select member from v$logfile;
MEMBER --------------------------------------------------------- D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO03.LOG D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO02.LOG D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO01.LOG
停止數據庫:
SQL> shutdown immediate;
將原主機上oradata目錄下實例的文件全部拷貝到遷移后的主機對應目錄。然后在新的主機上以mount方式啟動數據庫實例:
SQL> startup mount;
除了控制文件的路徑是正常的,其他的文件路徑都需要修改,將原來的錯誤路徑D盤改為F盤:
SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSTEM01.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSAUX01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\SYSAUX01.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\UNDOTBS01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\UNDOTBS01.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\USERS01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\USERS01.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\TEMP01.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\TEMP01.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK_TEMP.DBF' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\AGRISK_TEMP.DBF'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO01.LOG' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO01.LOG'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO02.LOG' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO02.LOG'; 數據庫已更改。 SQL> alter database rename file 'D:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO03.LOG' to 'F:\APP\ADMINISTRATOR\ORADATA\AGRISK\REDO03.LOG'; 數據庫已更改。
確認修改成功后,啟動數據庫:
SQL> alter database open; 數據庫已更改。
重啟數據庫:
SQL> shutdown immediate; 數據庫已經關閉。 已經卸載數據庫。 ORACLE 例程已經關閉。
SQL> startup ORACLE 例程已經啟動。 Total System Global Area 1071333376 bytes Fixed Size 1334380 bytes Variable Size 301990804 bytes Database Buffers 754974720 bytes Redo Buffers 13033472 bytes 數據庫裝載完畢。 數據庫已經打開。
查看監聽端口。如果沒有配置netca網絡監聽端口,需要使用系統自帶的Net Cofiguration Assistant進行配置。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。