程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle創建刪除導入導出命令行總結

Oracle創建刪除導入導出命令行總結

編輯:Oracle數據庫基礎

 在創建數據庫時輸入的密碼,是修改系統默認的密碼,以system和sysman等系統默認身份登錄時要輸入的密碼就是修改後的密碼(創建數據庫時輸入的密碼)

如果要創建新的用戶就必須以system或者sysman(這二者的權限最大)的身份登錄後才可創建

創建用戶格式:create user 用戶名 identified by 密碼(例如:create user cht identifIEd by cht;)

創建完成後,必須分配權限,否則連不上數據庫和sqlplus。

因此要做:grant connect,resource,dba to cht;這樣數據庫就可以通過cht/cht連上了。那些select,update,delete,insert的權限就不必分配了,因為每個用戶默認都有這些基本權限。

命令行方式連接數據庫的方法:

開始==》運行==》cmd

方式一:

輸入sqlplus,回車

輸入用戶名: system,回車

輸入密碼: orcl,回車

方式二:

輸入sqlplus system/orcl@orcl,回車(system是用戶名,orcl是密碼,@後面的orcl是庫的名字)

(數據庫安裝完成後,有兩個系統級的用戶 :

1) system 默認密碼為 :manager

2) sys 默認密碼為 :change_on_install)

創建用戶前必須要先建好臨時表空間和數據表空間兩個表空間,否則用系統默認的表空間不好。

//創建臨時表空間

create temporary tablespace zfmi_temp tempfile 'D:\Oracle\oradata\zfmi\zfmi_temp.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;

說明:

1、zfmi_temp 表空間的名字

2、D:\Oracle\oradata\zfmi\ 存放數據庫文件的地方,一般是安裝數據庫後有控制文件,數據文件和日志文件的文件夾,再加上要創建表空間的名字+dbf(數據文件)

3、100M 表空間的初始大小

4、32M 表空間自動增長的大小

5、2048M 表空間最大的大小

//創建數據表空間

create tablespace zfmi logging datafile 'D:\Oracle\oradata\zfmi\zfmi.dbf' size 100m autoextend on next 32m maxsize 2048m extent management local;

//創建用戶並指定表空間

create user zfmi identifIEd by zfmi default tablespace zfmi temporary tablespace zfmi_temp;

//給用戶授予權限

grant connect,resource dba to zfmi; (dba:指定所有權限)

到這一步新建一個用戶的工作就完成了。

//刪除用戶以及用戶所有的對象

drop user zfmi cascade;

//cascade參數是級聯刪除該用戶所有對象,經常遇到如用戶有對象而未加此參數則用戶刪不了的問題,所以習慣性的加此參數

//刪除表空間

前提:刪除表空間之前要確認該表空間沒有被其他用戶使用之後再做刪除

drop tablespace zfmi including contents and datafiles cascade onstraints;

//including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,表空間刪不掉,所以習慣性的加此參數

//including datafiles 刪除表空間中的數據文件

//cascade constraints 同時刪除tablespace中表的外鍵參照

如果刪除表空間之前刪除了表空間文件,解決辦法:

如果在清除表空間之前,先刪除了表空間對應的數據文件,會造成數據庫無法正常啟動和關閉。

可使用如下方法恢復(此方法已經在Oracle9i中驗證通過):

下面的過程中,filename是已經被刪除的數據文件,如果有多個,則需要多次執行;tablespace_name是相應的表空間的名稱。

$ sqlplus /nolog

SQL> conn / as sysdba;

如果數據庫已經啟動,則需要先執行下面這行:

SQL> shutdown abort

SQL> startup mount

SQL> alter database datafile 'filename' offline drop;

SQL> alter database open;

SQL> drop tablespace tablespace_name including contents;

導入導出命令:

Oracle數據導入導出imp/exp就相當於Oracle數據還原與備份。exp命令可以把數據從遠程數據庫服務器導出到本地的dmp文件, imp命令可以把dmp文件從本地導入到遠處的數據庫服務器中。 利用這個功能可以構建兩個相同的數據庫,一個用來測試,一個用來正式使用。

下面介紹的是導入導出的實例。(注意:不用連接到SQL/plus,直接在DOS下就可以導出。)

數據導出:

1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:daochu.dmp中

exp system/manager@TEST file=d:daochu.dmp full=y

2 將數據庫中system用戶與sys用戶的表導出

exp system/manager@TEST file=d:daochu.dmp owner=(system,sys)

3 將數據庫中的表inner_notify、notify_staff_relat導出

exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)

4 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出

exp system/manager@TEST file=d:daochu.dmp tables=(table1) query=" where filed1 like '00%'"

上面是常用的導出,對於壓縮,既用winzip把dmp文件可以很好的壓縮。

也可以在上面命令後面 加上 compress=y 來實現。

數據的導入

1 將D:daochu.dmp 中的數據導入 TEST數據庫中。

imp system/manager@TEST file=d:daochu.dmp

imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y

上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。

在後面加上 ignore=y 就可以了。

2 將d:daochu.dmp中的表table1 導入

imp system/manager@TEST file=d:daochu.dmp tables=(table1)

基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然後導入。

注意:

操作者要有足夠的權限,權限不夠它會提示。

數據庫時可以連上的。可以用tnsping TEST 來獲得數據庫TEST能否連上。

附錄一:

給用戶增加導入數據權限的操作

第一,啟動sql*puls

第二,以system/manager登陸

第三,create user 用戶名 IDENTIFIED BY 密碼 (如果已經創建過用戶,這步可以省略)

第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,

DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,

DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字

第五, 運行-cmd-進入dmp文件所在的目錄,

imp userid=system/manager full=y file=*.dmp

或者 imp userid=system/manager full=y file=filename.dmp

執行示例:

F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp

屏幕顯示

Import: Release 8.1.7.0.0 - Production on 星期四 2月 16 16:50:05 2006

(c) Copyright 2000 Oracle Corporation. All rights reserved.

連接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production

With the Partitioning option

JServer Release 8.1.7.0.0 - Production

經由常規路徑導出由EXPORT:V08.01.07創建的文件

已經完成ZHS16GBK字符集和ZHS16GBK NCHAR 字符集中的導入

導出服務器使用UTF8 NCHAR 字符集 (可能的ncharset轉換)

. 正在將AICHANNEL的對象導入到 AICHANNEL

. . 正在導入表 "INNER_NOTIFY" 4行被導入

准備啟用約束條件…

成功終止導入,但出現警告。

附錄二:

Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的。

先建立import9.par,

然後,使用時命令如下:imp parfile=/filepath/import9.par

例 import9.par 內容如下:

FROMUSER=TGPMS

TOUSER=TGPMS2 (注:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)

ROWS=Y

INDEXES=Y

GRANTS=Y

CONSTRAINTS=Y

BUFFER=409600

file==/backup/ctgpc_20030623.dmp

log==/backup/import_20030623.log

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved