如何將備份的oracle數據庫還原到指定用戶下。


上一文章 oracle11g數據庫--創建表空間,創建用戶,用戶授權並指定表空間。我們已經建好了指定的新用戶pdmis。

接下來我們需要將備份好的數據庫,還原至新用戶pdmis下。

想要還原,我們需要將備份好的dmp文件。拷貝至目標服務器下(此處為D:\oraclebf\PDMIS\PDMIS.DMP)

出現上面問題是因為要傳的文件太大造成的,我可以將本分文件通過壓縮文件壓縮后再傳壓縮文件(5.15g的備份文件被壓縮為515m)

傳到目標服務器后,再進行文件解壓縮。保存至對應的路徑下(此處為D:\oraclebf\PDMIS\PDMIS.DMP)

這些准備工作完成后,我們可以通過IMP命令進行數據庫還原工作。

cmd(管理員模式)--輸入一下命令(備份、還原無需進入sqlplus命令,注意!!!)

imp/exp 用戶名/密碼@service_name或oracle_sid  file=D:\導如(出)文件名稱.dmp  full=y ignore=y

full=y ( 全庫導出): 導出除ORDSYS,MDSYS,CTXSYS,ORDPLUGINS,LBACSYS 這些系統用戶之外的所有用戶的數據

ignore=y 表示忽略創建錯誤(比如有重復的表,就不再導入),繼續后面的操作

 

根據實際需求,我們的還原命令如下:

imp pdmis/pdmis@orcl file=d:\oraclebf\PDMIS\PDMIS.DMP log=d:\oraclebf\PDMIS\PDMIS.log full=y

log=d:\oraclebf\PDMIS\PDMIS.log(創建錯誤日志,默認和備份文件放在同一目錄下。)

 

執行語句

 

 

數據庫還原完成,但遇到錯誤報告。技術人員驗證數據庫后,有表和視圖的丟失怎么辦?

我們需要刪除用戶(此步驟一定要慎重!!!因為有的用戶下會連着好多數據庫,避免數據丟失。

在確定用戶下只有一個數據庫時,並且此數據庫為我們剛才恢復的數據庫后才能刪除)

drop user pdmis cascade;                                          刪除用戶   **

drop tablespace pdmis_temp including contents
and datafiles cascade constraint;                               刪除臨時表空間

drop tablespace pdmis_data including contents
and datafiles cascade constraint;                               刪除表空間

執行以上命令后,重啟服務器。

通過oracle的 dbca工具新建實例。
1)打開dbca--下一步

2)創建數據庫--下一步

3)默認選一般用途或事務處理--下一步

4)輸入全局數據庫名和實例名--下一步(此步驟可以繼續使用之前的orcl全局數據庫,sid為我們需要增加的實例名)

5)默認選擇--下一步

6)輸入密碼--下一步

7)默認選擇--下一步

8)默認--下一步

9)內存--調整為60%

    字符集--選擇默認--ZHS16GBK

10)對以上設置的確認--下一步

11)創建數據庫--生成數據庫創建腳本--完成

點擊確定

確定

等待生成數據庫

安裝完成--口令管理--將sys、system設置密碼

                                 將scott解鎖設置密碼

 

完成后再去全局數據下創建表空間

 

臨時表空間,創建用戶,為用戶授予權限。

 

先用tnsping pdmis_test通不通

 

再執行imp命令進行備份的還原。

imp pdmis/pdmis@pdmis_test file=d:\oraclebf\PDMIS\PDMIS.DMP log=d:\oraclebf\PDMIS\PDMIS.log full=y

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM