oracle 10g em、isqlplus访问不了的解决方法(汇总)
oracle 10g em、isqlplus的管理
如果web方式的em,isqlplus访问不了。
1. 检查主机名/IP、端口是否正确
安装时的主机名/IP、端口记录在$ORACLE_HOME/install/portlist.ini 文件中。
缺省是:
一般用户 http://ip:5560/isqlplus
DBA用户 http://ip:5560/isqlplus/dba
EM Database Control http://ip:1158/em/
2. 看em, isqlplus服务是否起启动,状态是否正常
当然Oracle安装时,要选择安装了“Oracle Enterprise Manager配置数据库”
其它问题:
3. 换了ip需要重建em,以下是em的相关命令:
创建一个EM资料库
emca -repos create
重建一个EM资料库
emca -repos recreate
删除一个EM资料库
emca -repos drop
配置数据库的 Database Control
emca -config dbcontrol db
删除数据库的 Database Control配置
emca -deconfig dbcontrol db
重新配置db control的端口,默认端口在1158
emca -reconfig ports
em ......
create or replace type mytype IS TABLE OF varchar2(20);
declare type1 mytype :=mytype('1','2','3','4');
i number:=1;
var_str varchar(20):='liaomin';
begin
type1.EXTEND;
type1(type1.COUNT):=var_str;
loop
dbms_output.put_line(type1(i));
i:=i+1;
exit when i=type1.count+1;
end loop;
end;
注意地方 IS TABLE OF varchar2(20); 表示表格中的varchar2(20) 相当于一列数据 这里就表示数组
type1需要添加数据 必须调用 EXTEND添加一份地址 其实最后一个位置 也就是该添加值的地方
注意 该数组的下标是从 1开始的 ......
理解oracle中连接和会话 1. 概念不同:概念不同:
连接是指物理的网络连接。
在已建立的连接上,建立客户端与oracle的会话,以后客户端与oracle的交互都在一个会话环境中进行。
2. 关系是多对多:
一个连接上可以建立0个,1个,2个,多个会话。
Oracle允许存在这样的会话,就是失去了物理连接的会话。
3. 概念应用:概念应用:
oracle的sessions参数决定的是会话数而不是物理连接数。
oracle的临时表中的数据是各会话间隔离的,而与连接概念无关。
jdbc的connection,对oracle是一个会话的概念。
4. 实际应用:
连接池,为了提高数据库交互效率,一般驱动程序都有连接池概念的实现。
Oracle不同的驱动提供两种连接池概念。
一种译为隐式连接缓冲
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:@10.1.3.60:1521:orcl");
ods.setUser("NC50_DEV");
ods.setPassword("NC50_DEV");
ods.setConnectionCachingEnabled(true);
java.util.Properties jup = new java.util.Properties();
jup.setProperty("InitialLimit", "1");
jup.setProperty("MinLimit", "1");
jup.setProperty("MaxLimit", "2");
ods.setConnectionCacheP ......
说明:下文中的一些说明和示例代码摘自CSDN,恕不一一指明出处,在此一并对相关作者表示感谢!
1 语法
在Oracle中,可以创建以下两种临时表:
1) 会话特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT PRESERVE ROWS;
2) 事务特有的临时表
CREATE GLOBAL TEMPORARY ( )
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是如果insert 一条记录然后用别的连接登上去select,记录是空的。
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
2 动态创建
create or replace procedure pro_temp(v_col1 varchar2,v_col2 varchar2) as
v_num number;
begin
select count(*) into v_num from user_tables where table_name='T_TEMP';
--create temporary table
if v_num<1 then
execute immediate 'CREATE GLOBAL TEMPORARY TABLE T_TEMP (
COL1 VARCHAR2(10 ......
在初学Oracle时,写了一个存储过程,名称是:PROC_GET_BILL,三个参数,第1,3是in参数,第2是out参数,写完之后,想测一下,结果发现网上有多种方式(其重要是下面这两种,只是写法不同而已),刚开始把两种变量定义方式搞错了,一直执行不过,经慢慢尝试,得到了下面两种写法,希望像我这样初学者少走弯路,直接搞清两种方式(红色字体是注释)。
1.写法
var test1 VARCHAR2(2000);
var test2 VARCHAR2(10);
exec OUTER_SYSTEM_INTERFACE_PKG.PROC_GET_BILL('','',:test1,:test2);
select :test1 from dual;
OUTER_SYSTEM_INTERFACE_PKG(是Package)
2、写法
declare
o_result VARCHAR2(2000);
o_split_char VARCHAR2(10);
begin
CMCC.OUTER_SYSTEM_INTERFACE_PKG.PROC_GET_BILL('','', o_result, o_split_char);
dbms_output.put_line(o_result);
end;
CMCC(是DB名称) ......
今天遇到一个问题,PERL 引起Oracle数据库100% CPU,系统是enterprise linux 4 update 7 64 bit
查看进程原来是grid的agent。只有先停掉grid
./emctl stop agent
./opmn stopall
pkill -9 perl
然后再看看有没有什么bug。 这是个bug, 打了patch 5908032后好像正常了。
oracle 549 1 99 Apr29 ? 15:51:32 /u01/app/oracle/OracleHomes/agent10g/perl/bin/perl /u01/app/oracle/OracleHomes/agent10g/sysman/admin/scripts/emdprocstats.pl 1
5727
oracle 3740 28443 0 13:56 pts/1 00:00:00 grep perl
oracle 13709 1 98 11:18 ? 02:35:18 /u01/app/oracle/OracleHomes/agent10g/perl/bin/perl /u01/app/oracle/OracleHomes/agent10g/sysman/admin/scripts/emdprocstats.pl 1
175
oracle 14667 1 98 02:22 ? 11:27:08 /u01/app/oracle/OracleHomes/agent1 ......