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表空間,所以在此不用創建表空間,如果A中oracle用的不是系統自帶的表空間,則要創建。)
在創建表空間之前應該先查詢計算機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文件。
注:如果有什麼問題,可以提問哦!