Linux运维Tips(-)

        作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注:译者和出处,并且不能用于商业用途,违者必究.

       对于一个Linux运维团队,在管理一些机器时,难免会出现一些尴嘎的事情,A同事在操作的时间,B同事也上去操作了;本来工作时间上去时,如果看一下磁盘使用状态,也许就必免了假日收到了短信报警。对于这些问题怎么处理呢?

      聪明的朋友说,登录到系统后运行一下w 和df -h不就行了。是的,这是一个很好的解决方法。但人总是懒惰的。要不,也不会出那么事了。

        这里提供一个自动化每一个用户登录上去,自动把df  -h 和w的结果输出到终端。实现方法: 编辑~/.profile 或是 ~/.bashrc (提倡改.profile)在最后添加:

echo "============================="

df -h

echo "============================="

w

       然后再登录到系统中时就会自动显示:

=============================

Filesystem            Size  Used Avail Use% Mounted on

/dev/sda2             3.9G  2.4G  1.4G  65% /

/dev/sda1             122M   12M  104M  11% /boot

tmpfs                 250M     0  250M   0% /dev/shm

/dev/sdb1           11G  1.9G  9.1G  17% /data

=============================

 09:15:00 up 28 days, 20 min,  1 user,  load average: 0.00, 0.00, 0.00

USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
wubx     pts/0    10.10.15.72      09:15    0.00s  0.02s  0.02s -bash

Innodb 文件表空间结构

    作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。

      Innodb的表空间是在配置文件中定义(说是表空间有时觉的有点羞愧,和Oracle比真的差太远了),这里简单列一下表空间里的基本概念及表的分配情况。
       表空间是在配置文件中定义的几个文件简单的耦合起来,在使用中互不可少(少一个就面临DB完蛋的危险)。对于共享表空间无法确定表所在的表空间上。
      独立表空间可以做到每个表有自已的表空间(羞一下)。
       针对共享表空间,表空间中包括:回滚段,段(segment),区域(extent),数据页(page size)在表空间的体现为:
  表空间由默认16k的数据页面(page)组成,每64个连续的页面组成一个区域(extent,Oracle里熟悉的一个东东)。对于表空间的“文件(file)”在Innodb中被称为段(segment)。 回滚段(rollback segment)是一个特殊的例子,实际上rollback segment包含了多个段。对于Innodb表的索引都被分配成两个段:一个是为了 B-tree 的无叶结点(non-leaf nodes),另一个是为了叶结点(leaf nodes)。
  这是为了达到包含数据的叶结点的更好的顺序(sequentiality for the leaf nodes)。
         当表空间中的一个段增长时,InnoDB 为它个别地分配最初的 32 个页面。之后 InnoDB 再分配段的整个区域(extents)。InnoDB 会以每次 4 个区域(extents)来增加一个大段以确保数据的良好顺序。
         表空间中的某些页面包含其它页面的位图(bitmaps),所以在 InnoDB 表空间内的一些区域(extents)不能以一个整体分配给段,而只能作为个体页面。
          当发出一个查询 SHOW TABLE STATUS FROM … LIKE … 来询问表空间的剩余空间时,InnoDB 将报告表空间中所有空闲区域(extents)中确实可用的部分。InnoDB 通常会保留一些区域用于 clean-up 和其它的内部目的;这些保留的区域并不包含在剩余可用空间中。

         当从一个表中删除数据时,InnoDB 将收缩 B-tree 中相应的索引。这是依赖于释放个别的页面或区域(extents)以让其他用户使用剩余空间的删除模式。 移除(drop)一个表或删除所有记录可以保证释放空间给其他用户,但是删除记录行只有在事务回滚或 consistent read 后并不需要时才会被物理的移除

        对于独立表空间也是存一样的概念和行为,唯一区别就是每个表的数据存到指定的表空间中,rollback segment不和数据的segment在一个竞争。使用独立表空间的一个好处就是可以使数据分布相对于磁盘上更连续一点。

Linux服务器基本安装

作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究。

  该文档只用于一般服务器的安装,其它专用服务器安装仅供参考。

系统安装步骤:
1)输入linux text选择text安装模式。
2)安装时语言环境选English。
3)键盘类型选us。
4)鼠标选择No-mouse。
5)安装类型选Custom。
6)分区设置为:
/dev/sda
/dev/sda1 512M ext3 /boot
/dev/sda2 5G ext3 /home
/dev/sda3 3G ext3 /
/dev/sda4 Extended
/dev/sda5 5G ext3 /var
/dev/sda6 2G ext3 swap
/dev/sda7 余空间 /data
7)使用GRUB Boot loader。
8)不增加参数在Boot Loader Configuration。
9)不为Boot Loader设置密码。
10)设置Boot Loader启动Linux。
11)将Boot Loader安装在硬盘的MBR。
12)网络设置,按分配的IP配置网卡。
/etc/sysconfig/network-scripts/
#ls ifcfg-*
ifcfg-eth0 ifcfg-eth1 ifcfg-lo
编辑相应文件
/sbin/service network restart

13)主机名称视情况而定,预定为WEB-数字,数字为IP最后3位。
14)防火墙的安全级别设为No firewall,禁用SEClinux
15)语言支持选English (USA) 和Chinese (P.R. of China)。
16)默认语言为English (USA)。
17)时区选Asia/Shanghai。
18)Root Password为:redhat
19)Authentication Configuration启用Use Shadow Passwords和Enable MD5 Passwords。
20)Package Group选择:
@ Editors
@ Text-based Internet
@ Server Configuration Tools
@ Development Tools
@ Kernel Development
@ Administration Tools
@ System Tools
21)不必创建Boot Diskette。
22)配置显示选项,指定启动时进入文本模式。
OS安装完毕。

安装后配置
1) 禁用ssh1登录
vi /etc/ssh/sshd_config
#Port 22
#Protocol 2,1
修改为
Port 22
Protocol 2
2) 禁用多于服务
rm /etc/rc.d/rc3.d/* -rf

chkconfig network on
chkconfig rsync on

chkconfig sshd on
chkconfig syslog on
chkconfig crond on
chkconfig xinetd on

根据需要加入自已的相应服务。
3)限制登录IP
vi /etc/hosts.allow
加入
all:IP.:allow
all:all:deny
IP为允许进入管理的IP。当然这个文件也可以不用。
4)定时同步时间
crontab -e
加入
0 0 * * * rdate -s time-a.nist.gov
or
10 03 * * * /usr/sbin/ntpdate -u tick.ucla.edu tock.gpsclock.com ntp.nasa.gov timekeeper.isi.edu usno.pa-x.dec.com
5)关闭ipv6
echo “alias net-pf-10 off” >> /etc/modprobe.conf.dist