Oracle遷移數據庫

1.遷移方法概述:

使用Navicat Premium 分別與源數據庫和目標數據庫創建鏈接,而後藉助Navicat Premium自帶的數據傳輸功能,實現Oracle數據庫的遷移.其實跟從MySQL數據庫遷移到Oracle數據庫是一個套路.java

O(∩_∩)O~ 聽起來,是否是很簡單,其實就是很簡單!下邊我就講一下具體實現的細節流程:mysql

2.實現步驟:

第一步:在目標數據庫中建立表空間和用戶

這點我再次向對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 分別與源數據庫和目標數據庫創建鏈接

使用Navicat Premium鏈接Oracle數據庫時,可能會報出以下錯誤:
鏈接異常信息展現
具體解決方案,可參考個人另一篇博文: Navicat 提示Cannot create oci environment 解決方案學習

數據庫鏈接成功後以下圖:spa

鏈接數據庫

進行數據輸出:.net

這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

3.其餘方法:

若是這種方法遷移不成功,那就來試試一個更簡單的方法:使用Oracel數據庫的imp,exp語句.命令行

 

 

 

1.從源數據庫導出數據:

語法:

exp user1/pwd1@test1 file='E:test.dmp';

 

示例:

 

exp tianzhi_smart/tianzhi_smart@192.168.56.60:1521/orcl file='E:\tianzhi_smart.dmp';

 

應用截圖:
本人愚鈍,初次使用時,都不知道在哪裏輸入這導出語句,因此專門貼出來,以備像我同樣的小夥伴,少走些彎路.

 

這裏寫圖片描述

2.向目標數據庫導入數據:

語法:

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文件導出

 

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用戶,只要是擁有管理員權限的用戶均可以。

 

dmp文件導入

 

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的學習確實是路漫漫其修遠兮啊!

 

1.建立Oracle表空間與用戶

Oracle數據庫不像MySQL數據庫,一個用戶能夠管理多個數據庫,對Oracle來講,一個用戶只對應一個數據庫,而新建立的用戶是沒有任何資源和權限的,因此須要管理員用戶爲其分配資源權限.而建立用戶時,須要爲用戶指定表空間.

(1) 因爲scott權限不夠,不能建立用戶,另外由於其餘較高權限的帳號密碼忘記了,因此這裏補充一下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 新密碼;

這裏寫圖片描述

(2) 使用用戶system登陸PL/SQL Developer,建立表空間和用戶

這裏寫圖片描述

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;
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

2.刪除Oracle數據庫(用戶)

刪除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  ;
相關文章
相關標籤/搜索