1、檢查環境一致性
sql
需檢查數據庫客戶端與服務端字符編碼,以免後續各類各樣的問題數據庫
查詢服務端編碼服務器
注意最好用sqlplus查詢,用plsql有時候會出現查詢不一致問題,以下圖同一個語句在plsql和sqlplus中得到了不一樣的查詢結果oracle
也能夠在NLS_DATABASE_PARAMETERS中查詢,以下字符集爲AMERICAN_AMERICA.AL32UTF8app
查詢客戶端編碼(環境爲WINDOWS)ide
環境變量之中字符集變量設置,變量名NLS_LANG 值設置與服務器端字符集編碼一致測試
註冊表中的Oracle字符集設置,NLS_LANG 值設置與服務器端字符集編碼一致
編碼
1、運行cmd;spa
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
三、建立表空間,用戶以及用戶受權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文件名]