• DBA 应该要注意Linux 环境下的一些操作


         DBA 对OS的依赖、一丁点儿也不亚于DB、对于Oracle DBA、尤为突出
         DB和OS的感情也与日俱增、耦合度高的让人一度以为这两要劳燕双飞了

         例如、Oracle里面、

         

         而且、故障诊断以及性能调优时、OS层的APP可能直接拖垮DB、比如:

         

         好吧、我承认、扯这些无非就是想强调OS对DB、那剪不断、理还乱的感情嘛、、

         ⑴ 慎用 mv 
         
            mv 、music video、2 种元素混搭、呵呵、I'm kidding、它的效用一如它的名字、有 2:
            
            ① 移动文件
            ② 重命名文件
            
            多功能(mv心理独白:靠、我才2个功能、多乎哉?不多也!)、这是它的优点也是缺点
            你想想啊、如果、我操作:# mv a.sql ./b、我的本意是想把a.sql移动到当前目录b下
            但、次奥哦、傻b不给力、傻b不在当前目录、或者你把傻b给错写成傻x、这下完了、
            移动操作就摇身一变成重命名了、满心期待的乾坤大挪移咋就搞成72变哩、、、
            重命名而已嘛、数据没丢、不必大惊小怪的、吓唬谁呢、可是、、可是、请君看如下场景:
            
            偶的如意算盘是把a.sql b.sql c.sql 移动到当前目录abc下:

    # find . -type f |awk  '{print "mv " $1 " " "./abc"}'
    mv ./c.sql ./abc
    mv ./a.sql ./abc
    mv ./b.sql ./abc
    
    # find . -type f |awk  '{print "mv " $1 " " "./abc"}' | sh
    # ls
    abc


            天啊、555555、我的数据呢??怎么就剩下一个abc呢??这不科学呀、哦、、我肯定得被烧鱿鱼了
            
            经验教训:
            
            mv 移动时、保险点、用绝对路径、确保所在对象当前路径有、并且不要写错了

            
            
         
         
         ⑵ 慎用 rm
         
            Server上、发现空间不足、于是想删除一些临时日志来腾点空间
            以为自己已经在日志目录下了、也没仔细看、就直接运行 rm
            结果把系统中很多非常关键的脚本都清掉了、惊出一身冷汗
            本来就很忙、还花费了一下午的时间才把删除的文件重新恢复
            
            经验教训:
            
            1.备份,备份,还是备份;
            2.慎用或者alias rm='rm -i'或者不用rm命令;
            3.操作前,保持头脑清醒,知道自己在干什么;

            
            
            
         ⑶ 中文显示
         
            这第三小点呀、其实蛮常见的、论坛上很多人提问、为啥我OEM打开是乱码、为神马?神马啊
            
            赶脚中文无法显示、常见原因如下:
            
            ① 中文字符库没装 、yum install fonts-chinese
            ② 编码问题、用doc2unix转换一下、这一般发生在windows文件直接拷贝在Linux下打开
            ③ LC_ALL没设为LC_ALL=zh_CN.GBK;export LC_ALL、这个会覆盖LANG变量、而NLS_LANG是和数据库相关的环境变量

            
            
            
         ⑷ 清理磁盘空间
         
            
            有人问:啊、我expdp 到一半时怎么就给挂住了?求大神解释、赏分100、立马结贴
            如果我看到了、偶会拍案而起、走、看看磁盘空间去、
            是的、应该这样的、磁盘空间不足、常常导致APP挂起、然后故障就应时而起、大有蔚为大观之象也
            
            那咋办哩?有兴趣的朋友可参看偶之前的 2 篇文章:
            
            GNU/Linux 下寻找占用硬盘的大文件点击打开链接     
            
            秒删海量数据文件的方法点击打开链接

         ⑸ chmod 777
         
            人都是有惰性的、为图方便、777干上去、特别是初级DBA、完事了、拍拍屁股、K歌走起、
            然、这和DB 授权操作 "grant dba to sb" 有啥区别呢?
            SO、你不是完事了、你是摊上事了、摊上大事了
            
            经验教训:
            
            chmod g+w filename;
            
            虽然麻烦点(PS:其实也不麻烦)、安全了好多、晚上睡觉都可以直接打呼噜了
            

            
         ⑹ 转义
         
            抓急呀抓急、我们常常碰到某些文件或者目录、明明可见、却不能编辑、就好像它在嘲讽你:
            看不见我哈、你看不见我哟、你真看不见我哦。。。、我草、此时该是一肚子火

    案例一:无法进入也无法删除的钉子目录
    细心的你、应该发现了、NA和NC之间少了个NB哇、这中间用空格隔开了
    
    [root@temp Desktop]# ls
    NA NC 
    [root@temp Desktop]# cd NA NC
    bash: cd: NA: 没有那个文件或目录
    [root@temp Desktop]# rm -rf NA NC
    [root@temp Desktop]# ls
    NA NC 


            这便是令人闻风伤蛋的转义、有很多比如空格,换行啊,回车等等符号
            这个时候我们必须要考虑将这些操作写进和/之间,这样才能让Linux成为知书达理的贤内助

            
         
          ⑺ 最熟悉的陌生人 
         
            越令你熟悉的命令越危险
            记住这句话、因为它是某位伟人说的、而这个伟人就是我 -_-!
            
            举个例子吧、比如:uname -a和 hostname 
            在Unix环境下、难免冲动了点、原本想uname -a、结果哩、敲成 hostname -a、我靠、完了、直接把主机名给改了
            在Linux环境下、还好、-a 只是表示把主机别名给陈列出来而已、
            
            这只是个简单的例子、我只想借助这个例子强调、小心你熟悉的命令!!

            
            
          ⑻ 虚空间增长
         
            
            有这样一个场景:
            你发现、磁盘空间满了、但你却无论如何也找不出大文件?
            导致你不知道到底是什么原因空间暴满,从而无从解决问题
            
            这便是所谓的虚空间增长
            
            举例说明:某时候有个程序由于某种异常在持续不断的往某文件里不停写入
            可是如果该文件在被不断写进的过程被人不小心给删除了
            由于程序未退出,写进动作还在进行中。。。。,这时空间就会不断变大
            但是我们却找不到这个大文件,原因很简单,被删除了当然找不到
            除非找到这个进程并强制杀掉这个进程,虚增长的空间才会立即释放,否则空间满问题就无法解决
            
            
            经验教训:
            
            在删除文件的时候(尤其在生产环境操作中)、应该再多做一步:观察进程的动作
            如果查看到引用某文件的进程还没停止、就暂时不要考虑去删除该文件

            
            
         
          不知不觉、夜阑珊、顾影自怜、有谁怜?净自伤怀、不如睡去、未完待续
         
         
    By David Lin 
    2013-06-23
    Good Luck 


            

  • 相关阅读:
    MySql数据类型
    mysql中char,varchar,text区别
    php错误提示:date_default_timezone_get
    才储分析
    js 阻止后续事件
    大型高性能网站的十项规则
    为rand函数加入随机数种子
    php-通过共享内存实现消息队列和进程通信
    PHP比较有用的常量
    json处理内容中多双引号的情况
  • 原文地址:https://www.cnblogs.com/snake-hand/p/3151157.html
Copyright © 2020-2023  润新知