今天想把一個DB1上的schema備份還原到DB2上去,備份的動作很順利,還原的時候報錯了,報錯如下(部分報錯信息):
開始使用數據泵備還原chenguangfair。
Import: Release 11.2.0.4.0 - Production on 星期四 6月 9 10:04:11 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
連接到: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加載/卸載了主表 "SYS"."SYS_IMPORT_FULL_03"
啓動 "SYS"."SYS_IMPORT_FULL_03": "sys/********@orcl AS SYSDBA" remap_schema=CHENGUANGFAIR:chenguangfair directory=chenguangfair_dumpfile_dest transform=oid:n dumpfile=CHENGUANGFAIR_20160608130442.DMP logfile=CHENGUANGFAIR_20160608130442_recover.log
處理對象類型 SCHEMA_EXPORT/USER
ORA-31685: 由於權限不足, 對象類型 USER:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
CREATE USER "CHENGUANGFAIR" IDENTIFIED BY VALUES 'S:23361451065E1FBFD1D3FA555B8174DEBD188F2A1BEA67FD710948BC7B97;E4E71AC665DF1386' DEFAULT TABLESPACE "TS_FAIR" TEMPORARY TABLESPACE "TEMP"
處理對象類型 SCHEMA_EXPORT/SYSTEM_GRANT
ORA-31685: 由於權限不足, 對象類型 SYSTEM_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT DEBUG CONNECT SESSION TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 SYSTEM_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT SELECT ANY DICTIONARY TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 SYSTEM_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT CREATE DATABASE LINK TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 SYSTEM_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT CREATE ANY SEQUENCE TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 SYSTEM_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT CREATE ANY VIEW TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 SYSTEM_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT CREATE ANY TABLE TO "CHENGUANGFAIR"
ORA-39083: 對象類型 SYSTEM_GRANT 創建失敗, 出現錯誤:
ORA-01917: 用戶或角色 'CHENGUANGFAIR' 不存在
失敗的 sql 爲:
GRANT UNLIMITED TABLESPACE TO "CHENGUANGFAIR"
處理對象類型 SCHEMA_EXPORT/ROLE_GRANT
ORA-31685: 由於權限不足, 對象類型 ROLE_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT "CONNECT" TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 ROLE_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT "RESOURCE" TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 ROLE_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT "DATAPUMP_EXP_FULL_DATABASE" TO "CHENGUANGFAIR"
ORA-31685: 由於權限不足, 對象類型 ROLE_GRANT:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
GRANT "DATAPUMP_IMP_FULL_DATABASE" TO "CHENGUANGFAIR"
處理對象類型 SCHEMA_EXPORT/DEFAULT_ROLE
ORA-31685: 由於權限不足, 對象類型 DEFAULT_ROLE:"CHENGUANGFAIR" 失敗。失敗的 sql 爲:
ALTER USER "CHENGUANGFAIR" DEFAULT ROLE ALL
處理對象類型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
ORA-39083: 對象類型 PROCACT_SCHEMA 創建失敗, 出現錯誤:
ORA-31625: 必須有方案 CHENGUANGFAIR 才能導入此對象, 但此方案不可訪問
ORA-01435: 用戶不存在
失敗的 sql 爲:
BEGIN
sys.dbms_logrep_imp.instantiate_schema(schema_name=>SYS_CONTEXT('USERENV','CURRENT_SCHEMA'), export_db_name=>'ORCL', inst_scn=>'22593712463');COMMIT; END;
我覺得SYS用戶的權限很大了,不應該報錯啊,查詢SYS用戶的權限也沒有問題。
我又重新賦權限sysdba給SYS,依然沒用。
我想着用SYSTEM操作吧,可是報了沒權限還原其他用戶的schema,我就用SYS用戶把IMP_FULL_DATABASE,EXP_FULL_DATABASE的權限賦給了SYSTEM,可以成功導入。
既然這樣可以,那我用SYS用戶重新給SYS賦這兩個權限,可是依然沒成功。
我就把SYS這兩個權限給回收了,重新賦權,這次終於可以了。