Module-Oracle技術文檔

Oracle技術文檔.md

tags: Oracle

環境說明:

  • Oracle11g
  • CentOS6.10/CentOS7.5

功能(可選-建議操作)

Oracel exp 導出空表數據

TODO 尋找更好導出空表的方法

問題原因:

由於Oracle11g新特性,當表無數據時,不分配segment,以節省空間。而導出時只會導出已分配segment的表

解決步驟:

第一步: 修改系統配置

設置deferred_segment_creation參數

SQL> show parameter deferred_segment_creation 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
deferred_segment_creation            boolean     TRUE 
SQL> alter system set deferred_segment_creation=false; 
系統已更改。
SQL> show parameter deferred_segment_creation 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
deferred_segment_creation            boolean     FALSE

注意: 該值設置後對以前導入的空表不產生作用,仍不能導出,只能對後面新增的表產生作用。如需導出之前的空表,只能使用後續方法。

**第二步: **處理空表

方法1: 批量處理空表

-- 首先使用下面的sql語句查詢一下當前用戶下的所有空表
select table_name from user_tables where NUM_ROWS=0 or num_rows is null;

然後用一下SQL語句執行查詢
-- select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;

-- 查詢結果如下所示..
alter table TBL_1 allocate extent;
alter table TBL_2 allocate extent;
alter table TBL_3 allocate extent;
alter table TBL_4 allocate extent;
-- 執行上面語句即可

方法2: insert一行,再rollback就產生segment了

該方法是在在空表中插入數據,再刪除,則產生segment。導出時則可導出空表。

參考鏈接: Oracle導出空表

Oracle數據導入導出

Oracle導入導出命令

# 導出數據
exp fdm/[email protected]:1521/newfdm file=20190514_newfdm.db owner=fdm
# 導入前需要刪除原有數據庫所有表+序列
imp fdm/qwe123 file=/home/oracle/20190514_newfdm.db fromuser=fdm touser=fdm DESTROY=Y

導出日誌查看.配置 <導出空表數據> 後即可導出空表 xxx 0行

[oracle@WOM ~]$ exp fdm/[email protected]:1521/fdm file=fdm.db owner=fdm
Export: Release 11.2.0.1.0 - Production on 星期三 10月 23 17:09:59 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已導出 UTF8 字符集和 AL16UTF16 NCHAR 字符集
服務器使用 AL32UTF8 字符集 (可能的字符集轉換)

即將導出指定的用戶...
. 正在導出 pre-schema 過程對象和操作
. 正在導出用戶 FDM 的外部函數庫名
. 導出 PUBLIC 類型同義詞
. 正在導出專用類型同義詞
. 正在導出用戶 FDM 的對象類型定義
即將導出 FDM 的對象...
. 正在導出數據庫鏈接
. 正在導出序號
. 正在導出簇定義
. 即將導出 FDM 的表通過常規路徑...
. . 正在導出表              ASSISTANT_ANALYSIS導出了           0 行
. . 正在導出表               BACK_MINING_MODEL導出了           5 行
. . 正在導出表        BACK_MINING_MODEL_ENTITY導出了          38 行
. . 正在導出表                         WEB_LOG導出了        1463 行
. 正在導出同義詞
. 正在導出視圖
. 正在導出存儲過程
. 正在導出運算符
. 正在導出引用完整性約束條件
. 正在導出觸發器
. 正在導出索引類型
. 正在導出位圖, 功能性索引和可擴展索引
. 正在導出後期表活動
. 正在導出實體化視圖
. 正在導出快照日誌
. 正在導出作業隊列
. 正在導出刷新組和子組
. 正在導出維
. 正在導出 post-schema 過程對象和操作
. 正在導出統計信息
導出成功終止, 但出現警告。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章