关于在运行Oracle的环境下部署OSW具体好处不再多说,只需要知晓,在日常Oracle定位各类故障,osw的数据可以协助诊断问题。MOS很多文档也多处提到需要osw的监控数据。 一、前期资料准备 1.1 OSW介质下载: 在MOS下载OSW,文档 OSWatcher(包括:[视频]) (文档 ID 1526578.1) 有提供下载链接。 1.2 OSW安装配置: 在文档 OS Watcher User's Guide (文档 ID 1531223.1)中,有介绍OSW的安装配置和使用。 osw 2.2将介质上传并解压 将oswbb811.tar介质上传到/opt/osw/目录下, cd /opt/osw tar xvf oswbb811.tar chmod 744 * 2.3启动osw /startOSWbb.sh 60 48 & 验证正常运行osw: [oracle@rac1-server oswbb]$ ps -ef|grep osw oracle 1041 745 0
具体OSW Analyzer详细介绍可以参考MOS文档: OSWatcher Analyzer User Guide (Doc ID 461053.1) 我们常用的就是拿到一份osw数据到自己电脑,使用下面的方法进行分析 oswbba.jar -i <input archive directory containing the oswatcher log files> 我电脑系统是macOS,目前想参照这样的方法使用OSW Analyzer对一份从客户AIX环境生成的osw数据进行分析,执行如下命令: java -jar oswbba.jar -i /Users/jingyuzhao/Documents/oswbb/archive 最开始走了弯路,以为是osw版本不一致导致,但换用相同版本的osw依然如此。 java -Duser.language=en -Duser.country=us -jar oswbba.jar -i 虽然我不是Win平台,但看起来应该是类似问题,所以重新尝试用这种方式重新解析osw
精美礼品等你拿!
OSW默认是没有私网监控的,如需增加只需配置private.net文件,对应采集信息会存放到archive/oswprvtnet目录下。 所有节点上配置,方法完全一样,这里以其中一个节点为例说明: 1.查看配置文件示例Exampleprivate.net 2.拷贝示例文件到private.net 3.修改private.net配置文件 4.确认OSW traceroute -r -F <node2-priv> ###################################################################### #Linux $ 2.拷贝示例文件到private.net [grid@db02 oswbb]$ cp Exampleprivate.net private.net 3.修改private.net配置文件 保留Linux db02 oswbb]$ cat private.net ###################################################################### #Linux
下面来验证一下: 首先,默认的osw采集间隔是30s,保存时间为48h: [grid@db01 ~]$ ps -ef|grep osw grid 8378 1 0 Jun27 ? /suptools/db01/oswbb/grid/archive grid 11868 11846 0 23:34 pts/0 00:00:00 grep --color=auto osw /suptools/db01/oswbb/grid/archive grid 12152 11846 0 23:34 pts/0 00:00:00 grep --color=auto osw [grid@db01 ~]$ ps -ef|grep osw grid 12123 1 0 23:34 pts/0 00:00:00 /bin/sh . grid 5976 5940 0 23:47 pts/0 00:00:00 grep --color=auto osw 遗憾的看到,重启后osw压根儿都没有自启动,更别提保留什么配置了
收集特定时间段的 OSW 数据 查看 OSW 的数据存储位置 ps -ef | grep OSW 收集指定时间段的日志,例如: cd /u01/soft/osw/oswbb/archive find . 我们知道在 Linux 系统中,如果进程崩溃了,系统内核会捕获到进程崩溃信息,然后将进程的 coredump 信息写入到文件中,这个文件名默认是 core 。 # gdb -c vmcore GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-114.el7 Copyright (C) 2013 Free Software This GDB was configured as "x86_64-redhat-linux-gnu". 参考链接:https://www.kernel.org/doc/Documentation/sysctl/vm.txt 内存大页,大内存页,标准大页等均是同一个东西,之前写的《Linux 透明大页 THP
Exception{ String path = this.getClass().getResource("/test7").getPath(); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(new File(path))); osw.write("a"); osw.write(98 ); osw.write("\n"); osw.write(new char[]{'a','b','c','d','e'}); osw.write("\n\r"); osw.write(new char[]{'a','b','c','d','e'},0,2); osw.write("\n\r"); osw.write("hello world"); osw.write("\n\r"); osw.write("hello world",0,5); osw.write("\n\r"); osw.flush();
('a'); osw.write(98); osw.write("\r\n"); // public void write(char[] cbuf):写一个字符数组 char[] chs = {'q','w','e','r','t'}; osw.write(chs); osw.write("\r\n"); // public void write (char[] cbuf,int off,int len):写一个字符数组的一部分 osw.write(chs,1,3); osw.write("\r\n"); // public void write(String str):写一个字符串 osw.write("public void write(String str):写一个字符串"); osw.write write(String str,int off,int len):写一个字符串的一部分", 2, 3); osw.write("\r\n"); // 刷新缓冲区 osw.flush
(AHF) - Including TFA and ORAchk/EXAChk (Doc ID 2550798.1) )下载最新的稳定版 TFA & ORAchk/EXAchk 20.1 for Linux ,对应介质为:AHF-LINUX_v20.1.3.zip,解压后运行ahf_setup即可完成安装。 /ahf_setup AHF Installer for Platform Linux Architecture x86_64 AHF Installation Log : /tmp/ahf_install ,无需DBA再单独部署OSW: [oracle@db01 ~]$ ps -ef|grep tfa root 10732 1 0 Jun25 ? oracle 12965 19247 0 01:44 pts/0 00:00:00 grep --color=auto osw grid 16991 1 0 Jun25
String filePathName, String content) { 8 boolean flag = false; 9 OutputStreamWriter osw equals(filePathName)) { 12 osw = new OutputStreamWriter(new FileOutputStream(filePathName e1) { 15 flag = false; 16 e1.printStackTrace(); 17 } 18 if (osw String filePathName, String content) { 8 boolean flag = false; 9 OutputStreamWriter osw e1) { 16 flag = false; 17 e1.printStackTrace(); 18 } 19 if (osw
其实在GI 11.2.0.2 中,ORACLE 就把CHM 整合到GI中了,所以在11.2.0.2 的Linux 和Solaris 的2个平台中,不需要单独的安装CHM。 . 11.2.0.3: AIX, Solaris (Sparc 64 and x86-64only), Linux, and Windows. 在之前的版本里,当系统出现问题时,比如节点重启,我们都会部署OSW,来收集相关的信息,CHM和OSW既然是2个类似的工具,那么肯定就有对比和选择: (1) CHM直接调用OS的API来降低开销,而OSWatcher (2) 相对于OSW,CHM 收集的频率更快,每秒一次, (3) 与OSW比,CHM 不会收集top,traceroute,netstat 的信息。 (4) OSW 是运行在user priority,所以在CPU 负载很高的时候,是不能工作的,也就是说CHM 可以收集到OSW 收集不到的数据。
先上一段代码(上好的代码,多年陈酿) 1OutputStreamWriter osw = newOutputStreamWriter(resp.getOutputStream(), "UTF-8"); contentMap.get(RESPONSE_RESULT); 4resp.setHeader("Content-Disposition", "attachment;filename=test.csv"); 5osw.write (result); 6osw.flush(); 问题来了: 在SERVLET中,通过以上代码将内容输出至CSV文件中后,用EXCEL打开文件时,总是产生乱码,但是用NOTEPAD++打开时,显示正常。 具体方法如下: 1OutputStreamWriter osw = newOutputStreamWriter(resp.getOutputStream(), "UTF-8"); 2// 要输出的内容 (newString(newbyte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF})); 6osw.write(result); 7osw.flush(); 重点就是上面的红色代码了
osw = new OutputStreamWriter( new FileOutputStream("osw.txt"), "UTF-8"); // 指定UTF-8 // 写数据 osw.write("中国"); // 释放资源 osw.close(); } 2、OutputStreamWriter写数据 OutputStreamWriter写数据方法 ("osw2.txt")); // 写数据 // public void write(int c):写一个字符 // osw.write('a'); // osw.write(97); // len):写一个字符串的一部分 osw.write("我爱林青霞", 2, 3); // 刷新缓冲区 osw.flush(); // osw.write("我爱林青霞", 2, 3); / = -1) { osw.write(chs, 0, len); // osw.flush(); } // 释放资源 osw.close(); isr.close(); }
= new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(osw); try{ bw.write(" 手写代码进行Stream流的关闭"); bw.flush(); }finally{ bw.close(); //手动关闭IO管道流 osw.close(); fos.close testTry.txt"; try(FileOutputStream fos = new FileOutputStream(fileName); OutputStreamWriter osw = new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(osw);){ bw.write("IO = new OutputStreamWriter(fos); BufferedWriter bw = new BufferedWriter(osw); try(bw;osw;fos){ /
try { FileOutputStream fos = new FileOutputStream("d:\\a.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8"); BufferedWriter bw = new BufferedWriter(osw); = null) { bw.close(); } if (osw! = null) { osw.close(); } if (fos! = null){ osw.close(); } }catch(Exception e){ } try{ if(fos!
= new OutputStreamWriter(new FileOutputStream( // "osw.txt")); // 默认GBK // OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream( "osw.txt"), "UTF-8"); // 指定UTF-8 // 写数据 osw.write( // osw.write('a'); // osw.write(97); // 为什么数据没有进去呢? ):写一个字符串的一部分 osw.write("我爱林青霞", 2, 3); // 刷新缓冲区 osw.flush(); // osw.write("我爱林青霞", 2, 3); // 释放资源 = -1) { osw.write(chs, 0, len); // osw.flush(); } // 释放资源 osw.close(); isr.close(); } } B:把当前项目目录下的
context, String fileName,String data) { FileOutputStream fOut = null; OutputStreamWriter osw = null; try{ fOut =context.openFileOutput(fileName, 1); osw = new OutputStreamWriter (fOut); osw.write(data); osw.flush(); Toast.makeText(context, " saved Toast.LENGTH_SHORT).show(); } finally { try { osw.close
上面的参考文章给出的解决方案如下: OutputStreamWriter osw = new OutputStreamWriter(resp.getOutputStream(), "UTF-8"); (new String(new byte[] { (byte) 0xEF, (byte) 0xBB,(byte) 0xBF })); osw.write(result); osw.flush() , (byte) 0xBF })); osw.write(s); osw.flush(); 我按照参考的文章写了这代码,看起来好像没什么问题。 = new OutputStreamWriter(fos); osw.append(s); osw.flush(); 原来的osw.write()也改成了 osw.append()。
OutputStreamWriter(new FileOutputStream("myCharStream\\osw.txt ")); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("myCharStream\\osw.txt"),"GBK"); osw.write("中国"); osw.close(); new InputStreamReader(new FileInputStream("myCharStream\\osw.txt InputStreamReader(new FileInputStream("myCharStream\\osw.txt
write_utf_() throws IOException { // 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称 OutputStreamWriter osw ("你好"); //3.使用OutputStreamWriter对象中的flush方法,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程) osw.flush(); //4.释放资源 osw.close write_gbk() throws IOException{ // 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称 OutputStreamWriter osw FileOutputStream("E:\\多线程\\gbk.txt"),"GBK"); // 2.使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储到缓冲区中(编码) osw.write ("你好"); //3.使用OutputStreamWriter对象中的flush方法,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程) osw.flush(); //4.释放资源 osw.close
String[] args) throws Exception { File bat = new File("cmd.bat"); OutputStreamWriter osw =new OutputStreamWriter((new FileOutputStream("cmd.bat")),"gb2312"); osw.write("del delete_file.txt \r\n"); osw.write("del 待删除文件.txt\r\n"); osw.write("pause\n"); osw.close();
扫码关注腾讯云开发者
领取腾讯云代金券