[toc]
一、 exp參數(shù)使用
1. exp參數(shù)的查看
切換至 Oracle 用戶,進(jìn)入 Oracle 目錄,執(zhí)行:
exp help=y
查看 exp 相關(guān)參數(shù)。
You can let Export prompt you for parameters by entering the EXP
command followed by your username/password:
Example: EXP SCOTT/TIGER
Or, you can control how Export runs by entering the EXP command followed
by various arguments. To specify parameters, you use keywords:
Format: EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
or TABLES=(T1:P1,T1:P2), if T1 is partitioned table
USERID must be the first parameter on the command line.
Keyword Description (Default) Keyword Description (Default)
--------------------------------------------------------------------------
USERID username/password FULL export entire file (N)
BUFFER size of data buffer OWNER list of owner usernames
FILE output files (EXPDAT.DMP) TABLES list of table names
COMPRESS import into one extent (Y) RECORDLENGTH length of IO record
GRANTS export grants (Y) INCTYPE incremental export type
INDEXES export indexes (Y) RECORD track incr. export (Y)
DIRECT direct path (N) TRIGGERS export triggers (Y)
LOG log file of screen output STATISTICS analyze objects (ESTIMATE)
ROWS export data rows (Y) PARFILE parameter filename
CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)
OBJECT_CONSISTENT transaction set to read only during object export (N)
FEEDBACK display progress every x rows (0)
FILESIZE maximum size of each dump file
FLASHBACK_SCN SCN used to set session snapshot back to
FLASHBACK_TIME time used to get the SCN closest to the specified time
QUERY select clause used to export a subset of a table
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
TTS_FULL_CHECK perform full or partial dependency check for TTS
VOLSIZE number of bytes to write to each tape volume
TABLESPACES list of tablespaces to export
TRANSPORT_TABLESPACE export transportable tablespace metadata (N)
TEMPLATE template name which invokes iAS mode export
Export terminated successfully without warnings.
2. 參數(shù)詳解
| 關(guān)鍵字 | 說(shuō)明 | 例子/作用 |
|---|---|---|
| USERID | 指定登陸exp的用戶名和密碼 | exp userid=sys/sys@orcl tables=(swserp.tbsuser) file=’/tmp/e.dmp’; |
| BUFFER | 數(shù)據(jù)緩沖區(qū)大小 | 所有者用戶名列表 數(shù)據(jù)量大的時(shí)候,設(shè)置buffer調(diào)大可以提高速度 |
| FILE | 輸出文件 (EXPDAT.DMP) | 表名列表 |
| COMPRESS | 導(dǎo)入到一個(gè)區(qū) (Y) | IO 記錄的長(zhǎng)度 |
| GRANTS | 導(dǎo)出權(quán)限 (Y) | 增量導(dǎo)出類型 |
| INDEXES | 導(dǎo)出索引 (Y) | 跟蹤增量導(dǎo)出 (Y) |
| DIRECT | 直接路徑 (N) | 導(dǎo)出觸發(fā)器 (Y) |
| LOG | 屏幕輸出的日志文件 | 分析對(duì)象 (ESTIMATE) |
| ROWS | 導(dǎo)出數(shù)據(jù)行 (Y) | 參數(shù)文件名 |
| CONSISTENT | 交叉表的一致性 (N) | 導(dǎo)出的約束條件 (Y) |
| OBJECT_CONSISTENT | 只在對(duì)象導(dǎo)出期間設(shè)置為只讀的事務(wù)處理 (N) | |
| FEEDBACK | 每 x 行顯示進(jìn)度 (0) | |
| FILESIZE | 每個(gè)轉(zhuǎn)儲(chǔ)文件的最大大小 | |
| FLASHBACK_SCN | 用于將會(huì)話快照設(shè)置回以前狀態(tài)的 SCN | |
| FLASHBACK_TIME | 用于獲取最接近指定時(shí)間的 SCN 的時(shí)間 | |
| QUERY | 用于導(dǎo)出表的子集的 select 子句 導(dǎo)出指定條件的數(shù)據(jù),該參數(shù)需要跟tables一起使用 | exp userid=hxl/hxl@orcl file=c:\query.dmp,tables=(tb_exp_test),query=(‘Where owner = ‘‘HXL’’ And Object_name=’‘ERROR_LOG’’ And last_ddl_time = to_date(’‘2010-9-13 16:43:33’’,’‘YYYY-MM-DD HH24:MI:SS’’)’), log=c:\explog.txt |
| RESUMABLE | 遇到與空格相關(guān)的錯(cuò)誤時(shí)掛起 (N) | |
| RESUMABLE_NAME | 用于標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串 | |
| RESUMABLE_TIMEOUT | RESUMABLE 的等待時(shí)間 | |
| TTS_FULL_CHECK | 對(duì) TTS 執(zhí)行完整或部分相關(guān)性檢查 | |
| TABLESPACES | 要導(dǎo)出的表空間列表 導(dǎo)出指定表空間下所有的對(duì)象 | exp ‘sys/sys as sysdba’ file=c:\tsp_test.dmp transport_tablespace=Y tablespaces=test |
| TRANSPORT_TABLESPACE | 導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N) 導(dǎo)出的時(shí)候需要將準(zhǔn)備導(dǎo)出的表空間設(shè)置為只讀 | |
| TEMPLATE | 調(diào)用 iAS 模式導(dǎo)出的模板名 |
2. EXP導(dǎo)出與字符集
導(dǎo)出客戶端的字符集的設(shè)置會(huì)影響導(dǎo)出數(shù)據(jù),所以應(yīng)該設(shè)置導(dǎo)出客戶端字符集和數(shù)據(jù)庫(kù)相一致。
在Linux/UNIX上Bash下通常可以如下設(shè)置:
[oracle@localhost bin]$ export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
數(shù)據(jù)庫(kù)端使用的字符集可以通過(guò)如下查詢獲得:
SQL> select * from NLS_DATABASE_PARAMETERS where parameter='LS_CHARACTERSET';
PARAMETER VALUE
NLS_CHARACTERSET ZHS16GBK
3. 帶查詢子句的部分導(dǎo)出
從Oracle 8i開始,EXP工具支持使用查詢子句對(duì)特定表的部分?jǐn)?shù)據(jù)執(zhí)行導(dǎo)出,這個(gè)功能是通過(guò)EXP的query參數(shù)來(lái)實(shí)現(xiàn)的,在使用過(guò)程中可能最常見的錯(cuò)誤是:
LRM-00112: multiple values not allowed for parameter ‘query’
EXP-00019: failed to process parameters, type ‘EXP HELP=Y’ for help
EXP-00000: Export terminated unsuccessfully
這通常是因?yàn)镼uery子句包含特殊字符導(dǎo)致的,由于特殊字符在命令行通常需要轉(zhuǎn)義,所以導(dǎo)出的語(yǔ)法結(jié)構(gòu)通常與眾不同。
在Linux/UNIX的Bash下,通常可以如下指定query參數(shù):
exp … query=“where col < 1000”
exp … query=“where col < ‘1000’”
以下是一個(gè)簡(jiǎn)單的舉例:
[oracle@danaly ~]$ exp eygle/eygle file=test.dmp tables=tquery query=“where object_id < 1000”
Export: Release 10.2.0.1.0 - Production on Thu Feb 1 11:47:54 2007
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path …
. . exporting table TQUERY 949 rows exported
Export terminated successfully without warnings.
3. 參數(shù)文件的使用
對(duì)于類似以上的復(fù)雜處理,可以通過(guò)參數(shù)PARFILE來(lái)指定一個(gè)參數(shù)文件,具體的參數(shù)寫在參數(shù)文件中,這樣就可以避免復(fù)雜的轉(zhuǎn)義等操作:
[oracle@danaly ~]$ cat parfile.lst
userid=eygle/eygle
file=test.dmp
tables=tquery
query=“where object_id < 1000”
[oracle@danaly ~]$ exp parfile=parfile.lst
Export: Release 10.2.0.1.0 - Production on Thu Feb 1 11:52:30 2007
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path …
. . exporting table TQUERY 949 rows exported
Export terminated successfully without warnings.
4. 使用通配符進(jìn)行模糊導(dǎo)出
有時(shí)候,我們希望按條件導(dǎo)出部分表,EXP工具支持模糊查找,通配符可以在tables參數(shù)中使用,例如:
[oracle@jumper oracle]$ exp eygle/eygle tables=e% file=a.dmp
Export: Release 9.2.0.4.0 - Production on Mon Mar 26 14:59:14 2007
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set
About to export specified tables via Conventional Path …
. . exporting table EYGLE 9 rows exported
. . exporting table EYGLE_ACCESS_LOG_20061016
Export terminated successfully without warnings.
這樣,以字母E開頭的表都被導(dǎo)出了。
5. 按日期區(qū)分文件名稱的導(dǎo)出
很多時(shí)候,在導(dǎo)出備份時(shí),我們希望在文件名中加入日期變量,以區(qū)分不同日期的導(dǎo)出文件,也可以防止覆蓋。
在導(dǎo)出文件名中引入時(shí)間有很多不同的做法,本文主要介紹以下兩種方法:
(1)通過(guò)數(shù)據(jù)庫(kù)查詢獲取日期。
通過(guò)數(shù)據(jù)庫(kù)查詢可以獲得需要的日期格式,在Windows上可以編寫兩個(gè)文件用于完成備份,一個(gè)是可執(zhí)行的批處理文件,名稱為startbak.bat,可以包含如下內(nèi)容:
echo off
set oracle_sid=eygle
sqlplus eygle/eygle @expbydt.sql
第二個(gè)文件是expbydt.sql腳本:
column today new_val dt
select to_char( sysdate, ‘ddmmyyyy’ ) today from dual;
host exp userid=eygle/eygle file=exp_eygle_&dt…dmp log=exp_eygle_&dt…log
exit
準(zhǔn)備好了這兩個(gè)文件之后,就可以通過(guò)命令行運(yùn)行startbak.bat來(lái)執(zhí)行邏輯備份了:
D:\backup>startbak.bat
D:\backup>echo off
連接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
TODAY
08022007
Export: Release 10.2.0.1.0 - Production on 星期四 2月 8 15:55:07 2007
Copyright ? 1982, 2005, Oracle. All rights reserved.
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已導(dǎo)出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將導(dǎo)出指定的用戶…
. 正在導(dǎo)出 pre-schema 過(guò)程對(duì)象和操作
。。。。
即將導(dǎo)出 EYGLE 的對(duì)象…
. 即將導(dǎo)出 EYGLE 的表通過(guò)常規(guī)路徑…
. . 正在導(dǎo)出表 EYGLE導(dǎo)出了 1 行
. . 正在導(dǎo)出表 EYGLE_BLOB導(dǎo)出了 8 行
. . 正在導(dǎo)出表 TEST導(dǎo)出了 15 行
. 正在導(dǎo)出同義詞
……
. 正在導(dǎo)出統(tǒng)計(jì)信息
成功終止導(dǎo)出, 沒有出現(xiàn)警告。
檢查一下導(dǎo)出后的文件名稱,如果備份計(jì)劃無(wú)誤,現(xiàn)在就可以通過(guò)Windows上的定時(shí)任務(wù)來(lái)定時(shí)執(zhí)行這個(gè)任務(wù)了。
D:\backup>dir
2007-02-08 15:54 163 expbydt.sql
2007-02-08 15:55 1,699,840 exp_eygle_08022007.dmp
2007-02-08 15:55 1,091 exp_eygle_08022007.log
2007-02-08 15:51 64 startbak.bat
(2)通過(guò)操作系統(tǒng)獲取日期。
時(shí)間變量也可以直接通過(guò)操作系統(tǒng)獲得,在Windows上,我們可以通過(guò)如下命令獲得:
D:\backup>echo %date:~0,10%
2007-02-08
當(dāng)然,在Windows上的時(shí)間格式和區(qū)域設(shè)置有關(guān),如果以上命令輸出的日期格式存在問(wèn)題,那么可以調(diào)整一下區(qū)域設(shè)置的日期。
可以通過(guò)一個(gè)名為expbdt.bat的批處理文件來(lái)執(zhí)行導(dǎo)出操作:
echo off
set oracle_sid=eygle
exp userid=eygle/eygle full=y file=d:\backup\exp_eygle_%date:~0,10%.dmp log=d:\backup\exp_eygle_%date:~0,10%.log
執(zhí)行的結(jié)果和上面的方法類似:
D:\backup>expbdt.bat
D:\backup>echo off
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已導(dǎo)出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)…
. 正在導(dǎo)出表空間定義
…
. 正在導(dǎo)出 pre-schema 過(guò)程對(duì)象和操作
. 正在導(dǎo)出簇定義
. 即將導(dǎo)出 SYSTEM 的表通過(guò)常規(guī)路徑…
. . 正在導(dǎo)出表 DEF_AQCALL導(dǎo)出了 0 行 . . 正在導(dǎo)出表 DEF_AQERROR導(dǎo)出了 0 行
…
. 正在導(dǎo)出默認(rèn)值和系統(tǒng)審計(jì)選項(xiàng)
. 正在導(dǎo)出統(tǒng)計(jì)信息
成功終止導(dǎo)出, 沒有出現(xiàn)警告。
導(dǎo)出的輸出如下:
D:\backup>dir
2007-02-08 16:46 134 expbdt.bat
2007-02-08 16:47 11,440,128 exp_eygle_2007-02-08.dmp
2007-02-08 16:47 29,646 exp_eygle_2007-02-08.log
在Linux/UNIX上的時(shí)間定義就顯得更為簡(jiǎn)單:
exp eygle/eygle file=eygle_date +%Y%M%d
導(dǎo)出文件格式如下:
[oracle@jumper oracle]$ ls -l *.dmp
-rw-r–r-- 1 oracle dba 32768 Feb 8 16:41 eygle_20074008.dmp
6. 應(yīng)用
EXP常用選項(xiàng):
- FULL,這個(gè)用于導(dǎo)出整個(gè)數(shù)據(jù)庫(kù),在ROWS=N一起使用時(shí),可以導(dǎo)出整個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)。例如:
exp userid=test/test file=./db_str.dmp log=./db_str.log full=y rows=n compress=y direct=y
- OWNER和TABLE,這兩個(gè)選項(xiàng)用于定義EXP的對(duì)象。OWNER定義導(dǎo)出指定用戶的對(duì)象;TABLE指定EXP的table名稱,例如:
exp userid=test/test file=./db_str.dmp log=./db_str.log owner=duanl
exp userid=test/test file=./db_str.dmp log=./db_str.log table=nc_data,fi_arap
- BUFFER和FEEDBACK,在導(dǎo)出比較多的數(shù)據(jù)時(shí),我會(huì)考慮設(shè)置這兩個(gè)參數(shù)。例如:
exp userid=test/test file=yw97_2003.dmp log=yw97_2003_3.log feedback=10000 buffer=100000000 tables=WO4,OK_YT
- FILE和LOG,這兩個(gè)參數(shù)分別指定備份的DMP名稱和LOG名稱,包括文件名和目錄,例子見上面。
二、 imp參數(shù)使用
1. imp參數(shù)的查看
切換至 Oracle 用戶,進(jìn)入 Oracle 目錄,執(zhí)行:
imp help=y
查看 imp 相關(guān)參數(shù)。
[oracle@localhost bin]$ imp help=y
Import: Release 19.0.0.0.0 - Production on Mon Nov 1 11:28:45 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
You can let Import prompt you for parameters by entering the IMP
command followed by your username/password:
Example: IMP SCOTT/TIGER
Or, you can control how Import runs by entering the IMP command followed
by various arguments. To specify parameters, you use keywords:
Format: IMP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)
Example: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT) FULL=N
or TABLES=(T1:P1,T1:P2), if T1 is partitioned table
USERID must be the first parameter on the command line.
Keyword Description (Default) Keyword Description (Default)
--------------------------------------------------------------------------
USERID username/password FULL import entire file (N)
BUFFER size of data buffer FROMUSER list of owner usernames
FILE input files (EXPDAT.DMP) TOUSER list of usernames
SHOW just list file contents (N) TABLES list of table names
IGNORE ignore create errors (N) RECORDLENGTH length of IO record
GRANTS import grants (Y) INCTYPE incremental import type
INDEXES import indexes (Y) COMMIT commit array insert (N)
ROWS import data rows (Y) PARFILE parameter filename
LOG log file of screen output CONSTRAINTS import constraints (Y)
DESTROY overwrite tablespace data file (N)
INDEXFILE write table/index info to specified file
SKIP_UNUSABLE_INDEXES skip maintenance of unusable indexes (N)
FEEDBACK display progress every x rows(0)
TOID_NOVALIDATE skip validation of specified type ids
FILESIZE maximum size of each dump file
STATISTICS import precomputed statistics (always)
RESUMABLE suspend when a space related error is encountered(N)
RESUMABLE_NAME text string used to identify resumable statement
RESUMABLE_TIMEOUT wait time for RESUMABLE
COMPILE compile procedures, packages, and functions (Y)
STREAMS_CONFIGURATION import streams general metadata (Y)
STREAMS_INSTANTIATION import streams instantiation metadata (N)
DATA_ONLY import only data (N)
VOLSIZE number of bytes in file on each volume of a file on tape
The following keywords only apply to transportable tablespaces
TRANSPORT_TABLESPACE import transportable tablespace metadata (N)
TABLESPACES tablespaces to be transported into database
DATAFILES datafiles to be transported into database
TTS_OWNERS users that own data in the transportable tablespace set
Import terminated successfully without warnings.
[oracle@localhost bin]$
2. 參數(shù)詳解
| 關(guān)鍵字 | 說(shuō)明 | 例子/作用 |
|---|---|---|
| USERID | 用戶名/口令 | |
| FULL | 導(dǎo)入整個(gè)文件 | imp file=c:\exptest.dmp full=Y |
| BUFFER | 數(shù)據(jù)緩沖區(qū)大小 | imp file=c:\exptest.dmp full=Y buffer=2048000 |
| FROMUSER | 所有人用戶名列表 具體指定那個(gè)用戶下的對(duì)象需要導(dǎo)入,用戶名列表需要放在括號(hào)中(fromuser=test這樣好像是不行的) | 單獨(dú)導(dǎo)入test用戶的對(duì)象 imp file=c:\exptest.dmp fromuser=(test) |
| FILE | 輸入文件 | |
| TOUSER | 用戶名列表 具體指定導(dǎo)入那個(gè)用戶,該參數(shù)必須跟fromuser一起使用 | 將test用戶下的對(duì)象導(dǎo)入到hxl用戶下imp file=c:\exptest.dmp fromuser=(test) touser=(hxl); |
| SHOW | 只列出文件內(nèi)容 在屏幕顯示文件內(nèi)容,具體不會(huì)做導(dǎo)入操作 | imp file=c:\exptest.dmp full=y show=Y; |
| TABLES | 表名列表 導(dǎo)入表名列表,多個(gè)表名,逗號(hào)分隔 | imp test file=c:\exptest.dmp tables=(tb_exp_test,tb_exp_test_01) 導(dǎo)入表tb_exp_test和tb_exp_test_01 |
| IGNORE | 忽略創(chuàng)建錯(cuò)誤 忽略導(dǎo)入過(guò)程中創(chuàng)建對(duì)象的錯(cuò)誤(確保數(shù)據(jù)能夠?qū)?,但不會(huì)忽略寫入數(shù)據(jù)的錯(cuò)誤(如導(dǎo)入的數(shù)據(jù)跟當(dāng)前表里的數(shù)據(jù)有違反唯一性約束的錯(cuò)誤) | imp file=c:\exptest.dmp full=y ignore=Y; |
| RECORDLENGTH | IO記錄的長(zhǎng)度,最大值為65535 | imp file=c:\exptest.dmp full=Y recordlength=65535 |
| GRANTS | 導(dǎo)入權(quán)限 | imp file=c:\exptest.dmp full=y grants=Y; |
| INCTYPE | 增量導(dǎo)入類型 | |
| INDEXES | 導(dǎo)入索引 indexes為Y的時(shí)候,將導(dǎo)入索引,否則不導(dǎo)入 | imp test file=c:\exptest.dmp tables=(tb_exp_test) indexes=Y;數(shù)據(jù)加載到表tb_exp_test,并創(chuàng)建索引 |
| COMMIT | 提交數(shù)組插入,該參數(shù)為Y時(shí),導(dǎo)入的過(guò)程會(huì)提交數(shù)據(jù)行,若buffer設(shè)置得太小,則會(huì)過(guò)去頻繁的提交數(shù)據(jù),對(duì)性能有一定的影響 | |
| ROWS | 導(dǎo)入數(shù)據(jù)行 該參數(shù)為Y的時(shí)候?qū)?dǎo)入數(shù)據(jù),默認(rèn)是導(dǎo)入數(shù)據(jù).但出于某種原因可以將該參數(shù)設(shè)置成N即不導(dǎo)入數(shù)據(jù)行 | imp test file=c:\exptest.dmp tables=(tb_exp_test) rows=Y constraints=N indexes=N;先加載數(shù)據(jù)到表tb_exp_test,但不創(chuàng)建約束和索引 |
| PARFILE | 參數(shù)文件名 將個(gè)參數(shù)寫入parfile指定的文件中 | imp parfile=c:\pfile.txt pfile.txt的內(nèi)容如下: file=c:\exptest.dmp full=y commit=N; |
| LOG | 屏幕輸出的日志文件 | |
| CONSTRAINTS | 導(dǎo)入限制 constraints為Y的時(shí)候,將導(dǎo)入約束,如主鍵,外鍵,check,否則不導(dǎo)入 | imp test file=c:\exptest.dmp tables=(tb_exp_test) constraints=Y;數(shù)據(jù)加載到表tb_exp_test,并創(chuàng)建各種約束 |
| DESTROY | 覆蓋表空間數(shù)據(jù)文件 | |
| INDEXFILE | 將表/索引信息寫入指定的文件 該參數(shù)該創(chuàng)建索引的DDL導(dǎo)出到指定文件中,只用該參數(shù)不會(huì)導(dǎo)入數(shù)據(jù) | imp test file=c:\exptest.dmp tables=(tb_exp_test) constraints=Y indexes=Y indexfile=C:\index.txt 將該表創(chuàng)建索引的DDL和創(chuàng)建各種constraints以及創(chuàng)建表的的DDL導(dǎo)入到C盤的文件index.txt中, 但數(shù)據(jù)未加載到tb_exp_test中.(文件中創(chuàng)建表和約束的DDL已經(jīng)加入注釋).在命令行模式中可以直接運(yùn)行(@index.txt)創(chuàng)建索引 |
| SKIP_UNUSABLE_INDEXES | 跳過(guò)不可用索引的維護(hù) | |
| FEEDBACK | 每 x 行顯示進(jìn)度 | |
| TOID_NOVALIDATE | 跳過(guò)指定類型 ID 的驗(yàn)證 | |
| FILESIZE | 每個(gè)轉(zhuǎn)儲(chǔ)文件的最大大小 | |
| STATISTICS | 始終導(dǎo)入預(yù)計(jì)算的統(tǒng)計(jì)信息 | |
| RESUMABLE | 在遇到有關(guān)空間的錯(cuò)誤時(shí)掛起 | |
| RESUMABLE_NAME | 用來(lái)標(biāo)識(shí)可恢復(fù)語(yǔ)句的文本字符串 | |
| RESUMABLE_TIMEOUT | RESUMABLE 的等待時(shí)間 | |
| COMPILE | 編譯過(guò)程, 程序包和函數(shù) | |
| STREAMS_CONFIGURATION | 導(dǎo)入 Streams 的一般元數(shù)據(jù) | |
| STREAMS_INSTANITATION | 導(dǎo)入 Streams 的實(shí)例化元數(shù)據(jù) | |
| TRANSPORT_TABLESPACE | 導(dǎo)入可傳輸?shù)谋砜臻g元數(shù)據(jù) | |
| TABLESPACES | 將要傳輸?shù)綌?shù)據(jù)庫(kù)的表空間 | |
| DATAFILES | 將要傳輸?shù)綌?shù)據(jù)庫(kù)的數(shù)據(jù)文件 | |
| TTS_OWNERS | 擁有可傳輸表空間集中數(shù)據(jù)的用戶 |
在Oracle中,imp工具的ignore參數(shù)有什么作用?
Oracle在恢復(fù)數(shù)據(jù)的過(guò)程中,當(dāng)恢復(fù)某個(gè)表時(shí),如果該表已經(jīng)存在,就要根據(jù)ignore參數(shù)的設(shè)置來(lái)決定如何操作。若ignore=Y,Oracle不執(zhí)行CREATE TABLE語(yǔ)句,直接將數(shù)據(jù)插入到表中,如果插入的記錄違背了約束條件,例如主鍵約束,那么出錯(cuò)的記錄不會(huì)插入,但合法的記錄會(huì)添加到表中。如果ignore=N,那么Oracle不執(zhí)行CREATE TABLE語(yǔ)句,同時(shí)也不會(huì)將數(shù)據(jù)插入到表中,而是忽略該表的錯(cuò)誤,繼續(xù)恢復(fù)下一個(gè)表,默認(rèn)值為N。
3. 用法
- 導(dǎo)入方案
權(quán)限:imp_full_database - 導(dǎo)入自身的方案
imp userid=scott/tiger file=’/tmp/xxx.dmp’ - 導(dǎo)入其它方案
imp userid=system/manager file=’/tmp/xxx.dmp’ log=’/tmp/mylog.log’ fromuser=system touser=scott - 導(dǎo)入表
imp userid=scott/tiger@orcl tables=(emp) file=’/tmp/xx.dmp’ - 導(dǎo)入表到其它用戶
imp userid=system/system@orcl tables=(emp) file=’/tmp/xx.dmp’ touser=scott - 導(dǎo)入表的結(jié)構(gòu)
imp userid=soctt/tiger@orcl tables=(emp) file=’/tmp/xx.dmp’ rows=n - 導(dǎo)入數(shù)據(jù)
imp userid=soctt/tiger@orcl tables=(emp) file=’/tmp/xx.dmp’ ignore=y
三、 expdp參數(shù)使用
1. 參數(shù)詳解
數(shù)據(jù)泵導(dǎo)出實(shí)用程序提供了一種用于在 Oracle 數(shù)據(jù)庫(kù)之間傳輸
數(shù)據(jù)對(duì)象的機(jī)制。該實(shí)用程序可以使用以下命令進(jìn)行調(diào)用:
示例: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
您可以控制導(dǎo)出的運(yùn)行方式。具體方法是: 在 'expdp' 命令后輸入
各種參數(shù)。要指定各參數(shù), 請(qǐng)使用關(guān)鍵字:
格式: expdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
示例: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
或 TABLES=(T1:P1,T1:P2), 如果 T1 是分區(qū)表
USERID 必須是命令行中的第一個(gè)參數(shù)。
------------------------------------------------------------------------------
以下是可用關(guān)鍵字和它們的說(shuō)明。方括號(hào)中列出的是默認(rèn)值。
ATTACH
連接到現(xiàn)有作業(yè)。
例如, ATTACH=job_name。
COMPRESSION
減少轉(zhuǎn)儲(chǔ)文件大小。
有效的關(guān)鍵字值為: ALL, DATA_ONLY, [METADATA_ONLY] 和 NONE。
CONTENT
指定要卸載的數(shù)據(jù)。
有效的關(guān)鍵字值為: [ALL], DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS
數(shù)據(jù)層選項(xiàng)標(biāo)記。
有效的關(guān)鍵字值為: XML_CLOBS。
DIRECTORY
用于轉(zhuǎn)儲(chǔ)文件和日志文件的目錄對(duì)象。
DUMPFILE
指定目標(biāo)轉(zhuǎn)儲(chǔ)文件名的列表 [expdat.dmp]。
例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION
加密某個(gè)轉(zhuǎn)儲(chǔ)文件的一部分或全部。
有效的關(guān)鍵字值為: ALL, DATA_ONLY, ENCRYPTED_COLUMNS_ONLY, METADATA_ONLY 和 NONE
。
ENCRYPTION_ALGORITHM
指定加密的方式。
有效的關(guān)鍵字值為: [AES128], AES192 和 AES256。
ENCRYPTION_MODE
生成加密密鑰的方法。
有效的關(guān)鍵字值為: DUAL, PASSWORD 和 [TRANSPARENT]。
ENCRYPTION_PASSWORD
用于在轉(zhuǎn)儲(chǔ)文件中創(chuàng)建加密數(shù)據(jù)的口令密鑰。
ESTIMATE
計(jì)算作業(yè)估計(jì)值。
有效的關(guān)鍵字值為: [BLOCKS] 和 STATISTICS。
ESTIMATE_ONLY
計(jì)算作業(yè)估計(jì)值而不執(zhí)行導(dǎo)出。
EXCLUDE
排除特定對(duì)象類型。
例如, EXCLUDE=SCHEMA:"='HR'"。
FILESIZE
以字節(jié)為單位指定每個(gè)轉(zhuǎn)儲(chǔ)文件的大小。
FLASHBACK_SCN
用于重置會(huì)話快照的 SCN。
FLASHBACK_TIME
用于查找最接近的相應(yīng) SCN 值的時(shí)間。
FULL
導(dǎo)出整個(gè)數(shù)據(jù)庫(kù) [N]。
HELP
顯示幫助消息 [N]。
INCLUDE
包括特定對(duì)象類型。
例如, INCLUDE=TABLE_DATA。
JOB_NAME
要?jiǎng)?chuàng)建的導(dǎo)出作業(yè)的名稱。
LOGFILE
指定日志文件名 [export.log]。
NETWORK_LINK
源系統(tǒng)的遠(yuǎn)程數(shù)據(jù)庫(kù)鏈接的名稱。
NOLOGFILE
不寫入日志文件 [N]。
PARALLEL
更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)量。
PARFILE
指定參數(shù)文件名。
QUERY
用于導(dǎo)出表的子集的謂詞子句。
例如, QUERY=employees:"WHERE department_id > 10"。
REMAP_DATA
指定數(shù)據(jù)轉(zhuǎn)換函數(shù)。
例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REUSE_DUMPFILES
覆蓋目標(biāo)轉(zhuǎn)儲(chǔ)文件 (如果文件存在) [N]。
SAMPLE
要導(dǎo)出的數(shù)據(jù)的百分比。
SCHEMAS
要導(dǎo)出的方案的列表 [登錄方案]。
SOURCE_EDITION
用于提取元數(shù)據(jù)的版本。
STATUS
監(jiān)視作業(yè)狀態(tài)的頻率, 其中
默認(rèn)值 [0] 表示只要有新狀態(tài)可用, 就立即顯示新狀態(tài)。
TABLES
標(biāo)識(shí)要導(dǎo)出的表的列表。
例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
TABLESPACES
標(biāo)識(shí)要導(dǎo)出的表空間的列表。
TRANSPORTABLE
指定是否可以使用可傳輸方法。
有效的關(guān)鍵字值為: ALWAYS 和 [NEVER]。
TRANSPORT_FULL_CHECK
驗(yàn)證所有表的存儲(chǔ)段 [N]。
TRANSPORT_TABLESPACES
要從中卸載元數(shù)據(jù)的表空間的列表。
VERSION
要導(dǎo)出的對(duì)象版本。
有效的關(guān)鍵字值為: [COMPATIBLE], LATEST 或任何有效的數(shù)據(jù)庫(kù)版本。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允許使用縮寫。
ADD_FILE
將轉(zhuǎn)儲(chǔ)文件添加到轉(zhuǎn)儲(chǔ)文件集。
CONTINUE_CLIENT
返回到事件記錄模式。如果處于空閑狀態(tài), 將重新啟動(dòng)作業(yè)。
EXIT_CLIENT
退出客戶機(jī)會(huì)話并使作業(yè)保持運(yùn)行狀態(tài)。
FILESIZE
用于后續(xù) ADD_FILE 命令的默認(rèn)文件大小 (字節(jié))。
HELP
匯總交互命令。
KILL_JOB
分離并刪除作業(yè)。
PARALLEL
更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)量。
REUSE_DUMPFILES
覆蓋目標(biāo)轉(zhuǎn)儲(chǔ)文件 (如果文件存在) [N]。
START_JOB
啟動(dòng)或恢復(fù)當(dāng)前作業(yè)。
有效的關(guān)鍵字值為: SKIP_CURRENT。
STATUS
監(jiān)視作業(yè)狀態(tài)的頻率, 其中
默認(rèn)值 [0] 表示只要有新狀態(tài)可用, 就立即顯示新狀態(tài)。
STOP_JOB
按順序關(guān)閉作業(yè)執(zhí)行并退出客戶機(jī)。
有效的關(guān)鍵字值為: IMMEDIATE。
| Original Export Parameter | Comparable Data Pump Export Parameter |
|---|---|
BUFFER |
A parameter comparable to is not needed.BUFFER |
COMPRESS |
A parameter comparable to is not needed.COMPRESS |
CONSISTENT |
A parameter comparable to is not needed. Use and for this functionality.CONSISTENT``FLASHBACK_SCN``FLASHBACK_TIME |
CONSTRAINTS |
EXCLUDE=CONSTRAINT |
DIRECT |
A parameter comparable to is not needed. Data Pump Export automatically chooses the best method (direct path mode or external tables mode).DIRECT |
FEEDBACK |
STATUS |
FILE |
DUMPFILE |
FILESIZE |
FILESIZE |
FLASHBACK_SCN |
FLASHBACK_SCN |
FLASHBACK_TIME |
FLASHBACK_TIME |
FULL |
FULL |
GRANTS |
EXCLUDE=GRANT |
HELP |
HELP |
INDEXES |
EXCLUDE=INDEX |
LOG |
LOGFILE |
OBJECT_CONSISTENT |
A parameter comparable to is not needed.OBJECT_CONSISTENT |
OWNER |
SCHEMAS |
PARFILE |
PARFILE |
QUERY |
QUERY |
RECORDLENGTH |
A parameter comparable to is not needed because sizing is done automatically.RECORDLENGTH |
RESUMABLE |
A parameter comparable to is not needed. This functionality is automatically provided for users who have been granted the role.RESUMABLE``EXP_FULL_DATABASE |
RESUMABLE_NAME |
A parameter comparable to is not needed. This functionality is automatically provided for users who have been granted the role.RESUMABLE_NAME``EXP_FULL_DATABASE |
RESUMABLE_TIMEOUT |
A parameter comparable to is not needed. This functionality is automatically provided for users who have been granted the role.RESUMABLE_TIMEOUT``EXP_FULL_DATABASE |
ROWS=N |
CONTENT=METADATA_ONLY |
ROWS=Y |
CONTENT=ALL |
STATISTICS |
A parameter comparable to is not needed. Statistics are always saved for tables.STATISTICS |
TABLES |
TABLES |
TABLESPACES |
TABLESPACES (Same parameter; slightly different behavior) |
TRANSPORT_TABLESPACE |
TRANSPORT_TABLESPACES (Same parameter; slightly different behavior) |
TRIGGERS |
EXCLUDE=TRIGGER |
TTS_FULL_CHECK |
TRANSPORT_FULL_CHECK |
USERID |
A parameter comparable to is not needed. This information is supplied as the username and password when you invoke Export.USERID |
VOLSIZE |
A parameter comparable to is not needed.VOLSIZE |
2. 導(dǎo)出步驟
- 創(chuàng)建DIRECTORY
create directory dir_dp as 'D:/oracle/dir_dp';
查看邏輯目錄是否創(chuàng)建成功
sql>select * from dba_directories
- 授權(quán)
Grant read,write on directory dir_dp to zftang;
--查看目錄及權(quán)限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
- 執(zhí)行導(dǎo)出
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log;
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1
With the Partitioning, OLAP and Data Mining options
啟動(dòng) "ZFTANG"."SYS_EXPORT_SCHEMA_01": zftang/********@fgisdb sch
ory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log; */
備注:
1、directory=dir_dp必須放在前面,如果將其放置最后,會(huì)提示
ORA-39002: 操作無(wú)效
ORA-39070: 無(wú)法打開日志文件。
ORA-39087: 目錄名 DATA_PUMP_DIR; 無(wú)效
2、在導(dǎo)出過(guò)程中,DATA DUMP 創(chuàng)建并使用了一個(gè)名為SYS_EXPORT_SCHEMA_01的對(duì)象,此對(duì)象就是DATA DUMP導(dǎo)出過(guò)程中所用的JOB名字,如果在執(zhí)行這個(gè)命令時(shí)如果沒有指定導(dǎo)出的JOB名字那么就會(huì)產(chǎn)生一個(gè)默認(rèn)的JOB名字,如果在導(dǎo)出過(guò)程中指定JOB名字就為以指定名字出現(xiàn)
如下改成:
expdp zftang/zftang@fgisdb schemas=zftang directory=dir_dp dumpfile =expdp_test1.dmp logfile=expdp_test1.log,job_name=my_job1;
3、導(dǎo)出語(yǔ)句后面不要有分號(hào),否則如上的導(dǎo)出語(yǔ)句中的job表名為‘my_job1;’,而不是my_job1。因此導(dǎo)致expdp zftang/zftang attach=zftang.my_job1執(zhí)行該命令時(shí)一直提示找不到j(luò)ob表
用法及解釋:
expdp 用戶名/密碼@ip地址/實(shí)例 [屬性]
ip地址不寫默認(rèn)就是本地
userid=test/test --導(dǎo)出的用戶,本地用戶!!
directory=dmpfile --導(dǎo)出的邏輯目錄,一定要在oracle中創(chuàng)建完成的,并且給用戶授權(quán)讀寫權(quán)限
dumpfile=xx.dmp --導(dǎo)出的數(shù)據(jù)文件的名稱,如果想在指定的位置的話可以寫成dumpfile=/home/oracle/userxx.dmp
logfile=xx.log --日志文件,如果不寫這個(gè)參數(shù)的話默認(rèn)名稱就是export.log,可以在本地的文件夾中找到
schemas=userxx --使用dblink導(dǎo)出的用戶不是本地的用戶,需要加上schema來(lái)確定導(dǎo)出的用戶,類似于exp中的owner,但還有一定的區(qū)別
EXCLUDE=TABLE:"IN('T1','T2','T3')" --exclude 可以指定不導(dǎo)出的東西,table,index等,后面加上不想導(dǎo)出的表名
network_link=db_local --這個(gè)參數(shù)是使用的dblink來(lái)遠(yuǎn)程導(dǎo)出,需要指定dblink的名稱
3. 數(shù)據(jù)泵導(dǎo)出的各種模式
-
按表模式導(dǎo)出:
expdp zftang/zftang@fgisdb tables=zftang.bi_manhole_info dumpfile =expdp_test2.dmp logfile=expdp_test2.log directory=dir_dp job_name=my_job -
按查詢條件導(dǎo)出:
expdp zftang/zftang@fgisdb tables=zftang.b$i_exch_info dumpfile =expdp_test3.dmp logfile=expdp_test3.log directory=dir_dp job_name=my_job query=’“where rownum<11”’ -
按表空間導(dǎo)出:
Expdp zftang/zftang@fgisdb dumpfile=expdp_tablespace.dmp tablespaces=GCOMM.DBF logfile=expdp_tablespace.log directory=dir_dp job_name=my_job -
導(dǎo)出方案:
Expdp zftang/zftang DIRECTORY=dir_dp DUMPFILE=schema.dmp SCHEMAS=zftang,gwm -
導(dǎo)出整個(gè)數(shù)據(jù)庫(kù):
expdp zftang/zftang@fgisdb dumpfile =full.dmp full=y logfile=full.log directory=dir_dp job_name=my_job
四、 impdp參數(shù)使用
1. 參數(shù)詳解
數(shù)據(jù)泵導(dǎo)入實(shí)用程序提供了一種用于在 Oracle 數(shù)據(jù)庫(kù)之間傳輸數(shù)據(jù)對(duì)象的機(jī)制。該實(shí)用程序可以使用以下命令進(jìn)行調(diào)用:
示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
您可以控制導(dǎo)入的運(yùn)行方式。具體方法是: 在 'impdp' 命令后輸入各種參數(shù)。要指定各參數(shù), 請(qǐng)使用關(guān)鍵字:
格式: impdp KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
示例: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
USERID 必須是命令行中的第一個(gè)參數(shù)。
------------------------------------------------------------------------------
以下是可用關(guān)鍵字和它們的說(shuō)明。方括號(hào)中列出的是默認(rèn)值。
ATTACH 連接到現(xiàn)有作業(yè)。例如, ATTACH=job_name。
CONTENT 指定要加載的數(shù)據(jù)。有效的關(guān)鍵字為: [ALL], DATA_ONLY 和 METADATA_ONLY。
DATA_OPTIONS 數(shù)據(jù)層選項(xiàng)標(biāo)記。有效的關(guān)鍵字為: SKIP_CONSTRAINT_ERRORS。
DIRECTORY 用于轉(zhuǎn)儲(chǔ)文件, 日志文件和 SQL 文件的目錄對(duì)象。
DUMPFILE 從中導(dǎo)入的轉(zhuǎn)儲(chǔ)文件的列表 [expdat.dmp]。例如, DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp。
ENCRYPTION_PASSWORD 用于訪問(wèn)轉(zhuǎn)儲(chǔ)文件中的加密數(shù)據(jù)的口令密鑰。 對(duì)于網(wǎng)絡(luò)導(dǎo)入作業(yè)無(wú)效。
ESTIMATE 計(jì)算作業(yè)估計(jì)值。 有效的關(guān)鍵字為: [BLOCKS] 和 STATISTICS。
EXCLUDE 排除特定對(duì)象類型。 例如, EXCLUDE=SCHEMA:"='HR'"。
FLASHBACK_SCN 用于重置會(huì)話快照的 SCN。
FLASHBACK_TIME 用于查找最接近的相應(yīng) SCN 值的時(shí)間。
FULL 導(dǎo)入源中的所有對(duì)象 [Y]。
HELP 顯示幫助消息 [N]。
INCLUDE 包括特定對(duì)象類型。 例如, INCLUDE=TABLE_DATA。
JOB_NAME 要?jiǎng)?chuàng)建的導(dǎo)入作業(yè)的名稱。
LOGFILE 日志文件名 [import.log]。
NETWORK_LINK 源系統(tǒng)的遠(yuǎn)程數(shù)據(jù)庫(kù)鏈接的名稱。
NOLOGFILE 不寫入日志文件 [N]。
PARALLEL 更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)量。
PARFILE 指定參數(shù)文件。
PARTITION_OPTIONS 指定應(yīng)如何轉(zhuǎn)換分區(qū)。 有效的關(guān)鍵字為: DEPARTITION, MERGE 和 [NONE]。
QUERY 用于導(dǎo)入表的子集的謂詞子句。例如, QUERY=employees:"WHERE department_id > 10"。
REMAP_DATA 指定數(shù)據(jù)轉(zhuǎn)換函數(shù)。 例如, REMAP_DATA=EMP.EMPNO:REMAPPKG.EMPNO。
REMAP_DATAFILE 在所有 DDL 語(yǔ)句中重新定義數(shù)據(jù)文件引用。
REMAP_SCHEMA 將一個(gè)方案中的對(duì)象加載到另一個(gè)方案。
REMAP_TABLE 將表名重新映射到另一個(gè)表。 例如, REMAP_TABLE=EMP.EMPNO:REMAPPKG.EMPNO。
REMAP_TABLESPACE 將表空間對(duì)象重新映射到另一個(gè)表空間。
REUSE_DATAFILES 如果表空間已存在, 則將其初始化 [N]。
SCHEMAS 要導(dǎo)入的方案的列表。
SKIP_UNUSABLE_INDEXES 跳過(guò)設(shè)置為“索引不可用”狀態(tài)的索引。
SOURCE_EDITION 用于提取元數(shù)據(jù)的版本。
SQLFILE 將所有的 SQL DDL 寫入指定的文件。
STATUS 監(jiān)視作業(yè)狀態(tài)的頻率, 其中默認(rèn)值 [0] 表示只要有新狀態(tài)可用, 就立即顯示新狀態(tài)。
STREAMS_CONFIGURATION 啟用流元數(shù)據(jù)的加載
TABLE_EXISTS_ACTION 導(dǎo)入對(duì)象已存在時(shí)執(zhí)行的操作。有效的關(guān)鍵字為: APPEND, REPLACE, [SKIP] 和 TRUNCATE。
TABLES 標(biāo)識(shí)要導(dǎo)入的表的列表。 例如, TABLES=HR.EMPLOYEES,SH.SALES:SALES_1995。
TABLESPACES 標(biāo)識(shí)要導(dǎo)入的表空間的列表。
TARGET_EDITION 用于加載元數(shù)據(jù)的版本。
TRANSFORM 要應(yīng)用于適用對(duì)象的元數(shù)據(jù)轉(zhuǎn)換。有效的關(guān)鍵字為: OID, PCTSPACE, SEGMENT_ATTRIBUTES 和 STORAGE。
TRANSPORTABLE 用于選擇可傳輸數(shù)據(jù)移動(dòng)的選項(xiàng)。 有效的關(guān)鍵字為: ALWAYS 和 [NEVER]。 僅在 NETWORK_LINK 模式導(dǎo)入操作中有效。
TRANSPORT_DATAFILES 按可傳輸模式導(dǎo)入的數(shù)據(jù)文件的列表。
TRANSPORT_FULL_CHECK 驗(yàn)證所有表的存儲(chǔ)段 [N]。
TRANSPORT_TABLESPACES 要從中加載元數(shù)據(jù)的表空間的列表。僅在 NETWORK_LINK 模式導(dǎo)入操作中有效。
VERSION 要導(dǎo)入的對(duì)象的版本。 有效的關(guān)鍵字為: [COMPATIBLE], LATEST 或任何有效的數(shù)據(jù)庫(kù)版本。 僅對(duì) NETWORK_LINK 和 SQLFILE 有效。
------------------------------------------------------------------------------
下列命令在交互模式下有效。
注: 允許使用縮寫。
CONTINUE_CLIENT 返回到事件記錄模式。如果處于空閑狀態(tài), 將重新啟動(dòng)作業(yè)。
EXIT_CLIENT 退出客戶機(jī)會(huì)話并使作業(yè)保持運(yùn)行狀態(tài)。
HELP 匯總交互命令。
KILL_JOB 分離并刪除作業(yè)。
PARALLEL 更改當(dāng)前作業(yè)的活動(dòng) worker 的數(shù)量。
START_JOB 啟動(dòng)或恢復(fù)當(dāng)前作業(yè)。 有效的關(guān)鍵字為: SKIP_CURRENT。
STATUS 監(jiān)視作業(yè)狀態(tài)的頻率, 其中默認(rèn)值 [0] 表示只要有新狀態(tài)可用, 就立即顯示新狀態(tài)。
STOP_JOB 按順序關(guān)閉作業(yè)執(zhí)行并退出客戶機(jī)。有效的關(guān)鍵字為: IMMEDIATE。
2. 導(dǎo)入到指定用戶(模式)
由于是導(dǎo)入到遠(yuǎn)程庫(kù),所以還需要?jiǎng)?chuàng)建下轉(zhuǎn)儲(chǔ)文件所在目錄。
-- 省略掉如何把導(dǎo)出的轉(zhuǎn)儲(chǔ)文件移動(dòng)到指定遠(yuǎn)程庫(kù)目錄下
SQL> create directory dump_dir as '/home/oracle/oradir';
Directory created.
SQL>
-- 導(dǎo)入數(shù)據(jù)
-- impdp 用戶名/密碼 DIRECTORY=轉(zhuǎn)儲(chǔ)文件所在目錄 DUMPFILE=帶導(dǎo)入的轉(zhuǎn)儲(chǔ)文件名 SCHEMAS=待導(dǎo)入的用戶(模式)名
impdp sys/orcl DIRECTORY= dump_dir DUMPFILE=schema_crxj_collect.dmp SCHEMAS=CRXJ_COLLECT;
因?yàn)椴灰髮?dǎo)出和導(dǎo)入的是同一個(gè)用戶,所以數(shù)據(jù)泵這個(gè)工具可以方便的在不同用戶(模式)見傳到數(shù)據(jù)對(duì)象。
數(shù)據(jù)泵高級(jí)操作中可以實(shí)現(xiàn)數(shù)據(jù)對(duì)象的邏輯恢復(fù),包括按表、按用戶模式(本文即是),按表空間和全庫(kù)導(dǎo)入導(dǎo)出。
五、 導(dǎo)入導(dǎo)出操作注意事項(xiàng)
使用EXPDP和IMPDP時(shí)應(yīng)該注意的事項(xiàng):
-
EXP和IMP是客戶端工具程序,它們既可以在客戶端使用,也可以在服務(wù)端使用。
-
EXPDP和IMPDP是服務(wù)端的工具程序,他們只能在ORACLE服務(wù)端使用,不能在客戶端使用。
-
IMP只適用于EXP導(dǎo)出的文件,不適用于EXPDP導(dǎo)出文件;IMPDP只適用于EXPDP導(dǎo)出的文件,而不適用于EXP導(dǎo)出文件。
-
expdp或impdp命令時(shí),可暫不指出用戶名/密碼@實(shí)例名 as 身份,然后根據(jù)提示再輸入,如:
expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;
一、創(chuàng)建邏輯目錄,該命令不會(huì)在操作系統(tǒng)創(chuàng)建真正的目錄,最好以system等管理員創(chuàng)建。
create directory dpdata1 as 'd:\test\dump';
二、查看管理理員目錄(同時(shí)查看操作系統(tǒng)是否存在,因?yàn)镺racle并不關(guān)心該目錄是否存在,如果不存在,則出錯(cuò))
select * from dba_directories;
三、給scott用戶賦予在指定目錄的操作權(quán)限,最好以system等管理員賦予。
grant read,write on directory dpdata1 to scott;
四、導(dǎo)出數(shù)據(jù)
1)按用戶導(dǎo)
expdp scott/tiger@orcl schemas=scott
dumpfile=expdp.dmp DIRECTORY=dpdata1
2)并行進(jìn)程parallel
expdp scott/tiger@orcl directory=dpdata1
dumpfile=scott3.dmp parallel=40 job_name=scott3
3)按表名導(dǎo)
expdp scott/tiger@orcl TABLES=emp,dept
dumpfile=expdp.dmp DIRECTORY=dpdata1
4)按查詢條件導(dǎo)
expdp scott/tiger@orcl directory=dpdata1
dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20'
5)按表空間導(dǎo)
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp
TABLESPACES=temp,example
6)導(dǎo)整個(gè)數(shù)據(jù)庫(kù)
expdp system/manager DIRECTORY=dpdata1 DUMPFILE=full.dmp
FULL=y;
五、還原數(shù)據(jù)
1)導(dǎo)到指定用戶下
impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp
SCHEMAS=scott
2)改變表的owner
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp
TABLES=scott.dept REMAP_SCHEMA=scott:system
3)導(dǎo)入表空間
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=tablespace.dmp
TABLESPACES=example
4)導(dǎo)入數(shù)據(jù)庫(kù)
impdb system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp
FULL=y
5)追加數(shù)據(jù)
impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp
SCHEMAS=system TABLE_EXISTS_ACTION
windows在cmd下執(zhí)行
用oracle的exp工具導(dǎo)出的dmp文件也包含了字符集信息,dmp文件的第2和第3個(gè)字節(jié)記錄了dmp文件的字符集。
如果dmp文件不大,比如只有幾M或幾十M,可以用UltraEdit打開(16進(jìn)制方式),看第2第3個(gè)字節(jié)的內(nèi)容,如0354,
然后用以下SQL查出它對(duì)應(yīng)的字符集:
SQL> select nls_charset_name(to_number('0354','xxxx')) from
dual;
ZHS16GBK
如果dmp文件很大,比如有2G以上(這也是最常見的情況),用文本編輯器打開很慢或者完全打不開,可以用以下命令(在unix主機(jī)上):
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
然后用上述SQL也可以得到它對(duì)應(yīng)的字符集。
在exp/imp時(shí)確實(shí)要注意字符集。我們說(shuō)說(shuō)最能成功的一條路。 1)確定源庫(kù)和目標(biāo)庫(kù)數(shù)據(jù)庫(kù)字符集一致。
2)確定導(dǎo)出時(shí),環(huán)境變量字符集和數(shù)據(jù)庫(kù)兼容
3)確定導(dǎo)入時(shí),環(huán)境變量字符集和數(shù)據(jù)庫(kù)兼容。這三點(diǎn)對(duì)了,就沒問(wèn)題了。
導(dǎo)入 導(dǎo)出做日志是好習(xí)慣
exp owner=<> file=<.dmp> log=<.log> 這三個(gè)參數(shù)作為最小集合記住吧
expdp是服務(wù)器工具,只要注意數(shù)據(jù)庫(kù)字符集就可以了。
exp是客戶端工具,系統(tǒng)在導(dǎo)出時(shí)使用的是客戶端的環(huán)境變量定義的字符集。
可以在客戶端使用expdp,但執(zhí)行和結(jié)果都在服務(wù)器。
expdp是服務(wù)器工具,只要注意數(shù)據(jù)庫(kù)字符集就可以了。
exp是客戶端工具,系統(tǒng)在導(dǎo)出時(shí)使用的是客戶端的環(huán)境變量定義的字符集。
六、 其他考慮
1. 使用數(shù)據(jù)泵的限制性因素
- 空間
- 網(wǎng)絡(luò)端口:1521或22
- 網(wǎng)絡(luò)帶寬
2. Oracle高低版本間如何遷移
(1) 示例
源數(shù)據(jù)庫(kù):RHEL + Oracle 11.2.0.3
目標(biāo)數(shù)據(jù)庫(kù):HP-UX + Oracle 10.2.0.4
需求:遷移部分表 11.2.0.3–>10.2.0.4,若遷移范圍內(nèi)的有些表在目標(biāo)庫(kù)已經(jīng)存在,則替換。
本次遷移數(shù)據(jù)量<1G.
初定方案:低版本的客戶端連接到高版本數(shù)據(jù)庫(kù),用低版本導(dǎo)出,低版本導(dǎo)入。
- 采用初定方案,目標(biāo)數(shù)據(jù)庫(kù)所在服務(wù)器連接到源數(shù)據(jù)庫(kù),exp導(dǎo)出過(guò)程中報(bào)錯(cuò)。
ZJCRNOPDB 36: sqlplus -version
SQL*Plus: Release 10.2.0.4.0 - Production
ZJCRNOPDB 37: more mod_homepage.sh
exp crnop/password@zjtestdb parfile=/usr3/orabak2/par_mod_homepage
ZJCRNOPDB 38: more par_mod_homepage
file=/usr3/orabak2/mod_homepage.dmp
log=/usr3/orabak2/mod_homepage.log
tables=
……,
MOD_HOMEPAGE_ALARM_STAT_INFO
ZJCRNOPDB 39: ./mod_homepage.sh
Export: Release 10.2.0.4.0 - Production on 星期三 5月 21 13:42:25 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
已導(dǎo)出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將導(dǎo)出指定的表通過(guò)常規(guī)路徑...
. . 正在導(dǎo)出表 MOD_HOMEPAGE_BTS_CHECK_DETAIL導(dǎo)出了 3502523 行
……
. . 正在導(dǎo)出表 MOD_HOMEPAGE_NOTICE_TYPE導(dǎo)出了 7 行
EXP-00008: 遇到 ORACLE 錯(cuò)誤 1455
ORA-01455: 轉(zhuǎn)換列溢出整數(shù)數(shù)據(jù)類型
EXP-00000: 導(dǎo)出終止失敗
ZJCRNOPDB 40:
遭遇ORA-01455,證明初定方案有問(wèn)題,低版本客戶端不能導(dǎo)出高版本數(shù)據(jù)。需要更換方案。
- 采用expdp/impdp遷移方案
- 源數(shù)據(jù)庫(kù)服務(wù)器上expdp 導(dǎo)出加上參數(shù) version=10.2.0.4.0
[oracle@zjoradb jy]$ more par_mod_homepage
directory=jy
dumpfile=mod_homepage.dmp
logfile=mod_homepage.log
version=10.2.0.4.0
tables=
……,
……,
MOD_HOMEPAGE_ALARM_STAT_INFO
[oracle@zjoradb jy]$ more expdp_mode_homepage.sh
expdp crnop/password parfile=par_mod_homepage
directory=jy庫(kù)中已經(jīng)存在,不用再建立。直接運(yùn)行導(dǎo)出腳本導(dǎo)出數(shù)據(jù)。
[oracle@zjoradb jy]$ ./expdp_mode_homepage.sh
Export: Release 11.2.0.3.0 - Production on Wed May 21 14:19:44 2014
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
Starting "CRNOP"."SYS_EXPORT_TABLE_08": crnop/******** parfile=par_mod_homepage
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 437.3 MB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/COMMENT
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "CRNOP"."MOD_HOMEPAGE_BTS_CHECK_DETAIL" 291.5 MB 3502523 rows
……
Master table "CRNOP"."SYS_EXPORT_TABLE_08" successfully loaded/unloaded
******************************************************************************
Dump file set for CRNOP.SYS_EXPORT_TABLE_08 is:
/home/oracle/jy/mod_homepage.dmp
Job "CRNOP"."SYS_EXPORT_TABLE_08" successfully completed at 14:20:19
[oracle@zjoradb jy]$
- 在目標(biāo)數(shù)據(jù)庫(kù)impdp導(dǎo)入,由于需求是替換已存在的表,所以加入下面這個(gè)參數(shù):
TABLE_EXISTS_ACTION=replace
TABLE_EXISTS_ACTION
導(dǎo)入對(duì)象已存在時(shí)執(zhí)行的操作。
有效的關(guān)鍵字為: APPEND, REPLACE, [SKIP] 和 TRUNCATE。
創(chuàng)建directory,然后將要導(dǎo)入的dmp文件cp到此目錄。
SQL> create or replace directory jy as '/usr3/orabak2/';
ZJCRNOPDB 65: more impdp*
impdp crnop/password directory=jy dumpfile=mod_homepage.dmp logfile=impdp_mod_homepage.log TABLE_EXISTS_ACTION=replace
ZJCRNOPDB 74: ./impdp_mod_homepage.sh
Import: Release 10.2.0.4.0 - 64bit Production on 星期三, 21 5月, 2014 14:39:29
Copyright (c) 2003, 2007, Oracle. All rights reserved.
連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加載/卸載了主表 "CRNOP"."SYS_IMPORT_FULL_01"
啟動(dòng) "CRNOP"."SYS_IMPORT_FULL_01": crnop/******** directory=jy dumpfile=mod_homepage.dmp logfile=impdp_mod_homepage.log TABLE_EXISTS_ACTION=replace
處理對(duì)象類型 TABLE_EXPORT/TABLE/TABLE
處理對(duì)象類型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 導(dǎo)入了 "CRNOP"."MOD_HOMEPAGE_BTS_CHECK_DETAIL" 291.5 MB 3502523 行
……
處理對(duì)象類型 TABLE_EXPORT/TABLE/COMMENT
處理對(duì)象類型 TABLE_EXPORT/TABLE/INDEX/INDEX
ORA-31684: 對(duì)象類型 INDEX:"CRNOP"."PK_MOD_WF_TOPN_PROBLEM" 已存在
處理對(duì)象類型 TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
ORA-31684: 對(duì)象類型 CONSTRAINT:"CRNOP"."PK_MOD_WF_TOPN_PROBLEM" 已存在
處理對(duì)象類型 TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
ORA-39111: 跳過(guò)從屬對(duì)象類型 INDEX_STATISTICS, 基本對(duì)象類型 INDEX:"CRNOP"."PK_MOD_WF_TOPN_PROBLEM" 已存在
處理對(duì)象類型 TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
作業(yè) "CRNOP"."SYS_IMPORT_FULL_01" 已經(jīng)完成, 但是有 3 個(gè)錯(cuò)誤 (于 14:46:54 完成)
導(dǎo)入成功,上面的錯(cuò)誤是索引的不規(guī)范命名導(dǎo)致索引對(duì)象重名的,改名重建下那個(gè)索引即可,與本案例不相關(guān)。
- 總結(jié):高版本->低版本遷移數(shù)據(jù),遷移場(chǎng)景是11g->10g,建議采用EXPDP/IMPDP方式替換傳統(tǒng)exp/imp方式,EXPDP從高版本導(dǎo)出時(shí)要加入?yún)?shù)version=10g版本號(hào)。
(2)規(guī)則
Oracle數(shù)據(jù)中IMP/EXP工具可用于對(duì)數(shù)據(jù)進(jìn)行遷移。IMP命令用于把Dmp文件從本地導(dǎo)入到遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器,而EXP命令則是把數(shù)據(jù)從遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器導(dǎo)出到本地的Dmp文件。其功能相當(dāng)于Oracle數(shù)據(jù)庫(kù)的備份與還原。利用IMP/EXP工具可以輕松的實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的遷移工作,甚至是跨平臺(tái)的數(shù)據(jù)庫(kù)遷移。
exp/imp:
這也算是最常用最簡(jiǎn)單的方法了,一般是基于應(yīng)用的owner級(jí)做導(dǎo)出導(dǎo)入。
操作方法為:在新庫(kù)建立好owner和表空間,停老庫(kù)的應(yīng)用,在老庫(kù)做exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,傳dmp文件到新庫(kù),在新庫(kù)做imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y.
優(yōu)缺點(diǎn):優(yōu)點(diǎn)是可以跨平臺(tái)使用;缺點(diǎn)是停機(jī)時(shí)間長(zhǎng),停機(jī)時(shí)間為從exp到網(wǎng)絡(luò)傳輸?shù)叫聨?kù),再加上imp的時(shí)間。
Oracle的imp/exp組件是我們常用的工具,它的一個(gè)操作原則就是向下兼容。下面是據(jù)此總結(jié)的幾個(gè)使用規(guī)則和相關(guān)測(cè)試:
規(guī)則1:低版本的exp/imp可以連接到高版本(或同版本)的數(shù)據(jù)庫(kù)服務(wù)器,但高版本的exp/imp不能連接到低版本的數(shù)據(jù)庫(kù)服務(wù)器
規(guī)則2:高版本exp出的dmp文件,低版本無(wú)法imp(無(wú)法識(shí)別dmp文件)
規(guī)則3:低版本exp出的dmp文件,高版本可以imp(向下兼容)
規(guī)則4:從Oracle 低版本的Export數(shù)據(jù)可以Import到Oracle高版本中,但限于Oracle的相鄰版本
3. public對(duì)象dblink、同義詞在遷移時(shí)如何處理的
創(chuàng)建dblink必須使用dblink的所有者登錄數(shù)據(jù)庫(kù)創(chuàng)建,才能創(chuàng)建到當(dāng)前的模式下。且不知道數(shù)據(jù)庫(kù)用戶密碼的情況下,將無(wú)法直接創(chuàng)建dblink。
那么使用expdp方式遷移dbkink將是一種非常方便簡(jiǎn)單的方法。
可以使用如下方法將整個(gè)數(shù)據(jù)庫(kù)的dblink保存到一個(gè)轉(zhuǎn)儲(chǔ)文件中:
expdp dumpfile=dblink.dmp directory=test full=y include=db_link userid="/ as sysdba"
如果想導(dǎo)出某幾個(gè)模式下的dblink:
expdp dumpfile=dblink.dmp directory=test schemas=user1,… include=db_link userid="/ as sysdba"
導(dǎo)出公共dblink:
expdp dumpfile=dblink.dmp directory=test full=y include=db_link:“IN (select db_link from dba_db_links where owner=‘PUBLIC’)” userid="/ as sysdba"
oracle中有時(shí)在庫(kù)間遷移時(shí),按schema導(dǎo)出時(shí)不會(huì)導(dǎo)出public對(duì)象,可以通過(guò)數(shù)據(jù)泵expdp和impdp的方式進(jìn)行遷移。
- 創(chuàng)建public dblink
create public database link test
connect to r_test IDENTIFIED BY test123
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.3.3)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = mydb11g)
)
)';
測(cè)試dblink連通性
select * from dual@test;
--DUMMY
--X
- 創(chuàng)建導(dǎo)出目錄
CREATE DIRECTORY test AS '/oracle/dump_dir';
- 按dblink名稱導(dǎo)出dblink,注意命令行的字符轉(zhuǎn)義,如果不想用轉(zhuǎn)義可以通過(guò)parfile方式導(dǎo)
expdp r_test/test123 DIRECTORY=test dumpfile=expdp_public_dblink.dmp LOGFILE=expdp_public_dblink.log full=y include=DB_LINK:\"IN \'TEST\'\'TEST\'\"
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "R_TEST"."SYS_EXPORT_FULL_01": r_test/******** DIRECTORY=test dumpfile=expdp_public_dblink.dmp LOGFILE=expdp_public_dblink.log full=y include=DB_LINK:"IN ('TEST')"
Estimate in progress using BLOCKS method...
Total estimation using BLOCKS method: 0 KB
Processing object type DATABASE_EXPORT/SCHEMA/DB_LINK
Master table "R_TEST"."SYS_EXPORT_FULL_01" successfully loaded/unloaded
******************************************************************************
Dump file set for R_TEST.SYS_EXPORT_FULL_01 is:
/oracle/dump_dir/expdp_public_dblink.dmp
Job "R_TEST"."SYS_EXPORT_FULL_01" successfully completed at Mon Jul 15 17:09:49 2019 elapsed 0 00:00:08
- 刪除dblink
drop public database link test;
- 導(dǎo)入
impdp r_test/test123 DIRECTORY=test dumpfile=expdp_public_dblink.dmp LOGFILE=impdp_public_dblink.log
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "R_TEST"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "R_TEST"."SYS_IMPORT_FULL_01": r_test/******** DIRECTORY=test dumpfile=expdp_public_dblink.dmp LOGFILE=impdp_public_dblink.log
Processing object type DATABASE_EXPORT/SCHEMA/DB_LINK
Job "R_TEST"."SYS_IMPORT_FULL_01" successfully completed at Mon Jul 15 17:12:20 2019 elapsed 0 00:00:01
- 檢查導(dǎo)入結(jié)果,檢查dblink連通性
select * from dba_db_links;
select * from dual@test;
--DUMMY
--X
測(cè)試成功,可以通過(guò)expdp和impdp實(shí)現(xiàn)public dblink的遷移,這在不知道創(chuàng)建dblink的用戶密碼時(shí)比較有用。同理還有public synonym也可以用這種方式。
4. 數(shù)據(jù)泵導(dǎo)入導(dǎo)出如何終止
[oracle@database ~]$ expdp \"sys/oracle as sysdba\" attach=SYS_EXPORT_SCHEMA_02
Export: Release 11.2.0.4.0 - Production on Mon Jan 26 10:31:42 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Job: SYS_EXPORT_SCHEMA_02
Owner: SYS
Operation: EXPORT
Creator Privs: TRUE
GUID: 0D85DF9D2F014494E053A80013AC483D
Start Time: Monday, 26 January, 2015 10:27:03
Mode: SCHEMA
Instance: orcl
Max Parallelism: 1
EXPORT Job Parameters:
Parameter Name Parameter Value:
CLIENT_COMMAND "sys/******** AS SYSDBA" schemas=(prod,tts_fnd,tts_cms,tts_hr,tts_ecm,tts_coa,tts_exm,tts_htm) dumpfile=tt.dmp logfile=tt.log directory=test
State: EXECUTING
Bytes Processed: 17,595,108,512
Percent Done: 81
Current Parallelism: 1
Job Error Count: 0
Dump File: /oracle/backup/tt.dmp
bytes written: 17,610,469,376
Worker 1 Status:
Process Name: DW00
State: EXECUTING
Object Schema: TTS_EXM
Object Name: EXM_PERSON_ITEMS
Object Type: SCHEMA_EXPORT/TABLE/TABLE_DATA
Completed Objects: 80
Total Objects: 1,400
Worker Parallelism: 1
Export> stop_job=immediate
Are you sure you wish to stop this job ([yes]/no): yes
[oracle@database ~]$
5. 邏輯遷移時(shí)數(shù)據(jù)庫(kù)對(duì)job是如何處理的
userid="/ as sysdba"
directory=EXP_DIR
dumpfile=expdp_job.dmp
logfile=expdp_job.log
include=job
6. 數(shù)據(jù)校驗(yàn)
數(shù)據(jù)泵的數(shù)據(jù)校驗(yàn)整體思路:
- 導(dǎo)出和導(dǎo)入日志的記錄,會(huì)記錄對(duì)象總大小和行數(shù)
- 傳輸時(shí)dmp文件的大小比較
- 進(jìn)庫(kù)查詢數(shù)據(jù)行數(shù),對(duì)象的個(gè)數(shù)
- 采用dblink的方式,進(jìn)行權(quán)限對(duì)象比較
--失效對(duì)象檢查
select 'alter ' || OBJECT_TYPE || ' ' || OWNER || '.' || OBJECT_NAME ||
' compile' || ';' cmd
from dba_objects
where status = 'INVALID'
and object_type != 'PACKAGE BODY'
and object_type <>'VIEW'
order by object_type;
41.--角色、權(quán)限對(duì)比
select grantee,granted_role from dba_role_privs
minus
select grantee,granted_role from dba_role_privs@target_db;
--角色對(duì)比
select role from dba_roles
minus
select role from dba_roles@target_db;
--系統(tǒng)權(quán)限對(duì)比
select grantee,PRIVILEGE from dba_sys_privs
minus
select grantee,PRIVILEGE from dba_sys_privs@target_db;
--修復(fù)系統(tǒng)丟失權(quán)限
set lines 200 pages 200
select 'grant '||privilege||' to '||grantee||';'
from (select grantee,PRIVILEGE from dba_sys_privs
minus select grantee,PRIVILEGE from dba_sys_privs@target_db
) ;
--對(duì)象權(quán)限檢查
select owner,table_name,grantee,PRIVILEGE from dba_tab_privs
where grantee not in ('PUBLIC','SYS','SYSMAN','DBA','SYSTEM','GOLDENGATE') and table_name not like '%BIN%'
minus
select owner,table_name,grantee,PRIVILEGE from dba_tab_privs@target_db
where grantee not in ('PUBLIC','SYS','SYSMAN','DBA','SYSTEM','GOLDENGATE') and table_name not like '%BIN%';
--修復(fù)對(duì)象權(quán)限
set lines 200 pages 200
select 'grant '||privilege||' on '||owner||'.'||table_name||' to '||grantee||';'
from (select owner,table_name,grantee,PRIVILEGE from dba_tab_privs
where owner not in ('PUBLIC','SYSMAN','DBA','SYSTEM','GOLDENGATE') and table_name not like '%BIN%' and grantee not in ('SYSMAN','SYSTEM','DBA','PUBLIC','GOLDENGATE','XDB','WMSYS','MDSYS','ORDSYS','SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE')
minus
select owner,table_name,grantee,PRIVILEGE from dba_tab_privs@target_db
) ;
--db link對(duì)比、已重建
select owner,db_link from dba_db_links
minus
select owner,db_link from dba_db_links@target_db;
--job 對(duì)比
select job,log_user,what from dba_jobs
minus
select job,log_user,what from dba_jobs@target_db;




