(*錯誤資訊:
imp-
00038
:could not convert to environment character set』s handle
imp-
00000
:import terminated unsuccessfully*)
於是我使用impdp命令(impdp user1/user1@orcl dumpfile=gcl.dmp directory=dpdata1 logfile = gclimpdp20191017.log full=y)
然而還是有很多錯誤,因為資料庫中包含表空間tablespace、角色role、使用者user,需要自己手工建立;
實際操作步驟:
1.建立目錄
sqlplus中執行:create directory dpdata1 as 'd:\oracle\database'
;
其中dpdata1相當於是物理路徑』d:\oracle\database』的別名,dpdata1與對應路徑的資訊會儲存到某個表中,要恢復的dmp檔案需要放在該路徑下;
2.將dpdata1的讀寫許可權賦給dba使用者
(sqlplus登陸dba使用者的命令:conn/as sysdba
再輸入dba的密碼)
grant read,write on directory dpdbdata1 to system;
3.建立表空間
如果已經知道需要建立表空間名稱的情況可以直接用下面的語句直接建立,如果不知道需要先執行impdp語句,會報錯提示哪個表空間不存在,根據提示再建立
第一種寫法:
create tablespace tbspace1 datafile 'd:\oracle\database\tbspace1.dbf' size 100m
autoextend
onnext
100m
maxsize
unlimited
logging
extent
management
local
segment
space
management auto;
第二種寫法:
create tablespace "tbspace1"
logging
datafile 'd:\gclsidb\gclsidb\tbspace01.ora'
size
20m reuse
autoextend
onnext
1m maxsize unlimited,
'd:\gclsidb\gclsidb\tbspace02.ora'
size
20m reuse
autoextend
onnext
1m maxsize
unlimited
extent
management
local
segment
space
management auto;
建立臨時表空間語法上有些差異,在tablespace前+temporary,例如:
create temporary tablespace tempspace1 tempfile 'd:\oracle\database\tempspace1.dbf' size 100m
autoextend on next 100m
maxsize unlimited ;
4.建立角色和使用者並賦許可權
如果已知角色和使用者名稱就先建立,如果未知需要先執行impdp語句,會報錯提示使用者不存在,根據提示再建立
建立角色
//如果已存在則刪除
drop roles role1;
create role role1 identified;
//賦許可權
grant connect, resource to role1;
建立使用者
drop user user1 cascade;
create user user1 identified by password1 [default tablespace tbspace1 temporary tablespace tempdata]
;grant connect, resource[,dba,unlimited] tablespace to user1;
5.impdp db
在cmd中執行impdp命令: impdp user1/password1@orcl dumpfile=gcl.dmp directory=dpdata1 logfile = gclimpdp20191017.log full=y
其中需要先把dumpfile檔案即dmp備份檔案放在directory目錄下,也就是d:\oracle\database\目錄下,logfile是自動生成的,會記錄執行impdp產生的資訊(記錄報錯或成功等詳細資訊),這裡只需要指定檔名,@orcl中@後面是例項名,安裝oracle時預設的是orcl,如果是預設的例項名@orcl可省略不寫;
因為我是知道表空間、角色、使用者的資訊,所以在恢復的時候按照上面的順序,如果並不知道,執行的順序就需要調整了,後期測試後再補充;
在執行上述操作的時候如果提示磁碟空間不足,應該就是你的所在磁碟儲存不夠了
Oracle資料庫還原DMP檔案
1 首先,我們可以先建立自己的乙個使用者表空間,建立表空間的格式如下 create tablespace eas 表空間的名字 datafile d eas eas.dbf 這邊可以寫成oracle的某個路徑下 size 50m 初始大小 autoextend on 自動擴充套件 create ta...
Oracle 還原資料 dmp 檔案
cmd 操作 1,使用者登入 sqlplus wdit wdit orcl 使用者名稱 密碼 例項名 2,建立表空間 相當於 mssql 的 資料庫 create tablespace changningldj datafile f oracledb changningldj.dbf size 15...
oracle還原資料庫
第一步 登陸 sqlplus as sysdba 第二步 建立表空間 xzfw yw 這個e xuw xzfw yw.dmp.ora是存放的日誌檔案 create smallfile tablespace xzfw xuwei datafile e xuw xzfw yw.dmp.ora size ...