存档
在CentOS5.5 x86_64上安装了Oracle11g,版本号为:11.2.0.1.0
但是,在其它客户端上使用sqlplus连接的时候需要等待很长时间才能连接上,有时候报超时的错误。
错误信息为:
*********************************************************************** Fatal NI connect error 12537, connecting to: (LOCAL=NO) VERSION INFORMATION: TNS for Linux: Version 11.2.0.1.0 - Production Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production Time: 30-NOV-2011 14:28:10 Tracing not turned on. Tns error struct: ns main err code: 12537 TNS-12537: TNS:connection closed ns secondary err code: 12560 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0 opiodr aborting process unknown ospid (29666) as a result of ORA-609 Wed Nov 30 14:36:24 2011
Oracle11g服务器数据库名为:lzf,全局名称为:lzf.dbainfo.net
在CentOS5.6上安装oracle10gR2,安装程序进行到86%的时候报下面的错误:
INFO: gcc:
INFO: /usr/lib/libstdc++.so.5: No such file or directory
INFO:INFO: /home/oracle/db_1/bin/genorasdksh: Failed to link liborasdkbase.so.10.2
INFO: make: *** [liborasdkbase] Error 1
INFO: End output from spawned process.
INFO: ----------------------------------
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'all_no_orcl ihsodbc' of makefile '/home/oracle/db_1/rdbms/lib/ins_rdbms.mk'. See '/home/oracle/oraInventory/logs/installActions2011-04-28_09-49-27AM.log' for details.
Exception Severity: 1
这个错误是和编译有关的,检查日志发现果然缺少了一个C的类库:
INFO: /usr/lib/libstdc++.so.5: No such file or directory
例:有表
--sybase
create table t_test(
mydate datetime)
go
--oracle
create t_test(mydate date)
方法1:在sybase侧建立视图,然后从导出视图(此方法舍弃了毫秒部分)
create view v_test as
select
convert(varchar(10),pst_exec_stime,111)+' '+convert(varchar(9),pst_exec_stime,8) mydate
from t_test
go
在运行./runInstaller时出现的错误
错误一:
/tmp/OraInstall2007-12-30_02-16-11PM/jre/1.4.2/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory occurred.
原因是:缺少支持打印的图形化动态链接库libXp.so.6
这个错误是由于缺少系统安装包,在RHEL5以前的版本,可以安装xorg-x11-deprecated-libs包即可,这个安装包可以在系统光盘第三张盘中找到(对于redhat as4.2以前,redhat as4.4是在第四张安装光盘)
我下载的文件如下:
xorg-x11-deprecated-libs-6.8.2-31.i386.rpm
我用的是redhat 5,在5中 被libXp-1.0.0-8.i386.rpm替代了,所以从安装盘中找到这个文件,
rpm -Uvh libXp-1.0.0-8.i386.rpm
再./runInstaller就没有问题,可以启动图形界面了。
转自:http://shuhui018125.blog.163.com/blog/static/7711050201062203346193/
在上一篇文章中,查看表中列属性的SQL语句
查看Oracle中表的简要列属性信息。利用上面的SQL语句,可以改进出来统计表所占物理存储空间大小的语句。
在Oracle中number数字类型所占的空间,计算公式为:
number(p,s) 占用的字节数为: floor( ( p + 1 ) / 2 ) + 1
select object_name,sum(decode(data_type,'NUMBER',floor((col_length+1)/2) + 1,col_length)) table_size
from
(select object_name,column_name,data_type,decode(data_precision,NULL,data_length,data_precision) col_length
from
(select o.name object_name,c.column_name column_name,c.data_type,c.data_length,c.data_precision,c.data_scale
from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u
where o.obj#=t.obj#
and o.name=c.table_name
and c.owner=u.name
and o.owner#=u.user#
and u.name='SCOTT'
/*and o.name='EMP'*/
) tab_cols
) col_len
group by object_name;
上面的SQL语句统计用户scott的所有表占用的物理空间的字节数。
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:oracle table storage 表字段 占用空间大小
————————————————————————————————-
在sqlplus中,desc后面跟上表名,能够显示简要的表创建语法。
下面的SQL语句能够实现类似sqlplus中desc的类似的功能。
select o.obj#,o.name object_name,c.column_id,c.column_name,c.data_type,c.data_length,c.data_precision,c.data_scale,c.nullable
from sys.tab$ t,dba_tab_cols c,sys.obj$ o,sys.user$ u
where o.obj#=t.obj#
and o.name=c.table_name
and c.owner=u.name
and o.owner#=u.user#
and u.name='SCOTT'
and o.name='EMP'
order by obj#,column_id
;
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成。JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序。然而各个开发商的接口并不完全相同,所以开发环境的变化会带来一定的配置变化。本文主要集合了不同数据库的连接方式。
一、连接各种数据库方式速查表
下面罗列了各种数据库使用JDBC连接的方式,可以作为一个手册使用。
1、Oracle8/8i/9i数据库(thin模式)
Java代码
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orcl为数据库的SID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2、DB2数据库
Java代码
Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();
String url="jdbc:db2://localhost:5000/sample"; //sample为你的数据库名
String user="admin";
String password="";
Connection conn= DriverManager.getConnection(url,user,password);
oracle的版本为:10gr2,10.2.0.1.0。
利用oracle中的hsodbc连接sqlserver2005数据库。已成功连接。db link的名字为: sql2005fororacle。
执行:select count(*) from sysdatabases@sql2005fororacle; 能够成功执行。
但是,在执行: select count(*) from sysobjects@sql2005fororacle;却导致系统出现了死机症状,无法响应任务的操作,任务管理器看到cpu利用率不高。无奈,只能强制关机。
在alert_<SID>.log文件中发现有这么几句:
Memory Notification: Library Cache Object loaded into SGA
Heap size 2225K exceeds notification threshold (2048K)
KGL object name :XDB.XDbD/PLZ01TcHgNAgAIIegtw==
原来遇到oracle的bug了。上网检索,说 是oracle的一个bug在10g10.2.0.1的各个平台上都出现过。 Oracle10g中,在load较大的对象进library cache中时,会记录以上警告。在版本10.2.0.1中,这个定义大对象的阈值是2M,这是有隐含参数 _kgl_large_heap_warning_threshold 指定的从10.2.0.2起,这个参数的默认值被修改为50M。
解决方法1 :升级到10.2.0.2或者以上。
解决方法2 :
SQL> alter system set "_kgl_large_heap_warning_threshold"=20388608 scope=spfile ;
SQL> shutdown immediate
SQL> startup
或者将 2038860调成更大的值。
我是通过调整隐式参数的方式解决的,重启后。
下面就是在oracle中访问sqlserver2005数据库的数据的效果:
SQL> select "name" from sysobjects@sql2005fororacle where "type"='U';
name
--------------------------------------------------------------------------------
spt_fallback_db
spt_fallback_dev
spt_fallback_usg
QuestSoftwareProc
pbcattbl
pbcatcol
pbcatfmt
pbcatvld
pbcatedt
spt_monitor
spt_values
name
--------------------------------------------------------------------------------
MSreplication_options
已选择12行。
SQL> desc sysusers@sql2005fororacle
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
uid NUMBER(5)
status NUMBER(5)
name NOT NULL VARCHAR2(128 CHAR)
sid RAW(85)
roles RAW(2000)
createdate NOT NULL DATE
updatedate NOT NULL DATE
altuid NUMBER(5)
password RAW(256)
gid NUMBER(5)
environ VARCHAR2(32512 CHAR)
hasdbaccess NUMBER(10)
islogin NUMBER(10)
isntname NUMBER(10)
isntgroup NUMBER(10)
isntuser NUMBER(10)
issqluser NUMBER(10)
isaliased NUMBER(10)
issqlrole NUMBER(10)
isapprole NUMBER(10)
SQL>