用oracle trace 来跟踪session 活动
在网上找到了一些高人的资料,我测试后做下笔记。1.select sid,serial#,username,osuser,machine from v$session;查询session的sid,serial#假如sid为141,serial#为6,必须用SYSDBA权限的用户执行2和32.exec dbms_system.set_sql_trace_in_session(141,6,true);开始跟踪3.exec dbms_system.set_sql_trace_in_session(141,6,false) 停止跟踪4.在udump文件夹里生成一个 trc文件,5.WIN可用UltraEdit查看,linux可用VI查看。也可结合“记录ORACLE用户登录信息”文章使用,不过机器负担可能会比较重。[@more@]
记录ORACLE用户登录信息
首先,建一个表如表名:LOGIN_LOG-- Create tablecreate table LOGIN_LOG( SESSION_ID INTEGER not null, LOGIN_ON_TIME DATE, LOGIN_OFF_TIME DATE, USER_IN_DB VARCHAR2(60), MACHINE VARCHAR2(40), IP_ADDRESS VARCHAR2(40), RUN_PROGRAM VARCHAR2(40))tablespace PDA_DATA pctfree 10 pctused 40 initrans 1 maxtrans 255 storage ( initial 64K next 128K minextents 1 maxextents unlimited pctincrease 0 );再创建两个触发器:login_on_info和login_off_info:create or repl
简单防范SYN_RECV攻击(转发)
SYN攻击是最常见又最容易被利用的一种攻击手法。相信很多人还记得2000年YAHOO网站遭受的攻击事例,当时黑客利用的就是简单而有效的SYN攻击,有些网络蠕虫病毒配合SYN攻击造成更大的破坏。本文介绍SYN攻击的基本原理、工具及检测方法,并全面探讨SYN攻击防范技术。一、TCP握手协议 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个
LINUX TCP连接优化
转发,谢谢原创者新增的一组Apache服务器上线以来,我用netstat -an命令发现服务器中有大量状态为TIME-WAIT的TCP连接,于是用/sbin/sysctl -a查看了一下Linux的各项内核参数,并翻阅有关资料,决定修改其中的两项参数,以达到减少TCP连接中TIME-WAIT sockets的目的。 vi /etc/sysctl.conf 编辑/etc/sysctl.conf文件,增加三行: 引用 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 说明: net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用
用命令启动VM虚拟机不显示界面报错的解决方法
当使用nogui参数,出现“unknown error"错误,并不起作用。从网上找来了处理的方法,经过在VMWARE6.0测试成功。1. EXPORT from the registry the keys at and under "HKEY_LOCAL_MACHINESOFTWAREVMware, Inc.VMware Workstation"2. in the exported copy, delete all the stuff under the sub-key "Dormant", "License.ws.5.0" and "License.ws.6.0.200610"3. There won't be much left, but in what is left, change the word "VMware Workstation" to "vmrun"4. Merg
将EXCEL里的电话号码用逗号分隔导出
有个同事需要在EXCEL表中某一列导出电话号码,并用逗号隔开,GOOGLE查了一些文档后,调用VB来完成这个转换,总结如下:1、EXCEL里,选择菜单,工具-宏-Visual Basic 编辑器,粘贴以下代码。Sub QuoteCommaExport() ' Dimension all variables. Dim DestFile As String Dim FileNum As Integer Dim ColumnCount As Integer Dim RowCount As Integer ' Prompt user for destination file name. DestFile = InputBox("Enter the destination filename" _ & Chr(10) & "(with complete path):&qu
修改ORACLE数据库字符集
查询字符集select * from nls_database_parameters;修改字符集为中文update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';记得commit;第二天发现由于字符集抛出一个错误 ORA-06552: PL/SQL: Compilation unit analysis terminated ORA-06553: PLS-553: character set name is not recognized原因是: 更改props$表,并不能完全更改字符集后来找到篇文章,才解决了。处理步骤如下:SHUTDOWN IMMEDIATE; STARTUP MOUNT;ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER DATABASE OPEN; ALTER DATABASE CHARACTER
redolog文件更改路径
迁移redolog 文件 1.查看Redolog 的文件的位置所在。 select member from v$logfile; 2.选择要迁移的Redolog的位置, 查看Redolog 位置的状态. select g.member, v.status from v$log v , v$logfile g where v.GROUP#=g.GROUP#; 3.如果日志的状态为CURRENT, 切换日志. alter system switch logfile; 4.移动日志文件的位置 剪切或复制日志文件到新的路径下。5.数据字典的更名 alter database rename file '路径/名称' to '新路径/新名称';6.进行切换日志的测试. alter system switch logfile; 7.完成 [@more@]
Oracle10G归档模式应用
一、更改归档模式 1、在pfile里,可以修改log_archive_dest_n 这个参数.n=1,2,3,....10, 10G缺省会使用log_archive_dest_10这个参数来使用flash recovery area里面存放的归档日志文件。归档日志文件占用空间大小可设置db_recovery_file_dest_size参数。 eg: 修改log_archive_dest_1="location=/.../archivelog quota_size=20G" ... 或者用sysdba权限的用户在数据库mount的状态下进入数据库修改参数,如 alter system set log_archive_dest_1="location=/.../archivelog quota_size=20G" scope=bo
从A机拷贝ORACLE数据库到B机
前几天有台服务器的oracle10g数据库的一张系统表损坏了(可能是因为不正常shutdown所致),但在在BDUMP下的alert日志里却不断报ora-00600错误,并且在BDUMP文件夹内产生大量的trc跟踪文件,导致该分区下没两三天硬盘空间就不够用了。因此决定重新建一个实例,并将旧实例的数据导进新实例中,再删除旧的实例。参考了网上一些高手文章,终于顺利完成。具体步骤如下:首先先将旧数据库启动起来,sartup force;再导出用户数据:exp userid=USERNMAE/PSW@SID FILE=/***.DMP LOG=***.LOG OWNER=USERNAME FEEDBACK=10000.导完或再建库。 建
Oracle10G手动建立实例
前几天有台服务器的oracle10g数据库的一张系统表损坏了(可能是因为不正常shutdown所致),但在在BDUMP下的alert日志里却不断报ora-00600错误,并且在BDUMP文件夹内产生大量的trc跟踪文件,导致该分区下没两三天硬盘空间就不够用了。因此决定重新建一个实例,并将旧实例的数据导进新实例中,再删除旧的实例。参考了网上一些高手文章,终于顺利完成。具体步骤如下:首先先将旧数据库启动起来,sartup force;再导出用户数据:exp userid=USERNMAE/PSW@SID FILE=/***.DMP LOG=***.LOG OWNER=USERNAME FEEDBACK=10000.导完或再建库。 建库步
给年轻工程师的十大忠告!
今天浏览网页的时候偶然看到这篇文章,感触很大,现在转载,希望能给同类人得到些启发. 给年轻工程师的十大忠告!(转自老古论坛) 诸位,咱当电子工程师也是十余年了,不算有出息,环顾四周,也没有看见几个有出息的!回顾工程师生涯,感慨万千,愿意讲几句掏心窝子的话,也算给咱们师弟师妹们提个醒,希望他们比咱们强! [1]好好规划自己的路,不要跟着感觉走!根据个人的理想决策安排,绝大部分人并不指望成为什么院士或教授,而是希望活得滋润一些,爽一些。那么,就需要慎重安排自己的轨迹。从哪个行业入手,逐渐对该行业深入了解,不要
oracle表命名
今天上午帮一个同事建了两个表空间,他自己用脚本把一些从南京拿来的数据库SQL脚本写进去.到下午时,他发现他导进去的表不能用,如:SQL> select * from Dict_Dept;select * from Dict_Dept*ERROR 位于第 1 行:ORA-00942: 表或视图不存在但是在user_tables去看到Dict_Dept这张表.后来查出原来建表的人在命名时,在表名上加了引号,比如: create table "Dict_Dept" (varchar2(10));所以它的表名应该是"Aa", 改为select * from "Dict_Dept";就不会抛错了.在User_table里存储的表名默认是大写的,如果显