mysql导入10g数据库_oracle10g数据库导入、导出(exp/imp、expdp/impdp)
1、oracle 10g 數據導入、導出
exp
imp
expdp
建目錄與賦權:
SQL>create directory dump_dir as '/u01/dmdir';
SQL>grant read,write on directory to test;
SQL>select * from dba_directories;——查看目錄
實例:
1、通過DBLINK的方式:表空間不一樣
impdp
logfile=DUP_MCMDB.LOG network_link=to_crm_7 schemas=MCMDB
REMAP_TABLESPACE=table_space11:table_space12,table_space21:table_space22
2、通過DBLINK的方式:方案(schemas)不一樣
impdp logfile=DUP_MCMDB.LOG network_link=to_crm_7 schemas=MCMDB remap_schema=MCMDB:MCMDB1
前言:
Database引入了最新的數據泵(Data Dump)技術,使DBA或開發人員可以將元數據(對象定義)和數據快速移動到另一個oracle數據庫中。
數據泵導出導入(EXPDP和IMPDP)的作用
1,實現邏輯和邏輯恢復。
2,在數據庫用戶之間移動對象。
3,在數據庫之間移動對象
4,實現表空間搬移。
數據泵導出導入與傳統導出導入的區別:在10g之前,傳統的導出和導入分別使用EXP工具和IMP工具,從10g開始,不僅保留了原有的EXP和IMP工具,還提供了數據泵導出導入工具EXPDP和IMPDP.使用EXPDP和IMPDP時應該注意的事項;EXP和IMP是客戶段工具程序,它們既可以在可以客戶端使用,也可以在服務端使用。
EXPDP和IMPDP是服務端的工具程序,他們只能在ORACLE服務端使用,不能在客戶端使用IMP只適用于EXP導出文件,不適用于EXPDP導出文件;IMPDP只適用于EXPDP導出文件,而不適用于EXP導出文件。
數據泵導出包括導出表,導出方案,導出表空間,導出數據庫4種方式。
建目錄與賦權:
SQL>create directory dump_dir as '/u01/dmdir';
SQL>grant read,write on directory to test;
SQL>select * from dba_directories;——查看目錄
EXPDP命令行選項
1. ATTACH
該選項用于在客戶會話與已存在導出作用之間建立關聯。語法如下
ATTACH=[schema_name.]job_name
Schema_name用于指定方案名,job_name用于指定導出作業名。注意,如果使用ATTACH選項,在命令行除了連接字符串和ATTACH選項外,不能指定任何其他選項,示例如下:Expdp scott/tiger ATTACH=scott.export_job
2. CONTENT
該選項用于指定要導出的內容。默認值為ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設置CONTENT為ALL時,將導出對象定義及其所有數據。為DATA_ONLY時,只導出對象數據,為METADATA_ONLY時,只導出對象定義
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
CONTENT=METADATA_ONLY
3. DIRECTORY
指定轉儲文件和日志文件所在的目錄
DIRECTORY=directory_object
Directory_object用于指定目錄對象名稱。需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS目錄
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dump
建立目錄:CREATE DIRECTORY dump as 'd:dump';
查詢創建了那些子目錄:SELECT * FROM dba_directories;
4. DUMPFILE
用于指定轉儲文件的名稱,默認名稱為expdat.dmp
DUMPFILE=[directory_object:]file_name [,…。]
Directory_object用于指定目錄對象名,file_name用于指定轉儲文件名。需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象
Expdp scott/tiger DIRECTORY=dump1 DUMPFILE=dump2:a.dmp
5. ESTIMATE
指定估算被導出表所占用磁盤空間分方法。默認值是BLOCKS
EXTIMATE={BLOCKS | STATISTICS}
設置為BLOCKS時,oracle會按照目標對象所占用的數據塊個數乘以數據塊尺寸估算對象占用的空間,設置為STATISTICS時,根據最近統計值估算對象占用空間
Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICS
DIRECTORY=dump DUMPFILE=a.dump
6. EXTIMATE_ONLY
指定是否只估算導出作業所占用的磁盤空間,默認值為N
EXTIMATE_ONLY={Y | N}
設置為Y時,導出作用只估算對象所占用的磁盤空間,而不會執行導出作業,為N時,不僅估算對象所占用的磁盤空間,還會執行導出操作。
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y
7. EXCLUDE
該選項用于指定執行操作時釋放要排除對象類型或相關對象EXCLUDE=object_type[:name_clause] [,…。] Object_type用于指定要排除的對象類型,name_clause用于指定要排除的具體對象。EXCLUDE和INCLUDE不能同時使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dup EXCLUDE=VIEW
8. FILESIZE
指定導出文件的最大尺寸,默認為0,(表示文件尺寸沒有限制)
9. FLASHBACK_SCN
指定導出特定SCN時刻的表數據
FLASHBACK_SCN=scn_value
Scn_value用于標識SCN值。FLASHBACK_SCN和FLASHBACK_TIME不能同時使用
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp
FLASHBACK_SCN=358523
10. FLASHBACK_TIME
指定導出特定時間點的表數據
FLASHBACK_TIME="TO_TIMESTAMP(time_value)"
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp FLASHBACK_TIME=
"TO_TIMESTAMP('25-08-2004 14:35:00','DD-MM-YYYY HH24:MI:SS')"
11. FULL
指定數據庫模式導出,默認為N
FULL={Y | N}
為Y時,標識執行數據庫導出。
12. HELP
指定是否顯示EXPDP命令行選項的幫助信息,默認為N當設置為Y時,會顯示導出選項的幫助信息。
Expdp help=y
13. INCLUDE
指定導出時要包含的對象類型及相關對象
INCLUDE = object_type[:name_clause] [,…]
14. JOB_NAME
指定要導出作用的名稱,默認為SYS_XXX
JOB_NAME=jobname_string
15. LOGFILE
指定導出日志文件文件的名稱,默認名稱為export.log
LOGFILE=[directory_object:]file_name
Directory_object用于指定目錄對象名稱,file_name用于指定導出日志文件名。如果不指定directory_object.導出作用會自動使用DIRECTORY的相應選項值。
Expdp scott/tiger DIRECTORY=dump DUMPFILE=a.dmp logfile=a.log
16. NETWORK_LINK
指定數據庫鏈名,如果要將遠程數據庫對象導出到本地例程的轉儲文件中,必須設置該選項。
17. NOLOGFILE
該選項用于指定禁止生成導出日志文件,默認值為N.
18. PARALLEL
指定執行導出操作的并行進程個數,默認值為1
19. PARFILE
指定導出參數文件的名稱
PARFILE=[directory_path] file_name
20. QUERY
用于指定過濾導出數據的where條件
QUERY=[schema.] [table_name:] query_clause
Schema用于指定方案名,table_name用于指定表名,query_clause用于指定條件限制子句。QUERY選項不能與CONNECT= METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項同時使用。
Expdp scott/tiger directory=dump dumpfiel=a.dmp
Tables=emp query=‘WHERE deptno=20’
21. SCHEMAS
該方案用于指定執行方案模式導出,默認為當前用戶方案。
22. STATUS
指定顯示導出作用進程的詳細狀態,默認值為0
23. TABLES
指定表模式導出
TABLES=[schema_name.]table_name[:partition_name][,…]
Schema_name用于指定方案名,table_name用于指定導出的表名,partition_name用于指定要導出的分區名。
24. TABLESPACES
指定要導出表空間列表
25. TRANSPORT_FULL_CHECK
該選項用于指定被搬移表空間和未搬移表空間關聯關系的檢查方式,默認為N.
當設置為Y時,導出作用會檢查表空間直接的完整關聯關系,如果表空間所在表空間或其索引所在的表空間只有一個表空間被搬移,將顯示錯誤信息。當設置為N時,導出作用只檢查單端依賴,如果搬移索引所在表空間,但未搬移表所在表空間,將顯示出錯信息,如果搬移表所在表空間,未搬移索引所在表空間,則不會顯示錯誤信息。
26. TRANSPORT_TABLESPACES
指定執行表空間模式導出
27. VERSION指定被導出對象的數據庫版本,默認值為COMPATIBLE.
VERSION={COMPATIBLE | LATEST | version_string}
為COMPATIBLE時,會根據初始化參數COMPATIBLE生成對象元數據;為LATEST時,會根據數據庫的實際版本生成對象元數據。version_string用于指定數據庫版本字符串。
調用EXPDP
使用EXPDP工具時,其轉儲文件只能被存放在DIRECTORY對象對應的OS目錄中,而不能直接指定轉儲文件所在的OS目錄。因此,使用EXPDP工具時,必須首先建立DIRECTORY對象。并且需要為數據庫用戶授予使用DIRECTORY對象權限。
CREATE DIRECTORY dump_dir AS 'D:DUMP';GRANT READ,WIRTE ON DIRECTORY dump_dir TO scott;
1,導出表
Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp TABLES=dept,emp
2,導出方案
Expdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp SCHEMAS=system,scott
3.導出表空間
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp TABLESPACES=user01,user02
4,導出數據庫
Expdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=Y
使用IMPDP
IMPDP命令行選項與EXPDP有很多相同的,不同的有:
1,REMAP_DATAFILE
該選項用于將源數據文件名轉變為目標數據文件名,在不同平臺之間搬移表空間時可能需要該選項。
REMAP_DATAFIEL=source_datafie:target_datafile
2,REMAP_SCHEMA
該選項用于將源方案的所有對象裝載到目標方案中。
REMAP_SCHEMA=source_schema:target_schema
3,REMAP_TABLESPACE
將源表空間的所有對象導入到目標表空間中
REMAP_TABLESPACE=source_tablespace:target:tablespace
4.REUSE_DATAFILES
該選項指定建立表空間時是否覆蓋已存在的數據文件。默認為N
REUSE_DATAFIELS={Y | N}
5.SKIP_UNUSABLE_INDEXES
指定導入是是否跳過不可使用的索引,默認為N
6,SQLFILE
指定將導入要指定的索引DDL操作寫入到腳本中
SQLFILE=[directory_object:]file_name
Impdp scott/tiger DIRECTORY=dump DUMPFILE=tab.dmp SQLFILE=a.sql
7.STREAMS_CONFIGURATION
指定是否導入流元數據(Stream Matadata),默認值為Y.
8,TABLE_EXISTS_ACTION
該選項用于指定當表已經存在時導入作業要執行的操作,默認為SKIP TABBLE_EXISTS_ACTION={SKIP | APPEND | TRUNCATE | FRPLACE }當設置該選項為SKIP時,導入作業會跳過已存在表處理下一個對象;當設置為APPEND時,會追加數據,為TRUNCATE時,導入作業會截斷表,然后為其追加新數據;當設置為REPLACE時,導入作業會刪除已存在表,重建表病追加數據,注意,TRUNCATE選項不適用與簇表和NETWORK_LINK選項
9.TRANSFORM
該選項用于指定是否修改建立對象的DDL語句
TRANSFORM=transform_name:value[:object_type]
Transform_name用于指定轉換名,其中SEGMENT_ATTRIBUTES用于標識段屬性(物理屬性,存儲屬性,表空間,日志等信息),STORAGE用于標識段存儲屬性,VALUE用于指定是否包含段屬性或段存儲屬性,object_type用于指定對象類型。
Impdp scott/tiger directory=dump dumpfile=tab.dmp
Transform=segment_attributes:n:table
10.TRANSPORT_DATAFILES
該選項用于指定搬移空間時要被導入到目標數據庫的數據文件
TRANSPORT_DATAFILE=datafile_name
Datafile_name用于指定被復制到目標數據庫的數據文件
Impdp system/manager DIRECTORY=dump DUMPFILE=tts.dmp
TRANSPORT_DATAFILES=‘/user01/data/tbs1.f’
調用IMPDP
1,導入表
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=tab.dmp
TABLES=dept,emp
Impdp system/manage DIRECTORY=dump_dir DUMPFILE=tab.dmp
TABLES=scott.dept,scott.emp REMAP_SCHEMA=SCOTT:SYSTEM
第一種方法表示將DEPT和EMP表導入到SCOTT方案中,第二種方法表示將DEPT和EMP表導入的SYSTEM方案中。
注意,如果要將表導入到其他方案中,必須指定REMAP SCHEMA選項。
2,導入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPFILE=schema.dmp
SCHEMAS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=schema.dmp
SCHEMAS=scott REMAP_SCHEMA=scott:system
3,導入表空間
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=tablespace.dmp
TABLESPACES=user01
4,導入數據庫
Impdp system/manager DIRECTORY=dump_dir DUMPFILE=full.dmp FULL=y
EXPDP/IMPDP的停止與重啟動:
EXPDP和IMPDP的本質在于,通過API調用,把傳統的EXP/IMP類交付式模式的操作,轉變成數據庫內部的job任務,從而實現了任務的可終止與重啟動。
c:\expdp test/test@acf directory=dpdata dumpfile=full.dmp full=y job_name=expfull在執行過程中,可以拿下Ctrl+C組合鍵,退出當前交互模式,退出之后,導出操作不會停止,這不同于Oracle以前的EXP.以前的EXP,如果退出交互式模式,就會出錯終止導出任務。
在Oracle 10中,由于EXPDP是數據庫內部定義的任務,已經與客戶端無關。退出交互之后,會進入export的命令行模式,此時支持status等查看命令:
Export> status
如果想停止改任務,可以發出stop_job命令
Export> stop_job
如果有命令行提示
是否確實要停止此作業([Y]/N):
或Are you sure you wish to stop this job ([yes]/no):
回答應是yes或者no
接下來可以通過命令行再次連接到這個任務
c:\expdp test/test@acf attach=expfull
通過start_job命令重新啟動導出
Export> start_job
在plsql下查看任務名:
SQL>select * from DBA_DATAPUMP_JOBS——查看job
在plsq下查看對應session:
SQL>select sid, serial#
2 from v$session s, dba_datapump_sessions d
3 where s.saddr = d.saddr;
下列命令在交互模式下有效。
注:允許使用縮寫命令說明(默認)
------------------------------------------------------------------------------
CONTINUE_CLIENT返回到記錄模式。如果處于空閑狀態,將重新啟動作業。
EXIT_CLIENT退出客戶機會話并使作業處于運行狀態。
HELP總結交互命令。
KILL_JOB分離和刪除作業。
PARALLEL更改當前作業的活動worker的數目。
PARALLEL=. START_JOB啟動/恢復當前作業。
START_JOB=SKIP_CURRENT在開始作業之前將跳過作業停止時執行的任意操作。
STATUS在默認值(0)將顯示可用時的新狀態的情況下,要監視的頻率(以秒計)作業狀態。
STATUS[=interval] STOP_JOB順序關閉執行的作業并退出客戶機。
STOP_JOB=IMMEDIATE將立即關閉數據泵作業。
impdp
2、數據庫啟動模式
可以啟動數據庫實例到限制模式(restrict mode),這時只有管理員和具有restricted session權限的用戶可以登錄數據庫。下面演示打開和關閉限制模式的方法:
啟動數據庫到限制模式ora_test@oracle[/home/oracle]> sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Sun Mar 7 15:26:01 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
idle> startup restrict
ORACLE instance started.
Total System Global Area 209715200 bytes
Fixed Size 1218532 bytes
Variable Size 113248284 bytes
Database Buffers 88080384 bytes
Redo Buffers 7168000 bytes
Database mounted.
Database opened.
數據庫已經啟動到限制模式,我用scott用戶登錄數據庫
首先檢查scott用戶,確認其沒有restricted session權限sys@CNHTM> select grantee,granted_role from dba_role_privs where grantee='SCOTT'
2 union
3 select grantee,privilege from dba_sys_privs where grantee='SCOTT'
4 ;
GRANTEE GRANTED_ROLE
------------------------------ ----------------------------------------
SCOTT CONNECT
SCOTT RESOURCE
SCOTT UNLIMITED TABLESPACE
登錄數據庫失敗,因為其沒有restricted session權限idle> conn scott/tiger
ERROR:
ORA-01035: ORACLE only available to users with RESTRICTED SESSION privilege
Warning: You are no longer connected to ORACLE.
為用戶scott授予restricted session權限,再次登錄數據庫,可以登錄idle> grant restricted session to scott;
SP2-0640: Not connected
idle> conn / as sysdba
Connected.
sys@CNHTM> grant restricted session to scott;
Grant succeeded.
sys@CNHTM> conn scott/tiger
Connected.
將數據庫修改為正常模式(即退出限制模式)scott@CNHTM> conn / as sysdba
Connected.
sys@CNHTM> alter system disable restricted session;
System altered.
由正常模式切換到限制模式的方法sys@CNHTM> alter system enable restricted session;
System altered.
sys@CNHTM>
--end--
3、字符集問題
總結
以上是生活随笔為你收集整理的mysql导入10g数据库_oracle10g数据库导入、导出(exp/imp、expdp/impdp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 非零返回怎么解决_VLOOKUP如何返回
- 下一篇: 爬虫实战学习笔记_6 网络请求reque