shell和SQL

光标移动指令
? 对应方向键移动
   h   左移一字符   k  上移一行   j  下移一行   l 右移一字符
 
? 按行单位移动  
    0  移到行首         $  移到行尾   
     nG  移到第n行     G 移到最后一行
? 按页单位移动
    ^ f  下卷一屏      ^ b  上卷一屏
     ^ d  下卷半屏      ^ u  上卷半屏

--将日志文件catlina.out中最后100行数据 取出
tail -100 catlina.out >> 20141214log.txt

--检测是否有用
head -10  20141214log.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 -h  G为单位
df -m  M为单位

文档权限命令
--可执行权限,即 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 -h  G为单位
df -m  M为单位

数据库表空间清理步骤:
删除分区的原则是:
日保留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))<‘20160206‘
  and substr(t.partition_name, 6, 14)<‘20160211‘
  and t.segment_name like ‘TB_%‘
--and t.partition_name = ‘PART_201508‘
-- group by substr(t.partition_name, 1, 13)
 order by t1.tab_size desc

时间: 2024-12-06 04:14:45

shell和SQL的相关文章

创建Web数据库,用XAMPP的MySQL shell引入 .sql 文件

Chapter 08 : Creating  Your Web DatabaseDestination : set uo a MySQL database for use on a Web siteContents : [1] Creating a database (创建数据库)[2] Users and Privileges (用户和权限)[3] Introduction to the privilege system (权限系统的介绍)[4] Creating database table

linux crontab定时任务运行shell脚本(shell执行sql文件)

今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux定时任务,而不是在项目加定时任务呢?原因就是防止因为各种原因项目崩溃..所以就用了更加稳定的linux定时任务(我是这么想的( ^_^ )). 起初我感觉很简单,以为顶多半小时就搞定了,,,结果从10点弄到12点半才搞定(主要是我英语太渣和数据库报错导致)... ︿( ̄︶ ̄)︿废话到此结束--------------- crontab 格式     * * * * *      XXX 分    时

doris: shell invoke .sql script for doris and passing values for parameters in sql script.

1. background in most cases, we want to execute sql script  in doris  routinely. using azkaban, to load data,etc.And we want to pass parameters to the sql script file. we can easily handle such situation in hive. 1.1 hive usage: using -hiveconf:  or

避免shell脚本SQL语句中 *输出时转义

脚本test.sh内容如下,在 /home/myname/下执行该脚本, 家目录下有文件a.txt,test.log,test.sh #!/bin/bash sql="select * from emp;" echo $sql echo $sql > test.log 执行后结果: select test.sh a.txt test.log from emp; 如何能让sql中的*不转义? 修改为如下: #!/bin/bashsql="select * from emp

shell将sql查询结果存放到excel中

#!/bin/shcd /d/compareMYSQL="mysql -h      -uroot -p**** --default-character-set=utf8 -A";sql="select * from contrast.dx_record limit 0,10 ";$MYSQL -e "$sql" >dx.xlsecho "end"; 转换编码的指令 iconv -f utf-8 -t gb2312 dx

pass value from shell to sql

echo 'please enter new userid need create' read new_usr echo 'please enter userid to model' read model_usr echo 'please enter SOEID for password' read new_pwd sqlplus ${ORA_USR}/${ORA_PASS}@${ORA_DB} @${CACSPARM}/TEST $new_usr $model_usr $new_pwd 原文地

Linux/Unix shell sql 之间传递变量

灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给出几个简单的示例以供参考. Linux/Unix 下调用SQL,RAMN 请参考:Linux/Unix shell 脚本中调用SQL,RMAN脚本 一.示例 [python] view plain copy print? 1.shell变量接受sql返回值之方式一 [email protected]:~> more ./retval

SQL Server自动化运维系列——监控跑批Job运行状态(Power Shell)

需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在上一篇文章中已经分析了SQL SERVER中关于邮件的基础配置,本篇将利用此功能对多台Server的跑批Job进行监控. 本篇实现 1.每天检查服务器中的SQL Server跑批Job的运行状态,如果跑批失败,则发邮件告诉管理员失败的明细 2.解决多台服务器同时检查 监控脚本 首先我们来解决第二个问题,关于多台服务器的问题: <1>一般监控我们需

运维小东西:每天备份sql到远程服务器上

首先两台服务器可以无密码登录(这个方式比较简单,当然安全系数会降低) #ssh-keygen -t rsa #生成密钥发送给远程服务器上 #ssh-copy-id ~/root/id_rsa.pub [email protected] 这样ssh的时候就不用输入密码了.对于crontab这种定时自动运行的任务来说还是比较方便的. 现在就是写shell备份sql到远程服务器的脚本: #!/bin/sh DB_NAME1="" DB_USER="" DB_PASS=&q