1. 程式人生 > >oracle資料匯入與匯出

oracle資料匯入與匯出

資料的匯入匯出

說明:

針對的物件:  資料的匯入匯出牽涉到的角色主要是工程實施人員。

需解決的問題:把所需要的資料從一個數據庫中匯入到另外一個數據庫中。

1    工具方式

1.  使用PLSQL Developer工具主要為了方便工程實施人員操作資料庫,如匯入、匯出資料庫物件。

2.    使用TOAD工具方便工程實施人員操作資料庫且匯入、匯出資料的效率比較高。

3.    使用以上兩種工具,實施人員無需在命令列下操作資料庫,方便而且不易出錯。

1.  工具軟體PLSQL Developer 、TOAD。

2.  記錄資料來源的oracle資料庫資訊(IP、埠、全域性資料庫名),記為SOURCE_DB;

3.  scheme(SOURCE_SCHM)、tablespace(預設表空間 SOURCE _SPACE,索引表空間 INDEX _SPACE );

4.  用於資料匯出的賬號(記錄為EXPUSR);

5.  記錄資料目標的oracle資料庫資訊(IP、埠、全域性資料庫名),記為DEST_DB;

6.  scheme(DEST_SCHM)、tablespace(預設表空間 DEST_SPACE,索引表空間 DESINDEX _SPACE);

7.  用於資料匯入的賬號(記錄為IMPUSR)等資訊。

8.  記錄需要從資料來源中匯出的資料庫物件,記為DB_OBJECTS;

9.  如果需要過濾匯出資料,則要記錄過濾條件,記為DATA_FILTER。

1.  啟動PL/SQL Developer,以使用者 EXPUSR 登入源Oracle資料庫SOURCE_DB;

2.  從PL/SQL Developer選單Tools中選擇Export User Objects;

3.  匯出資料庫物件

a、 在User的下拉框中選擇需要匯出資料的<SOURCE_SCHM>。

b、選中屬性 Single file,include Owner, include Storage。

c、選擇需要匯出的資料庫物件;

d、點選Export按鈕則可以將資料庫物件匯出,此時會生成一個以sql為副檔名的檔案(記錄為EXPORT_FILE)。

1.1.1. 匯入資料庫物件

1.  修改Sql指令碼

如果源資料的scheme和目標資料庫的scheme不一致,或者源資料庫的表空間和目標資料庫的表空間不一致,需修改匯出的EXPORT_FILE。

create table <SOURCE_SCHM>.ACTION_INFO 修改為

create table <DEST_SCHM>.ACTION_INFO

tablespace <SOURCE _SPACE> (源預設表空間)   --   改為目標預設表空間(<DEST_SPACE>)

pctfree 10                               

initrans 1                                  

maxtrans 255                                 

storage                                       

(                                              

initial 64K                                    

minextents 1                                  

maxextents unlimited                          

);                                              

create index AK_CDR_D_DETAIL on CDR_D_DETAIL (USER_NUMBER)

tablespace <INDEX _SPACE>(源索引表空間)  --à改為目標索引表空間(<DESINDEX _SPACE>)

pctfree 10

initrans 2

maxtrans 255

storage

(

initial 64K

minextents 1

maxextents unlimited

);

  using index

 tablespace <INDEX _SPACE>(源索引表空間)  --à改為目標索引表空間(<DESINDEX _SPACE>)

  pctfree 10

  initrans 2

  maxtrans 255

  storage

  (

    initial 64K

    minextents 1

    maxextents unlimited

  );

2.  啟動PL/SQL Developer,以使用者 IMPUSR登入目標Oracle資料庫DEST_DB;

3.  從PL/SQL Developer選單中選擇New下面的Command Window;

選擇Editor選項,將EXPORT_FILE檔案內容拷貝到Editor選項框中

按F8即可將資料庫物件匯入到DEST_SCHM中。

1.3         資料匯入匯出

使用TOAD工具進行資料匯入匯出。

1.  啟動TOAD,以EXPUSR登入源資料庫SOURCE_DB;

2選擇選單中的Database->Export->Data Pump Export Wizard選項

 

2.  在Export選項中選擇Tables

 

3.    在下拉框中選擇源資料庫的Scheme:SOURCE_SCHM,並選擇需要匯出的資料表。

4.  如果資料需過濾,則此處填寫過濾條件DATA_FILTER。

 

5.  Content下拉框選擇Data Only選項。

6.  Directory中選擇所要匯出資料的目錄,Output file name(.dmp)給匯出的資料指定一個檔名記為DUMP_FILE。

7.  按Finish即可將資料匯出。

 

8.  以使用者 <IMPUSR>登入目標Oracle資料庫DEST_DB;

9.  選擇選單中的Database->Import-> Data Pump Import Wizard選項

Import選項中選擇Entire dumpfile。

 

10.      Source為匯出源資料庫的<SOURCE_SCHM>,Target為匯入目標資料庫的<DEST_SCHM>。

 

11.      Content下拉框選項中選擇Data Only。

12.      Directory:指定匯入資料檔案的路徑;Input file name為所要匯入的資料檔案DUMP_FILE。

13.      按Finish即可將資料匯入。

 

SOURCE_DB

源資料庫資訊

SOURCE_SCHM

源資料要匯出的使用者

SOURCE _SPACE

源預設表空間

INDEX _SPACE

源索引表空間

EXPUSR

資料匯出的賬號

DEST_DB

目標資料庫資訊

DEST_SCHM

目標資料匯入的使用者

DEST_SPACE

目標預設表空間

DESINDEX _SPACE

目標索引表空間

IMPUSR

資料匯入的賬號

EXPORT_FILE

匯出的sql指令碼

DUMP_FILE

匯出的資料檔案

DB_OBJECTS

匯出的資料庫物件

DATA_FILTER

匯出資料的過濾條件

1、開啟資料物件指令碼,檢查指令碼是否正確。表空間是否匹配,索引是否建在正確的索引空間。

2、在命令列視窗輸入資料物件指令碼:@檔案路徑+檔名,例如:

@e:/biao/tables.sql

把資料物件指令碼匯入後,檢查是否正確。包括表,索引,儲存過程,檢視等。檢查物件個數是否匹配。

使用expdp要先在資料庫中建立directory如在D盤下建立dumptestdir,並給相應的使用者read,write許可權. 注意要以有許可權的的使用者登陸;

SQL>create directory dumpdir as 'd:\dumptestdir';

SQL>grant read,write on directory dumpdir to HUNAN;

1)        資料的匯出方法

從資料庫中把表資料匯出到目錄中:

>Expdp hunan/[email protected] tables(action_info) dumpfile=dumptest.dmp directory=dumpdir logfile=dumptest.log connect=data_only

1)  使用Impdp要先在資料庫中建立directory如在D盤下建立dumptestdir,並給相應的使用者read,write許可權.並把要匯入的檔案拷貝在此目錄下,注意要以有許可權的的使用者登陸;

2)  把表資料匯入到資料庫中(先由上述方法把表結構匯入到資料庫中):

Impdp kuang/[email protected] dumpfile=”dumptestsj.dmp” directory=dumpdir remap_schema=hunan:kuang remap_tablespace=cdmadata:cdma content=data_only

常用一些引數說明:

DUMPFILE:匯出後的檔名(*)

DIRECTORY:匯出檔案存放位置(位於伺服器端)(*)

CONTENT:匯出檔案中包含的內容(預設為:ALL,可選DATA_ONLY/METADATA_ONLY)

FILESIZE:指定匯出檔案大小(單位為bytes).

JOB_NAME:此次匯出程序使用的名稱,方便跟蹤查詢(可選)

LOGFILE:日誌檔名(預設為:export.log)

INCLUDE:匯出時包含指定的型別

(例:INCLUDE=TABLE_DATA,

INCLUDE=TABLE:"LIKE 'TAB%'"

INCLUDE=TABLE:”NOT LIKE ‘TAB%’”…)

EXCLUDE:匯出時排除的資料型別(例:EXCLUDE=TABLE:EMP)

FULL:全庫匯出時使用(同EXP的FULL,預設為N)

SCHEMA:匯出某一個SCHEMA下的所有資料

TABLES:按表匯出(這裡的方法和EXP一樣)

TABLESPACE:指定一個表空間匯出.

QUERY:按表匯出時,使用條件語句限定匯出範圍(同exp中的QUERY


3          

1    

2    

RMAN(Recovery Manager)是DBA的一個重要工具,用於備份、還原和恢復oracle資料庫,RMAN 可以用來備份和恢復資料庫檔案、歸檔日誌和控制檔案,也可以用來執行完全或不完全的資料庫恢復。具有如下特點:

1)  RMAN操作相對簡單,很多工作自動完成

2)  RMAN 工具能以很多種方法備份 Oracle 資料庫,給備份和恢復方法提供了很大的靈活性

3)  執行增量備份。RMAN 具有執行增量備份和完全備份的能力。增量備份僅備份從上次備份後修改了的內容,此方法允許你一週只有一天執行完全備份,而其它幾天都執行增量備份,這樣就提高了備份的效能

4)  提供目錄資訊列表。可以使用 RMAN的LIST和REPORT命令查詢儲存在catalog目錄中有關備份的資訊,這些命令提供顯示資訊的有效方法

5)  RMAN在進行聯機備份時,自動判斷block的一致性,不需要將資料檔案處於備份狀態

6)  RMAN可以提供一些關鍵資訊的報告

7)  可以方便的檢查介質上儲存的備份是否可用

保證目標資料庫安全,使資料庫的失效次數減到最少,從而使資料庫保持最大的可用性;

當資料庫不可避免地失效後,要使恢復時間減到最少,從而使恢復的效率達到最高;

當資料庫失效後,要確保儘量少的資料丟失或根本不丟失,從而使資料具有最大的可恢復性。

1) 以什麼方式備份:

用RMAN的增量備份(差量備份),採用多級備份是為了減少了恢復所需要的時間和減少每天備份所需要的時間,而又保證系統有很好的恢復性。

2) 備份的資料儲存在什麼地方:

備份的資料應該異地儲存,這樣備份的安全才能有保證。

3) 備份時間安排:

由於備份時對系統I/O有較大影響,所以,建議在下班以後進行備份工作。

4) RMAN備份注意事項:

任何資料庫的更改需要重新同步CATALOG目錄或重新備份

1)    配置目標資料庫:

確定資料庫為歸檔模式

設定Flashback啟用為ON

設定資料庫啟動時使用spfile引數

2)    配置rman資料庫

3)    差異增量備份:每個月一次全備,週日一次零備,週一,二做二級備份,週三做一次一級的,週四,五,六再做二級備份。

rman> backup database;(資料庫全備)

rman> backup incremental level 0 database;(週日)

rman> backup incremental level 2 database; (週一)

rman> backup incremental level 2 database; (週二)

rman> backup incremental level 1 database; (週三)

rman> backup incremental level 2 database; (週四)

rman> backup incremental level 2 database; (週五)

rman> backup incremental level 2 database; (週六)

說明:全備是對整個資料庫的所有資料進行完整備份和0級備份的區別在0級可以有增量備份,全備則不可以。

0級備份是對整個資料庫的所有資料進行完整備份

      1級備份是隻對0級備份以後修改過的資料進行備份

      2級備份只是對1級備份以後修改過的資料進行備份

注意:具體備份恢復步驟參見1.3          

備份目標資料庫和RMAN資料庫準備工作:

(一)    目標資料庫

a)  修改資料庫歸檔狀態,檢視歸檔狀態:

SQL> archive log list;

如果資料庫未處於未歸檔模式下,則設定為歸檔模式

b)  啟用 FLASHBACK DATABASE 事件記錄,這樣在不慎drop表時可以快速恢復。檢視Flashback啟用狀態:

SQL> select dbid,name,flashback_on,current_scn from v$database;

如果沒有flashback on,則進行如下設定:

SQL> shutdown immediate

SQL> startup mount

SQL> alter database flashback on;  

SQL> select dbid,name,flashback_on,current_scn from v$database;

SQL> alter database open;

c)  資料庫啟動時使用spfile引數,這樣備份時spfile會和控制檔案一起備份。

檢視是否用spfile引數檔案:

SQL> show parameter spfile

VALUE的值為空,資料庫是用pfile檔案啟動的,如果有值,則為spfile啟動,如果沒有值,則進行如下設定:

建立spfile引數檔案

SQL> create spfile from pfile

SQL> shutdown immediate

SQL> startup

SQL> show parameter spfile;

(二)    配置rman資料庫

建立RMAN目錄,以下步驟說明了在一個數據庫中建立RMAN目錄的過程。

a. 為目錄建立一個單獨的表空間

SQL>Create tablespace rmantablespace datafile ‘D:/rmantablespace.ora’ size 500m;

b.建立RMAN使用者

SQL>Create user RMAN identified by RMAN default tablespace rmantablespace temporary tablespace temp;

c.給RMAN授予許可權

SQL>Grant connect , resource , recovery_catalog_owner to rman;

d.開啟RMAN

$>RMAN

e.連線資料庫

RMAN>connect catalog rman/rman

f.建立恢復目錄

RMAN>Create catalog tablespace rmantablespace;

註冊目標資料庫,恢復目錄建立成功後,就可以註冊目標資料庫了,目標資料庫就是需要備份的資料庫,一個恢復目錄可以註冊多個目標資料庫,註冊目標資料庫的命令為:

$>RMAN target sys/[email protected]

RMAN>connect catalog rman/rman

RMAN>Register database;

資料庫註冊完成,就可以用RMAN來進行備份了。

d)  檢視和修改RMAN備份配置

RMAN>show all;

檢視RMAN預設備份引數,根據實際需求更改

RMAN>configure controlfile autobackup on;

配置引數指定進行任何備份時,都對控制檔案和引數檔案同時進行備份(預設OFF)

(三)    備份目標資料庫

a)  對目標資料庫進行日誌切換,以便生成最新的歸檔檔案進行備份

rman>sql ‘alter system archive log current’;

b)  全庫備份:

RMAN>backup database;

備份目標資料庫上所有的資料檔案,控制檔案與引數檔案以及歸檔檔案

c)  檢視目標資料庫的備份資訊:

RMAN>list backup of database;

d)  增量備份:

Rman> backup incremental level 0 database; (週日)

Rman> backup incremental level 2 database; (週一)

Rman> backup incremental level 2 database; (週二)

Rman> backup incremental level 1 database; (週三)

Rman> backup incremental level 2 database; (週四)

Rman> backup incremental level 2 database; (週五)

Rman> backup incremental level 2 database; (週六)

(一)    全庫恢復

a)  連線目標伺服器

>rman

RMAN> connect target sys/[email protected]

b)  連線RMAN伺服器

RMAN>connect catalog rman/rman

c)  假設目標伺服器損壞

d)  啟動目標伺服器

RMAN>startup nomount;

RMAN>restore spfile from autobackup;修復引數檔案

RMAN>restore controlfile from autobackup;修復控制檔案

RMAN>restore database;修復資料檔案

RMAN>alter database mount;啟動到MOUNT狀態

RMAN>recover database;進行修復

RMAN>alter database open resetlogs;重設日誌檔案開啟資料庫

e)  最後重建臨時表空間

(二)    基於時間的恢復

基於時間的恢復可以將資料庫恢復到過去某一個時間點,常用於在誤操作刪除資料後,將庫恢復到刪除時間之前,從而挽回丟失的資料。

RMAN> run{

sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss" ';

set until time '2009-04-08:11:00:00';

restore database;

recover database;

alter database open resetlogs;

}

4    基於EMP/IMP備份策略(oracle10g已不支援)

Oracle匯出/匯入(Export/Import)資料庫備份方法:利用Export可將資料從資料庫中提取出來,利用Import則可將提取出來的資料送回到Oracle資料庫中去。

4.1         簡單匯出資料(Export)和匯入資料(Import)

Oracle支援三種方式型別的輸出:

(一)    表方式(T方式),將指定表的資料匯出。

(二)    使用者方式(U方式),將指定使用者的所有物件及資料匯出。

(三)    全庫方式(Full方式),將資料庫中的所有物件匯出。

  資料匯入(Import)的過程是資料匯出(Export)的逆過程,分別將資料檔案匯入資料庫和將資料庫資料匯出到資料檔案。

4.2         增量匯出/匯入

  增量匯出是一種常用的資料備份方法,它只能對整個資料庫來實施,並且必須作為SYSTEM來匯出。在進行此種匯出時,系統不要求回答任何問題。匯出檔名預設為export.dmp,如果不希望自己的輸出檔案定名為export.dmp,必須在命令列中指出要用的檔名。

  增量匯出包括三種類型:

(一)    “完全”增量匯出(Complete)

  即備份三個資料庫,比如:

  exp system/kzp4715712 inctype=complete file=040731.dmp

(二)    “增量型”增量匯出

  備份上一次備份後改變的資料,比如:

 Exp system/kzp4715712 inctype=incremental file=040731.dmp

(三)    “累積型”增量匯出

  累計型匯出方式是匯出自上次“完全”匯出之後資料庫中變化了的資訊。比如:

  exp system/manager inctype=cumulative file=040731.dmp

  資料庫管理員可以排定一個備份日程表,用資料匯出的三個不同方式合理高效的完成。

  比如資料庫的備份任務可以做如下安排:(括號中字母表示備份檔名)

  星期一:完全備份(A)

  星期二:增量匯出(B)

  星期三:增量匯出(C)

  星期四:增量匯出(D)

  星期五:累計匯出(E)

  星期六:增量匯出(F)

  星期日:增量匯出(G)

  如果在星期日,資料庫遭到意外破壞,資料庫管理員可按一下步驟來回複數據庫:

  第一步:用命令CREATE DATABASE重新生成資料庫結構;

  第二步:建立一個足夠大的附加回滾。

  第三步:完全增量匯入A:

  imp system/manager inctype=RESTORE FULL=y FILE=A

  第四步:累計增量匯入E:

  imp system/manager inctype=RESTORE FULL=Y FILE=E

  第五步:最近增量匯入F:

  imp system/manager inctype=RESTORE FULL=Y FILE=F


相關推薦

oracle資料匯入匯出

資料的匯入匯出 說明: 針對的物件:  資料的匯入匯出牽涉到的角色主要是工程實施人員。 需解決的問題:把所需要的資料從一個數據庫中匯入到另外一個數據庫中。 1    工具方式 1.  使用PLSQL Developer工具主要為了方便工程實施人員操作資料庫,如匯入、匯出資

Oracle資料庫的備份 資料匯入匯出 Oracle

                                   資料庫的備份 1:資料庫的匯出:1.1需要備份的目錄1.2進入備份目錄1.3輸入exp指令 使用者名稱:scott  密碼 E:\>cd backup  目錄 E:\backup>exp  匯

Mysql的資料匯入匯出

2018年11月14日 18:38:32 wyh1128 閱讀數:6 標籤: mysql

sqoop學習2(資料匯入匯出命令)

最近學習了下這個導資料的工具,但是在export命令這裡卡住了,暫時排不了錯誤。先記錄學習的這一點吧sqoop是什麼sqoop(sql-on-hadoop):是用來實現結構型資料(如關係型資料庫)和hadoop之間進行資料遷移的工具。它充分利用了mapreduce的並行特點以

R語言的資料匯入匯出

福爾·摩斯曾說過:“資料,資料,沒有資料的推理是罪惡!”不過比起有意思的統計分析,資料的匯入與匯出顯得十分的無趣,但是不得不說統計分析的資料匯入與匯出是個讓人沮喪的任務,而且耗時巨大。今天分享的是R中資料的輸出與一些特定格式的資料讀入。一、資料的輸出 R中提供了write.

【轉載】oracle 資料匯入匯出

oracle 資料匯入匯出   一、oracle中copy from的用法     1.語法及使用說明   1.1 語法   下面我們來看一下SQL*Copy Command的語法及使用說明。   在解釋SQ

Oracle匯入匯出 EXP / IMP 和 EXPDP / IMPDP 資料匯出匯入的方法

  【Oracle】EXPDP和IMPDP資料泵進行匯出匯入的方法 一、expdp/impdp和exp/imp的區別 1、exp和imp是客戶端工具程式,它們既可以在客戶端使用,也可以在服務端使用。 2、expdp和impdp是服務端的工具程式,他們只能在oracle服務端

HIVE資料匯入匯出詳解

1.匯入 load data [local] inpath ''  [overwrite]  into database.table [partition(partcol=val)] 原始檔案在linux本地 加上local 如果原始資料檔案在hdfs 不用local

oracle命令匯入匯出資料

開啟命令列視窗,輸入匯入命令:imp Test/[email protected]:1521/orcl file=C:\test.dmp log=C:\test.log fromuser=Test touser=Test constraints=N ignore=y Test為使用

Matlab檔案和資料匯入匯出

ref: https://blog.csdn.net/zengzeyu/article/details/72530596 Matlab檔案和資料的匯入與匯出 2017年05月19日 15:18:35 周吳鄭王 閱讀數:740

Sqoop1 匯入匯出資料

https://blog.csdn.net/HG_Harvey/article/details/77985857 sqoop的參考 實習要求從hive裡把分割槽表匯出到oracle裡 指令碼:hiveORCL.op export --connect jdbc:oracle:thi

Oracle資料匯入匯出imp/exp sp2-0734:未知的命令開頭'imp 忽略了剩餘行預設分類 解決辦法

sp2-0734:未知的命令開頭'imp 忽略了剩餘行預設分類 2010-03-03 17:36:08 閱讀134 評論0 字號:大中小 很多時候問題並沒有我們想象的那麼複雜,比如這個問題,我Google,百度了很久都沒有結果, 最後在Google的一個小連結裡面看到了,

Hive之DML(資料匯入資料匯出)操作

總結: 資料的匯入 1)hdfs或者本地檔案匯入使用  load 或者 建立資料庫的同時指定檔案位置 location 2)從已有hive資料庫中表匯入相應的資料    使用       as   

Oracle資料匯入匯出imp/exp命令 10g以上expdp/impdp命令

Oracle資料匯入匯出imp/exp就相當於oracle資料還原與備份。exp命令可以把資料從遠端資料庫伺服器匯出到本地的dmp檔案,imp命令可以把dmp檔案從本地匯入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。 執行環

oracle資料匯入匯出

1、以作業系統許可權認證的oracle sys管理員登陸sqlplus "/as sysdba" 2、建立表空間 create tablespace xx datafile 'F:\app\Administrator\oradata\xx.dbf' size 200m a

Oracle資料匯入匯出imp/exp命令

 Oracle資料匯入匯出imp/exp就相當於oracle資料還原與備份。exp命令可以把資料從遠端資料庫伺服器匯出到本地的dmp檔案,imp命令可以把dmp檔案從本地匯入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。 執

Oracle資料匯入匯出impexp

Oracle資料匯入匯出imp/exp 功能:Oracle資料匯入匯出imp/exp就相當與oracle資料還原與備份。 大多情況都可以用Oracle資料匯入匯出完成資料的備份和還原(不會造成資料的丟失)。  Oracle有個好處,雖然你的電腦不是伺服器,但是你裝了oracl

1.資料匯入匯出

  資料的匯入與匯出 更多MATLAB資料分析視訊請點選,或者在網易雲課堂上搜索《MATLAB資料分析與統計》 http://study.163.com/course/courseMain.htm?courseId=1003615016           在用MATLAB

R語言資料匯入匯出

1.R資料的儲存與載入 可通過save()函式儲存為.Rdata檔案,通過load()函式將資料載入到R中。 > a <- 1:10 > save(a,file='d://data//dumData.Rdata') > rm(a) #將物件a從

Oracle 9i 資料庫 資料匯入匯出的最簡單的方法

匯出命令:Exp <username>/<password>@[<netname>]  owner=<ownername> file=<filepath>解釋一下:資料匯出要用到EXP命令,直接執行cmd,輸入實際的