在最近一段工作中,发现Oracle总是有一些小问题反复出现,因此总结一下分享出来,希望各位大虾不吝指教
1、Oracle安装完成后的初始口令?
internal/oracle
sys/change_on_install
system/manager
scott/tiger
sysman/oem_temp
2. ORACLE9IAS WEB CACHE的初始默认用户和密码?
administrator/administrator
3. oracle 8.0.5怎幺创建数据库?
用orainst。如果有motif界面,可以用orainst /m
4. oracle 8.1.7怎幺创建数据库?
dbassist
5. oracle 9i 怎幺创建数据库?
dbca
6. oracle中的裸设备指的是什幺?
裸设备就是绕过文件系统直接访问的储存空间
7. oracle如何区分 64-bit/32bit 版本???
$ sqlplus ‘/ AS SYSDBA‘
SQL*Plus: Release 9.0.1.0.0 - Production on Mon Jul 14 17:01:09 2003
(c) Copyright 2001 Oracle Corporation. All rights reserved.
Connected to:
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
With the Partitioning option
JServer Release 9.0.1.0.0 - Production
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
PL/SQL Release 9.0.1.0.0 - Production
CORE 9.0.1.0.0 Production
TNS for Solaris: Version 9.0.1.0.0 - Production
NLSRTL Version 9.0.1.0.0 - Production
SQL>
8. SVRMGR什幺意思?
svrmgrl,Server Manager.
9i下没有,已经改为用SQLPLUS了
sqlplus /nolog
变为归档日志型的
9. 请问如何分辨某个用户是从哪台机器登陆ORACLE的?
SELECT machine , terminal FROM V$SESSION;
10. 用什幺语句查询字段呢?
desc table_name 可以查询表的结构
select field_name,... from ... 可以查询字段的值
select * from all_tables where table_name like ‘%‘
select * from all_tab_columns where table_name=‘??‘
11. 怎样得到触发器、过程、函数的创建脚本?
desc user_source
user_triggers
12. 怎样计算一个表占用的空间的大小?
select owner,table_name,
NUM_ROWS,
BLOCKS*AAA/1024/1024 "Size M",
EMPTY_BLOCKS,
LAST_ANALYZED
from dba_tables
where table_name=‘XXX‘;
Here: AAA is the value of db_block_size ;
XXX is the table name you want to check
13. 如何查看最大会话数?
SELECT * FROM V$PARAMETER WHERE NAME LIKE ‘proc%‘;
SQL>
SQL> show parameter processes
NAME TYPE VALUE
------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 4
log_archive_max_processes integer 1
processes integer 200
这里为200个用户。
select * from v$license;
其中sessions_highwater纪录曾经到达的最大会话数
14. 如何查看系统被锁的事务时间?
select * from v$locked_object ;
15. 如何以archivelog的方式运行oracle。
init.ora
log_archive_start = true
RESTART DATABASE
16. 怎幺获取有哪些用户在使用数据库
select username from v$session;
17. 数据表中的字段最大数是多少?
表或视图中的最大列数为 1000
18. 怎样查得数据库的SID ?
select name from v$database;
也可以直接查看 init.ora文件
19. 如何在Oracle服务器上通过SQLPLUS查看本机IP地址 ?
select sys_context(‘userenv‘,‘ip_address‘) from dual;
如果是登陆本机数据库,只能返回127.0.0.1,呵呵
20. unix 下怎幺调整数据库的时间?
su -root
date -u 08010000
21. 在ORACLE TABLE中如何抓取MEMO类型字段为空的资料记录?
select remark from oms_flowrec
where trim(‘ ‘ from remark) is not null ;
22. 如何用BBB表的资料去更新AAA表的资料(有关联的字段)
UPDATE AAA SET BNS_SNM=
(SELECT BNS_SNM FROM BBB WHERE AAA.DPT_NO=BBB.DPT_NO)
WHERE BBB.DPT_NO IS NOT NULL;
23. P4计算机安装方法
将SYMCJIT.DLL改为SYSMCJIT.OLD
24. 如何查询SERVER是不是OPS?
SELECT * FROM V$OPTION;
如果PARALLEL SERVER=TRUE则有OPS能
25. 如何查询每个用户的权限?
SELECT * FROM DBA_SYS_PRIVS;
26. 如何将表移动表空间?
ALTER TABLE TABLE_NAME MOVE TABLESPACE_NAME;
27. 如何将索引移动表空间?
ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME;
28. 在LINUX,UNIX下如何激活DBA STUDIO?
OEMAPP DBASTUDIO
29. 查询锁的状况的对象有?
V$LOCK, V$LOCKED_OBJECT, V$SESSION, V$SQLAREA, V$PROCESS ;
查询锁的表的方法:
SELECT S.SID SESSION_ID, S.USERNAME, DECODE(LMODE, 0, ‘None‘, 1,
‘Null‘, 2, ‘Row-S (SS)‘, 3, ‘Row-X (SX)‘, 4, ‘Share‘, 5, ‘S/Row-X (SSX)‘,
6, ‘Exclusive‘, TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0, ‘None‘, 1,
‘Null‘, 2, ‘Row-S (SS)‘, 3, ‘Row-X (SX)‘, 4, ‘Share‘, 5, ‘S/Row-X (SSX)‘,
6, ‘Exclusive‘, TO_CHAR(REQUEST)) MODE_REQUESTED,
O.OWNER||‘.‘||O.OBJECT_NAME||‘ (‘||O.OBJECT_TYPE||‘)‘, S.TYPE
LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2 FROM V$LOCK L, SYS.DBA_OBJECTS
O, V$SESSION S WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;
30. 如何解锁?
ALTER SYSTEM KILL SESSION ‘SID,SERIR#’;
31. SQLPLUS下如何修改编辑器?
DEFINE _EDITOR=“<编辑器的完整路经>” -- 必须加上双引号来定义新的
编辑器,也可以把这个写在$ORACLE_HOME/sqlplus/admin/glogin.sql里面使它
永久有效。
32. ORACLE产生随机函数是?
DBMS_RANDOM.RANDOM
33. LINUX下查询磁盘竞争状况命令?
Sar -d
33. LINUX下查询CPU竞争状况命令?
sar -r
34. 查询当前用户对象?
SELECT * FROM USER_OBJECTS;
SELECT * FROM DBA_SEGMENTS;
35. 如何获取错误信息?
SELECT * FROM USER_ERRORS;
36. 如何获取链接状况?
SELECT * FROM DBA_DB_LINKS;
SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,
l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time
FROM v$locked_object l, all_objects o, v$session s
WHERE l.object_id = o.object_id
AND l.session_id = s.sid
ORDER BY sid, s.serial# ;
ALTER SYSTEM KILL SESSION ‘SID,SERIR#‘;
日志表:v$ssqltext 或者是 v$sql
ORA-12516: TNS:监听程序找不到符合协议堆栈要求的可用处理程
查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常逼近
select count(*) from v$session;
show parameter processes
show parameter sessions
alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;
----重启数据库生效!!
ORACLE的连接数(sessions)与其参数文件中的进程数(process)有关,它们的关系如下:
sessions=(1.1*process+5)
但是我们增加process数时,往往数据库不能启动了。这因为我们还漏调了一个unix系统参数:它是/etc/proc/kernel 中semmns,这是unix系统的信号量参数。
每个process会占用一个信号量。semmns调整后,需要重新启动unix操作系统,参数才能生效。
不过它的大小会受制于硬件的内存或ORACLE SGA。范围可从200——2000不等。
semmns的计算公式为: SEMMNS>processes+instance_processes+system
processes=数据库参数processes的值 instance_processes=5(smon,pmon,dbwr,lgwr,arch)
system=系统所占用信号量。系统所占用信号量可用下列命令查出:
#ipcs -s
其中列NSEMS显示系统已占用信号量。
其它一些跟连接有关的参数,如 licence_max_sessions, licence_sessions_warning 等默认设置都为零,也就是没有限制。我们可以放心大胆地使用数据库了。