lichengcom2009 发表于 2018-8-23 11:52:30

shell和SQL

  光标移动指令
  ? 对应方向键移动
  h   左移一字符   k上移一行   j下移一行   l 右移一字符
  ? 按行单位移动
  0移到行首         $移到行尾
  nG移到第n行   G 移到最后一行
  ? 按页单位移动
  ^ f下卷一屏      ^ b上卷一屏
  ^ d下卷半屏      ^ u上卷半屏
  --将日志文件catlina.out中最后100行数据 取出
  tail -100 catlina.out >> 20141214log.txt
  --检测是否有用
  head -1020141214log.txt
  --在hwcsp6文件夹下,将文件hwcsp6打包复制为hwcsp6_201500807.tar
  tar -cvzf hwcsp6_201500807.tar hwcsp6
  tar -xvzf hwcsp6_201500807.tar
  --从linux到ftp
  ftp 地址
  cd 所要保存的地址
  bin --切换到2进制
  put
  --从ftp到linux
  ftp 地址
  cd 文件所在的地址
  bin --切换到2进制
  get 当前文件夹下
  --查看当前文件夹下各个文件的大小
  linux:du -sh *
  aix:du -sg *
  --查看盘符使用情况
  df -hG为单位
  df -mM为单位
  文档权限命令
  --可执行权限,即 x 权限
  chmod +x script.sh
  --改变文件群组权限 要切换到当前文件权限的用户下
  chgrp(change group 缩写) -R (该参数表示,被改文件夹下的所有文件和文件夹群组同时被改)group   file
  --改变文件用户权限
  chown(change owner 缩写) -R (该参数表示,被改文件夹下的所有文件和文件夹群组同时被改)owner   file
  --也可以使用chown改变用户和群组的权限
  chown-R user:grop file 更改文件的用户和群组的权限
  tar -cvf csp_20151008_bak.tar csp
  --将文件夹从本地传入到linux
  先压缩成zip格式,放在ftp上,通过get得到zip文件
  再使用unzip -o解压
  unzip -o csp.zip
  --cp命令
  cp [参数] 当前文件 需要复制的文件
  r:用于复制文件夹
  P:连同原文件属性一起复制过去,不是默认复制
  i:若被复制文件已经存在时,在覆盖时会先问是否需要继续复制
  mv
  rm
  --tar
  打包某个文件夹下所有文件(不包括该文件夹目录)
  1、先进入这个文件夹
  2、在这个文件夹下执行:tar -czvf filename.tar.gz *
  3、cd到需要解压的文件夹下执行:tar -xzvf filename.tar.gz
  cd
  ps -ef | grep java
  ---------------------------
  磁盘空间清理
  磁盘空间清理(理想化保持75%)
  1.10.70.211.68 etl/nIj2Sy5,
  一般清理WORK01和WORK02
  1.WORK01:zjjavg09/work01/vgopbk/vgopbass/data/bass/mode
  2.WORK02:zjjavg09/work02/vgopbk/vgopzj/bossop
  2.10.70.211.76 etl/Sp7%ox(j
  一般清理WORK01和WORK02,清理原则
  例如:WORK01:zjjavg03/work01/vgopbk/vgopckm/all_content/read
  空间多的可以酌情清理。
  例如:WORK02:zjjavg03/work02/vgopbk/vgopwap/data/data_bak 都可以清理
  --查看当前文件夹下各个文件的大小
  linux:du -sh *
  aix:du -sg *
  --查看盘符使用情况
  df -hG为单位
  df -mM为单位
  数据库表空间清理步骤:
  删除分区的原则是:
  日保留2+1月数据
  特殊:阅读保留3+1月,TB_DW_WAP_CLIENT_DAY保留最近一星期
  月保留6+1月数据
  TB_DW_ORDER_INFO_BASS_579_D
  TB_DW_ORDER_INFO_ONE_579_D
  这类表可以保留少一点的数据,最少10天
  第一步:查出空间利用率
  SELECT TABLESPACE_NAME "表空间",
  To_char(Round(BYTES / 1024, 2), '99990.00')
  || 'G' "实有",
  To_char(Round(FREE / 1024, 2), '99990.00')
  || 'G' "现有",
  To_char(Round(( BYTES - FREE ) / 1024, 2), '99990.00')
  || 'G' "使用",
  To_char(Round(10000 * USED / BYTES) / 100, '99990.00')
  || '%' "比例"
  FROM (SELECT A.TABLESPACE_NAME TABLESPACE_NAME,
  Floor(A.BYTES / ( 1024 * 1024 )) BYTES,
  Floor(B.FREE / ( 1024 * 1024 )) FREE,
  Floor(( A.BYTES - B.FREE ) / ( 1024 * 1024 )) USED
  FROM (SELECT TABLESPACE_NAME TABLESPACE_NAME,
  Sum(BYTES) BYTES
  FROM DBA_DATA_FILES
  GROUP BY TABLESPACE_NAME) A,
  (SELECT TABLESPACE_NAME TABLESPACE_NAME,
  Sum(BYTES) FREE
  FROM DBA_FREE_SPACE
  GROUP BY TABLESPACE_NAME) B
  WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME)
  /*WHERE TABLESPACE_NAME LIKE 'UNDO%' --这一句用于指定表空间名称*/
  ORDER BY Floor(10000 * USED / BYTES) DESC;
  第二步:找出占用空间的大表
  select * from (select t.segment_name, sum(t.bytes) / 1024 / 1024/ 1024 as tab_size
  from user_segments t
  group by t.segment_name
  )
  where tab_size>=50
  order by tab_size desc ;
  第三步:删除分区
  ----------------------------------------------------------
  select 'alter table ' || t.segment_name || ' drop partition ' ||
  t.partition_name || ';'
  from user_segments t
  where t.segment_name = upper('TB_MK_RING_DAY_JF');
  --附加语句,重要!!!
  select distinct t.segment_name,
  'alter table ' || t.segment_name || ' drop partition ' ||
  substr(t.partition_name, 1, 13) || ';',
  t1.tab_size,
  substr(t.partition_name, 6, 14)
  from user_segments t,
  (select segment_name, tab_size
  from (select t.segment_name,
  sum(t.bytes) / 1024 / 1024 / 1024 as tab_size
  from user_segments t
  group by t.segment_name)
  where tab_size >= 50
  order by tab_size desc) t1
  where t.segment_name = t1.segment_name
  and t.partition_name LIKE '%PART_201602%'
  and t.partition_name'PART_201602'
  -- and to_number(substr(t.partition_name, 6, 14))
页: [1]
查看完整版本: shell和SQL