前面写过一篇securecrt 超时自动断开的解决方法阅读量比较高,一直想着要再次分享一下这个 crt 快捷按钮,可是一拖再拖,大概就拖了两年的时间了,虽然没有什么技术含量,但心中的这个执念依旧存在,这个月一直没有写文章,这算是第一篇吧,在本篇后面也会补上我 crt 常用 sql 的命令,这样也算是带上了分享技术的话题。
常用的 linux 命令行远程连接工具有以下几种:
putty:
优点:支持 ssh、rlogin、telnet 等协议;绿色软件,无需安装;操作简单,所有操作都在个控制面板中实现。
缺点:不支持同时登陆多个 linux,需要打开多个窗口才能登陆多个 linux,这样会造成混乱;算是老牌的 ssh 客户端软件,ui 界面部分有点丑。
xshell:
优点:支持 ssh1, ssh2, 以及 windows 平台的 telnet 协议;界面设计简洁,人性化,用起来让人觉得很舒服;支持标签,打开多个会话链接的时候很方便;可以保存密码,方便下次直接使用,当然要做好电脑安全防护;支持 rz 和 sz 命令,这两个命令在传输少量小文件时非常方便。
缺点:需要付费购买专业版才能享受更多高级功能。
securecrt:
优点:支持 ssh、telnet、rlogin 和串口等协议;提供会话记录功能,可以查看历史会话记录;支持多标签会话窗口;支持从第三方系统导入设置;提供会话脚本编程功能。
缺点:是付费软件,生产环境不建议使用破解版,以免出现安全问题;使用前需要进行比复杂的配置;价格较高。
mobaxterm:
优点:集成了 ssh、telnet、rlogin、ftp、sftp 等协议;支持标签,方便同时打开多个会话链接;提供免费版和专业版,专业版拥有更多高级功能;操作简单,界面简洁。
缺点:免费版只支持连接两个终端;专业版需要付费购买才能享受更多高级功能。
下面来分享一直使用的 securecrt 快捷按钮设置方法,crt 快捷按钮是指在 crt 下方设置了一些常用的命令的按钮,点击某一个按钮就会执行设置好的一些命令,比如下方的查看进程按钮,点击它就可以执行命令行中的“ps -ef |grep smon| grep -v grep”命令来查看进程是否存在,这里的绿色的“进程”或者“查看进程”是个人自定义的中英文名称。
那么,这个下方的按钮怎么显示呢?点击菜单中的“view”子菜单,在“view”子菜单中有一个“button bar”的按钮,去勾选上就有了。如果你的 crt 是绿色破解版的,支持中文,应该是在“查看”菜单中有一个叫“按钮栏”的菜单也是能达到同样的效果。
然后我们就开始新建一个按钮,在出现的状态栏中鼠标右击就会出现下图所示的“new button”、“edit button”等多个选项,首次使用我们一般选项新建,后期在考虑使用编辑或者移动等功能。
我们点击新建按钮时,会出现下图所示的四块可以编辑的区域,左边区域 “action function”可以选择发送字符串、运行脚本等多个功能,右边区域写一些常用命令,注意要有换行,这里一般为“\n”换行,每一个换行都需要有“\n”才可以,最后结尾也最好有换行命令才可以执行。左下方区域标签名字暂时叫做“查看进程”,右边区域可以选择按钮颜色,这里选择 green 绿色,可能其他版本的 crt 有一定的差别,还请注意识别。
我这里的版本为 8.7.2 版本,最新的版本为 2023 年 7 月 18 日发布的 securecrt 9.4.1 版本,更多详细信息请访问。
如果你的事绿色中文版的,应该是下图中的样子,注意,以上仅供个人学习使用,非商业用途,如有企业用户使用,请购买正版使用,谢谢!
下面是我作为一个 oracle dba 经常使用的命令快捷按钮,可以直接新建按钮使用,如需在 shell 或者 sqlplus 命令行中使用,请自行删除每一行末尾的“\n”换行字符。
1、sqlplus
ps -ef | grep smon \n
echo $oracle_sid \n
sqlplus / as sysdba \n
set timing on time on \n
2、查看用户状态
set line 240 \n
set pages 999 \n
col account_status for a18 \n
select username,account_status,default_tablespace,temporary_tablespace from dba_users; \n
3、数据库启动时间
set line 240 \n
col host_name for a30 \n
select instance_name,host_name,version,startup_time,status from gv$instance; \n
4、查看asm使用率
set lin 1000 pagesize 999 \n
col path for a33 \n
col name for a15 \n
col failgroup for a15 \n
col path for a15 \n
select group_number,disk_number,total_mb/1024,free_mb/1024,name,failgroup,path,failgroup_type from v$asm_disk order by 1; \n
select group_number,name,state,type,total_mb/1024,free_mb/1024,usable_file_mb/1024,hot_used_mb,cold_used_mb/1024 from v$asm_diskgroup; \n
5、查看用户状态
set line 240 \n
col profile for a20 \n
set pages 999 \n
col username for a25 \n
col account_status for a18 \n
select username,account_status,created,lock_date,profile,password_versions,default_tablespace from dba_users where account_status='open' order by created asc; \n
6、查看 asm 使用率
set line 240 \n
col host_name for a30 \n
select instance_name,host_name,version,startup_time,status from gv$instance; \n
7、查看数据量
select sum(bytes)/1024/1024/1024 gb from dba_segments where segment_name not like 'bin$%';\n
8、查看 local=no 会话
ps -ef | grep local=no | grep -v grep | awk '{print $2}' |wc -l \n
echo "ps -ef | grep local=no | grep -v grep | awk '{print \$2}' | xargs kill -9" \n
9、查看等待事件
set lines 345 pages 345 \n
select event, sql_id,sid,serial#,seconds_in_wait from gv$session \n
where type <> 'background' and status='active' \n
group by event,sql_id,sid,serial#,seconds_in_wait \n
order by seconds_in_wait desc; \n
10、查看索引列
set line 234 \n
col index_owner for a20 \n
col table_owner for a20 \n
col table_name for a25 \n
col index_name for a30 \n
col column_name for a25 \n
select index_owner,table_owner,table_name,index_name,column_name from dba_ind_columns where table_name='&tablename' and table_owner='&tb_owner' order by index_name; \n
11、连接会话总数
--select con_id,inst_id,count(*),status from gv$session where type<>'background' group by con_id,inst_id,status order by 1;\n
select inst_id,count(*),status from gv$session where type<>'background' group by inst_id,status order by 1; \n
12、表空间使用率
--purge dba_recyclebin; \n
col tablespace_name for a30 \n
set pages 456 \n
select a.tablespace_name,round(total/1024/1024/1024) "total g", \n
round(free/1024/1024/1024) "free g",round((total-free)/total,4)*100 "used%" \n
from (select tablespace_name,sum(bytes) free from dba_free_space \n
group by tablespace_name ) a, \n
(select tablespace_name,sum(bytes) total from dba_data_files \n
group by tablespace_name) b \n
where a.tablespace_name=b.tablespace_name \n
order by 4; \n
13、查看有哪些 ip 连接数据库
netstat -anop | grep established | awk '$4 ~/:1521/' |awk '{print $5}' \n
14、查数据文件大小
select file_id,file_name,bytes/1024/1024,autoextensible from dba_data_files where tablespace_name='&tabs_name'; \n
15、查表空间内前十大表
col table_name for a30 \n col owner for a30 \n
set pagesize 200 \n
set linesize 200 \n
col table_name for a30 \n
select * from (select tablespace_name,owner,segment_name "table_name",to_number(decode(substr(bytes/1024/1024,1,1),'.','0'||bytes/1024/1024,bytes/1024/1024)) total_mb \n
from dba_segments where tablespace_name ='&tablespacename' and segment_type='table' order by total_mb desc ) where rownum<=10; \n
16、查看用户下 lob 字段大小
set line 345 pages 456 \n
col owner for a20 \n
col table_name for a40 \n
col segment_type for a20 \n
col column_name for a35 \n
select \n
a.owner, \n
b.table_name, \n
b.column_name, \n
a.segment_type, \n
round(sum(a.bytes/1024/1024/1024),2) g \n
from dba_segments a \n
left join dba_lobs b \n
on a.owner = b.owner \n
and a.segment_name = b.segment_name \n
where a.segment_type='lobsegment' \n
and a.owner in('&owner') \n
group by a.owner,b.table_name,b.column_name,a.segment_type \n
order by 5 desc; \n
17、查隐含参数
set line 345 \n col name for a50 \n
col value for a30 \n
col description for a80 \n
select a.ksppinm name, b.ksppstvl value,a.ksppdesc description from x$ksppi a, x$ksppcv b where a.indx = b.indx and a.ksppinm like '%&name%'; \n
18、查看 adg 延迟
set linesize 150; \n
set pagesize 9999; \n
column name format a13; \n
column value format a20; \n
column unit format a30; \n
column time_computed format a30; \n
select name,value,unit,datum_time,time_computed from v$dataguard_stats where name in ('transport lag','apply lag');\n
19、外键没创建索引的表
set linesize 250 \n
set pagesize 9999 \n
col constraint_name for a40 \n
with cons as \n
(select /* materialize*/ \n
owner, table_name, constraint_name \n
from dba_constraints \n
where owner = '&owner' \n
and constraint_type = 'r'), \n
idx as \n
(select /* materialize*/ \n
table_owner, table_name, column_name \n
from dba_ind_columns \n
where table_owner = '&table_owner') \n
select owner, table_name, constraint_name, column_name \n
from dba_cons_columns \n
where (owner, table_name, constraint_name) in (select * from cons) \n
and (owner, table_name, constraint_name) not in (select * from idx); \n
20、需要收集直方图的列
select a.owner,
a.table_name,
a.column_name,
b.num_rows,
a.num_distinct cardinality,
round(a.num_distinct / b.num_rows * 100, 2) selectivity
from dba_tab_col_statistics a, dba_tables b
where a.owner = b.owner
and a.table_name = b.table_name
and a.owner = '&owner'
and round(a.num_distinct / b.num_rows * 100, 2) < 5
and num_rows > 50000
and (a.table_name, a.column_name) in
(select o.name, c.name
from sys.col_usage$ u, sys.obj$ o, sys.col$ c, sys.user$ r
where o.obj# = u.obj#
and c.obj# = u.obj#
and c.col# = u.intcol#
and r.name = '&owner')
order by 2,6;
全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~
欢迎关注我的公众号【jiekexu dba之路】,第一时间一起学习新知识!
————————————————————————————
公众号:jiekexu dba之路
csdn :https://blog.csdn.net/jiekexu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————