11G数据库导入10G的操作实践
Oracle11g數據庫導入Oracle10g數據庫操作筆記
???????????用exp、imp命令時進行11g備份,導入10g的時候會拋錯:不是有效的導出文件,頭部驗證失敗;未成功終止導入。
??????? 我今天就遇到了這種情況,搭建測試環境時,有一個項目使用的是11g數據庫,而測試機是10g的數據庫,按正常的思路走下來,報錯:未成功終止導入,趕緊上網搜了一下,原來是版本不同的問題;
下面我把導入操作的全過程記錄下來,自己做了一個知識的記錄,同時也希望可以方便有需要的朋友!
一、在11g服務器上,使用expdp命令備份數據
EXPDP USERID='SYS/sys@daggis as sysdba' schemas=oa directory=DATA_PUMP_DIR dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0
(屏幕截圖:C:\Documents and Settings\Administrator>expdp userid='system/sys@gis' schemas
?directory=data_pump_dir dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0)
其中,紅色文字部分是根據需要改寫的地方。例如我的sys密碼是sys,數據庫sid是daggis,要導出的用戶名是oa,要導入到10.2.0.1.0版本的Oracle數據庫中去。aa.dmp和aa.log將會在11g的dpdump目錄中生成,例如我的11g裝在了D盤下面,于是dag.dmp將會在D:/app/Administrator/admin/cuc/dpdump目錄下被生成。
二、在10g服務器上,使用impdp命令恢復數據
步驟:1.建庫2.建表空間3.建用戶并授權4.將dag.dmp拷貝到10g的dpdump目錄下5.impdp導入數據庫
1、建庫:是在database configuration assistant 中直接新建一個數據庫(實例)。
2、建表空間:create tablespace OA datafile 'D:\oracle\product\10.2.0\oradata\orcl\oa.dbf' size 400m autoextend on next 20m online;
3、建用戶:
create user oa identified by oa;
授權:
Alter user OA default tablespace OA quota unlimited on OA;
grant create session to oa;
grant connect to oa;
grant connect, resource, dba to oa;
grant create table to oa;
grant create view to oa;
grant create trigger to oa;
grant select any table to oa;
grant create sequence to oa;
grant create procedure to oa;
grant create role to oa;
grant create type to oa;
grant GRANT ANY PRIVILEGE to oa;
?
4、導入:首先測試機中10g裝在了D:/根目錄下,于是將dag.dmp文件copy到了D:\oracle\product\10.2.0\admin\daggis\udump目錄下。
在導入之前,還有一個步驟,必須創建目錄,然后才能進行導入,不然在導入時會報錯:
ORA-39001: 參數值無效
ORA-39000: 轉儲文件說明錯誤
ORA-31640: 無法打開要讀取的轉儲文件 "D:\p\dag.dmp"
ORA-27041: 無法打開文件
OSD-04002: 無法打開文件
O/S-Error: (OS 2) 系統找不到指定的文件。
創建目錄命令如下:
sqlplus sys/sys@daggis
sql>create directory dump_dir as 'C:\oracle\product\10.2.0\admin\daggis\udump';
IMPDP USERID='SYS/sys@daggis ?as sysdba' schemas=oa ?directory=DATA_PUMP_DIR dumpfile=dag.dmp logfile=dag.log version=10.2.0.1.0
(命令截屏:C:\Documents and Settings\Administrator>impdp userid='sys/sys@daggis as sysdba's
chemas=oa directory=data_pump_dir dumpfile=dag.dmp logfile=dag.log version=10.2.
0.1.0)
到這里為止,所有的操作都完成了,終于看到了久違的消息:操作完成!
上面的命令行中,紅色與藍色部分是根據需要大家根據實際情況改寫的地方。例如我的sys密碼是sys,數據庫sid是daggis,要導入用戶名為oa,要導入到10.2.0.1.0版本的Oracle數據庫中去。dag.log將會在10g的dpdump目錄中生成。
?????? 最后有一個命令查看原對象用戶總數,大家可以根據需要進行驗證,在導出數據庫的機器運行一次,在導入數據庫后的機器運行一次,看看結果是否一樣:
?sql>select count(*) from dba_objects where owner in ('wangou','sup','qishun');
呵呵,上面就是我操作的全部過程,如果大家有更好的辦法完成,請記得共享哦!大家互相學習,一起進步!
總結
以上是生活随笔為你收集整理的11G数据库导入10G的操作实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【XSY2472】string KMP
- 下一篇: 基于数据库的事务消息解决分布式事务方案