當前位置:首頁 » 數據倉庫 » oracle資料庫導出所有用戶
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

oracle資料庫導出所有用戶

發布時間: 2023-08-06 22:51:59

㈠ 怎樣導出oracle整個資料庫

1 將資料庫跡兆蘆TEST完全導出,用戶姿帶名system 密碼manager 導出到D:\chu.dmp中x0dx0a exp system/manager@TEST file=d:\chu.dmp full=yx0dx0a2 將資料庫中system用戶與sys用戶的表導出x0dx0a exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)x0dx0a3 將資料庫中的表table1 、table2導出x0dx0a exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2) x0dx0a4 將資料庫中的表table1中的欄位filed1以"00"打頭的猜洞數據導出x0dx0a exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like ༼%'\"x0dx0a x0dx0a 上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。x0dx0a 不過在上面命令後面 加上 compress=y 就可以了

㈡ oracle exp 怎麼導出所有用戶

第一步我們要從一台windows伺服器 A 上導出關於 Test1 這個用戶的所有對象,然後導入到linux伺服器 B 上的 Test2用戶。(已知Test1密碼為Test1passwd 或者用system用戶導出也行)
2.B機器上Test2用戶不存在,或Test2用戶已經存在 兩種情況(用戶存在相對比較復雜)
如果Test2用戶已經存在(數據沒用,可以刪除),級聯刪除用戶及所有對象(有可能遇到有人正在連接,刪除不掉的情況 方法參照下文),重新創建賬號並賦權。
3.賦予適當的許可權
操作步驟:
1.從 A 上導出數據文件到指定目錄(目錄名稱自己定義,只要自己能找到就行,和用戶名沒有關系)
sqlplus /nolog conn / as sysdba exp Test1/Test1passwd owner=Test1 file=D:\files\Test1.dmp

2.在A機器上查看用戶默認表空間,以便導入時創建一樣的表空間
SQL> select username,default_tablespace from dba_users where username ='TEST1'; USERNAME DEFAULT_TABLESPACE TEST1 CMIS

3.查看用戶使用的表空間
SQL> select DISTINCT owner ,tablespace_name from dba_extents where owner like 'TEST1'; OWNER TABLESPACE_NAME TEST1 XSL TEST1 CMIS

4.查看錶空間對應的數據文件,以便在B上創建大小合適的數據文件。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name in ('CMIS','XSL'); FILE_NAME BYTES TABLESPACE D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS 8728346624 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS01.ORA 8204058624 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS02.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS03.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS04.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS05.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBCMIS06.ORA 4194304000 CMIS D:ORACLEPRODUCT10.2.0ORADATACMISDBXSL.ORA 4194304000 XSL D:ORACLEPRODUCT10.2.0ORADATACMISDBXSL01.ORA 4194304000 XSL D:ORACLEPRODUCT10.2.0ORADATACMISDBXSL02.ORA 4194304000 XSL

5.檢查B機器的表空間,看是否存在CMIS,XSL

select name from v$tablespace where name in ('XSL','CMIS');

查找不到,說明沒有這個兩個表空間,需要創建。
6.要導入數據的server沒有xsl,cmis表空間。創建

create tablespace xsl logging datafile
'/opt/oracle/proct/10.2.0/oradata/xsl.dbf'
size 15000M extent management local;
create tablespace cmis logging datafile
'/opt/oracle/proct/10.2.0/oradata/cmis.dbf' size 37000M extent management local;

7.在伺服器B上查找用戶是否已經存在

SQL> select username from dba_users where username='TEST2';

接下來分為兩種情況,如果不存在那麼按照 [一] 方法,如果存在按照 [二]
創建用戶

create user Test2 identified by Test2passwd default tablespace cmis temporary tablespace temp profile default;

如果用戶存在
drop user Test2 cascade;

(刪除用戶及其擁有的所有對象)
此時如果這個用戶在連接,drop會出錯,必須先殺掉用戶的session,然後再drop user

SELECT 'alter system kill session '''
||SID||','||SERIAL||''' immediate;
' FROM V$SESSION WHERE USERNAME='TEST2';
(如果用戶正在連接,構建命令並殺掉)
(上面的語句是構建出殺掉Test2用戶session的語句)比如:

'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL||'''IMMEDIATE;' alter system kill session '129,3570' immediate; alter system kill session '131,2' immediate; alter system kill session '133,572' immediate; alter system kill session '135,1456' immediate; alter system kill session '136,487' immediate; alter system kill session '138,302' immediate; alter system kill session '139,366' immediate;

再復制這些語句,粘貼到sqlplus中執行,來殺掉Test2的session。
create user Test2 identified by Test2passwd default
tablespace cmis temporary tablespace temp profile default;
(創建用戶)
grant connect,resource to Test2;

(授權)
8.把文件從A機器上拷貝到B機器上。假如拷貝過來放到tmp目錄下/tmp/Test1.dmp
9.最後在A機器上按用戶導入數據
一定注意執行imp時要退出sqlplus,在linux的shell下執行imp

[oracle@test2 ~]$ imp Test2/Test2passwd fromuser
=Test1 touser =test2 file=D:\xsldb.DMP log =app/oracle/file/log/DEV_PMODOC.log;
以上的相關內容就是對Oracle資料庫exp imp按用戶導出導入實例的介紹,望你能有所收獲。

㈢ 如何導出一個oracle資料庫的所有用戶的Sql腳本

需要用到exp命令。
1、首先按鍵盤的win鍵+R鍵,輸入cmd,回車,進入命令提示符。

2、 使用cd命令進入要存放文件的路徑下。

3、輸入exp命令,「exp 用戶名/密碼@本地實例名 file=導出文件名稱.dmp log=生成日誌名稱.log owner=用戶名」(不含引號),如圖:

其中:owner=用戶名 就是被導出的用戶下的全部內容。

㈣ oracle資料庫里的數據怎麼導出

Oracle數據導入導出imp/exp
功能:Oracle數據導入導出imp/exp就相當與oracle數據還原與備份。

大多情況都可以用Oracle數據導入導出完成數據的備份和還原(不會造成數據的丟失)。
Oracle有個好處,雖然你的電腦不是伺服器,但是你裝了oracle客戶端,並建立了連接
(通過Net Configuration Assistant添加正確的服務命名,其實你可以想成是客戶端與伺服器端 修了條路,然後數據就可以被拉過來了)
這樣你可以把數據導出到本地,雖然可能伺服器離你很遠。
你同樣可以把dmp文件從本地導入到遠處的資料庫伺服器中。
利用這個功能你可以構建倆個相同的資料庫,一個用來測試,一個用來正式使用。

執行環境:可以在SQLPLUS.EXE或者DOS(命令行)中執行,
DOS中可以執行時由於 在oracle 8i 中 安裝目錄\$ora10g\BIN被設置為全局路徑,
該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。
oracle用java編寫,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE這倆個文件是被包裝後的類文件。
SQLPLUS.EXE調用EXP.EXE、IMP.EXE他們所包裹的類,完成導入導出功能。

下面介紹的是導入導出的實例,向導入導出看實例基本上就可以完成,因為導入導出很簡單。
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 將資料庫中的表table1 、table2導出
exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2)
4 將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like '00%'\"

上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面 加上 compress=y 就可以了

數據的導入
1 將D:\chu.dmp 中的數據導入 TEST資料庫中。
imp system/manager@TEST file=d:\chu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上 ignore=y 就可以了。
2 將d:\chu.dmp中的表table1 導入
imp system/manager@TEST file=d:\chu.dmp tables=(table1)

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

注意:
你要有足夠的許可權,許可權不夠它會提示你。
資料庫時可以連上的。可以用tnsping TEST 來獲得資料庫TEST能否連上。

數據導出:
exp hkb/hkb@boss_14 full=y file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbfull.log;

導出注意事項:導出的是當前用戶的的數據,當前用戶如果有DBA的許可權,則導出所有數據!

同名用戶之間的數據導入:
imp hkb/hkb@xe file=c:\orabackup\hkbfull.dmp log=c:\orabackup\hkbimp.log full=y

不同名之間的數據導入:
imp system/test@xe fromuser=hkb touser=hkb_new file=c:\orabackup\hkbfull.dmp

log=c:\orabackup\hkbimp.log;