導出
模式一:全量導出(慎用)
exp 用戶名/密碼@數據庫實例 owner=用戶名 file=文件存儲路徑 log=日志存儲路徑 full=y
栗子:exp Mark/123456@151.2.*.156:1521/markdb owner=Mark file=d:/export/mark_db.emp log=d:/export/mark_db.log full=y owner=ds_planweb
模式二:導出指定用戶(推薦)
exp 用戶名/密碼@數據庫實例 owner=用戶名 file=文件存儲路徑 log=日志存儲路徑 owner=指定用戶
栗子:exp Mark/123456@151.2.*.156:1521/markdb owner=Mark file=d:/export/mark_db.emp log=d:/export/mark_db.log owner=Mark
模式三:導出指定表
exp 用戶名/密碼@數據庫實例 owner=用戶名 file=文件存儲路徑 log=日志存儲路徑 owner=指定用戶 tables=(指定表)
栗子:exp Mark/123456@151.2.*.156:1521/markdb owner=Mark file=d:/export/mark_db.emp log=d:/export/mark_db.log owner=Mark tables=(mark_user)
導入
模式一:全量導入(慎用)
imp 用戶名/密碼@數據庫實例 file=文件存儲路徑 full=y ignore=y
栗子:imp Mark/123456@151.2.*.156:1521/markdb file=d:/export/mark_db.emp full=y ignore=y
注:ignore:是否忽略創建錯誤
模式二:導入指定用戶(推薦)
imp 用戶名/密碼@數據庫實例 file=文件存儲路徑 fromuser=資源用戶名 touser=目標用戶名 ignore=y
栗子:imp Mark/123456@151.2.*.156:1521/markdb file=d:/export/mark_db.emp fromuser=Mark touser=Mark_target ignore=y
注:這樣用戶SONIC的所有對象被導入到文件中。必須指定FROMUSER、TOUSER參數,這樣才能導入數據。
模式三:導入指定表
imp 用戶名/密碼@數據庫實例 file=文件存儲路徑 owner=指定用戶 tables=(指定表)
栗子:imp Mark/123456@151.2.*.156:1521/markdb file=d:/export/mark_db.emp owner=Mark tables=(mark_user)
創建用於接收導入數據庫的用戶
創建用戶
- 通過指令: create user 用戶名 identified by 口令[即密碼];
- 登錄system賬號,直接創建用戶
刪除用戶
drop user 用戶名 cascade;
注:若用戶擁有對象,則不能直接刪除,否則將返回一個錯誤值。指定關鍵字cascade,可刪除用戶所有的對象,然后再刪除用戶。
用戶授權
- 授權:grant connect, resource to 用戶名;
- 撤銷:revoke connect, resource from 用戶名;
注:oracle為兼容以前版本,提供三種標准角色(role):connect/resource和dba.
經過以上操作,該用戶則可以作為imp指令 touser的值來接收導入數據庫了。
——————----過渡線-----——————
以上用戶沒有操作表的權限,賦權腳本如下:
GRANT CREATE ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT SELECT ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT COMMENT ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT LOCK ANY TABLE TO DS_PORTAL_SH_DEV_GZW;
GRANT SELECT ANY DICTIONARY TO DS_PORTAL_SH_DEV_GZW;
注:如果dmp文件由dba用戶導出,而導入的用戶不是dba,那么則會報以下的錯誤:(圖片來自參考博客)
解決方案:
- 使用DBA賬號進行導入
- 將dba權限賦值給需要導入的用戶
賦權語句:
grant dba to Mark
參考: