1. 程式人生 > >ORACLE 通過IMPDP匯入DMP檔案時更改使用者及表空間方法

ORACLE 通過IMPDP匯入DMP檔案時更改使用者及表空間方法

impdp預設匯入expdp的dmp檔案時,是需要建立相同名稱的表空間及臨時表空間的;而且會自動建立相同名稱的使用者名稱。

但是有時候我們想更改這種預設設定,這個時候就要用到impdp的特殊引數remap_schema(更改使用者名稱)及remap_tablespace(更改儲存表空間);

假設我們有一個example.dmp檔案,原來使用者為olduser,儲存空間為example,example_temp;

我們需要更改使用者名稱及儲存表空間匯入到新的庫中,只需要按照如下步驟進行:

1、建立新的表空間(假設名稱:newtablespace)及臨時表空間(假設名稱:newtablespace_temp),語句如下

–表空間

create tablespace newtablespace
logging  
datafile 'D:\app\Administrator\oradata\newtablespace.dbf' 
size 50m  
autoextend on  
next 50m maxsize 20480m
extent management local;  

–臨時表空間

create temporary tablespace newtablespace_temp 
tempfile 'D:\app\Administrator\oradata\newtablespace_temp.dbf'
size 50m autoextend on next 50m maxsize 20480m extent management local;

–注:具體引數及引數值根據實際情況調整。

2、建立使用者(此步驟可省略)

create user newuser identified by admin  
default tablespace newtablespace
temporary tablespace newtablespace_temp;

3、匯入

在oracle伺服器cmd執行如下命令:

impdp system/[email protected] 
directory
=DATA_PUMP_DIR dumpfile=example.DMP REMAP_SCHEMA=olduser:newuser remap_tablespace=EXAMPLE:newtablespace,EXAMPLE_TEMP:newtablespace_temp

注:

1、此處directory使用了系統自帶的,如果需要自定義,請使用 create directory命令建立;

2、remap_tablespace引數可以寫多個表空間隱射,多個表空間轉換用逗號隔開。

完成以上步驟,通過plsql利用newuser登入資料庫,可以檢視到newuser下的所有匯入的表已轉入newtablespace表空間了。

其他備註:

1、expdp命令:
expdp user/[email protected] schemas=user dumpfile=expdp.dmp directory=data_dir logfile=expdp.log;
2 、impdp匯入的過程中會自動建立使用者,根據以前使用exp/imp的習慣,在imp之前我們通常會建好表空間和使用者。在使用impdp的時候,如果先建好了使用者,匯入的過程中會提示:
“ORA-31684:Object type user: XXX already exists”,所以impdp之前可以不用先建使用者,不過出現上面那個提示也不影響。
3、impdp命令在匯入資料時,如果使用者不存在,則會自動建立該使用者,因為expdp匯出的dmp檔案中包含了建立使用者的指令碼資訊(包括密碼,預設表空間,臨時表空間等)。impdp自動建立使用者有一個前提條件,就是需要首先建立使用者的預設表空間和臨時表空間,如果預設表空間或者臨時表空間不存在,則自動建立使用者會失敗,導致匯入資料的失敗。
4、常用查詢語句:
#檢視使用者和預設表空間的關係
select username,default_tablespace,temporary_tablespace from dba_users;
#查詢所有的表空間
select tablespace_name from dba_tablespaces;
#查詢某使用者下所有表的表名
select count(*) from dba_tables where owner='TEST';
#查詢表空間檔案所在路徑
select * from dba_data_files where tablespace_name = '大寫表空間名';
#查詢oracle資料泵expdp匯出目錄
select * from dba_directories;

5、高版本資料匯入到低版本中:
如果是使用impdp/empdp來進行匯出和匯入資料庫的話,在高版本的資料庫中匯出dmp檔案時需要在末尾增加要匯入的資料庫的版本號(低版本oracle),匯出語句如下:
expdp \'sys/pwdphxg0898 as sysdba\' DIRECTORY=db_bak DUMPFILE=201701221613.dmp full=y version=11.2.0.1.0

相關推薦

ORACLE 通過IMPDP匯入DMP檔案更改使用者空間方法

impdp預設匯入expdp的dmp檔案時,是需要建立相同名稱的表空間及臨時表空間的;而且會自動建立相同名稱的使用者名稱。 但是有時候我們想更改這種預設設定,這個時候就要用到impdp的特殊引數remap_schema(更改使用者名稱)及remap_table

oracle通過cmd匯入dmp檔案和一些常見問題

http://blog.csdn.net/makenzie/article/details/68486412;在開發和專案部署過程中,我們經常會碰到要將別人的dmp資料庫匯入到我們自己電腦上來,那麼這個應該怎麼匯入呢?下面有一些簡單的步驟:先進入碟符,例如你的oracle裝在

oracleimpdp 匯入dmp檔案

百度整理如下/*分為7步 */ /*第1步:建立臨時表空間(注意:D:\Project\OracleTableSpace\FHADMIN\ 手動建立路徑)  */ create temporary tablespace C##FHADMIN_TEMP  tempfile '

oracle 資料庫imp操作匯入dmp檔案空間問題

轉:http://blog.csdn.net/zhuxiaowei716/article/details/44651465 一: 假設資料使用者USER1使用預設表空間TS1,使用者USER2使用預設表空間TS2,現在將USER1的資料匯入到USER2,要求使用表空

oracle資料庫通過cmd匯入dmp檔案

在開發專案和部署的過程中,經常會遇到要將dmp檔案匯入到自己的電腦上的問題,今天我們來聊一下匯入的簡單步驟: 第一步:win+R進入執行視窗,輸入cmd,開啟黑視窗. 第二步:進入到oracle的安裝路徑中的BIN目錄下,現在就可以執行匯入命令了.      ipm n

使用impdp匯入dmp檔案

首先說明的是,最好匯出和匯入的使用者保持一致,不然會產生很多不必要的麻煩,還有資料庫的字符集也要確認好。使用oracle系統使用者登入,然後sqlplus /nolog進入資料庫命令列介面, conn /as sysdba; startup; 首先在sql命令執行介面建

impdp匯入dmp檔案ORA-39088: 檔名不能包含路徑說明ORA-39001: 引數值無效ORA-39000: 轉儲檔案說明錯誤

C:\Users\zengmiaogen>impdp yinda/[email protected]:1521/XE file=c:\hz_toolbox_20160613.dmp f

Oracle用OEM和命令列方式建立使用者空間

Oracle Enterprise Manager(Oracle企業管理器,簡稱OEM)、 預設訪問地址:https://localhost:1158/em 用命令列建立使用者及表空間的方式見文末、 一、登入OEM 將OracleDBConsoleorcl服務開啟、 以SY

使用windows命令建立Oracle新使用者並授權匯入dmp檔案

1.開啟資料庫驅動 sqlplus/nolog (此處切記不能有分號) 2.以管理員許可權登入 conn / as sysdba; 3.建立新使用者 create user 使用者名稱 identified by 密碼; 4.給使用者授權 grant resour

oracle 匯入dmp 檔案(易用)

第一種:使用配置oracle 客戶端監聽方式匯入 imp 使用者名稱/密碼@監聽名 file=檔案路徑 full=y ps: imp test/[email protected] file=f:\test.dmp 配置監聽 ORCL = (DE

Oracle 匯入 dmp 檔案

1、首先,我們可以先建立自己的一個使用者表空間,建立表空間的格式如下: create tablespace test(表空間的名字)  datafile 'D:\oracle\product\10.2.0\userdata\test.dbf'  (這邊可以寫成oracle的

Oracle建立空間、建使用者、匯入dmp檔案

1、建立臨時表空間: create temporary tablespace user_temp   tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf'  size 50m   autoextend

docker匯入dmp檔案oracle容器

 這裡講下把 匯入的dmp檔案匯入到oracle容器中 1. 上傳檔案 把dmp檔案上傳到伺服器,然後在複製到oracle容器中 首先你先把檔案上傳到伺服器,然後在cp到容器中 docker cp /home/production/test.dmp 4480e9

oracle資料庫插入時間戳報錯;匯入dmp檔案亂碼

產生原因: 資料庫字符集跟電腦客戶端環境變數字符集不一致會導致時間戳插入報錯; 資料庫字符集跟電腦客戶端環境變數字符集不一致會導致使用PL_SQL工具匯入的sql檔案中的資訊在資料庫亂碼 解決辦法: 檢視資料庫字符集 select * from nls

oracle 匯出、匯入DMP格式的檔案

開啟cmd,然後執行下面語句 匯出: exp seh(使用者名稱)/""“[email protected](密碼)”""@SMJK(例項名) file=C:\Users\Administra

linux 下oracle匯入dmp檔案

最近要到某公司進行poc演示,整了個新專案,需要我資料庫修改專案,這才有了這篇部落格。 首先進入linux下oracle路徑下,使用者不是我建立的,所以我就不寫了,自行百度,想必也是十分簡單的事。 這就算已經登入上

oracledmp匯入到不同空間 oracledmp檔案匯入到不同空間 oracledmp檔案匯入到不同的空間方法: 1、exp USER/
oracle資料庫利用dos視窗匯入dmp檔案資料

用dos視窗把dmp檔案恢復資料庫時,資料庫中需要有已經存在的資料庫例項,使用者名稱和密碼。 可以匯入的本機的oracle資料庫也可以匯入到其他機器上的oracle 資料庫(所在的本機必須能連線上要匯入的安裝oracle 資料庫的機器)。 匯入的命令: imp 使用者名稱/

oracle資料庫,plsql匯入dmp檔案中文亂碼

導庫的時候遇到的,匯入表後中文亂碼,修改了客戶端的編碼依舊亂碼, 參考了,添加了環境變數,解決。 1、regedit開啟登錄檔,我的編碼是這個: 2、參考原文,在我本機添加了環境變數:AMERICAN_AMERICA.ZHS16GBK 3、補充一下我查詢字符集

ORACLE資料庫中匯出DMP檔案或將DMP檔案匯入ORACLE資料庫的兩種操作

1 淺析DMP       DMP是一種資料庫檔案,其內容包括了整個資料庫和表以及用於的所有資訊,如儲存過程,表定義,表結構等。用於程式設計師除錯程式。2 匯出DMP檔案的兩種方式      匯出資料庫的DMP檔案一般使用命令提示符或SQLPlus兩種方式。這兩種方式在命令上