Oracle11g還原數(shù)據(jù)庫導(dǎo)入dmp文件的實(shí)現(xiàn)方式
1.首先你要知道往哪個(gè)用戶里面導(dǎo),先創(chuàng)建個(gè)用戶然后授權(quán)
打開sqlplus,用system登錄(或者有dba權(quán)限的用戶) 一次執(zhí)行下面的命令語句。
CREATE USER "用戶名" PROFILE "DEFAULT" IDENTIFIED BY "密碼" DEFAULT TABLESPACE "USERS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT CREATE ANY TABLE TO "用戶名"; GRANT UNLIMITED TABLESPACE TO "用戶名"; GRANT "CONNECT" TO "用戶名"; GRANT "RESOURCE" TO "用戶名"; GRANT CREATE ANY VIEW TO "用戶名"; GRANT dba TO "用戶名";
2.然后打開cmd,根據(jù)自己的數(shù)據(jù)庫執(zhí)行下面語句
imp 剛才創(chuàng)建的用戶名/密碼@數(shù)據(jù)庫實(shí)例名 full=y file=文件的絕對(duì)路徑(包含文件名) ignore=y
3.導(dǎo)入過程中報(bào)錯(cuò)?怎么重新導(dǎo)入?
如果導(dǎo)入數(shù)據(jù)有問題的話,大多是表空間缺失,因?yàn)閐mp文件不會(huì)把表空間也備份出來的,若報(bào)表空間不存在,刪掉用戶,建表空間,重新imp就行了
執(zhí)行下面語句刪除用戶(慎用,別刪錯(cuò)了,這是刪除用戶和用戶底下所有的數(shù)據(jù))
drop user 用戶名 cascade
4.最后記錄一下導(dǎo)入過程中遇到的問題
1.在A用戶下導(dǎo)入但是數(shù)據(jù)卻導(dǎo)入到了B用戶里
這是由于導(dǎo)入的dmp文件的原因,里面設(shè)定了自動(dòng)導(dǎo)入A用戶,這時(shí)候你需要重新創(chuàng)建一個(gè)Oracle實(shí)例,注意不是Oracle用戶,是實(shí)例,創(chuàng)建過程中一定要設(shè)置數(shù)據(jù)庫字符集為ZHS16GBK
如何連接到另外一個(gè)Oracle實(shí)例?
conn 用戶名/密碼@實(shí)例名
2.導(dǎo)入過程中提示: “XXXX值太大,無法執(zhí)行”
這就是沒有設(shè)置ZHS16GBK的原因,打開sqlplus,登錄后先確定你連接的數(shù)據(jù)庫是你需要修改的(別改錯(cuò)了),然后登錄有dba權(quán)限(最高權(quán)限)的用戶,依次執(zhí)行以下命令語句
SQL> conn /as sysdba; SQL> shutdown immediate;//這個(gè)可能久一點(diǎn),不超過5分鐘 SQL> startup mount;//歸檔模式 SQL> alter system enable restricted session;//數(shù)據(jù)庫訪問受限狀態(tài) SQL> alter system set JOB_QUEUE_PROCESSES=0; SQL> alter system set AQ_TM_PROCESSES=0; SQL> alter database open; SQL> alter database character set internal_use ZHS16GBK; SQL> alter database character set ZHS16GBK SQL> shutdown immediate; SQL> startup;
執(zhí)行完成之后再次進(jìn)行導(dǎo)入發(fā)現(xiàn)沒有問題了
3.導(dǎo)入過程中提示: "表空間不存在"或“表不存在創(chuàng)建觸發(fā)器失敗”
這是因?yàn)閐mp文件有問題,最初導(dǎo)出dmp文件的時(shí)候,沒有提前設(shè)置好導(dǎo)出空表,只能去原來數(shù)據(jù)庫將缺少的空表或序列手工導(dǎo)進(jìn)來,可以用Navicat。
4.報(bào)錯(cuò)內(nèi)容包含表缺失
有可能是源頭數(shù)據(jù)庫是11g,沒有開啟空表導(dǎo)出,這個(gè)解決起來比較麻煩,需要知道哪些表是空表,表與表之間的關(guān)聯(lián)關(guān)系
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Oracle數(shù)據(jù)庫中創(chuàng)建自增主鍵的實(shí)例教程
Oracle的字段自增功能,可以利用創(chuàng)建觸發(fā)器的方式來實(shí)現(xiàn),接下來我們就來看看Oracle數(shù)據(jù)庫中創(chuàng)建自增主鍵的實(shí)例教程,需要的朋友可以參考下2016-05-05
Oracle數(shù)據(jù)庫時(shí)間格式轉(zhuǎn)換的常見示例
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫時(shí)間格式轉(zhuǎn)換的常見示例,在實(shí)際的工作中會(huì)經(jīng)常會(huì)用到to_char()、to_date()函數(shù)來對(duì)時(shí)間、日期進(jìn)行處理,文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下2024-02-02
Oracle date 和 timestamp 區(qū)別詳解
這篇文章主要介紹了Oracle date 和 timestamp 區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2017-03-03

