因为安装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>