如何用sys as sysdba權(quán)限連接數(shù)據(jù)庫進(jìn)行Exp/Imp
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、虛擬空間、營銷軟件、網(wǎng)站建設(shè)、重慶網(wǎng)站維護(hù)、網(wǎng)站推廣。
Windows:
exp 'sys/change_on_install@instance as sysdba' tables=scott.emp
Unix or Linux (you need to 'escape' the single quote):
exp /'sys/change_on_install@instance as sysdba/' tables=scott.emp
VMS (use [double_quote][single_quote]...[single_quote][double_quote]):
exp "'sys/change_on_install@instance as sysdba'" tables=scott.emp
小結(jié):
1、USERID 必須是命令行中的第一個參數(shù)。(如imp help=y里顯示的內(nèi)容)
所以如exp ‘ as sysdba’等價于exp USERID=‘a(chǎn)s sysdba’,即可以省略USERID不寫。
2、imp/exp命令里參數(shù)與參數(shù)間的間隔是用空格來區(qū)分的(等號兩邊的空格不算),于是像如下語句:exp USERID= sys/123456 as sysdba就不能被imp/exp工具所理解(參數(shù)USERID= sys/123456可以解析出來,但是as sysdba不知道如何理解了,as或sysdba又不屬于設(shè)定的參數(shù)名)。而oracle公司設(shè)計的軟件里一般用單引號將一字符串常量包括起來。將上面語句改為exp USERID= ’sys/123456 as sysdba‘的話,imp/exp工具就認(rèn)為sys/123456 as sysdba整體是一個字符串,故而就是參數(shù)USERID的一個值。
3.
如果是寫在參數(shù)文件中,則連接字符串需要用雙引號了:
USERID=" as sysdba"
Parameter file.
You can also specify the username in the parameter file. In this situation, you have to enclose the connect string with a double quote character. However, to prevent possible security breaches we advice you to stop using the USERID parameter in a parameter file.
Contents of file exp.par:
USERID="sys/change_on_install@instance as sysdba"
TABLES=scott.emp
Run export with:
exp parfile=exp.par
注釋:imp/exp(
impdp/expdp
)默認(rèn)目錄是什么,即parfile=exp.par里的文件exp.par在什么目錄下?
附加:
impdp/expdp
)默認(rèn)目錄是什么
(5)、數(shù)據(jù)泵如何決定文件的路徑
5.1 如果目錄對象是文件標(biāo)示符的一部分,那么目錄對象指定的路徑就需要使用。在目錄MY_DIR創(chuàng)建dump文件的示例:
expdp scott/tiger DUMPFILE=my_dir:expdp_s.dmp NOLOGFILE=Y
5.2 如果目錄對象不代表一個文件,那么就需要使用DIRECTORY變量命名的目錄對象。目錄MY_DIR中創(chuàng)建dump文件,目錄MY_DIR_LOG中創(chuàng)建日志文件的示例:
expdp scott/tiger DIRECTORY=my_dir DUMPFILE=expdp_s.dmp \
LOGFILE=my_logdir:expdp_s.log
5.3 如果沒有明確目錄對象,也沒有以DIRECTORY變量命名的目錄對象,那么環(huán)境變量DATA_PUMP_DIR將會使用。環(huán)境變量是在在運(yùn)行導(dǎo)出和導(dǎo)入數(shù)據(jù)泵應(yīng)用的客戶端系統(tǒng)中使用操作系統(tǒng)命令定義的,分配給基于客戶端環(huán)境變量的取值必須和基于服務(wù)端的目錄對象一致,且必須首先在服務(wù)器端建立。
目錄MY_DIR中創(chuàng)建dump文件和MY_DIR_LOG中創(chuàng)建日志文件的示例:
在使用expdp的客戶端機(jī)器上,設(shè)定環(huán)境變量:
-- On windows, place all expdp parameters on one single line:
C:\ set DATA_PUMP_DIR=MY_DIR
C:\ expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp
LOGFILE=my_logdir:expdp_s.log
注意環(huán)境變量DATA_DUMP_DIR對應(yīng)的目錄名稱是大小寫敏感的。設(shè)定錯誤的DATA_PUMP_DIR環(huán)境變量會報錯,例如:DATA_PUMP_DIR=My_Dir:
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39087: directory name My_Dir is invalid
5.4 如果之前三種情況都沒有創(chuàng)建目錄對象,作為一個具有權(quán)限的用戶(例如具有EXP_FULL_DATABASE或IMP_FULL_DATABASE角色),那么數(shù)據(jù)泵試圖使用默認(rèn)的基于服務(wù)器端的目錄對象,DATA_PUMP_DIR。理解數(shù)據(jù)泵不會創(chuàng)建DATA_PUMP_DIR目錄對象是非常重要的。僅當(dāng)授權(quán)用戶未使用任何之前提到的機(jī)制創(chuàng)建的目錄對象時,才會嘗試使用DATA_PUMP_DIR。這個默認(rèn)的目錄對象必須首先由DBA創(chuàng)建。不要將這個和同名的基于客戶端的環(huán)境變量相混淆。
首先,清空DATA_PUMP_DIR環(huán)境變量:
C:\ set DATA_PUMP_DIR=
創(chuàng)建DATA_PUMP_DIR的目錄:
CONNECT SYSTEM/MANAGER
CREATE OR REPLACE DIRECTORY data_pump_dir AS 'D:\DataPump';
GRANT read, write ON DIRECTORY data_pump_dir TO scott;
-- On windows, place all expdp parameters on one single line:
C:\ expdp system/manager@my_db_alias DUMPFILE=expdp_s.dmp
LOGFILE=expdp_s.log SCHEMAS=scott
如果SCOTT用戶不是授權(quán)用戶,不能使用默認(rèn)的DATA_PUMP_DIR。
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-39145: directory object parameter must be specified and non-null
用戶SCOTT的解決方法:如上面5.3,SCOTT可以設(shè)置環(huán)境變量DATA_PUMP_DIR為MY_DIR:
-- On windows, place all expdp parameters on one single line:
C:\ set DATA_PUMP_DIR=MY_DIR
C:\ expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp
LOGFILE=expdp_s.log SCHEMAS=scott
或者這種特定場景下,用戶SCOTT也可以有目錄DATA_PUMP_DIR的讀和寫權(quán)限:
-- On windows, place all expdp parameters on one single line:
C:\ set DATA_PUMP_DIR=DATA_PUMP_DIR
C:\ expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp
LOGFILE=expdp_s.log SCHEMAS=scott
這個不會弄。
我建議一直方法:
用pl/sql developer的工具,導(dǎo)出其自己的格式,然后到10g中導(dǎo)入
如果只有dmp,那么先安裝一個11g的,導(dǎo)入后,在用plsql developer進(jìn)行導(dǎo)出
1.創(chuàng)建
create user AAA identified by AA2011 default tablespace Test quota 10m on users;
用戶名:AAA
密碼:AA2011
表空間:Test
2.授權(quán)(將對表空間的所有操作功能,賦給新創(chuàng)建的用戶)
grant connect,resource,dba,sysdba to AAA ;
Oracle dump文件的命令有exp/imp和expdp/impdp。對于dump文件,我們不能直接提取出data數(shù)據(jù),但是我們可以通過相關(guān)的參數(shù),從dump文件中提取出對應(yīng)的DDL語句。
Oracle 從Dump 文件里提取 DDL 語句 方法說明
如果是導(dǎo)出導(dǎo)入(exp/imp),那么是indexfile參數(shù);
如果是數(shù)據(jù)泵(expdp/impdp),那么是sqlfile參數(shù)。
expdp/impdp提取出的DDL語句更詳細(xì),可讀性更好。
一、使用exp/imp命令
1、導(dǎo)出lxh用戶的數(shù)據(jù),生成dump文件
exp lxh/lxh file=lxh.dmp owner=lxh
2、從dump文件里提取DDL語句
imp lxh/lxh file=lxh.dmp fromuser=lxh touser=lxh indexfile=lxh.sql
該import命令并沒有真正的import data,而只是生成了我們對應(yīng)用戶下所有DDL的sql語句。對于表的DDL語句,用REM進(jìn)行了注釋。
二、使用expdp/impdp命令
1、導(dǎo)出lxh用戶的數(shù)據(jù),生成dump文件
expdp lxh/lxh directory=backup dumpfile=lxh.dmp schemas=lxh
2、從dump文件里提取DDL語句
impdp lxh/lxh directory=backup dumpfile=lxh.dmp sqlfile=lxh.sql
---------------------------------------------------------------------------
或者使用DDL Wizard這個軟件
分享標(biāo)題:linux導(dǎo)出數(shù)據(jù)泵命令 linux 數(shù)據(jù)庫導(dǎo)出
路徑分享:http://jinyejixie.com/article10/dosgcgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、移動網(wǎng)站建設(shè)、外貿(mào)建站、企業(yè)建站、網(wǎng)站建設(shè)、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)