因為安裝oracle前,需要添加一個Microsoft Loopback Adapter連接,添加后,我系統里綁定的網卡密鑰也不能使用了,開始以為重新生成新的密鑰就行了,
可是生成新的密鑰后,還是報license錯誤,最后的解決辦法為更改Microsoft Loopback Adapter連接物理地址.
1,報錯內容:
More than one row with the given identifier was found: 2468BDC50182F9266E2AB32D9F7A78DD, for class: com.ot.opf.org.model.DepartmentVO
原因:表ID重復 ,查看是否重復導入.
2,報錯內容:
IMP-00003: 遇到 ORACLE 錯誤 959
ORA-00959: 表空間 'XXXX' 不存在
解決辦法:在網上查了很多解決辦法,主要是由于BLOB字段引起,但唯觸能解決問題的辦法是:
先建表結構,再導入數據,導入語句為:
imp
user/password@ORCL fromuser=user touser=user file=databse.dmp IGNORE=y tables=表名
3:錯誤信息:
ORA-00604: 遞歸 SQL 級別 1 出現錯誤
ORA-01653: 表 SYS.AUD$ 無法通過 128 (在表空間 SYSTEM 中) 擴展
ORA-02002: 寫入審計線索時出錯
ORA-00604: 遞歸 SQL 級別 1 出現錯誤
ORA-01653: 表 SYS.AUD$ 無法通過 128 (在表空間 SYSTEM 中) 擴展
解決辦法:
----查詢所有表空間使用情況---
使用DBA權限登陸
SELECT UPPER(F.TABLESPACE_NAME) "表空間名",
D.TOT_GROOTTE_MB "表空間大小(M)",
D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') "使用比",
F.TOTAL_BYTES "空閑空間(M)",
F.MAX_BYTES "最大塊(M)"
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 DESC;
表名 表空間大小(M) 已使用空間(M) 使用比 空閑空間(M) 最大塊(M)
-------------------- ------------- ------------- ------- ----------- ----------
SYSTEM 33267.98 32268.67 99.90 1.31 0.97
SDE 32767.98 32711.67 99.83 56.31 1
SYSAUX 916.69 866.31 94.50 50.38 41.69
USERS 5 1.37 27.40 3.63 3.63
UNDOTBS1 1570 134.25 8.55 1435.75 1426
解決
1、為表空間增加自動擴展
SQL> alter database datafile 'D:\app\Administrator\oradata\webdb\system01.dbf' AUTOEXTEND ON NEXT 50
M MAXSIZE UNLIMITED;
數據庫已更改。
此方法在此是行不通的,因為SYSTEM的表空間已經到達了極限值,不能通過增長的方式改變。
2、為SYSTEM表空間增加一個數據文件SYSTEM02.DBF
SQL> ALTER TABLESPACE "SYSTEM" ADD DATAFILE 'D:\APP\ADMINISTRATOR\ORADATA\WEBDB\SYSTEM02.DBF' SIZE 5
00M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
表空間已更改。
問題解決.
查看表空間是否具有自動擴展的能力的SQL
SELECT T.TABLESPACE_NAME,D.FILE_NAME,
D.AUTOEXTENSIBLE,D.BYTES,D.MAXBYTES,D.STATUS
FROM DBA_TABLESPACES T,DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME =D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME,FILE_NAME;
來原:http://blog.csdn.net/sunbingzibo/archive/2007/06/15/1653794.aspx
最近用到從oracle的dmp文件中還原數據
由于沒有這方面的資料,在網上搜集了一些,相信有以下這些資料,我們可以成功地將dmp文件用命令行的方式還原回去
在這里我用的是oracle10g的版本,我的機器是512內存的,運行oracle的web管理程序有一些困難,所以我選擇通過命令行的方式,
以下我的安裝完成后,oracle給出的報告
Enterprise Manager Database Control URL - (orcl) :
http://localhost:1158/em
數據庫配置文件已經安裝到
E:\oracle\product\10.2.0,
同時其他選定的安裝組件也已經安裝到
E:\oracle\product\10.2.0\db_1。
iSQL*Plus URL 為:
http://localhost:5560/isqlplus
iSQL*Plus DBA URL 為:
http://localhost:5560/isqlplus/dba
下面我們來看一看如何來完成這一任務
第一,啟動服務,(如果數據庫處于啟動狀態,那么略過這一步)
打開命令行執行以下語句
net start OracleServiceORCL
net start OracleOraDb10g_home2TNSListener
net start OracleOraDb10g_home2iSQL*Plus
以上方式是在windows服務中啟動服務,當windows服務不能啟動數據庫實例的時候,應用以下的語句
set oracle_sid=orcl
oradim -startup -sid orcl
sqlplus internal/oracle
startup
第二清理以前還原過的痕跡,如果我們在數據庫曾經還原過,我們先來清理一下,痕跡,
//刪除用戶
drop user xxxx cascade;
//刪除表空間
drop tablespace xxxx;
DROP TABLESPACE <tablespace name> INCLUDING CONTENTS;
//刪除數據庫文件
e:\xxxxxx.dbf
第三,接下來,準備工作做好后,我們就可以開始還原了
//創建用戶
CREATE USER 用戶名 IDENTIFIED BY 密碼 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP
//給予用戶權限
grant connect,resource,dba to xxxx
//創建表空間,并指定文件名,和大小
CREATE SMALLFILE TABLESPACE "xxxx" DATAFILE 'E:\ORADATA\ORCL\xxxx.DBF'
SIZE 100M
AUTOEXTEND ON NEXT 100M
MAXSIZE UNLIMITED
LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
//執行給予權限的腳本grant.txt,將權限給予剛才創建的用戶
//給予權限
GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO xxxx
//開始導入(完全導入),file:dmp文件所在的位置, ignore:因為有的表已經存在,對該表就不進行導入。
在后面加上 ignore=y 。指定log文件 log=e:\log.txt
imp user/pass@orcl full=y file=e:\xxx.dmp ignore=y log=e:\log.txt
//當我們不需要完整的還原數據庫的時候,我們可以單獨地還原某個特定的表
//---------------------------------------------------------------------------
imp user/pass@datbase file=e:\xxx.dmp ignore=y log=e:\log.txt tables=(xxxx)
imp user/pass@database file=e:\xxx.dmp ignore=y log=e:\log2.txt tables=(xxxx)
//---------------------------------------------------------------------------
//做到這里我們就已經完成了,數據庫的還原工作,下面我們就可以打開isqlplus查看表中的數據了
select * from ***
第四我們來看一下,對oracle常用的操作命令
1)查看表空間的屬性
select tablespace_name,extent_management,allocation_type from dba_tablespaces
2)查找一個表的列,及這一列的列名,數據類型
select TABLE_NAME,COLUMN_NAME,DATA_TYPE from user_tab_columns where TABLE_NAME='xxxx'
3)查找表空間中的用戶表
select * from all_tables where owner='xxx' order by table_name desc
4)在指定用戶下,的表的數量
select count(*) from user_tab_columns
5)查看數據庫中的表名,表列,所有列
select TABLE_NAME,COLUMN_NAME,DATA_TYPE from user_tab_columns order by table_name desc
6)查看用戶ZBFC的所有的表名及表存放的表空間
select table_name,tablespace_name from all_tables where owner='xxxx' order by table_name desc
7)生成刪除表的文本
select 'Drop table '||table_name||';' from all_tables where owner="ZBFC";
8)刪除表級聯刪除
drop table table_name [cascade constraints];
9)查找表中的列
select TABLE_NAME,COLUMN_NAME,DATA_TYPE from user_tab_columns where column_name like '%'||'地'||'%' order by table_name
desc
10)查看數據庫的臨時空間
select tablespace_name,EXTENT_SIZE,current_users,total_extents,used_extents,MAX_SIZE,free_extents from v$sort_segment;
http://download1.csdn.net/down3/20070615/15202338310.txt
作者在導入的過程中,還遇到了一個錯誤,就是數據違反了唯一性約束,數據庫拒絕了數據
IMP-00019: 由于 ORACLE 的 1 錯誤而拒絕行
在網上看到有人說,這是字符集的原因,所以我就新建了一個數據庫,將字符集改成了ZHS16GBK這樣,從新導了一次,結果就成功了
下面是grant.txt腳本
首先需配置:
控制面板->添加硬件->是,我也經連接了此硬件->添加新硬件設備->安裝我手動列表選擇硬件(高級)->網絡適配器->廠商:Microsoft 網卡:Microsoft Loopback Adapter 然后就行了。操作之后你會發現你的網上鄰居里面又兩個網絡連接。選擇新建立的那個網絡連接 隨便為它配個IP地址就行了。
否則會出現如下錯誤,如果繼續下去,安裝會失敗:
正在檢查網絡配置需求... 檢查完成。此次檢查的總體結果為: 未執行 <<<< 建議案: orcle支持在具有 DHCP 分配的 IP 地址的系統上進行安裝。但在安裝之前, 必須將 Microsoft LoopBack Adapter 配置為系統的主網絡適配器。 有關在配置有 DHCP 的系統上安裝軟件的詳細信息, 請參閱 Installation Guide。
特別要注意,可能有些人第一次添加了Loopback Adapter ,再第二次重裝時,還會報"啟動Database control時出錯",這時請查用ipconfig -all 查看第一個本地連接是否為你剛添加的硬件,如果不是,請禁用,再重新添加Loopback Adapter.
數據庫名orcl需大寫.
測試地址:
http://lenovo-3e3b86e5:1158/em/console/logon/logon
CLASSPATH
.;%JAVA_HOME%\BIN;
JAVA_HOME
C:\Program Files\Java\jdk1.5.0_04
JBOSS_HOME
D:\hsweb\jboss-4.0.2;
Path
.;%JAVA_HOME%\bin;
myeclipse環境配置:
選擇項目->右擊->屬性->編譯->JRE system中JDK版本更換。
選擇項目->右擊->屬性-》java compiler->java compliler level:選擇JDK版本.
window菜單->屬性(參數)->java->compiler->java compliler level:選擇JDK版本.
記住哦,JDK版本不對,問題很大的哦!
解決方法:
1.在工程目錄下的.mymetadata文件中可能webrootdir被改無效了(把下面內容拷到你的.mymetadate文件中的相應位置上);或者有可能少了這context-root這個屬性;添加上這個屬性即可,內容如下:
context-root="/上面的name屬性值"
2.關掉Eclipse,再啟動Eclipse,接著發布工程,發布成功!
.mymetadata文件
<?xml version="1.0" encoding="UTF-8"?>
<project-module
type="WEB"
name="myweb"
id="myeclipse.1202968712015"
context-root="/myweb" j2ee-spec="1.4"
archive="personnel.war">
<attributes>
<attribute name="webrootdir" value="WebRoot" />
</attributes>
</project-module>