1. 如何用exp導出oracle資料庫並壓縮
1. 它是一個可執行的文件 存放目錄/ORACLE_HOME/bin
exp導出工具將資料庫中數據備份壓縮成一個二進制系統文件. 它有三種模式:
a. 用戶模式:導出用戶所有對象以及對象中的數據;
b. 表模式: 導出用戶所有表或者指定的表;
c. 整個資料庫: 導出資料庫中所有對象。
2. 導出工具exp互動式命令行方式的使用的例子
$exp test/test123@appd
Enter array fetch buffer size: 4096 > 回車
Export file: expdat.dmp > m.dmp 生成導出的文件名
(1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > 3
Export table data (yes/no): yes > 回車wQeLin
Compress extents (yes/no): yes > 回車
2. oracle資料庫如何壓縮體積
收縮表空間,收縮表,壓縮表,也就這樣了,本身你的數據量在那放著呢
3. oracle資料庫自動備份與自動壓縮方法
用rman。
4. 為什麼oracle的dmp數據包壓縮後變得這么小
dmp保存的數據有結構化佔用。比如一個欄位類型為vchar(64),存儲內容為字元「A」,dmp佔用64字元,壓縮後為1個字元。
所以,200M可以壓縮到3.125M。提問者200M壓縮到16M,說明你的數據源字元假如是vchar(200)實際存儲的是16長度字元串。
以上為舉例,非實際壓縮演算法。
5. 在oracle中,為什麼要把新建的表做壓縮處理
你說的是創建壓縮表吧.
壓縮表的主要作用是:通過消除在資料庫塊中的重復數據來實現空間節約
實現原理:比較數據塊中包含的所有欄位或記錄,其中重復的數據只在位於數據塊開始部分的記號表(Symbol Table)中存儲一份,在其他行或欄位出現同樣的數據時,只記錄一個指向記號表中相關數據的指針。
命令:
創建壓縮表:
create table haha(
......
) compress;
alter table haha compress;
alter table haha nocompress;
6. 怎麼使用expdp 壓縮導出oracle數據
EXPDP導出
一:導出前期准備:
1.創建目錄對象:
CREATE DIRECTORY mp_dir AS 'c:\mp';
2.在操作系統上創建相應的目錄。
3.把目錄的讀寫許可權給用戶:
GRANT READ, WRITE ON DIRECTORY mp_dir TO scott;二:導出的模型
1.導出表
Expdp scott/tiger DIRECTORY=mp_dir DUMPFILE=tab.dmp logfile=testexpdp.log TABLES=dept, emp2.導出方案(用戶)
Expdp scott/tiger DIRECTORY=mp_dir DUMPFILE=schema.dmp logfile=testexpdp.log SCHEMAS=system,scott3.導出表空間
Expdp system/manager DIRECTORY=mp_dir logfile=testexpdp.log DUMPFILE=tablespace.dmpTABLESPACES=user01,user02
4.導出資料庫
Expdp system/manager DIRECTORY=mp_dir DUMPFILE=full.dmp logfile=testexpdp.log FULL=Y三:EXPDP命令行選項:
1. ATTACH
該選項用於在客戶會話與已存在導出作用之間建立關聯.語法如下ATTACH=[schema_name.]job_name
Schema_name用於指定方案名,job_name用於指定導出作業名.注意,如果使用ATTACH選項,在命令行除了連接字元串和ATTACH選項外,不能指定任何其他選項,示例如下:
Expdp scott/tiger ATTACH=scott.export_job2. CONTENT
該選項用於指定要導出的內容.默認值為ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
當設置CONTENT為ALL 時,將導出對象定義及其所有數據.為DATA_ONLY時,只導出對象數據,為METADATA_ONLY時,只導出對象定義Expdp scott/tiger DIRECTORY=mp DUMPFILE=a.mpCONTENT=METADATA_ONLY
3. DIRECTORY
指定轉儲文件和日誌文件所在的目錄
DIRECTORY=directory_object
Directory_object用於指定目錄對象名稱.需要注意,目錄對象是使用CREATE DIRECTORY語句建立的對象,而不是OS 目錄Expdp scott/tiger DIRECTORY=mp DUMPFILE=a.mp建立目錄:
CREATE
查詢創建了那些子目錄:
SELECT * FROM dba_directories;
4. DUMPFILE
用於指定轉儲文件的名稱,默認名稱為expdat.dmpDUMPFILE=[directory_object:]file_name [,….]
Directory_object用於指定目錄對象名,file_name用於指定轉儲文件名.需要注意,如果不指定directory_object,導出工具會自動使用DIRECTORY選項指定的目錄對象Expdp scott/tiger DIRECTORY=mp1 DUMPFILE=mp2:a.dmp5. ESTIMATE
指定估算被導出表所佔用磁碟空間分方法.默認值是BLOCKSEXTIMATE={BLOCKS | STATISTICS}
設置為BLOCKS時,oracle會按照目標對象所佔用的數據塊個數乘以數據塊尺寸估算對象佔用的空間,設置為STATISTICS時,根據最近統計值估算對象佔用空間Expdp scott/tiger TABLES=emp ESTIMATE=STATISTICSDIRECTORY=mp DUMPFILE=a.mp
6. EXTIMATE_ONLY
指定是否只估算導出作業所佔用的磁碟空間,默認值為NEXTIMATE_ONLY={Y | N}
設置為Y時,導出作用只估算對象所佔用的磁碟空間,而不會執行導出作業,為N時,不僅估算對象所佔用的磁碟空間,還會執行導出操作.
Expdp scott/tiger ESTIMATE_ONLY=y NOLOGFILE=y7. EXCLUDE
該選項用於指定執行操作時釋放要排除對象類型或相關對象EXCLUDE=object_type[:name_clause] [,….]
Object_type用於指定要排除的對象類型,name_clause用於指定要排除的具體對象.EXCLUDE和INCLUDE不能同時使用Expdp scott/tiger DIRECTORY=mp DUMPFILE=a.p EXCLUDE=VIEW8. FILESIZE
指定導出文件的最大尺寸,默認為0,(表示文件尺寸沒有限制)9. FLASHBACK_SCN
指定導出特定SCN時刻的表數據
FLASHBACK_SCN=scn_value
Scn_value用於標識SCN值.FLASHBACK_SCN和FLASHBACK_TIME不能同時使用Expdp scott/tiger DIRECTORY=mp DUMPFILE=a.dmpFLASHBACK_SCN=358523
10. FLASHBACK_TIME
指定導出特定時間點的表數據
FLASHBACK_TIME=」TO_TIMESTAMP(time_value)」
Expdp scott/tiger DIRECTORY=mp 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.logLOGFILE=[directory_object:]file_name
Directory_object用於指定目錄對象名稱,file_name用於指定導出日誌文件名.如果不指定directory_object.導出作用會自動使用DIRECTORY的相應選項值.
Expdp scott/tiger DIRECTORY=mp DUMPFILE=a.dmp logfile=a.log16. NETWORK_LINK
指定資料庫鏈名,如果要將遠程資料庫對象導出到本地常式的轉儲文件中,必須設置該選項.
17. NOLOGFILE
該選項用於指定禁止生成導出日誌文件,默認值為N.
18. PARALLEL
指定執行導出操作的並行進程個數,默認值為1
19. PARFILE
指定導出參數文件的名稱
PARFILE=[directory_path] file_name
20. QUERY
用於指定過濾導出數據的where條件
QUERY=[schema.] [table_name:] query_clauseSchema用於指定方案名,table_name用於指定表名,query_clause用於指定條件限制子句.QUERY選項不能與CONNECT=METADATA_ONLY,EXTIMATE_ONLY,TRANSPORT_TABLESPACES等選項同時使用.
Expdp scott/tiger directory=mp mpfiel=a.dmpTables=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用於指定資料庫版本字元串.
7. 怎樣壓縮Oracle數據文件
如果屬於一個單獨的表空間不是system等,可以把表空間刪除,或刪除所有對象後resize數據文件
8. 請高手解答下:如何把oracle資料庫備份成壓縮包的形式
用 rman 可以備份成壓縮包的形式
冷備後用系統自帶或第三方的壓縮工具通過定時作業控制, 也可以.
9. 如何壓縮oracle海量數據
一、應用場合
答:正如上面所說,壓縮技術一般應用在「海量數據」的范疇,在大數據量下並且重復率高的情境下應該的效果才好,適合於OLAP(報表系統)不適合OLTP(在線交易系統),當數據量小時作用還不是很大,只要數據量達到一定程度的時候使用這門技術才有意義。
二、壓縮技術的好處
1.節約空間:我認為壓縮技術的最大好處就是節約空間,在存儲設備空間很緊張的情況下更需要使用壓縮技術來緩解
2.減少memory/IO開銷:當使用了壓縮技術後,同等記錄對應的數據塊相對較少,自然而然IO開銷就小了
3.提高數據處理效率:原本10個數據塊的,經過壓縮後變成5個數據塊,但還是那些數據,可效率提高了一倍。
三、壓縮原理
答:我們都用過rar壓縮zip壓縮,其實這些壓縮的原理都很相似,當然在細微處理上有不同,數據塊壓縮原理上是使用長度較短符號來代替列中的每個值,由於符號佔用空間小於實際值,從而達到節約空間的效果,當列中重復值越多壓縮效果越好。
四、數據壓縮不適合OLTP系統
1.OLTP是一種多事務短時間片系統,有大量的DML操作,而DML操作我們都知道是有鎖lock的(insert update delete)當數據塊中記錄數多起來時,導致訪問這個數據塊的用戶就多,就是產生爭用和等待,從而降低了效率。
2.數據插入、更新和索引鍵值更新時,都要先解壓縮再更新,等待的時間會更長。
五、分區表的壓縮
1.分區表的每個分區都可以獨立壓縮
2.有些時候,分區表在創建時不設置分區壓縮屬性,當某個分區需要壓縮時,再獨立進行壓縮
3.如果在表級設置壓縮屬性的話,那麼所有分區都會啟動壓縮功能,反正如果是某幾個分區獨立壓縮,表級屬性上什麼也不寫的。
實驗
create table leo_partition1 (object_id,object_name) 創建一個六個分區的分區表,沒有指定壓縮
partition by range (object_id)
(
partition leo_p1 values less than (1000),
partition leo_p2 values less than (2000),
partition leo_p3 values less than (3000),
partition leo_p4 values less than (4000),
partition leo_p5 values less than (5000),
partition leo_max values less than (maxvalue)
)
as select object_id,object_name from dba_objects;
LS@LEO> select count(*) from leo_partition1;
COUNT(*)
----------
10351
LS@LEO> select partition_name,compression from user_tab_partitions where table_name='LEO_PARTITION1';
PARTITION_NAME COMPRESS
------------------------------ --------
LEO_MAX DISABLED
LEO_P1 DISABLED
LEO_P2 DISABLED
LEO_P3 DISABLED
LEO_P4 DISABLED
LEO_P5 DISABLED
LS@LEO> alter table leo_partition1 compress; 例如 定義表級壓縮屬性,此時所有分區都壓縮
LS@LEO> alter table leo_partition1 modify partition leo_p1 compress; 我們測試准對leo_p1 和 leo_p5分區進行壓縮,來說明分區可以獨立壓縮
Table altered.
LS@LEO> alter table leo_partition1 modify partition leo_p5 compress;
Table altered.
LS@LEO> select partition_name,compression from user_tab_partitions where table_name='LEO_PARTITION1';
PARTITION_NAME COMPRESS
------------------------------ -----------------------
LEO_MAX DISABLED
LEO_P1 ENABLED
10. 壓縮oracle數據文件
你意思是收縮一下表空間大小,直接收縮不一定能成功,因為可能尾部已經用了,建議建新表空間,再將表和索引移到新的表空間上,然後刪除舊的表空間