oracle載入資料庫
㈠ Oracle開啟資料庫實例後如何載入資料庫
ALTER DATABASE MOUNT用來裝載資料庫,並啟動實例。如果是在日誌文件中出現,則表示啟動資料庫。
alter database open將資料庫從mount狀態切換到打開狀態。如果打開成功,就是說這個時候資料庫可以提供服務了。
㈡ oracle怎麼導入sql文件
PL/SQL登錄到資料庫,使用tools工具進行導入。使用plsql登錄到需要導入數據的資料庫。點擊工具欄上【tools】--【Import tables】
㈢ oracle中怎樣導入資料庫文件
1、登錄到要導入的資料庫及用戶。
2、依次點擊「工具」——「導入表」。
3、輸入如下命令;
imp被導入用戶名/密碼@實例名file=文件名.dmplog=日誌.dmpfromuser=導出用戶touser=導入用戶
4、 輸入後按回車鍵,等待導入完成即可。
㈣ 數據批量sql*load導入Oracle資料庫
SQL*LOADER是大型數據
倉庫選擇使用的載入方法 因為它提供了最快速的途徑(DIRECT PARALLEL) 現在 我們拋開其理論不談 用實例來使
您快速掌握SQL*LOADER的使用方法
首先 我們認識一下SQL*LOADER
在NT下 SQL*LOADER的命令為SQLLDR 在UNIX下一般為sqlldr/sqlload
如執行 d:oracle>sqlldr
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
用法: SQLLOAD 關鍵字 = 值 [ keyword=value ]
有效的關鍵字:
userid ORACLE username/password
control Control file name
log Log file name
bad Bad file name
data Data file name
discard Discard file name
discardmax Number of discards to allow (全部默認)
skip Number of logical records to skip (默認 )
load Number of logical records to load (全部默認)
errors Number of errors to allow (默認 )
rows Number of rows in conventional path bind array or beeen direct p
ath data saves
(默認: 常規路徑 所有直接路徑)
bindsize Size of conventional path bind array in bytes(默認 )
silent Supdivss messages ring run (header feedback errors discards part
扮伏itions)
鬧坦direct use direct path液缺桐 (默認FALSE)
parfile parameter file: name of file that contains parameter specification
s
parallel do parallel load (默認FALSE)
file File to allocate extents from
skip_unusable_indexes disallow/allow unusable indexes or index partitions(默認FALSE)
skip_index_maintenance do not maintain indexes mark affected indexes as unusable(默認FALSE)
mit_discontinued mit loaded rows when load is discontinued(默認FALSE)
readsize Size of Read buffer (默認 )
PLEASE NOTE: 命令行參數可以由位置或關鍵字指定
前者的例子是 sqlload scott/tiger foo ;
後者的例子是 sqlload control=foo userid=scott/tiger
位置指定參數的時間必須早於但不可遲於由關鍵字指定的參數 例如
SQLLOAD SCott/tiger control=foo logfile=log
但 不允許 sqlload scott/tiger control=foo log
即使允許參數 log 的位置正確
d:oracle>
我們可以從中看到一些基本的幫助信息 這里 我用到的是中文的WIN ADVSERVER
我們知道 SQL*LOADER只能導入純文本 所以我們現在開始以實例來講解其用法
一 已存在數據源result csv 欲倒入ORACLE中FANCY用戶下
result csv內容
默認 Web 站點 : : RUNNING
other : : STOPPED
third : : RUNNING
從中 我們看出 列 分別以逗號分隔 為變長字元串
二 制定控制文件result ctl
result ctl內容
load data
infile result csv
into table resultxt
(resultid char terminated by
website char terminated by
ipport char terminated by
status char terminated by whitespace)
說明
infile指數據源文件這里我們省略了默認的discardfile result dsc badfile result bad
into table resultxt 默認是INSERT 也可以into table resultxt APPEND為追加方式 或REPLACE
terminated by 指用逗號分隔
terminated by whitespace結尾以空白分隔
三 此時我們執行載入
D:>sqlldr userid=fancy/testpass control=result ctl log=resulthis out
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
SQL*Loader : 在描述表RESULTXT時出現錯誤
ORA : 對象 RESULTXT 不存在
提示出錯 因為資料庫沒有對應的表
四 在資料庫建立表
create table resultxt
(resultid varchar ( )
website varchar ( )
ipport varchar ( )
status varchar ( ))
/
五 重新執行載入
D:>sqlldr userid=fancy/k i l l control=result ctl log=resulthis out
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
達到提交點 邏輯記錄計數
達到提交點 邏輯記錄計數
已經成功!我們可以通過日誌文件來分析其過程 resulthis out內容如下
SQL*Loader: Release Proction on 星期二 月 : :
(c) Copyright Oracle Corporation All rights reserved
控制文件: result ctl
數據文件: result csv
錯誤文件: result bad
廢棄文件: 未作指定
:
(可廢棄所有記錄)
裝載數: ALL
跳過數:
允許的錯誤:
綁定數組: 行 最大 位元組
繼續: 未作指定
所用路徑: 常規
表RESULTXT
已載入從每個邏輯記錄
插入選項對此表INSERT生效
列名 位置 長度 中止 包裝數據類型
RESULTID FIRST * CHARACTER
WEBSITE NEXT * CHARACTER
IPPORT NEXT * CHARACTER
STATUS NEXT * WHT CHARACTER
表RESULTXT:
行載入成功
由於數據錯誤 行沒有載入
由於所有 WHEN 子句失敗 行沒有載入
由於所有欄位都為空的 行沒有載入
為結合數組分配的空間: 位元組( 行)
除綁定數組外的內存空間分配: 位元組
跳過的邏輯記錄總數:
讀取的邏輯記錄總數:
拒絕的邏輯記錄總數:
廢棄的邏輯記錄總數:
從星期二 月 : : 開始運行
在星期二 月 : : 處運行結束
經過時間為: : :
CPU 時間為: : : (可
六 並發操作
sqlldr userid=/ control=result ctl direct=true parallel=true
sqlldr userid=/ control=result ctl direct=true parallel=true
sqlldr userid=/ control=result ctl direct=true parallel=true
當載入大量數據時(大約超過 GB) 最好抑制日誌的產生
SQL>ALTER TABLE RESULTXT nologging;
這樣不產生REDOLOG 可以提高效率 然後在CONTROL文件中load data上面加一行 unrecoverable
此選項必須要與DIRECT共同應用
在並發操作時 ORACLE聲稱可以達到每小時處理 GB數據的能力!其實 估計能到 - G就算不錯了 開始可用結構
相同的文件 但只有少量數據 成功後開始載入大量數據 這樣可以避免時間的浪費
我的示例
一 在資料庫建立表格weather如下
create table weather(
outlook varchar( )
temperature float
humidity float
windy varchar( )
play varchar( )
)
二 在F盤建立兩個文件 分別如下
# result ctl內容如下
load data
infile result csv
into table weather
(outlook char terminated by
temperature char terminated by
humidity char terminated by
windy char terminated by
play char terminated by
)
# result csv內容如下
sunny FALSE no
sunny TRUE no
overcast FALSE yes
rainy FALSE yes
rainy FALSE yes
rainy TRUE no
overcast TRUE yes
sunny FALSE no
sunny FALSE yes
rainy FALSE yes
sunny TRUE yes
overcast TRUE yes
overcast FALSE yes
rainy TRUE no
三 命令行下執行
F:>sqlldr userid=cq *** /ctbujx control=result ctl
lishixin/Article/program/Oracle/201311/18602