數據庫學習其一 oracle11g數據泵導入導出


一、檢查環境一致性

檢查數據庫客戶端與服務端字符編碼,以避免后續各種各樣的問題

查詢服務端編碼

注意最好用sqlplus查詢,用plsql有時候會出現查詢不一致問題,如下圖同一個語句在plsqlsqlplus中獲得了不同的查詢結果

 

也可以在NLS_DATABASE_PARAMETERS中查詢,如下字符集為AMERICAN_AMERICA.AL32UTF8

 

查詢客戶端編碼(環境為WINDOWS)

環境變量之中字符集變量設置,變量名NLS_LANG 值設置與服務器端字符集編碼一致

 

注冊表中的Oracle字符集設置,NLS_LANG 值設置與服務器端字符集編碼一致

二、數據導出:

1、運行cmd

2、登錄數據庫,輸入命令:sqlplus

 

使用管理員角色登錄需要在用戶名后加as sysdba”  例如:sys as sysdba,也可以輸入sqlplus 非用戶密碼登陸也可以 sqlplus / as sysdba

 

3、同樣創建目錄路徑:輸入命令:create directory data_dir as 'D:\ora\data' ;

 

  1)data_dir為路徑名稱,可自命名,D:\ora\data為數據庫導出文件存放路徑(路徑必須存在)

  2)、使用命令:select * from dba_directories可查詢用戶創建目錄。

 

4、為oracle用戶授予訪問數據目錄的權限,輸入命令:Grant read,write on directory data_dir to dbuser;

  dbuser為數據庫用戶名

 

5、導入導出操作授權,輸入命令:grant exp_full_database,imp_full_database to dbuser;  
6、數據導出,執行命令:expdp dbuser/123456@orcl schemas=dbuser dumpfile=expdp.dmp directory=data_dir logfile=expdp.log

注意該命令是在cmd下執行,不是在sqlplus窗口中執行 

命令詳情:

  expdp [為用戶名]/[密碼]@[服務名]  

  schemas=[用戶名]  

  dumpfile=[導出數據庫文件名]  

  directory=[設置目錄名]  

  logfile=[日志文件文件名

三、數據導入:

1運行cmd

2登錄數據庫,輸入命令:sqlplus

使用管理員角色登錄需要在用戶名后加“ as sysdba”  例如:sys as sysdba

非用戶密碼登陸也可以sqlplus / as sysdba  

3、創建表空間,用戶以及用戶授權dba(本地測試如單獨授予權限 導入導出操作授權,輸入命令:grant exp_full_database,imp_full_database to user;

create tablespace table_space
logging
datafile 'E:\app\oradata\orcldb\space.DBF'
size 50m
autoextend on
next 50m maxsize 30000m
extent management local;

create user user
identified by "123456"
default tablespace table_space
temporary tablespace TEMP
profile DEFAULT;


grant dba to user;

后期如果需要擴充表空間可以用:

alter tablespace table_space add datafile 'E:\app\oradata\orcldb\space1.DBF'
size 50m
autoextend on
next 50m maxsize 30000m;

 

4創建目錄路徑:輸入命令:create directory data_dir as 'D:\ora\data' ; 路徑里存放之前導出的數據庫dmp文件

  1)data_dir為路徑名稱,可自命名,D:\ora\data為數據庫導出文件存放路徑(路徑必須存在);

  2)、使用命令:select * from dba_directories可查詢用戶創建目錄。

 

5oracle用戶授予訪問數據目錄的權限,輸入命令:Grant read,write on directory data_dir to user;

 user之前建立的導入數據庫用戶名。

 

6數據導入,執行命令:impdp user/123456@orcl REMAP_SCHEMA = dbuser:user table_exists_action = replace directory=data_dir dumpfile=expdp.dmp logfile=expdp.log

 

命令詳情:

  impdp [用戶名]/[密碼]@[服務名]  

  REMAP_SCHEMA=[源用戶名1]:[目標用戶名2]  

  table_exists_action=replace /*存在的表動作(覆蓋)*/

  directory=[創建目錄名]  

  dumpfile=[.dmp文件名]  

  logfile=[.log文件名]           


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM