记一次Oracle 11g xe 导出导入使用过程
公司一個項目需要使用Oracle數據庫,平時mysql用習慣了,這一換還有點蒙。
公司網絡不好,需要在本地搭一個Oracle服務,選擇了11g xe,主要是小。
下面整理了一下兩種導出導入數據庫的過程:
1、使用Navicat軟件轉儲sql文件、執行sql文件方法(不好,容易存在外鍵問題和字符串長度超過4000無法導入問題)
2、使用exp、imp命令導出導入(推薦)
?
一、使用Navicat導出導入過程:
1、選擇公司Oracle數據庫模式,右鍵轉儲sql文件結構和數據,獲得sql文件
2、本地數據庫用sys登陸,創建一個sumengnan用戶,賦予一些創建表、連接的權限
3、在sumengnan模式下導入公司Oracle的sql文件時報錯,提示表空間不存在
解決辦法:在菜單欄選擇其他-表空間-新建表空間。
之后在用戶-編輯用戶-配額處為sumengnan用戶,配置表空間
4、導入公司Oracle的sql文件時報錯,又提示ORA-01950對表空間"system"無權限。
解決辦法:在用戶-編輯用戶-服務器權限處為sumengnan用戶,配置create session、create table和create tablespace權限
5、導入完成。
?
二、使用exp、imp命令導出導入過程:
開始導出:
1、遠程Oracle數據庫導出方式有兩種(需要sys角色):
? ⑴添加遠程TNS。在tnsnames.ora文件中添加如下
? remote =
? (DESCRIPTION =
? ? (ADDRESS = (PROTOCOL = TCP)(HOST = 遠程主機地址)(PORT = 1521))
? ? (CONNECT_DATA =
? ? ? (SERVER = DEDICATED)
? ? ? (SERVICE_NAME = ORCL)
? ? )
? ?)
? 然后執行tnsping remote命令,檢測是否能連接。
? 執行命令:exp sys/123@remote file=d:\sumengnan.dmp owner=sumengnan;
? ⑵執行命令:exp sys/123@192.168.1.100:1521/orcl?file=d:\sumengnan.dmp owner=sumengnan;(這個更簡單,不需要添加遠程TNS,推薦)
2、執行遠程導出數據庫命令,提示身份證明檢索失敗。
解決辦法:oracle\product\11.2.0\server\network\ADMIN\sqlnet.ora這個文件內容NTS改為NONE。(驗證方式)
NTS表示采用本地操作系統認證,NONE表示將采用口令文件方式認證。
3、用sys登錄提示connection as SYS should be as SYSDBA or SYSOPER(表示sys賬號需要SYSDBA or SYSOPER角色)
解決辦法:exp 'sys/123@192.168.1.100:1521/orcl as sysdba' file=d:\sumengnan.dmp owner=sumengnan;(加上 as sysdba)(owner表示用戶)
4、導出時提示ORACLE 錯誤 904 ORA-00904: "MAXSIZE": 標識符無效
原因:Oracle不能從低版本向高版本導數據。公司的是10,本地是11.
??? 由于Oracle的imp/exp組件的操作原則--向下兼容,且有一些規則:
??? 規則1:低版本的exp/imp可以連接到高版本(或同版本)的數據庫服務器,但高版本的exp/imp不能連接到低版本的數據庫服務器;
??? 規則2:高版本exp出的dmp文件,低版本無法imp(無法識別dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);
??? 規則3:從Oracle 低版本Export的數據可以Import到Oracle高版本中,但限于Oracle的相鄰版本,如從Oracle 10 到 Oracle 11.對于兩個不相鄰版本間進行轉換,如從Oracle 9 到 Oracle 11,則應先將數據輸入到中間版本-Oracle 10,再從中間數據庫轉入更高版本Oracle 11.
??? 據此,最快捷的解決方案就是使用安裝了10g Oracle 的機子,進行服務器上數據庫數據的導出。
5、無奈去另一臺win10電腦下載了64位的10g(下載地址在下面),安裝時提示檢查操作系統版本: 必須是5.1 or 5.2。 實際為 6.1。
解決辦法:修改\database\install\oraparam.ini文件,把Windows=5.1,5.2改成Windows=6.1。
6、安裝時10g設置完密碼后又提示“安裝oracle10g“程序異常終止。發生內部錯誤。請將以下文件提供給oracle技術支持 部門”
解決辦法:安裝程序setup.exe文件,需要用兼容模式xp sp3模式運行。
7、不過出現了一個意外,win10電腦沒有xp sp3兼容模式。
解決辦法:下載一個虛擬機,安裝xp系統。
8、虛擬機安裝完xp之后,在系統上運行Oracle10g setup.exe安裝程序,提示不是有效的win32
解決辦法:應該下載32位的Oracle 10g(直接使用了上面下載的64位的10g)
執行第3步命令,導出成功了,拷貝到本地電腦桌面
開始導入:
9、先查詢公司數據庫用戶sumengnan使用的表空間(一般情況只有一個)。
命令:select tablespace_name from dba_tables t WHERE t.owner='sumengnan' group by t.tablespace_name
10、首先需要在本地創建好sumengnan用戶和表空間
創建表空間命令:create tablespace sumengnan_data(表空間名稱) datafile 'e:\oracle\oradata\test\data_1.dbf'(表空間文件) size 1000M(表空間大小);
創建用戶命令:create user sumengnan identified by 123456 default tablespace sumengnan_data;(用戶sumengnan,密碼123456 默認表空間 sumengnan_data)
賦予權限命令:grant connect, resource to sumengnan ;(賦予sumengnan連接Oracle和創建表的權限)
11、開始導入數據,執行命令:imp 'sys/123@XE as sysdba' file=C:\Users\sumengnan\Desktop\SUMENGNAN.DMP full=y時提示:“無法打開 EXPDAT.DMP 進行讀取”.
原因:c盤沒有權限,換到其他盤,如d盤。
注意:如果服務器和本地兩端用戶名不相同,則執行:imp 'sys/123@XE as sysdba' file=C:\Users\sumengnan\Desktop\SUMENGNAN.DMP fromuser=sumengnan touser=sumengnan2
fromuser就是把當前的dmp文件中的某一個用戶下的數據取出。
touser就是把現在dmp文件中的數據導入到目標庫的指定user下。
12、切換盤后導入又提示:“導入時由于對象已存在, 下列語句失敗:?”
解決辦法:imp導入命令添加參數 ignore=y
13、導入完成
?
碰到的其他問題:
1、修改Oracle安裝時默認8080端口
命令:
begin
? ?dbms_xdb.sethttpport('8081');
? ?dbms_xdb.setftpport('0');
end;
2、刪除用戶提示“必須指定 CASCADE 以刪除 'sumengnan'”
解決辦法:drop user sumengnan cascade;(因為這個數據庫只有這一個用戶,刪了就沒有用戶關聯了,所以需要用?cascade,把沒有關聯的整個數據庫也刪掉。)
?
附:
導出導入imp、exp命令參數:
參數參考地址:https://blog.csdn.net/fghsfeyhdf/article/details/79807690
參數參考地址:https://www.cnblogs.com/weiwenpeng/p/10345419.html
xp迅雷下載地址:thunder://QUFodHRwOi8vc29mdC51c2Fpa2EuY24vstnX98+1zbMvd2luZG93cy9XaW5kb3dzWFAvVkwtSW1hZ2UvTVNETi96aC1oYW5zX3dpbmRvd3NfeHBfcHJvZmVzc2lvbmFsX3dpdGhfc2VydmljZV9wYWNrXzNfeDg2X2NkX3ZsX3gxNC03NDA3MC5pc29aWg==? ? ? ? ? ? ? ? ?序列號:MRX3F-47B9T-2487J-KWKMF-RPWBY
Oracle 10g 32位迅雷下載地址:http://download.oracle.com/otn/nt/oracle10g/10201/10201_database_win32.zip
Oracle 10g 64位迅雷下載地址:http://download.oracle.com/otn/nt/oracle10g/10201/102010_win64_x64_database.zip
Oracle 11g xe 64位下載地址:https://download.oracle.com/otn/nt/oracle11g/xe/OracleXE112_Win64.zip?AuthParam=1581570015_b536f613e8fecc7c02ed77c63e8c6944
總結
以上是生活随笔為你收集整理的记一次Oracle 11g xe 导出导入使用过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新房装修如何知道是否需要更换电线
- 下一篇: 花乐鲜购小程序