Oracle數據庫導入、導出(遠程、10g、11g)


1  查看oracle的版本信息

(1)用客戶端連接到數據庫,執行select * from v$instance
            查看version項

(2)select * from product_component_version

(3)或查詢V$VERSION查看組件級信息

 

1.1. oracle參數設置 11g數據泵導出、導入

進入CMD操作界面,使用sqlplus連接數據庫,

clip_image002

圖例 1 數據庫連接操作

連接語法:sqlplus system/Oracle2013@orcl

參數說明

參數

說明

備注

sqlplus

語法命令

 

system

數據庫管理員用戶名

 

Oracle2013

system用戶密碼

 

orcl

數據庫連接標示符

數據庫安裝目錄的tnsnames.ora文件中可以找到

Oracle11G目錄:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

一、在客戶端創建和服務端對應的服務名
方法1:
修改tnsnames.ora文件
加入遠程服務器的命名:

Sql代碼
TEST_ORCL =  
(DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SERVICE_NAME = orcl)  
    )  
)

方法2:

在oracle客戶端,打開net manager。

創建一個服務命名TEST_ORCL,主機IP為:192.168.1.110,服務名orcl,端口1521

clip_image004

圖例 2 成功連接數據庫

環境變量設置(在Sqlplus中執行)

首先使用DBA權限的用戶創建directory,我使用system ,可以在服務器本地創建,也可以遠程連接sqlplus進行創建,使用的將是服務器上面的路徑。要確保創建directory時,操作系統層面的路徑已經存在。如果不存在,可以刪除directory后,再重新建立directory。

create or replace directory file_path as ‘c:\tmpdir’;

參數說明

參數

說明

備注

file_path

路徑名稱

 

c:\tmpdir

文件路徑

也可以是另外的隨意目錄,用單引號括起來。

clip_image006

圖例 3 環境變量設置

 

SQL> grantread,write on directory file_path to scott;

授權成功。

查詢創建了那些子目錄:

SELECT * FROM dba_directories;

 

1.2. 數據備份

備份腳本:expdp system/Oracle2013@orcl directory=file_path dumpfile=ARADMIN.dat logfile=ARADMIN.log schemas=ARADMIN

參數說明

參數

說明

備注

expdp

語法命令

 

system

數據庫管理員用戶名

 

Oracle2013

system用戶密碼

 

orcl

數據庫連接標示符

數據庫安裝目錄的tnsnames.ora文件中可以找到

Oracle11G目錄:C:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

directory

文件目錄名稱

導出數據庫文件的存放目錄

dumpfile

數據庫文件名稱

導出數據庫文件的文件名

logfile

數據庫日志文件名稱

導出數據庫的日志文件名稱

schemas

數據庫用戶

 

操作:

clip_image008

圖例 4 數據庫備份操作

成功導出。

clip_image010

圖例 5 成功導出


1.3. 數據恢復

1.3.1. 刪除ARADMIN用戶

1. 連接數據庫

sqlplus system/Oracle2013@orcl

clip_image012

圖例 6 連接數據庫

2. 刪除目標數據庫中的ARADMIN用戶

drop user ARADMIN cascade;

clip_image014

圖例 7 成功刪除目標數據庫中的ARADMIN用戶

1.3.2. 重新創建ARADMIN用戶

1. 連接數據庫

sqlplus system/Oracle2013@orcl

clip_image015

圖例 8 連接數據庫

2. 創建ARADMIN用戶

create user ARAdmin identified by AR#Admin# default tablespace ARSYSTEM temporary tablespace ARTMPSPC quota unlimited on arsystem;

clip_image017

圖例 9創建ARADMIN用戶

3. 賦予數據庫權限

grant alter session,create cluster,create database link,create sequence,create session,create synonym,create table,create view,create procedure,create trigger,query rewrite to ARAdmin;

clip_image019

圖例 10 賦予數據庫權限


1.3.3. 數據庫導入

導入命令:impdp system/Oracle2013@orcl directory=file_path dumpfile= ARADMIN20130606.DAT logfile= ARADMIN20130614.log schemas=ARADMIN

clip_image021

圖例 11 數據庫導入

導入完成

clip_image023

 

2.exp導出與imp本地導入 10g

exp命令:
1 exp username/psw@TEST file=d:test.dmp full=y
2 exp username/psw@TEST file=d:test.dmp owner=(ly)
3 exp username/psw@TEST file= d:test.dmp tables=(grid1,grid2)
1其中一是將Test(與某一數據庫對應的oracle服務名)數據庫進行整體導出
2將屬於用戶ly的所有表導出
3將表grid1,與grid2導出
d:test.dmp是導出的文件地址

imp命令:
1 imp system/psw@TEST file=d:test.dmp
2 imp system/psw@TEST full=y file=d:test.dmp ignore=y
3 imp system/psw@TEST file=d:test.dmp tables=(grid1)ignore=y表示如果被導入的數據庫中某個表已經存在就忽略不導入那個表
3表示只導入grid1這個表

在導入導出前要先測試下對應的數據庫是否是通的:tnsping test來測試,同樣test是服務名
所有命令可在cmd下執行

用exp/imp遠程操作數據庫

對ORACLE數據庫進行遠程操作,假設數據庫在192.168.1.110上,具體方法如下:
一、在客戶端創建和服務端對應的服務名
方法1:
修改tnsnames.ora文件
加入遠程服務器的命名:

Sql代碼
TEST_ORCL =  
(DESCRIPTION =  
    (ADDRESS_LIST =  
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))  
    )  
    (CONNECT_DATA =  
      (SERVICE_NAME = orcl)  
    )  
)

方法2:

在oracle客戶端,打開net manager。

創建一個服務命名TEST_ORCL,主機IP為:192.168.1.110,服務名orcl,端口1521

二、測試遠程服務器是否暢通

進入到cmd后,執行命令:tnsping TEST_ORCL。

三、遠程操作數據庫
導出:

Sql代碼
1:exp username/password@TEST_ORCL file=bak_filepath
2:exp username/password@TEST_ORCL full=y file=bak_filepath
username 用戶名,password 密碼,TEST_ORCL 客服端服務名,bak_filepath 備份文件存放的路徑

=============================================================

1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:\daochu.dmp中   

exp system/manager@TEST file=d:\daochu.dmp full=y

 2 將數據庫中system用戶與sys用戶的表導出   

exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)  

3 將數據庫中的表table1 、table2導出   

exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2) 

 4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出   

exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"      

導入:

Sql代碼
1:imp username/password@TEST_ORCL file=bak_filepath full=y
2:imp username/password@TEST_ORCL/database_name file=bak_filepath full=y
3:imp username/password@TEST_ORCL file=bak_filepath fromuser=fromadmin touser=toadmin

username 用戶名,password 密碼,TEST_ORCL 客服端服務名,bak_filepath 備份文件存放的路徑
fromadmin 備份數據的用戶名,toadmin 還原數據庫的用戶名。database_name 還原到那個數據庫上

full=y 將數據庫整體導出,包括表結構等。

 

利用PL/SQL Developer工具導出:
菜單欄----> Tools---->Export Tables,如下圖,設置相關參數即可:
 
 

 

   

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM