最近公司將原數據庫服務器切換。以前沒整過這塊,也是一堆的度娘。通過不停的摸索,終於成功了。如今將這份艱辛記錄下來,方便本身之後查閱的同時,方便有相似需求的同窗參考。sql
咱們這次切換共分:ERP、LOS、WMS三個系統。數據庫
因前期搭建,這三個系統均在同一實例。以不一樣的表空間、用戶區分。服務器
這次切換思路:oracle
1)以實例的方式備份、還原。命令 Exp/imp (命令再也不敘述)ide
優勢:省事、可總體導出還原、內網之間切換,可遠程備份(如:將 192.168.1.1 備份至 192.168.1.2);大數據
結果:失敗;提示表空間、用戶、實例、索引已存在,沒法繼續還原;spa
2)以表空間的方式備份、還原。命令 Exp/Imp日誌
較前一種方式,將同一實例拆解成三個表空間的形式備份、還原索引
結果:失敗; 緣由:同一表空間下多個用戶,以表空間的形式導入,部分用戶未創建的緣由(這個緣由純屬我的猜想,有機會再驗證一下)table
3)按用戶的方式備份、還原。命令 Expdp/Impdp(Oracle 10G之後版本支持)
優勢:該方式備份速度快。(與第一種方式相比,該方式爲本地備份,再將備份文件拷貝至新服務器還原。咱們此次是內網間切換,這種方式是比較適合的)
結果:成功!
錯誤提示:
a)空表索引建立失敗(忽略)
b)帶dbLink 的視圖建立失敗(還原方式:先還原存儲過程->索引->視圖->DbLink) 。在建立視圖時,Dblink還未建立,因此失敗。因涉及到DbLink 的視圖較少,按照還原日誌,從老庫將其還原
思路如上,具體流程以下:
遷移流程
一、創建實例
二、設置備份文件夾:create directory backup as '文件夾地址';
查看設置的文件夾select * from dba_directories;
三、在新服務器創建源服務器相同表單空間(注意表單空間大小,表單空間數據文件可多個,一個最大數據爲32G)
查看實例裏面表單空間:select tablespace_name from dba_tablespaces;
創建表單空間兩種方式:
第一種在EM裏面創建
第二種在sqlplus裏面用DBA權限創建
命令創建表空間文件
create tablespace erpsys (erpsys爲你要創建表單名稱)
logging
datafile 'd:\oracle data\erp\erpsys.dbf' (數據庫文件存放地址)
size 32m (32M爲你表單文件初始大小)
autoextend on
next 32m maxsize 30000m (32M數據文件滿後自動擴展大小 30000M文件最大值)
extent management local
增長表空間的數據文件
ALTER TABLESPACE erpsys ADD DATAFILE(erpsys爲你要增長文件的表單)
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF'(數據庫文件存放地址)
SIZE 32M(32M爲你表單文件初始大小)
AUTOEXTEND ON
NEXT 32M MAXSIZE 30000M; (32M數據文件滿後自動擴展大小 30000M文件最大值)
四、創建用戶
1)建立用戶: create user losuser identified by sys2012;
2)分配空間:alter user losuser default tablespace los;
3)授予dba權限:grant connect,resource,dba to losuser;
五、導出
C:\Users\Administrator>Expdp fxwmsuser/sys2016@wms schemas=wmsuser dumpfile=wmsu
ser.dmp directory=backup logfile=wmsuser.log
六、導入
impdp system/sys2017@erp DIRECTORY=backup DUMPFILE=wmsuser.dmp SCHEMAS=wmsuser logfile=wmsuser.log