linux 杀掉某用户的全部进程
ps -ef | grep ^oracle | cut -c 10-15 | xargs kill -9
参考cut的用法:http://blog.csdn.net/zsf8701/article/details/7718680
ps -ef | grep ^oracle | cut -c 10-15 | xargs kill -9
参考cut的用法:http://blog.csdn.net/zsf8701/article/details/7718680
参考:http://baike.baidu.com/link?url=3MShV9QMO4ru0NUXK3-CiGczfQGsFQ18tWVvv3RDX3EQoq0KHOd5oaOIc2PS0mvHZBUM63fE60p0ncmIOqfyi_
它的作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题。
xargs 可以读入 stdin 的资料,并且以空白字元或断行字元作为分辨,将 stdin 的资料分隔成为 arguments 。 因为是以空白字元作为分隔,所以,如果有一些档名或者是其他意义的名词内含有空白字元的时候, xargs 可能就会误判了,如果需要处理特殊字符,需要使用-0参数进行处理。
如 文件list中以换行为分隔符,有以下字段
1 2 3 4 5 6 7 |
/home/train/rm $vi list "list" aa bb cc dd ee |
下面将list文件中的内容作为输入,将该输入作为touch的argument,批量创建5个文件
1 2 3 4 |
/home/train/rm $cat list | xargs touch /home/train/rm $ls aa bb cc dd ee list /home/train/rm $ |
使用命令:w
1 2 3 4 5 6 7 |
[root@localhost ~]# w 17:30:28 up 4 days, 36 min, 4 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 19.87s 19.87s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash <strong>root pts/1 172.16.116.1 17:30 2.00s 0.04s 0.04s -bash</strong> root pts/3 172.16.116.1 15:07 4.00s 0.24s 0.11s w |
踢掉前文中加粗的17:30登录进来的用户
1 2 3 4 5 6 7 |
[root@localhost ~]# pkill -kill -t pts/1 [root@localhost ~]# w 17:33:14 up 4 days, 39 min, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 19.88s 19.88s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash root pts/3 172.16.116.1 15:07 2.00s 0.14s 0.01s w |
使用kill杀掉该用户的pts进程
杀掉banana用户:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
[root@localhost ~]# w 17:36:55 up 4 days, 42 min, 5 users, load average: 0.29, 0.13, 0.08 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 21.26s 21.26s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash root pts/3 172.16.116.1 15:07 7.00s 0.22s 0.08s w root pts/1 :0.0 17:36 23.00s 0.00s 0.00s /bin/bash banana tty7 :1 17:36 6days 2.97s 0.19s pam: gdm-passwo [root@localhost ~]# ps -ef | grep tty7 root 47850 47846 2 17:34 tty7 00:00:03 /usr/bin/Xorg :1 -br -verbose -audit 4 -auth /var/run/gdm/auth-for-gdm-efS0YG/database -nolisten tcp root 48408 45998 0 17:37 pts/3 00:00:00 grep tty7 [root@localhost ~]# kill -9 47846 [root@localhost ~]# w 17:38:21 up 4 days, 44 min, 5 users, load average: 0.86, 0.51, 0.23 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 :0 04Jun15 6days 21.26s 21.26s /usr/bin/Xorg : root pts/0 :0.0 Mon09 2days 0.01s 0.01s /bin/bash root pts/3 172.16.116.1 15:07 5.00s 0.16s 0.01s w root pts/1 :0.0 17:36 1:49 0.00s 0.00s /bin/bash |
参考链接:http://publib.boulder.ibm.com/wasce/V2.1.0/zh_CN/javaopts.html
初始堆大小
要指定 Java 虚拟机的初始堆大小,请在启动服务器之前,将下列选项包含在 JAVA_OPTS 环境变量中:
-XmsIm
其中 I 由初始堆大小替换(单位:MB)。
最大堆大小
要指定 Java 虚拟机的最大堆大小,请在服务器启动之前,在 JAVA_OPTS 环境变量中包含以下选项:
-XmxMm
其中 M 由最大堆大小替换(单位:MB)。
以大页面分配堆
要指定以大页面分配堆,请在启动服务器之前,将下列选项包含在 JAVA_OPTS 环境变量中:
-Xlp
指定以大页面分配堆。
启用代理服务器
请考虑服务器由防火墙保护的情况。服务器可能仍需要访问防火墙以外的站点,例如,使用管理控制台来访存并安装 JDBC 驱动程序。如果必须将服务器配置为使用代理服务器访问外部资源,请在启动服务器之前,将下列选项包含在 JAVA_OPTS 环境变量中:
-DproxySet=true
配置 Java 虚拟机以使用代理服务器。
-DproxyHost=host
其中 host 是运行代理服务器的主机。
-DproxyPort=port
其中 port 是代理服务器侦听的端口。
定制日志记录
如果希望对服务器中的日志记录进行更精密的控制,那么您可以指定自己的日志记录设置,并在启动服务器之前在 JAVA_OPTS 环境变量中提供单独的 log4j.xml 文件。以下选项将覆盖 \var\log 目录下的 XYZ-log4j.properties 文件中定义的设置。
-Dorg.apache.geronimo.log4jservice.configuration=filename
其中,filename 必须是标准的文件名,它是相对于服务器实例目录位置的。
from 课程:《机器学习》黄志洪
黄老师说话太逗了,第一次听到“他妈”的时候,还以为听错了
聊天讲课的风格,赞!好好学!
哇 感觉每一个 妈(的)就跟金子一样
上了十几年学,今天才知道变量的平均值表达式叫“拔”。呵呵哒
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<strong># who am i</strong> root pts/5 Jun 08 00:50 (172.17.246.250) <strong># who</strong> train pts/0 Jun 08 00:27 (172.17.246.250) train pts/1 Jun 08 00:28 (172.17.251.8) root pts/2 Jun 08 00:55 (172.17.246.250) train pts/3 Jun 08 00:49 (172.17.246.250) train pts/4 Jun 08 00:49 (172.17.246.250) root pts/5 Jun 08 00:50 (172.17.246.250) <strong># finger root</strong> Login name: root Directory: / Shell: /usr/bin/ksh On since Jun 08 00:55:46 on pts/2, 2 minutes 26 seconds Idle Time from 172.17.246.250 On since Jun 08 00:50:57 on pts/5, 20 seconds Idle Time from 172.17.246.250 No Plan. |
1 2 3 4 5 6 |
# wall hehe Broadcast message from root@training (pts/5) at 01:07:36 ... hehe |
1 2 |
# write train pts/6 (退出命令) |
记录session信息的动态视图为
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
SQL> desc v$session Name Null? Type ----------------------------------------- -------- ---------------------------- SADDR RAW(8) <strong> SID NUMBER</strong> SERIAL# NUMBER AUDSID NUMBER PADDR RAW(8) USER# NUMBER <strong> USERNAME VARCHAR2(30)</strong> COMMAND NUMBER OWNERID NUMBER TADDR VARCHAR2(16) LOCKWAIT VARCHAR2(16) STATUS VARCHAR2(8) SERVER VARCHAR2(9) SCHEMA# NUMBER SCHEMANAME VARCHAR2(30) OSUSER VARCHAR2(30) PROCESS VARCHAR2(24) MACHINE VARCHAR2(64) PORT NUMBER TERMINAL VARCHAR2(30) PROGRAM VARCHAR2(48) TYPE VARCHAR2(10) SQL_ADDRESS RAW(8) SQL_HASH_VALUE NUMBER SQL_ID VARCHAR2(13) SQL_CHILD_NUMBER NUMBER <strong> SQL_EXEC_START DATE</strong> SQL_EXEC_ID NUMBER PREV_SQL_ADDR RAW(8) PREV_HASH_VALUE NUMBER PREV_SQL_ID VARCHAR2(13) PREV_CHILD_NUMBER NUMBER PREV_EXEC_START DATE PREV_EXEC_ID NUMBER PLSQL_ENTRY_OBJECT_ID NUMBER PLSQL_ENTRY_SUBPROGRAM_ID NUMBER PLSQL_OBJECT_ID NUMBER PLSQL_SUBPROGRAM_ID NUMBER MODULE VARCHAR2(64) MODULE_HASH NUMBER ACTION VARCHAR2(64) ACTION_HASH NUMBER CLIENT_INFO VARCHAR2(64) FIXED_TABLE_SEQUENCE NUMBER ROW_WAIT_OBJ# NUMBER ROW_WAIT_FILE# NUMBER ROW_WAIT_BLOCK# NUMBER ROW_WAIT_ROW# NUMBER TOP_LEVEL_CALL# NUMBER <strong> LOGON_TIME DATE</strong> LAST_CALL_ET NUMBER PDML_ENABLED VARCHAR2(3) FAILOVER_TYPE VARCHAR2(13) FAILOVER_METHOD VARCHAR2(10) FAILED_OVER VARCHAR2(3) RESOURCE_CONSUMER_GROUP VARCHAR2(32) PDML_STATUS VARCHAR2(8) PDDL_STATUS VARCHAR2(8) PQ_STATUS VARCHAR2(8) CURRENT_QUEUE_DURATION NUMBER CLIENT_IDENTIFIER VARCHAR2(64) BLOCKING_SESSION_STATUS VARCHAR2(11) BLOCKING_INSTANCE NUMBER BLOCKING_SESSION NUMBER FINAL_BLOCKING_SESSION_STATUS VARCHAR2(11) FINAL_BLOCKING_INSTANCE NUMBER FINAL_BLOCKING_SESSION NUMBER SEQ# NUMBER EVENT# NUMBER EVENT VARCHAR2(64) P1TEXT VARCHAR2(64) P1 NUMBER P1RAW RAW(8) P2TEXT VARCHAR2(64) P2 NUMBER P2RAW RAW(8) P3TEXT VARCHAR2(64) P3 NUMBER P3RAW RAW(8) WAIT_CLASS_ID NUMBER WAIT_CLASS# NUMBER WAIT_CLASS VARCHAR2(64) WAIT_TIME NUMBER SECONDS_IN_WAIT NUMBER STATE VARCHAR2(19) WAIT_TIME_MICRO NUMBER TIME_REMAINING_MICRO NUMBER TIME_SINCE_LAST_WAIT_MICRO NUMBER SERVICE_NAME VARCHAR2(64) SQL_TRACE VARCHAR2(8) SQL_TRACE_WAITS VARCHAR2(5) SQL_TRACE_BINDS VARCHAR2(5) SQL_TRACE_PLAN_STATS VARCHAR2(10) SESSION_EDITION_ID NUMBER CREATOR_ADDR RAW(8) CREATOR_SERIAL# NUMBER ECID VARCHAR2(64) |
拣选常用字段进行展示(加粗字体可见sys用户于15年6月8日登陆)
sql语句:
1 2 |
select sid,username,status,logon_time from v$session; |
具体执行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
SQL> select sid,username,status,logon_time 2 from v$session; SID USERNAME STATUS LOGON_TIM ---------- ------------------------------ -------- --------- 1 ACTIVE 08-JUN-15 2 ACTIVE 08-JUN-15 3 ACTIVE 08-JUN-15 4 ACTIVE 08-JUN-15 5 ACTIVE 08-JUN-15 6 ACTIVE 08-JUN-15 7 ACTIVE 08-JUN-15 8 ACTIVE 08-JUN-15 9 ACTIVE 08-JUN-15 11 ACTIVE 08-JUN-15 15 ACTIVE 08-JUN-15 SID USERNAME STATUS LOGON_TIM ---------- ------------------------------ -------- --------- 17 ACTIVE 08-JUN-15 <strong> 125 SYS ACTIVE 08-JUN-15</strong> 126 ACTIVE 08-JUN-15 127 ACTIVE 08-JUN-15 128 ACTIVE 08-JUN-15 129 ACTIVE 08-JUN-15 130 ACTIVE 08-JUN-15 131 ACTIVE 08-JUN-15 132 ACTIVE 08-JUN-15 136 ACTIVE 08-JUN-15 137 ACTIVE 08-JUN-15 22 rows selected. |
v$sql及v$sqlarea存放着统计信息在调优时使用居多,但其sql是不全的,如果想获得完整的sql需使用v$sqltext。
关于这三个视图的区别与用途见引用文章:http://blog.itpub.net/38542/viewspace-885839/
sql语句:
1 2 3 |
select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT from v$session a, v$sqlarea b where a.sql_address = b.address; |
具体执行:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
SQL> column username format a10 SQL> column sid format a10 SQL> column sql_text format a20 SQL> column sql_fulltext format a20 SQL> select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT 2 from v$session a, v$sqlarea b 3 where a.sql_address = b.address; USERNAME SID SQL_TEXT SQL_FULLTEXT ---------- ---------- -------------------- -------------------- SYS ########## select a.username, a select a.username, a .sid,b.SQL_TEXT, b.S .sid,b.SQL_TEXT, b.S QL_FULLTEXT from v$s QL_FULLTEXT ession a, v$sqlarea from v$session a, v$ b where a.sql_addres sqlarea s = b.address |
sql语句:
1 2 3 4 5 6 |
#查询ARCHIVE用户的包含“select 1”的SQL select sql_text,last_active_time from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('ARCHIVE') and sql_text like '%select 1%'; #查询ARCHIVE用户执行的命令,根据执行时间降序排列 select sql_text from v$sqlarea t where t.PARSING_SCHEMA_NAME in ('ARCHIVE') order by t.LAST_ACTIVE_TIME desc; #查询所有执行过的sql:“SELECT 1 FROM DUAL” select sql_text,sql_id from v$sqltext where sql_text like 'SELECT 1 FROM DUAL'; |
不再演示。
Oracle实例包括一组后台进程以及这些进程所共享的内存,这些后台进程及其共享内存合起来就构成了Oracle实例.
Oracle实例和数据库合起来又构成了Oracle数据库服务器.
1. DBWR 数据库写入进程
DBWR The Database Writer Process 进程负责将脏数据块从数据缓存(database block buffer)写回磁盘.当一个事务修改数据
块中的数据以后,不需要立即将数据块写回磁盘。由于Oracle所采用的先进机制,修改后的数据可以不用立即写回,并且及时出现故障
也不会丢失。因此,DBWR可以采取更有效写回方式,而不用再事务提交完之后立即写回。DBWR通常定时写回数据,除非数据缓冲区
需要清空或已满。
数据写回时,采用了最近最少使用原则(least-recently-used).对于支持异步I/O的系统,只需使用一个BWR进程即可,对不支持
异步IO的可以通过增加DBWR的个数来提升效率。
服务器参数文件SPFILE的参数:DB_WRITER_PROCESSES。修改它可以允许使用多个DBWR进程,但是不能超过物理cpu核数。
2. LGWR 日志写入进程
LGWR (the log writer process)负责将日志缓冲区中的数据写入重做日志。由于COMMIT操作依赖于LGWR写回日志(commit操
作触发LGWR将日志缓冲区数据写入UNDO日志),因此系统性能容易受到LGWR的影响。
3. PMON 进程监视进程
PMON(the Process Monitor Process)进程负责监视数据库的处理情况,并负责清除死掉的进程。PMON还负责重启失败的调度进
程(dispatcher process)
4. SMON 系统监视进程
SMON(the System Monitor Process)进程负责在实例启动时恢复实例,包括清除临时段以及恢复因系统崩溃而中断的事物。
SMON还可以通过合并空闲分区的方式清除数据库中的碎片
5.CKPT 检查点进程
CKPT(the Checkpoint Process)进程负责向DBWR进程发送信号,要求执行一次检查点,并更新数据库的所有数据和控制文件。
CheckPoint(检查点),是指有DBWR进程将所有修改过的数据缓冲区写回数据文件。CKPT是可选的,如果没有CKPT进程,则有LGWR代
行这些任务。
6. ARCHn 归档进程
ARCH(the Archiver Process )负责将再现重做日志复制到归档存储器。进档RDBMS运行在ARCHIVELOG模式时ARCH才有效,如果
系统没有运行在ARCHIVELOG模式,则系统失效后可能无法恢复。最后让系统运行在ARCHIVELOG模式下,此时归档进程可能有多个。
SQL>archive log list //查看是否为归档模式
可以再数据库Mount 模式下开启归档
SQL>alter database archivelog; //开启
SQL>alter database noarchivelog;//关闭
7. RECO 恢复进程
RECO (the Recovery Process)进程用于清除分布式数据库中的未决(pending)事务,它负责分布式事务中本地部分的提交与回滚
8. Dnnn 调度进程
如果选择了Multithreaded Server选项,则对使用的每个通信协议至少有一个调度进程。调度进程(the Dispatcher Process,Dnnn)
负责将用户进程的请求转发到一个可用的共享服务器进程,并负责将用户进程的请求转发到一个可用的共享服务器进程,并负责回送响应
消息。
9. Snnn 共享服务器进程
当使用共享服务器配置或MTS时,会用到共享服务器进程(the Shared Servers Process ,Snnn).这些进程如同专用服务器进程
(Dedicated Server Process),但可以被多个用户
共享。
10. LMS Oracle RAC 锁管理服务
使用RAC时,该服务用语管理集群中不同节点间的锁.
11. QMNn 队列管理进程
使用高级队列选项时(advanced queueing option),队列管理进程 (Queue Manager Process )用于管理作业队列,队列数目可以
达到10个,QMN0——QMN9
压缩并加密文件
1 2 3 4 5 6 |
[root@banana try]# zip -e try.zip try_encrypt Enter password: Verify password: adding: try_encrypt (stored 0%) [root@banana try]# ls try_encrypt try_encrypt02 try.zip |
压缩并加密文件夹
1 2 3 4 5 6 7 8 9 10 |
[root@banana Desktop]# zip -re try.zip backup_ver1.py try/ [root@banana Desktop]# zip -re try.zip try/ Enter password: Verify password: adding: try/ (stored 0%) adding: try/try_encrypt02 (stored 0%) adding: try/try_encrypt (stored 0%) [root@banana Desktop]# ls backup_ver1.py try try.zip |
解压需要密码:
1 2 3 4 5 6 |
[root@banana Desktop]# unzip try.zip Archive: try.zip [try.zip] try/try_encrypt02 password: replace try/try_encrypt02? [y]es, [n]o, [A]ll, [N]one, [r]ename: A extracting: try/try_encrypt02 extracting: try/try_encrypt |
就是这样。。。挺简单的
安全性嘛,基本上就防防君子和小白的节奏。因为设置密码的过程很容易被获取到,敏感信息采用其他方式。
学了白学。。。还是找别的方法吧
1.安装epel源
1 2 |
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm sudo rpm -Uvh epel-release-6*.rpm |
2.安装rlwrap
1 2 |
yum search rlwrap yum install rlwrap.x86_64 |
3.配置alias
编辑oracle home目录的.bash_profile文件,添加:
1 2 3 |
#User specific alias alias sqlplus='rlwrap sqlplus' alias rman='rlwrap rman' |