2016年01月第2周总结

1.ORACLE 11G RAC 相关日志的存放位置
在ORACLE 11G RAC 中,一般情况下:
(1)ASM实例的日志存放在grid用户的$ORACLE_BASE/diag下,也可以通过如下方式查看:
[root@dm01db02 ~]# su - grid
[grid@dm01db02 ~]$ sqlplus / as sysdba
SQL> show parameter background_dump_dest
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /u01/app/11.2.0.3/grid/rdbms/l
                                                 og
SQL> 
(2)DB实例的日志存放在oracle用户的$ORACLE_BASE/diag下,也可以通过如下方式查看:
[root@dm01db02 ~]# su - oracle
[oracle@dm01db02 ~]$ sqlplus / as sysdba
SQL> show parameter background_dump_dest
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest                 string      /u01/app/oracle/diag/rdbms/jsd           
(3)RAC相关的群集日志存放在目录$ORACLE_HOME/log/主机名下
此目录下还有更多其他的相关日志。
2.如何友好的查看ORACLE日志
当ORACLE日志文件过大时,用cat或more命令查看过不方便,此时我们可以通过如下两种方法来友好的查看:
(1)用less命令
less 日志.log
按shift + g 进入文件尾
按b向前翻一页
按空格键向后翻一页
(2)把文件最后的一些行另存为一个新的文件
tail -n 2000 日志.log > newfile.log
直接查看newfile.log文件即可,这种方法一般将日志文件取出来让别人帮助诊断故障时非常有效。
3.AIX和LINUX下查看文件目录的大小
AIX下:
du -h --max-depth=1
LINUX下:
du -sg *
4.如何查看查看会话的游标数量
(1)
select o.inst_id,o.sid, osuser, machine, count(*) num_curs
from gv$open_cursor o, gv$session s
where user_name IN( 'CJCL','AQDB') and o.sid=s.sid
and o.inst_id = s.inst_id
group BY o.inst_id,o.sid, osuser, machine
order by  num_curs desc;
(2)根据SID查看游标内容
select q.sql_text,q.inst_id
from gv$open_cursor o, gv$sql q
where q.hash_value=o.hash_value
AND o.inst_id=q.INST_ID
 and o.sid = 4610;
5.Oracle 11G在用EXP 导出时,空表不能导出解决
详见:http://blog.csdn.net/jiaping0424/article/details/50471022
6.如何查看会话所占用的PGA大小
Select Server, Osuser, Name, Value / 1024 / 1024 Mb, s.Sql_Id, Spid, s.*
From V$session s, V$sesstat St, V$statname Sn, V$process p
Where St.Sid = s.Sid
And St.Statistic# = Sn.Statistic#
And Sn.Name Like 'session pga memory'
And p.Addr = s.Paddr AND s.PROGRAM LIKE 'JDBC%'
Order By Value Desc;
7.SHELL下如何过虑掉文本的头一行
[oracle@ora1a:/home/oracle]#>df -g
Filesystem    GB blocks      Free %Used    Iused %Iused Mounted on
/dev/hd4          10.00      5.67   44%    57696     5% /
/dev/hd2          20.00     13.96   31%    74460     3% /usr
[oracle@ora1a:/home/oracle]#>df -g|grep -v "`df -g|head -n 1`"
/dev/hd4          10.00      5.67   44%    57696     5% /
/dev/hd2          20.00     13.96   31%    74460     3% /usr
[oracle@ora1a:/home/oracle]#>
8.SHELL下如何实现把一行文本中的2个及2个以上的空格替换成1个空格,有两种方法实现:
(1)df -g|grep -v "`df -g|head -n 1`"|tr -s ' '
(2)df -g|grep -v "`df -g|head -n 1`"|sed 's/ \{1,\}/ /g'
9.SHELL下如何给文本添加1列
df -g|grep -v "`df -g|head -n 1`"|sed 's/ \{1,\}/ /g'|sed "s/^/`date +%F` /g"
10.LINUX环境下用df命令显示结果时,如何让结果不自动换行
df -hP
11.如何用SQL实现把字符串中的2个及2个以上的空格替换成指定的字符
待处理的字符串如下:
SQL> SELECT 'a   b  c d e           f  g h' NAME FROM dual;
NAME
-----------------------------
a   b  c d e           f  g h
希望把字符串中的1个或多个空格替换为','后为:
a','b','c','d','e','f','g','h
实现:
SELECT REGEXP_REPLACE('a   b  c d e           f  g h','( ){1,}',''',''') col FROM dual; 




你可能感兴趣的:(2016年01月第2周总结)