1. 程式人生 > >如何用sys as sysdba許可權連線資料庫進行Exp/Imp

如何用sys as sysdba許可權連線資料庫進行Exp/Imp



Unix or Linux (you need to 'escape' the single quote):
exp /'sys/[email protected] as sysdba/' tables=scott.emp

VMS (use [double_quote][single_quote]...[single_quote][double_quote]):
exp "'sys/[email protected]as sysdba'" tables=scott.emp


小結:

1、USERID 必須是命令列中的第一個引數。(如imp help=y裡顯示的內容)所以如exp ‘ as sysdba’等價於exp  USERID=‘as sysdba’,即可以省略USERID不寫。
2、imp/exp命令裡引數與引數間的間隔是用空格來區分的(等號兩邊的空格不算),於是像如下語句:exp  USERID= sys/123456 as sysdba就不能被imp/exp工具所理解(引數USERID= sys/123456可以解析出來,但是as sysdba不知道如何理解了,as或sysdba又不屬於設定的引數名)。而oracle公司設計的軟體裡一般用單引號將一字串常量包括起來。將上面語句改為exp  USERID= ’sys/123456 as sysdba‘的話,imp/exp工具就認為sys/123456 as sysdba整體是一個字串,故而就是引數USERID的一個值。3.如果是寫在引數檔案中,則連線字串需要用雙引號了:
    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/[email protected] as sysdba"TABLES=scott.empRun export with:exp parfile=exp.par註釋:imp/exp(

impdp/expdp

)預設目錄是什麼,即parfile=exp.par裡的檔案exp.par在什麼目錄下?
附加:

impdp/expdp

)預設目錄是什麼

(5)、資料泵如何決定檔案的路徑

5.1 如果目錄物件是檔案標示符的一部分,那麼目錄物件指定的路徑就需要使用。在目錄MY_DIR建立dump檔案的示例:

> expdp scott/tiger DUMPFILE=my_dir:expdp_s.dmp NOLOGFILE=Y

5.2 如果目錄物件不代表一個檔案,那麼就需要使用DIRECTORY變數命名的目錄物件。目錄MY_DIR中建立dump檔案,目錄MY_DIR_LOG中建立日誌檔案的示例:

> expdp scott/tiger DIRECTORY=my_dir DUMPFILE=expdp_s.dmp \ 
LOGFILE=my_logdir:expdp_s.log

5.3 如果沒有明確目錄物件,也沒有以DIRECTORY變數命名的目錄物件,那麼環境變數DATA_PUMP_DIR將會使用。環境變數是在在執行匯出和匯入資料泵應用的客戶端系統中使用作業系統命令定義的,分配給基於客戶端環境變數的取值必須和基於服務端的目錄物件一致,且必須首先在伺服器端建立

目錄MY_DIR中建立dump檔案和MY_DIR_LOG中建立日誌檔案的示例:

在使用expdp的客戶端機器上,設定環境變數:

-- On windows, place all expdp parameters on one single line:

C:\> set DATA_PUMP_DIR=MY_DIR  
C:\> expdp scott/[email protected]_db_alias DUMPFILE=expdp_s.dmp 
LOGFILE=my_logdir:expdp_s.log

注意環境變數DATA_DUMP_DIR對應的目錄名稱是大小寫敏感的。設定錯誤的DATA_PUMP_DIR環境變數會報錯,例如: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 如果之前三種情況都沒有建立目錄物件,作為一個具有許可權的使用者(例如具有EXP_FULL_DATABASE或IMP_FULL_DATABASE角色),那麼資料泵試圖使用預設的基於伺服器端的目錄物件,DATA_PUMP_DIR。理解資料泵不會建立DATA_PUMP_DIR目錄物件是非常重要的。僅當授權使用者未使用任何之前提到的機制建立的目錄物件時,才會嘗試使用DATA_PUMP_DIR。這個預設的目錄物件必須首先由DBA建立。不要將這個和同名的基於客戶端的環境變數相混淆。

首先,清空DATA_PUMP_DIR環境變數:

C:\> set DATA_PUMP_DIR=

建立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/[email protected]_db_alias DUMPFILE=expdp_s.dmp  
LOGFILE=expdp_s.log SCHEMAS=scott

如果SCOTT使用者不是授權使用者,不能使用預設的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可以設定環境變數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/[email protected]_db_alias DUMPFILE=expdp_s.dmp 
LOGFILE=expdp_s.log SCHEMAS=scott

或者這種特定場景下,使用者SCOTT也可以有目錄DATA_PUMP_DIR的讀和寫許可權:

-- On windows, place all expdp parameters on one single line: 

C:\> set DATA_PUMP_DIR=DATA_PUMP_DIR
C:\> expdp scott/[email protected]_db_alias DUMPFILE=expdp_s.dmp 
LOGFILE=expdp_s.log SCHEMAS=scott


參考:http://blog.csdn.net/bisal/article/details/24667609

=============================================

Oracle exp備份使用sysdba進行匯出和匯入的操作

2010-03-29 16:16 佚名 部落格園字號:T|T 一鍵收藏,隨時檢視,分享好友!

如果你在Oracle exp備份的實際應用方面,你是否存在一些不解之處,以下的文章主要是通過對Oracle exp備份的實際應用的。 方案的介紹,來解答你在@@@@@@在實際操作方面的問題。

我們在一些相關的書籍或是網上的相關資料對Oracle exp備份(匯出/匯入備份)使用sysdba進行匯出和匯入的實際操作步驟都有相關的介紹,以下的文章就對Oracle exp備份的實際操作步驟的本人的idea。

1. 命令列方式:

A: Windows平臺:

C:

  1. \> expas sysdba' tables=scott.emp file=e:\emp.dmp  

B: Unix & Linux平臺(這時的"'"需要用到轉義字元"\"):

  1. $ exp \'sys/[email protected] as sysdba\
    tables=scott.emp file=/home/oracle/emp.dmp 

C:Oracle exp備份(匯出/匯入備份)使用sysdba進行匯出和匯入時。你需要在表空間匯入和匯出

  1. $ imp \'usr/[email protected] as sysdba\'
     
    tablespaces=xxtransport_tablespace=y
  2. file=xxx.dmp datafiles=xxx.dbf 

2. 互動輸入方式: exp tables=scott.emp --不輸入連線字串,直接回車

  1. Export: Release 10.2.0.3.0 - Production on Fri
     Jun 25 07:39:46 2004 Copyright (c) 1982, 2005,
     Oracle. All rights reserved. 

Username: as sysdba --輸入連線字串.

3.如果是寫在引數檔案中,則連線字串需要用雙引號了:

  1. USERID=" as sysdba"

以上就是對Oracle exp備份(匯出/匯入備份)使用sysdba進行匯出和匯入相關的內容的介紹,望你會有所收穫。

【編輯推薦】


 ============================================================

分類:Oracle

使用sys as sysdba許可權進行EXP/IMP與其它使用者稍有不同,詳細內容如下(摘自metalink)

Applies to:

Oracle Server - Enterprise Edition - Version: 8.1.7.0 to 10.2.0.0
Oracle Server - Personal Edition - Version: 8.1.7.0 to 10.2.0.0
Oracle Server - Standard Edition - Version: 8.1.7.0 to 10.2.0.0
Information in this document applies to any platform.

Goal

This document demonstrates how to connect AS SYSDBA when starting an export or import.

Incorrect usage of single or double quotes can result in errors such as:

LRM-00108: invalid positional parameter value 'as'
EXP-00019: failed to process parameters, type 'EXP HELP=Y' for help
EXP-00000: Export terminated unsuccessfully

Or:

LRM-00108: invalid positional parameter value 'sysdba'

Or:

LRM-00108: Message 108 not found; No message file for product=ORACORE, facility=LRM

Solution

SYSDBA is used internally in the Oracle database and has specialized functions. Its behavior is not the same as for generalized users. For example, the SYS user cannot do a transaction level consisent read (read-only transaction). Queries by SYS will return changes made during the transaction even if SYS has set the transaction to be READ ONLY.  Therefore export parameters like CONSISTENT, OBJECT_CONSISTENT, FLASHBACK_SCN, and FLASHBACK_TIME cannot be used.
Starting with Oracle10g, the export shows a warning that the export is not consistent when the export is started with CONSISTENT=Y and connects to the database with the user SYS (or as SYSDBA):

   EXP-00105: parameter CONSISTENT is not supported for this user

Note that Oracle automatically provides read consistency to a query so that all the data that the query sees comes from a single point in time (statement-level read consistency). For export this means that the export of table data is consistent. However, if a table contains nested tables, the outer table and each inner table are exported as separate transactions. And if a table is partitioned, each partition is exported as a separate transaction. If a nested table or a partitioned table was updated during the export, the data that is exported while connected as the SYS schema could be inconsistent.

Typically, there is no need to invoke Export or Import as SYSDBA, except in the following situations:
- at the request of Oracle technical support;
- when exporting a transportable tablespace set with the old-style export utility (Oracle9i and Oracle8i);
- when importing a transportable tablespace set with the old-style import utility (Oracle10g, Oracle9i, and Oracle8i).

The examples below are based on:
- the export of table emp, owned by the demo schema scott.
- schema SYS with the password: change_on_install.
- alias 'instance' that is specified in the tnsnames.ora file and used for a connect to the database.

To invoke Export or Import as SYSDBA, use the following syntax (this syntax is similar when invoking import and the syntax has not changed with the new Oracle10g Export DataPump and Import DataPump utilities):

1. Command line.
Enclose the connect string with a single quote character:

Windows:
exp 'sys/[email protected] as sysdba' tables=scott.emp

Unix(you need to 'escape' the single quote):
exp \'sys/[email protected] as sysdba\' tables=scott.emp

VMS(use [double_quote][single_quote]...[single_quote][double_quote]):
exp "'sys/[email protected] as sysdba'" tables=scott.emp

Note that this VMS syntax is also a valid syntax on Unix and on Windows.


2. Interactive
Do not specify any connect string on the command line, so you will be prompted to enter it. E.g.:

% exp tables=scott.emp

Export: Release 10.1.0.2.0 - Production on Fri Jun 25 07:39:46 2004
Copyright (c) 1982, 2004, Oracle. All rights reserved.

Username: sys/[email protected] as sysdba

Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production
... etc.


3. 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 tostop usingthe USERID parameter in a parameter file.

Contents of file exp.par:

USERID="sys/[email protected] as sysdba"
TABLES=scott.emp

Run export with:

exp parfile=exp.par


Remarks:


1. If you have setup operating system authentication, it is not necessary to specify the SYS schema name, and password. E.g: exp "'/@instance as sysdba'" tables=scott.emp

2. In addition, if you have set the environment variable TWO_TASK (on Unix) or LOCAL (on Windows) or on the server where the database is installed you have set ORACLE_HOME and ORACLE_SID, it is not necessary to specify the @instance. E.g: exp "'/ as sysdba'" tables=scott.emp

3. The export parameters FLASHBACK_SCN and FLASHBACK_TIME cannot be used if the user that invoked the export is connected AS SYSDBA.

4. Known issues:
Bug 1616035"EXPORT FAILED WITH ORA-1031 WHEN LOGIN AS SYSDBA" (not a public bug; fixed in 8.1.7.3 and higher)
Bug 2936288"ORA-1925 OCCURS WHEN IMPORTING AS SYS ACCOUNT"
Bug 2996947"EXP DID NOT RAISE ERROR WHEN SYSDBA EXPORTS WITH CONSISTENT=Y" (not a public bug; fixed in Oracle10g and higher)

References

Bug 2936288- Ora-1925 Occurs When Importing As Sys Account
Note 112269.1- How to set Unix env. variable TWO_TASK and Windows NT counterpart, LOCAL
Note 130332.1- Export / Import Connecting "AS SYSDBA" Fails with LRM-00108 and EXP-00019
Note 204334.1- Parameters FLASHBACK_SCN And FLASHBACK_TIME: Point In Time Export
Note 228482.1- Schema's CTXSYS, MDSYS and ORDSYS are Not Exported
Note 277606.1- How to Prevent EXP-00079 or EXP-00080 Warning (Data in Table xxx is Protected) During Export


參考:exp sysdba     百度

相關推薦

如何用sys as sysdba許可權連線資料庫進行Exp/Imp

Unix or Linux (you need to 'escape' the single quote): exp /'sys/[email protected] as sysdba/' tables=scott.emp VMS (use [double_quote][singl

DJANGO專案WEB的方式對MYSQL資料庫進行備份匯出等管理任務的實現

環境:PYTHON2.7,DJANGO1.9.9 urls.py 加一行: url(r'^mysqldatamanage/', views.mysqldatamanage,name='mysqldatamanage'),   views.py新增對應的方mysqldatam

【筆記】LR配置ODBC連線資料庫進行引數化

很多時候我們需要大量的引數資料,但是光光靠手填寫是非常麻煩的,既然被測物件的資料都在資料庫,那麼我們直接讀取資料庫回來就輕鬆簡便很多。 data  wizard 提供了一個從ODBC的連接獲得資料轉化成引數的過程。過程如下: 一、配置ODBC ①開啟windows 下的控制面板下的管理工具

mybatis連線資料庫進行查詢,返回物件為null

*Mapper.xml中程式碼 <select id="query" parameterType="int" resultType="User"> select username , password from user where id=#{id} </select

msql庫操作使用者許可權連線資料庫

我們這裡以msql資料庫,Navicat for MySQL視覺化操作用具為例。 操作使用者許可權連線資料庫: 定義其實就是:我們都知道,每個電腦都有資料庫,一般我們連線自己電腦的資料庫方法就是,開啟Navicat for MySQL,雙擊你要連線的資料庫。輸入連線賬號和密

5.頁面ajax實現簡單的連線資料庫

(1) 寫傳送程式碼 var myXmlHttpRequest = ""; myXmlHttpRequest = getXmlHttpRequest();             if (myXmlHttpRequest) {  //xmlHttpRequest建立成功了,

Java8下連線資料庫進行增刪改查(CRDU)操作

原始碼 步驟 1.獲取資料庫連線 此處直接用寫好的DBUtil操作,這裡檢視詳解 Connection conn = DBUtil.getConnection(); 2.建立會話,有兩種方式 1.使用Statement建立(因為有

[增刪改查] C++ 之 Qt 連線資料庫進行圖形介面的 CRUD

最近同學在做課程設計,要涉及到資料庫,但是有的同學接觸的語言只有C++,並沒有 java ,HTML,等語言,那麼要怎麼利用現有的C++語言的知識去做一個和資料庫有關的資訊管理系統呢? 筆者強烈建議使用 Qt Creator C++ 編譯器。 一、建立

centos 7.2 oracle sqlplus / as sysdba 連線不上資料庫,報使用者或密碼錯誤

     昨天在想建立使用者時,發現系統的資料庫用sqlplus / as sysdba 連線不上,請教了公司的dba大佬幫忙,解決,發現原因和解決方法如下: 開啟oracle安裝目錄下的oracle/product/11.2.0.1/network/ad

本地連線ORACLE報錯:ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

1.用jdbc連線: String uName = "sys as sysdba"; String uPwd = "Oracle123"; String driverName= "oracle.jdbc.driver.OracleDriver"; String dbUrl = "

ORACLESYS登入報ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER解決方法

文章目錄轉載內容:我的情況: 轉載內容: 情況一:使用sqlplus登入 正常輸入使用者名稱的口令,就會報錯,因為SYS是在資料庫之外的超級管理員,所以我們在登入的時候 要在輸入口令:口令+as sysdba(比如:123456 as sysdba) 情況二:使

python3pymysql連線mysql資料庫進行操作

原創文章,轉載請註明出處 pymysql是python3特有的,python2沒有,只能用mysqldb 需提前建好資料庫和對應的表 第一步,安裝pymysql pip install PyMySQL 第二步,資料庫連線及獲得遊標物件 cursor # 開啟資料庫連線 db

oracle中scott/tiger、sysSYSDBA、system都是什麽

blank ora fff col system detail acl .net details     oracle中scott/tiger、sys、SYSDBA、system都是什麽用     點我,點我~oracle中scott/tiger、sys、SYSDBA、sy

mac下的idea配置jsp+tomcat連線mysql資料庫的環境

第一步 這裡假設IDEA和tomcat都以配置完成,僅差連線資料庫。 去這裡下載連線Mysql所需要的驅動程式mysql-connector-java-5.1.47-bin.jar。 第二步 下載完成後解壓獲取 並把它放在和tomcat伺服器的lib同一個資料夾下

F() 表示式,這裡的F我理解是fast的意思,它能節省讀寫資料庫的時間,在資料庫sql語言層面對欄位進行自增(+= 1)操作

1、F() 表示式,F我理解是fast的意思,用它能節省讀寫資料庫的時間,在資料庫sql語言層面對欄位進行自增(+= 1)操作,在Query Expressions章節介紹,這章沒讀過,趕緊收藏。 https://docs.djangoproject.com/en/2.1/ref/models/

為什麼JNDI連線資料庫

                            為什麼用JNDI連線資料庫   轉載:http://blog.chinaun

解決navicate遠端連線資料庫出現1045 access denied for user 'root'@'localhost' using password yes

  在mysql命令列中執行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456XXX');  GRANT ALL PRIVILEGES 

(二)連線資料庫使用Model物件對資料庫進行操作(CRUD)

var mongoose = require("mongoose"); mongoose.connect("mongodb://127.0.0.1/mongoose_test",{useMongoClient:true}); mongoose.connection.once("open",functio

hibernate連線oracle資料庫進行查詢

按主鍵查詢  dao層 public Emp get(Serializable id){ //通過session的get方法根據載入指定物件 return (Emp)HibernateUtil.currentSession().get(Emp.class,id);

javaweb:JDBC連線MYSQL資料庫詳解,使用JDBC對資料庫進行CRUD操作以及DAO模式的介紹

  JDBC簡介: JDBC全稱為:Java DataBase Connectivity(java資料庫連線)。 SUN公司為了簡化、統一對資料庫的操作,定義了一套Java操作資料庫的規範,稱之為JDBC。 組成JDBC的2個包: 連結:https://pan