Oracle 數據泵方式導出(expdp)導入(impdp)數據,更新數據庫

數據泵方式導入(impdp)數據,更新數據庫

注1:首先要確定你導出的數據庫是用數據泵的方式導出(expdp)的

注2:我是在有安裝Oracle數據庫的服務器上操作的

1. 查看當前用戶所在表空間

  1. 登入你要刪除的庫的用戶
  2. 查看當前用戶所在表空間

-- 如何查詢當前用戶的表空間名稱?

select default_tablespace from dba_users where username='AUTH_NEW'

2. 管理員的數據庫賬號密碼登錄

  1. 用plsql工具切換管理員賬號
  2. 也可以 直接進入黑窗口 cmd --> sqlplus / as sysdba

/*以管理員身份登錄*/

sqlplus / as sysdba

3. 刪除表空間、用戶

  1. 先刪除表空間(就是步驟1查出的表空間)

drop tablespace AUTH including contents and datafiles;

  1. 再刪除用戶

drop user AUTH_NEW cascade;

4.創建表空間、用戶、授權

注1:下面這些命令建議都在黑窗口下面敲,在plsql登入的管理員賬號下我昨天試了偶爾不太順利

注2:創建一個用戶名/密碼和上面刪除的一樣的就好,這樣就不用去改項目裏面配置的連接數據庫用戶密碼了;

      1.管理員賬號登錄

           cmd ----> sqlplus / as sysdba

      2. 創建表空間

create tablespace AUTH datafile 'D:\lmgd\tablespace\AUTH.dbf' size 500M autoextend on next 200M;

create tablespace AUTH -- 表空間名

datafile 'E:\wonders\lmgd\tablespace\AUTH.dbf' --表空間放的路徑 路徑+文件名

size 500M autoextend on next 200M --表空間的大小,

     3. 創建用戶

 create user AUTH_NEW identified by AUTH_NEW default tablespace AUTH;

     4.分配權限

grant dba to AUTH_NEW; -- 用這個最高權限

注:分配最高權限是由於,等會導入數據庫的時候怕沒有權限,不能導入;

 

導入(impdp)數據庫

5. 建立導入路徑(把導出的eamdb.dmp放在此路徑下),並授權。

create directory original as 'D:\lmgd\original';

grant read,write on directory original to AUTH_NEW;

 

  1. 然後把你按照你創建的目錄手動創建一個文件夾;我的就是在 D盤lmm目錄下創建一個 original文件夾

             D:\lmgd\original

    2. 然後再手動把你要導入的數據庫 .dmp文件放到、複製到 original文件夾裏面即可

6.導入數據庫

注:現在重新打開一個黑窗口,不用以 sqlplus管理員的身份登入啦!不然會報錯

cmd --> 然後再敲下面的命令

-- 正確的命令

impdp AUTH_NEW/[email protected]:1521/ORCLPDB REMAP_SCHEMA = dbuser:AUTH_NEW table_exists_action = replace directory=original dumpfile=xxxx.dmp

注意:這個 127.0.0.1換成你自己的服務器地址就好,然後dmp文件換成你自己的就好

-- 失敗的命令

-- 這個錯的 指定文件夾的名字 而不是路徑

impdp AUTH_NEW/[email protected]:1521/ORCLPDB REMAP_SCHEMA = dbuser:AUTH_NEW table_exists_action = replace directory=D:\lmgd\original dumpfile=xxxx.dmp

報錯整理

1.步驟6直接是以管理員身份登錄 sqlplus,再敲導入數據庫命令步驟的

報錯: SP2-0734:未知的命令開頭“IMPDP”

解決:重新打開一個黑窗口(cmd)敲導入數據庫命令即可

 

2.步驟6敲導入數據庫時報錯

報錯:

ORA-39002: 操作無效

ORA-39070: 無法打開日誌文件。

ORA-29283: 文件操作無效

 

 

原因:

  1. 沒有給用戶授權,步驟5有寫需要給用戶授創建的文件夾的讀寫權限;
  2. 檢查你的導入命令是否有問題

 

導出(expdp)數據庫

注:記得 cmd--->然後管理員賬號登入 sqlplus

/*以管理員身份登錄*/

sqlplus / as sysdba

以下簡單介紹schema的導出

以schema方式導出生產庫用戶下所有對象,並導入測試庫。

注:eamdb爲生產庫,eamprd爲生產庫用戶,密碼爲eamprd

eamuat爲測試庫,eamprduat爲測試庫用戶,密碼爲eamprduat

 

一、生產庫的導出(以sqlplus命令行的方式)。

 1.以sys或者system用戶身份登錄生產數據庫。

 2.創建schema導出路徑(DUMP_DIR名稱可替換),並在dba_directories中查看

create directory DUMP_DIR as ‘/xxx/xxx’; select * from dba_directories;

 3.把導出路徑與導出權限授權給eamprd,如果用system等高級帳號導出,則不用。

grant read,write on directory DUMP_DIR to eamprd; grant exp_full_database to eamprd;

 4.退出sqlplus,在oracle系統用戶下運行,導出對應的SCHEMA,推薦第二種。

expdp eamprd/eamprd@eamdb DIRECTORY=DUMP_DIR DUMPFILE=eamdb.dmp expdp system/xxxx@eamdb directory=dump_dir dumpfile=eamdb.dmp schemas=eamprd

    導出重點參數:

    版本:高往低需加version=xx.x  導出某些張表tables=xxxx  content=metadata_only(只要結構)   content=data_only(只要數據)

 5.把eamdb.dmp拷貝到測試庫。

 

導出直接複製這篇文章的然後導入數據庫也有參考這篇COOL:

https://www.cnblogs.com/livebetter/p/9248568.html

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章