Oracle imp 匯入資料到另一個表空間
很多人在進行資料遷移時,希望把資料匯入不同於原系統的表空間,在匯入之後卻往往發現,資料被匯入了原表空間。
本例舉例說明解決這個問題:
如果預設的使用者具有DBA許可權,那麼匯入時會按照原來的位置匯入資料,即匯入到原表空間,下面透過演示匯入不同表空間。
[oracle@testsvr3 orcl]$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 28 19:09:40 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> CREATE TABLESPACE TESTSPACE
DATAFILE '/var/oracledata/orcl/TEST01.dbf' size 120M
EXTENT MANAGEMENT local; 2 3
DATAFILE '/var/oracledata/orcl/TEST01.dbf' size 120M
EXTENT MANAGEMENT local; 2 3
表空間已建立。
SQL> disc
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 斷開
SQL> conn ms/ms
已連線。
SQL> create table test_objects tablespace TESTSPACE as select * from dba_objects;
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 斷開
SQL> conn ms/ms
已連線。
SQL> create table test_objects tablespace TESTSPACE as select * from dba_objects;
表已建立。
SQL> create index ind_object_type on test_objects(OBJECT_TYPE) tablespace TESTSPACE;
索引已建立。
SQL> set linesize 200
SQL> col segment_name for a50
SQL> select segment_name,segment_type from dba_segments where tablespace_name='TESTSPACE';
SQL> col segment_name for a50
SQL> select segment_name,segment_type from dba_segments where tablespace_name='TESTSPACE';
SEGMENT_NAME SEGMENT_TYPE
-------------------------------------------------- ------------------
TEST_OBJECTS TABLE
IND_OBJECT_TYPE INDEX
SQL> quit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 斷開
-------------------------------------------------- ------------------
TEST_OBJECTS TABLE
IND_OBJECT_TYPE INDEX
SQL> quit
從 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options 斷開
上面建立了一個新的表空間,並在表空間上新建了一個表。
下面備份這個表。
[oracle@testsvr3 orcl]$ exp ms/ms file=test_objects.dmp tables=test_objects log=exptab.log
Export: Release 10.2.0.1.0 - Production on 星期一 3月 28 19:19:08 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
已匯出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即將匯出指定的表透過常規路徑...
. . 正在匯出表 TEST_OBJECTS匯出了 53433 行
成功終止匯出, 沒有出現警告。
. . 正在匯出表 TEST_OBJECTS匯出了 53433 行
成功終止匯出, 沒有出現警告。
備份後,刪除剛才的表空間:
SQL> drop tablespace TESTSPACE INCLUDING CONTENTS;
表空間已刪除。
建立要匯入的新使用者:
SQL> CREATE USER test IDENTIFIED BY test
PROFILE DEFAULT
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK; 2 3 4 5
PROFILE DEFAULT
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP
ACCOUNT UNLOCK; 2 3 4 5
使用者已建立。
SQL> grant connect,resource,dba to test;
授權成功。
回收使用者unlimited tablespace許可權,這樣就可以匯入到使用者預設表空間:
SQL> revoke unlimited tablespace from test;
撤銷成功。
SQL> alter user test quota 0 on USERS;
使用者已更改。
SQL> alter user test quota unlimited on USERS;
使用者已更改。
重新匯入資料
[oracle@testsvr3 orcl]$ imp test/test file=test_objects.dmp fromuser=ms touser=test
Import: Release 10.2.0.1.0 - Production on 星期一 3月 28 19:26:32 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
經由常規路徑由 EXPORT:V10.02.01 建立的匯出檔案
警告: 這些物件由 MS 匯出, 而不是當前使用者
已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的匯入
. 正在將 MS 的物件匯入到 TEST
. . 正在匯入表 "TEST_OBJECTS"匯入了 53433 行
成功終止匯入, 沒有出現警告。
[oracle@testsvr3 orcl]$
. 正在將 MS 的物件匯入到 TEST
. . 正在匯入表 "TEST_OBJECTS"匯入了 53433 行
成功終止匯入, 沒有出現警告。
[oracle@testsvr3 orcl]$
[oracle@testsvr3 orcl]$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 28 19:26:48 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> select segment_name,segment_type,tablespace_name from dba_segments where segment_name='TEST_OBJECTS';
SEGMENT_NAME
--------------------------------------------------------------------------------
SEGMENT_TYPE TABLESPACE_NAME
------------------ ------------------------------
TEST_OBJECTS
TABLE USERS
--------------------------------------------------------------------------------
SEGMENT_TYPE TABLESPACE_NAME
------------------ ------------------------------
TEST_OBJECTS
TABLE USERS
發現該表已經成功匯入了test使用者預設表空間USERS中。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-689891/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用IMP將資料匯入指定的表空間
- oracle expdp、impdp匯入從原表空間更換到其他表空間 ----匯入到另個表空間測試Oracle
- IMPDP 多個表空間物件匯入到一個表空間中物件
- Oracle 傳輸表空間-EXP/IMPOracle
- 使用exp/imp來移動表空間到另一個資料庫中的例子資料庫
- oracle技術_使用exp/imp 匯入11g資料到9iOracle
- oracle資料匯出匯入(exp/imp)Oracle
- Oracle如何把一個表匯出匯入到另一個伺服器上的另一個表裡Oracle伺服器
- Oracle建立使用者、表空間、匯入匯出、...命令Oracle
- 使用sqlldr匯入文字資料到oracleSQLOracle
- Oracle資料匯入匯出imp/exp命令Oracle
- oracle資料的匯入匯出imp/expOracle
- OracleDatabase——資料庫表空間dmp匯出與匯入OracleDatabase資料庫
- 關於oracle imp 匯入避開若干表Oracle
- 把資料匯入到不同的表空間
- 如何把資料匯入不同的表空間
- impdp匯入資料後,system 表空間整理
- Oracle資料匯入匯出imp/exp命令(轉)Oracle
- Oracle匯入(imp )與匯出(exp )Oracle
- ORACLE匯入匯出命令exp/impOracle
- expdp/impdp來解決exp/imp出現的錯誤並匯入指定表空間
- Oracle資料庫匯入匯出。imp匯入命令和exp匯出命令Oracle資料庫
- Sql Server 匯入另一個資料庫中的表資料SQLServer資料庫
- 通過oracle10g exp/imp在不同表空間間遷移資料Oracle
- Oracle 遠端匯出匯入 imp/expOracle
- 匯入表的部分資料到測試環境
- SQLServer匯出匯入資料到MySQLServerMySql
- 資料匯入匯出EXP/IMP
- exp/imp匯出匯入資料
- oracle的imp報表空間不存在的解決Oracle
- imp/EXP 表空間轉換問題
- Oracle exp/imp匯出匯入工具的使用Oracle
- Oracle建立刪除使用者、角色、表空間、匯入匯出...命令總結Oracle
- 解決imp匯入時,使用源DB中表空間名的問題
- 使用mysqlimport匯入資料到mysqlMySqlImport
- oracle imp匯入幾點小記Oracle
- Oracle使用資料泵在異機之間匯出匯入表Oracle
- Oracle中exp,imp(匯入匯出)資料遷移注意事項Oracle