一、檢查環境一致性 需檢查資料庫客戶端與服務端字元編碼,以避免後續各種各樣的問題 查詢服務端編碼 註意最好用sqlplus查詢,用plsql有時候會出現查詢不一致問題,如下圖同一個語句在plsql和sqlplus中獲得了不同的查詢結果 也可以在NLS_DATABASE_PARAMETERS中查詢,如 ...
一、檢查環境一致性
需檢查資料庫客戶端與服務端字元編碼,以避免後續各種各樣的問題
查詢服務端編碼
註意最好用sqlplus查詢,用plsql有時候會出現查詢不一致問題,如下圖同一個語句在plsql和sqlplus中獲得了不同的查詢結果
也可以在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可查詢用戶創建目錄。
5、為oracle用戶授予訪問數據目錄的許可權,輸入命令: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文件名]