使用Navicat Premium 分別與源數據庫和目標數據庫創建鏈接,而後藉助Navicat Premium自帶的數據傳輸功能,實現Oracle數據庫的遷移.其實跟從MySQL數據庫遷移到Oracle數據庫是一個套路.java
O(∩_∩)O~ 聽起來,是否是很簡單,其實就是很簡單!下邊我就講一下具體實現的細節流程:mysql
這點我再次向對Oracle數據庫不熟悉的同窗強調一下,對於Oracle數據庫不像MySQL中,一個用戶能夠管理多個數據庫,對Oracle來講,一個用戶只對應一個數據庫,而新建立的用戶是沒有任何資源和權限的,因此須要管理員用戶爲其分配資源權限.sql
在控制檯以管理員權限登陸創建鏈接:數據庫
sqlplus system/admin@192.168.10.112:1521/orcl conn /as sysdba;
若是你不當心忘記了密碼,能夠參考個人另一篇專門將建立表空間和用戶的博文:Oracle數據庫建立表空間和用戶及刪除數據庫(用戶)oracle
建立表空間與用戶:ide
<!-- 建立表空間 datafile爲你oracle安裝文件的路徑,其中casic_smart.dbf是本身隨便命名的 --> create tablespace casic_smart datafile 'E:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m; <!-- 建立用戶 併爲其指定表空間 --> create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users; <!-- 授予權限 --> grant all privileges to tianzhi_smart;
使用Navicat Premium鏈接Oracle數據庫時,可能會報出以下錯誤:
具體解決方案,可參考個人另一篇博文: Navicat 提示Cannot create oci environment 解決方案學習
數據庫鏈接成功後以下圖:spa
進行數據輸出:.net
若是這種方法遷移不成功,那就來試試一個更簡單的方法:使用Oracel數據庫的imp,exp語句.命令行
語法:
exp user1/pwd1@test1 file='E:test.dmp';
示例:
exp tianzhi_smart/tianzhi_smart@192.168.56.60:1521/orcl file='E:\tianzhi_smart.dmp';
應用截圖:
本人愚鈍,初次使用時,都不知道在哪裏輸入這導出語句,因此專門貼出來,以備像我同樣的小夥伴,少走些彎路.
語法:
imp user2/pwd@test2 file='E:test.dmp' full=y;
示例:
imp tianzhi_smart/tianzhi_smart@192.168.10.129:1521/orcl file='E:\tianzhi_smart.dmp' full=y;
應用截圖:
關於dmp文件咱們用的仍是比較多的,dmp文件它是做爲oracle導入和導出表使用的文件格式,今天就將dmp文件導出和導入進行學習。
dmp文件導出用的比較多的通常是三種,他們分別是:導出整個數據庫實例下的全部數據、導出指定用戶的全部表、導出指定表。
這裏已個人數據庫爲例,進行介紹,個人Oracle數據庫實例爲"ORACLE",查看本身數據庫實例能夠從"任務管理器-->服務"中進行查看,以下圖
打開命令行:
1,將數據庫ORACLE徹底導出,用戶名system密碼manager 導出到c:\daochu.dmp中
exp system/manager@ORACLE file=c:\daochu.dmp full=y
2,將數據庫中RFD用戶與,JYZGCX用戶的表導出
exp system/manager@ORACLE file=d:\daochu.dmpowner=(RFD,JYZGCX)
3,將數據庫中的表T_USER、T_ROLE導出
expJYZGCX/JYZGCX@ORACLEfile= d:\data\newsmgnt.dmp tables=(T_USER,T_ROLE)
上面的system爲用戶名,manager爲密碼,ORACLE爲數據庫實例名,其實不必定非的用system用戶,只要是擁有管理員權限的用戶均可以。
1,打開「開始」-->輸入cmd—> sqlplus /nolog;
2,輸入 conn / as sysdba管理員帳戶登陸;
3,須要建立表空間,若是咱們知道須要導入的數據庫的表空間直接建立就能夠,若是不不知道,也沒有關係,咱們能夠用txt打開dmp文件,使用快捷鍵ctrl+F,查找tablespace,就能夠找到這個dmp文件所對應數據庫的表空間,而後建立咱們找到的表空間就能夠;
步,不建立的表空間,建立用戶,並分配權限;
5,打開「開始」-->輸入cmd(注意:這裏是cmd窗口,不是sqlplus窗口!!!),輸入如下語句:「imp kang/123456@localhost/ORACLEfile="C:\daochu.dmp"full=y ignore=y」
上述語句說明以下:
kang是建立的登陸數據庫用戶名;
123456是登陸數據庫的密碼;
localhost:表明當前數據庫的地址是本機,若是是遠程導入,替換成對應的ip地址就行
ORACLE:是實例名稱)
file:後面的是你當前dmp文件存放的路徑
full=y,這個貌似是所有
ignore=y,忽略一些錯誤
備註:關於數據庫實例、表空間、用戶等基本概念和建立的語句可參考前面的文章「Oracle學習——掃盲篇」
本篇文章主要講述了,oracle數據導出和導入的具體步驟,其中導入dmp文件的時候即使不知道表空間、用戶名和密碼也能夠進行導入。Oracle的學習確實是路漫漫其修遠兮啊!
Oracle數據庫不像MySQL數據庫,一個用戶能夠管理多個數據庫,對Oracle來講,一個用戶只對應一個數據庫,而新建立的用戶是沒有任何資源和權限的,因此須要管理員用戶爲其分配資源權限.而建立用戶時,須要爲用戶指定表空間.
A.在控制檯輸入`sqlplus scott/tiger@192.168.56.6:1521/orcl `鏈接Oracle; B.輸入`conn /as sysdba`以DBA角色登陸;
C.鏈接成功後,輸入「select username from all_users」查看用戶列表。 D.若修改某一個用戶密碼, 修改用戶口令 格式爲:alter user 用戶名 identified by 新密碼;
create tablespace casic_smart datafile 'C:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m; create user tianzhi_smart identified by tianzhi_smart default tablespace casic_smart quota 500m on users; grant all privileges to tianzhi_smart;
刪除oracle數據庫其實也就是刪除oracle用戶,由於在oracle中數據庫與用戶是一一對應的.而刪除數據庫(用戶)以後,再建立用戶,就至關於清空了數據庫裏面的數據.
<!-- 以管理員用戶登陸 --> sqlplus /nolog conn /as sysdba; <!-- 刪除數據庫(用戶) --> drop user test1 cascade; <!-- 建立表空間 --> create tablespace casic_smart datafile 'C:\oracle\product\10.2.0\oradata\orcl\casic_smart.dbf' size 1000m; <!-- 建立用戶,並指定表空間 --> <!-- 有些是沒有指定表空間的,不知是否可行,何嘗試,保險起見仍是按下面方式來 --> create user test1 identified by pwd1 default tablespace casic_smart quota 500m on users; <!-- 授予權限 --> grant all privileges to test1 ;