對Oracle數據庫中某個用戶數據的複製

http://blog.sina.com.cn/s/blog_68c266e701016dy3.html


將一臺計算機(暫且稱爲計算機A)上oracle數據庫中的task用戶的所有表複製到另外一臺計算機(暫且稱爲計算機B)的oracle數據庫中。注意:爲了不修改程序等其他項,在計算機B的oracle中創建的表空間、用戶等應該和計算機A中的一樣(oracle數據庫中用戶名爲task,密碼爲task,表空間爲users)。

1複製前的準備工作

1.1首先以sys或者system的身份登錄

安裝了oracle10g之後,在開始-所有程序-找到oracle10g的相關啓動程序。雙擊SQL Plus進行登陸,或者用PLSQL Developer登陸。在此我們使用的是圖形化界面的PLSQL Developer,操作起來比較方便。

 

1.2創建表空間 (由於計算機A上的oracle數據庫用的是users表空間,所以在此不用創建表空間,如果Aoracle用的不是系統自帶的表空間,則要創建。)

在創建表空間之前應該先查詢計算機A中kby表空間的大小。

selecttablespace_name,sum(bytes)/1024/1024 from dba_data_files wheretablespace_name='kby'  group bytablespace_name;

通過查詢,查詢結果如圖1-5所示。

 

圖1-5 表空間大小查詢結果

從圖中可以看出,KBY的全部表空間爲100M,但是還有99M空閒。接下來在計算機B的oracle數據庫中創建表空間。同時在左邊的Objects下的表空間Tablespace文件夾下找到KBY表空間。

createtablespace kby datafile ‘d:\task\kby.dbf’ size 10M autoextend onnext 10m maxsize 100m extent management local;

1.3 創建新用戶task,並和表空間建立關係

createuser task identified by cloud default tablespaceusers;

創建成功會提示 User created,同時在左邊的Objects下的用戶Users文件夾下找到TASK用戶。

1.4 給用戶授權

grantconnect,resource,dba to task;

在命令窗口輸入以上命令,就會出現Grantsucceeded提示。

2 導出數據庫中task用戶的所有表

方法1:打開DOS的命令窗口,輸入命令如下,運行結果如圖1-9和1-10所示。

exp task/task@orcl file=c:\task\task.dmp full=y     

 

圖1-9

 

 

圖1-10

此時在c:\task文件夾下可以看到task.dmp文件。

方法2:使用PLSQL Developer導出

說明:

1.expuserid=system的用戶/system用戶的密碼@服務器名,owner用來指定執行導出操作的方案。

2.查詢數據庫服務名:

方法一:select valuefrom v$parameter where name ='service_name';
方法二:show parameter service_name;

方法三:select name fromv$database;

方法三:在參數文件中查詢。查看tnsnames.ora 的連接,有個SID,SID就是服務名了。

在此,我們用第二種方法,用system登陸,如圖1-12所示。

 

1-12服務器名的查詢

3 導入從計算機A中導出的文件

方法一:進入DOS命令窗口,輸入命令,運行結果如圖1-14所示。

imptask/task@orcl file=c:\task\task.dmp full=y  

 

圖1-14

導入完成之後,用戶task登陸,在Objects中可以看到task用戶的tables文件夾中有很多表,與計算機Aoracle數據庫task用戶的表相同,導入成功。

方法二:跟導出一樣,可以使用PLSQLDeveloper導入,task用戶登陸,然後點擊tools ->importtables-> Oracle Export選擇選項,導入task.dmp文件。

注:如果有什麼問題,可以提問哦!


發佈了3 篇原創文章 · 獲贊 11 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章