作者归档:钱锅锅

rsync数据实时同步备份技术

实验环境:

服务端:10.88.131.7

客户端:10.88.142.2

  • 服务端操作
  1. 安装rsync服务

yum -y install rsync

  1. 修改rsync的配置文件

vi /etc/xinetd.d/rsync

disable = yes 改成 disable = no

  1. 创建配置文件

rsync主要有以下三个配置文件rsyncd.conf(主配置文件)、rsync.pas(密码文件)、rsyncd.motd(rysnc服务器信息)

服务器配置文件(/etc/rsyncd.conf),该文件默认不存在,请创建它。

vi /etc/rsyncd.conf

#指定运行该服务的权限

uid = root

gid = root

#守护进程存放位置

#pid file = /var/run/rsyncd.pid

#服务端口

port = 873

#目前权限设置

use chroot = no

#锁文件存放路径

lock file = /var/run/rsync.lock

#定义服务器信息

#motd file = /etc/rsyncd/rsyncd.motd

#指定日志文件

log file = /var/log/rsyncd.log

#定义同步项目名 可以定义多个同步项目

[tkftp]

#指定源路径

path = /usr/local/apps/www/magazine/file

#注释可以自己定义

#comment = rsync files

#跳过IO出错

ignore errors

#是否只读

read only = no

#该同步项目的认证用户名

auth users = root

#该同步项目的密码文件

secrets file = /etc/rsync.pas

#显示Rsync服务端资源列表

list = no

#允许进行数据同步的客户端IP地址,可以设置多个,用英文状态下逗号隔开

#hosts allow = 10.88.142.2

#指定服务器IP地址

address = 10.88.142.2

  1. 如果在配置文件中指定了欢迎信息

在/etc下创建rsyncd.motd,设置欢迎信息:

[root@hyj etc]# vim /etc/rsyncd.motd
Welcome the rsync services!

  1. 在服务器端建立密码文件

密码文件格式很简单,rsyncd.secrets的内容格式为:

用户名:密码

在服务器端:vi /etc/rsync.pas   //这个密码文件要和配置文件中的保持一致

User:password@10.88.131.7

chmod 600 /etc/rsyncd.secrets   //修改权限为600

  1. 启动rsync服务

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT  //在防火墙上将837端口开放

/usr/bin/rsync –daemon   //启动rsync服务

killall -9 rsync

rm -rf /var/run/rsyncd.pid   //每次重启rsync都要先删除pid文件

  • 客户端操作

1.安装rsync服务即可

yum -y install rsync

2.创建密码文件

vim /etc/rsyncd.passwd

password@10.88.131.7

chmod 600 /etc/rsyncd.passwd

3.同步数据到客户端

远程服务器上的数据同步到本地命令:

rsync -rvlHpogDtS –progress –delete –password-file=/etc/rsync.pas root@10.88.131.7::tkftp /opt/ftp

新媒体运营的出路在哪?

近年来,以微博、微信为主的新媒体已经成为一种新的营销手段,通过新媒体的营销能产生巨大的影响力。随着新媒体的兴起,这个岗位对于人才的需求量也越来越大,而作为新媒体运营编辑的我们,都会非常的迷惑,未来的新媒体又会是以一种什么方式出现在我们的生活中?我们的出路在哪里?又有哪些适用于我们的职业规划?

回答这个问题之前,我首先问自己,什么是新媒体?我们做新媒体研究这么久,真的弄清楚了么?
新媒体永远是一个相对概念。相对于报纸,广播就是新媒体;而相对于广播,电视台就是新媒体;对于电视台来说,互联网网站就是新媒体;而相对于互联网网站,移动端应用又是新媒体。移动端的新媒体又应该会是什么?我们不妨来猜想一下,是智能家居?可穿戴设备?亦或是像科幻电影里面出现的各种的高科技产品?这个只能靠时间来为我们证明了。

相对传统媒体,新媒体是对信息的传播方式、互动方式等发生了改变,但是本质上的内容体系不会变。比起传统媒体,新媒体的特点就是随时随地便捷的免费互动,交互的及时性和社群化。

无论这种媒介平台以哪种方式出现在我们的生活中,我们只需要保证足够有内容,就不必担心我们自身的出路会如何,没人关心它会以什么方式出现在公众的视线中。不管他们如何发展,如何变化,都是媒介,作为载体,其核心是内容

那么,新媒体编辑的出路又在哪?就是不断探索变化着的新兴媒体,寻找它们在传播中产生的新的变化,去摸索合适的玩儿法,调整自己的内容。同时,也要总结那些不变的规律,以不变应万变。

一般作为编辑,在网络营销的公司中是属于copy的范畴,所以较大的公司,都可以参考copy的职业发展生涯来前进。而在一个中小网络营销的公司里,编辑和运营很大程度上是职能交织的,所以编辑往往可以通过学习新媒体的运营,进入到运营的角色,也就是从copy变成AE,也叫客户执行,再往上升。

目前新媒体营销这一块还处于朝阳行业,多数中小公司不过三五年,五年以上已经算是比较长久的了,所以职业上升路线还没有特别的成熟和统一,各个公司之间的差异还是蛮大的。主要还是需要看公司的架构,如果是有专门的编辑部门,那就是沿着编辑部负责人的方向去,如果是以小团队的方式战斗的,那就比较容易跨越职业发展线路,往哪个方向去都可以,全看自己能力和喜好。

做新媒体需要通过不断提升对品牌的认知,跨越文案的领域,以优秀的文案能力为基础,结合策划、创意、执行、媒介等众多经验和能力,实现综合的发展。综合来说比较适合在中小型网络营销公司中发展,简单的说,就是从copy,进入到项目核心层,到项目负责人,开始管理项目,再进入项目总监和管理层的过程。

照这么发展下去,我们执行能力有,文案能力有,统筹管理能力有,很容易成为一个完整的项目的负责人,进而往上得到充分的发展,经历一个个的项目磨练,要么就是能够接大型品牌的年度项目,成为公司业务核心或跳入跨国公司负责重要品牌,最终实现向管理层的跃升。要么,也可以自己开公司。

最后,新媒体运营目前非常火爆不亚于之前的电子商务潮,但是能够做的非常不错的还真不多,如果能够在这波大潮中脱颖而出绝对前途无量。

转自:徐超

Nginx+Tomcat配置负载

为什么使用Nginx?

Apache

  • 经典的Web服务器
  • 除了慢没有别的缺点了
  • Apache2fcgi支持并不好
  • 非常好用的proxyproxy_ajp(很多人用它作为tomcat的前端)
  • 不支持epoll(这年头,epoll几乎是性能的必备)

Nginx

  • 速度快,占用资源少
  • 杀手级的proxyrewrite
  • 非常不错的静态文件能力
  • 最适合作为整个网站的前端服务(将phpsvn等不同请求发送往后端apache
  • 其他功能马马虎虎

代理 服务器,也是一个 IMAP/POP3/SMTP代理服务器。已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而被人们广泛使用了。
大多数人选择它主要考虑到的是它的高并发和负载均衡。


安装Nginx
1. tar zxvf  nginx0.8.36.tar.gz

2、编译安装nginx
  cd nginx-0.7.44
  ./configure –with-http_stub_status_module –with-http_ssl_module –prefix=/usr/local/nginx
 
执行后,可能会提示 ./configure: error: the HTTP rewrite module requires the PCRE library.这个错误,是缺少pcre 包,可用yum install pcre pcre-devlel来解决

3make && make install

4nginx安装成功后的安装目录为/usr/local/nginx
5.
编辑配置文件nginx.conf
#user  www www; 
worker_processes 8;    #
启动进程数,可根据机器核数来修改
error_log  /usr/local/nginx/logs/nginx_error.log  crit; #
全局错误日志及PID文件
pid        /usr/local/nginx/nginx.pid;
worker_rlimit_nofile 65535;
events
  {
    use epoll;
    worker_connections 65535; #
工作模式及连接数上限
  

http                  #设定http服务器,利用它的反向代理功能提供负载均衡支持
  {
   include       mime.types;
   default_type  application/octet-stream;

    log_format  main  ‘$remote_addr – $remote_user [$time_local] “$request” ‘
                     ‘$status $body_bytes_sent “$http_referer” ‘
                     ‘”$http_user_agent” “$http_x_forwarded_for”‘;

    access_log  logs/access.log  main;  #定义的日志格式和存放路径
   
   #General Options
   server_names_hash_bucket_size 128;
   client_header_buffer_size 32k;
   large_client_header_buffers 4 32k;
   client_body_buffer_size    8m; #256k
   server_tokens off;
   ignore_invalid_headers   on;
   recursive_error_pages    on;
   server_name_in_redirect off; 
   sendfile                 on;

   #timeouts
   keepalive_timeout 60;
   #client_body_timeout   3m;
   #client_header_timeout 3m;
   #send_timeout          3m;
    
   #TCP Options
   tcp_nopush  on;
   tcp_nodelay on;
 
   #size limits
   client_max_body_size       50m;

    gzip on;
   gzip_min_length  1k;
   gzip_buffers     4 16k;
   gzip_http_version 1.0;
   gzip_comp_level 2;
   gzip_types       text/plain application/x-javascript text/css application/xml;
   gzip_vary on;
 
   upstream xxx.com {
        ip_hash;
        server x.x.x.x:8080 max_fails=0 weight=1;
        server x.x.x.x:8080 max_fails=0 weight=1; #8080
tomcat端口
    }

    server {
       listen 80 default;
       rewrite ^(.*) http://www.xxx.com/ permanent;
       #charset koi8-r;
       #access_log  logs/host.access.log  main;
       #error_page  404              /404.html;
       # redirect server error pages to the static page /50x.html
       #
       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
       root   html;
       }
   }

   server
       {
           listen      80;
           server_name  www.xxx.com;
           index index.php index.html index.htm;
           root   /http;
           access_log /data/logs/access.xxx.com.log  combined;
           error_log  /data/logs/error_test.xxx.log;
          
           #expires                        
           location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
             {
                  expires 30d;
              }

           location ~ .*\.(js|css)?$
             {
                  expires 24h;
              

           location /nginxstatus {
               stub_status on;
               access_log off;
            }

          # location ~ .*\.jsp?$
           location /
           {
               proxy_pass http://npduxiu;
               proxy_redirect off;
            proxy_set_header X-Real-IP $remote_addr;
               proxy_set_header Host $http_host;
               proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
               proxy_set_header Connection Close;
               proxy_set_header X-Forwarded-For $remote_addr;
               error_page   404              /404.html;
               error_page   500 502 503 504  /50x.html;
            location = /50x.html {
            root   html;
            }
          }
       
       }
}

6、修改/usr/local/nginx/conf/nginx.conf配置文件后,用命令/usr/local/nginx/sbin/nginx -t 检查配置文件是否正确:

7、启动nginx的命令
/usr/local/nginx/sbin/nginx

8、停止nginx的命令
/usr/local/nginx/sbin/nginx -s stop
9
、在不停止Nginx服务的情况下加载Nginx配置
kill -HUP `cat /usr/local/nginx/nginx.pid` 

10.nginx网站开启后(已启用stub_stauts),可用http://www.xxx.com/nginxstatus查看nginx状态
  active connections —
对后端发起的活动连接数
  server accepts handled requests — nginx
总共处理的连接, 成功创建了几次握手  总共处理了多少个请求
  reading — nginx
读取到客户端的Header信息数
  writing — nginx
返回给客户端的Header信息数
  waiting —
开启 keep-alive 的情况下,这个值等于 active – (reading + writing)

安装Tomcat
下面开始Tomcat的安装了,那就更简单了,网上文档也是一大把
Tomcat
安装
一、 jdk的安装
 
安装的jdk为:jdk-6u21-linux-x64.bin
  1.sh jdk-6u17-linux-x64-rpm.bin
  2.
安装程序在问您是否愿意遵守刚才看过的许可协议。输入“y”“yes” 回车
  3.
执行后,把后成的文件夹命名为jdk,放到/usr/local/下 (路径可自己选,但在变量中要指出)
  4.vi /etc/profile
        
在里面添加如下内容
         export JAVA_HOME=/usr/local/jdk
         export JAVA_BIN=/usr/local/jdk/bin
         export PATH=$PATH:$JAVA_HOME/bin
         export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  5. source /etc/profile 
使刚才填加的生效
  6.
验证
    java -version
   
屏幕输出:
    java version “1.6.0_13”
    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)
    Java HotSpot(TM) Server VM (build 11.3-b02, mixed mode)
 
安装JDK1.6完毕.

二、 Tomcat的安装
 
下载apache-tomcat-6.0.18.tar.gz,解压后更名或更改存放路径(可自行规定)

  nginx
tomcat的结合,主要用的是nginx中的upstream,后端可包括有多台tomcat来处ginxupstream目前支持4种方式的分配

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。

2weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
例如:
   upstream bakend {
        server 192.168.0.14 weight=10;
        server 192.168.0.15 weight=10;
   }

2ip_hash
每个请求按访问iphash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。
例如:
   upstream bakend {
        ip_hash;
        server 192.168.0.14:88;
        server 192.168.0.15:80;
   }

3fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backend {
   server server1;
   server server2;
   fair;
}

4url_hash(第三方)

按访问urlhash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend {
   server squid1:3128;
   server squid2:3128;
   hash   $request_uri;
   hash_method crc32;
}

tips:

upstream bakend{#定义负载均衡 设备的Ip及设备状态
ip_hash;
   server 127.0.0.1:9090 down;
   server 127.0.0.1:8080 weight=2;
   server 127.0.0.1:6060;
   server 127.0.0.1:7070 backup;
}
在需要使用负载均衡的server中增加
proxy_pass http://bakend/ ;

每个设备的状态设置为:
1.down
表示单前的server暂时不参与负载
2.weight
默认为1.weight越大,负载的权重就越大。
3.max_fails
:允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
4.fail_timeout:max_fails
次失败后,暂停的时间。
5.backup
: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug
client_body_temp_path
设置记录文件的目录 可以设置最多3层目录

locationURL进行匹配.可以进行重定向或者进行新的代理 负载均衡

Mysql初始化root密码和允许远程访问

mysql默认root用户没有密码,输入mysql –u root 进入mysql

1、初始化root密码

进入mysql数据库

1
mysql>update user set password=PASSWORD(‘123456’) where User='root';

2、允许mysql远程访问,可以使用以下三种方式:

a、改表。

1
2
3
4
mysql -u root –p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;

b、授权。

例如,你想root使用123456从任何主机连接到mysql服务器。

1
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码

1
2
mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack'@’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION;
mysql>FLUSH RIVILEGES

c:在安装mysql的机器上运行:

1
2
3
4
5
6
7
8
//进入MySQL服务器
d:\mysql\bin\>mysql -h localhost -u root
//赋予任何主机访问数据的权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION
//使修改生效
mysql>FLUSH PRIVILEGES
//退出MySQL服务器
mysql>EXIT

关于SSH登录慢的问题

ssh登录慢的原因很多人都遇到过,我总结了一下,目前我遇到过的有四种方法可以加快ssh速度,针对不同情况也许只有某一种适合你,下面以Debian和为例:
1.关闭ssh DNS反向解析,原理不必说了吧

  1. vim /etc/ssh/sshd_config

复制代码

在文件尾部添加

  1. UseDNS no

复制代码

2.在/etc/hosts里面添加主机对应关系,Debian从/etc/hostname里面查看,要保证这两个文件主机名称一致;Redhat从/etc/sysconfig/network中查看
3.仅针对本地虚拟机:
当你本机安装了VMware或者Virtualbox的时候本地会多出两块虚拟网卡,一个是host-only,一个是nat,当你使用其中一个模式的时候,ssh登陆到虚拟机Linux上面时会首先尝试使用你的本地网络(就是你联网用的那块网卡地址)去连接虚拟机,这样当然是连接不成功的,会超时,当你再次连接的时候一般就成功了,这次使用的才是你对应的虚拟网卡模式。
4.关闭 GSSAPI 的用户认证

  1. vim /etc/ssh/ssh_config

复制代码

  1. GSSAPIAuthentication  yes

复制代码

改成

  1. GSSAPIAuthentication  no

复制代码

由于CRS磁盘dismount造成的CRS进程无法启动问题

环境:11.2.0.3 rac primary+rac standby

生产库rac standby的node1节点CRS自动关闭问题

–EM报警
Message=Clusterware has problems on the master agent host CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

登陆到该库node1,发现CRS进程已经关闭

[grid@node1 ~]$ crsctl check cluster -all
**************************************************************
node1:
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
node2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************

$ crs_stat -t
CRS-0184: Cannot communicate with the CRS daemon.

[grid@node1 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services  <———-
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

ps -ef|grep crs –同样没有crs进程

试着启动crs进程,但是无法启动
[root@node1 ~]# /app/grid/bin/crsctl start crs
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.

[root@node1 ~]# /app/grid/bin/crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4535: Cannot communicate with Cluster Ready Services <<—-CRS没有起来
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

在grid用户下查看crs进程日志

$ cd $ORACLE_HOME/log/node1/crsd
$ vim crsd.log
——————-
2013-12-10 15:47:19.902: [  OCRASM][33715952]ASM Error Stack :
2013-12-10 15:47:19.934: [  OCRASM][33715952]proprasmo: kgfoCheckMount returned [6]
2013-12-10 15:47:19.934: [  OCRASM][33715952]proprasmo: The ASM disk group crs is not found or not mounted <——-
2013-12-10 15:47:19.934: [  OCRRAW][33715952]proprioo: Failed to open [+crs]. Returned proprasmo() with [26]. Marking location as UNAVAILABLE.
2013-12-10 15:47:19.934: [  OCRRAW][33715952]proprioo: No OCR/OLR devices are usable
2013-12-10 15:47:19.934: [  OCRASM][33715952]proprasmcl: asmhandle is NULL
2013-12-10 15:47:19.935: [    GIPC][33715952] gipcCheckInitialization: possible incompatible non-threaded init from [prom.c : 690], original from [clsss.c : 5343]
2013-12-10 15:47:19.935: [ default][33715952]clsvactversion:4: Retrieving Active Version from local storage.
2013-12-10 15:47:19.937: [  OCRRAW][33715952]proprrepauto: The local OCR configuration matches with the configuration published by OCR Cache Writer. No repair required.
2013-12-10 15:47:19.938: [  OCRRAW][33715952]proprinit: Could not open raw device
2013-12-10 15:47:19.938: [  OCRASM][33715952]proprasmcl: asmhandle is NULL
2013-12-10 15:47:19.939: [  OCRAPI][33715952]a_init:16!: Backend init unsuccessful : [26]
2013-12-10 15:47:19.939: [  CRSOCR][33715952] OCR context init failure.  Error: PROC-26: Error while accessing the physical storage <——-
2013-12-10 15:47:19.939: [    CRSD][33715952] Created alert : (:CRSD00111:) :  Could not init OCR, error: PROC-26: Error while accessing the physical storage
2013-12-10 15:47:19.939: [    CRSD][33715952][PANIC] CRSD exiting: Could not init OCR, code: 26
2013-12-10 15:47:19.939: [    CRSD][33715952] Done.
———————

通过日志,可以看出是CRS磁盘组有问题

也确实如此,没有挂载CRS磁盘组
su – grid
SQL> set linesize 200
SQL>  select GROUP_NUMBER,NAME,TYPE,ALLOCATION_UNIT_SIZE,STATE from v$asm_diskgroup;

GROUP_NUMBER NAME                           TYPE   ALLOCATION_UNIT_SIZE STATE
———— —————————— —— ——————– ———–
0 CRS                                                      0 DISMOUNTED<——–
2 DATA1                          EXTERN              4194304 MOUNTED

查看asm实例alert日志,返现CRS磁盘组被强制卸载了
SQL> show parameter dump
NAME                                 TYPE        VALUE
———————————— ———– ——————————
background_core_dump                 string      partial
background_dump_dest                 string      /app/gridbase/diag/asm/+asm/+A
SM1/trace
cd /app/gridbase/diag/asm/+asm/+ASM1/trace
$ vim alert_+ASM1.log
——————————————-
Tue Dec 10 11:13:57 2013
WARNING: Waited 15 secs for write IO to PST disk 0 in group 1.
WARNING: Waited 15 secs for write IO to PST disk 1 in group 1.
WARNING: Waited 15 secs for write IO to PST disk 2 in group 1.
WARNING: Waited 15 secs for write IO to PST disk 0 in group 1.
WARNING: Waited 15 secs for write IO to PST disk 1 in group 1.
WARNING: Waited 15 secs for write IO to PST disk 2 in group 1.
Tue Dec 10 11:13:57 2013
NOTE: process _b000_+asm1 (15822) initiating offline of disk 0.3916226472 (CRS_0000) with mask 0x7e in group 1
NOTE: process _b000_+asm1 (15822) initiating offline of disk 1.3916226471 (CRS_0001) with mask 0x7e in group 1
NOTE: process _b000_+asm1 (15822) initiating offline of disk 2.3916226470 (CRS_0002) with mask 0x7e in group 1
NOTE: checking PST: grp = 1
GMON checking disk modes for group 1 at 12 for pid 37, osid 15822
ERROR: no read quorum in group: required 2, found 0 disks
NOTE: checking PST for grp 1 done.
NOTE: initiating PST update: grp = 1, dsk = 0/0xe96cdfa8, mask = 0x6a, op = clear
NOTE: initiating PST update: grp = 1, dsk = 1/0xe96cdfa7, mask = 0x6a, op = clear
NOTE: initiating PST update: grp = 1, dsk = 2/0xe96cdfa6, mask = 0x6a, op = clear
GMON updating disk modes for group 1 at 13 for pid 37, osid 15822
ERROR: no read quorum in group: required 2, found 0 disks
Tue Dec 10 11:13:57 2013
NOTE: cache dismounting (not clean) group 1/0x165C2F6D (CRS)
WARNING: Offline for disk CRS_0000 in mode 0x7f failed.
WARNING: Offline for disk CRS_0001 in mode 0x7f failed.
NOTE: messaging CKPT to quiesce pins Unix process pid: 15824, image: oracle@node1 (B001)
WARNING: Offline for disk CRS_0002 in mode 0x7f failed.
Tue Dec 10 11:13:57 2013
NOTE: halting all I/Os to diskgroup 1 (CRS)
Tue Dec 10 11:13:57 2013
NOTE: LGWR doing non-clean dismount of group 1 (CRS)
NOTE: LGWR sync ABA=3.42 last written ABA 3.42
Tue Dec 10 11:13:57 2013
kjbdomdet send to inst 2
detach from dom 1, sending detach message to inst 2
Tue Dec 10 11:13:57 2013
List of instances:
1 2
Dirty detach reconfiguration started (new ddet inc 1, cluster inc 4)
Global Resource Directory partially frozen for dirty detach
* dirty detach – domain 1 invalid = TRUE
Tue Dec 10 11:13:57 2013
NOTE: No asm libraries found in the system
520 GCS resources traversed, 0 cancelled
Dirty Detach Reconfiguration complete
Tue Dec 10 11:13:57 2013
WARNING: dirty detached from domain 1
NOTE: cache dismounted group 1/0x165C2F6D (CRS)
SQL> alter diskgroup CRS dismount force /* ASM SERVER:375140205 */          <————CRS被强制dismount—
Tue Dec 10 11:13:57 2013
NOTE: cache deleting context for group CRS 1/0x165c2f6d
GMON dismounting group 1 at 14 for pid 41, osid 15824
NOTE: Disk CRS_0000 in mode 0x7f marked for de-assignment
NOTE: Disk CRS_0001 in mode 0x7f marked for de-assignment
NOTE: Disk CRS_0002 in mode 0x7f marked for de-assignment
NOTE:Waiting for all pending writes to complete before de-registering: grpnum 1
Tue Dec 10 11:14:27 2013
NOTE:Waiting for all pending writes to complete before de-registering: grpnum 1
Tue Dec 10 11:14:29 2013
ASM Health Checker found 1 new failures
Tue Dec 10 11:14:57 2013
SUCCESS: diskgroup CRS was dismounted
SUCCESS: alter diskgroup CRS dismount force /* ASM SERVER:375140205 */
SUCCESS: ASM-initiated MANDATORY DISMOUNT of group CRS
————————————–

挂载CRS 磁盘组
su – grid
sqlplus / as sysasm  –!!!一定是sysasm
SQL> alter diskgroup crs mount;

SQL> select GROUP_NUMBER,NAME,TYPE,ALLOCATION_UNIT_SIZE,STATE from v$asm_diskgroup;
GROUP_NUMBER NAME                           TYPE   ALLOCATION_UNIT_SIZE STATE
———— —————————— —— ——————– ———–
1 CRS                            NORMAL              4194304 MOUNTED
2 DATA1                          EXTERN              4194304 MOUNTED

启动CRS
但是常用的start crs命令执行不成功
# /app/grid/bin/crsctl start crs
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.

使用该命令启动成功
[root@node1 ~]# /app/grid/bin/crsctl start res ora.crsd -init
CRS-2672: Attempting to start ‘ora.crsd’ on ‘node1’
CRS-2676: Start of ‘ora.crsd’ on ‘node1’ succeeded

# /app/grid/bin/crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online   <——————
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

$ crsctl check cluster -all
**************************************************************
node1:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
node2:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************

解决路线图:
crsd_log–>asm_instance_alert_log–>mount crs diskgroup –>start crs

虽然node1的CRS恢复正常,但CRS磁盘组会被强制dismount的原因还没找到,找到后会贴在这里。

关于BASH漏洞修复

更新至9月25日图班技术支持给出的Linux解决方案:
 
特别提醒:Linux 官方已经给出最新解决方案,已经解决被绕过的bug,建议您尽快重新完成漏洞修补。openSUSE 镜像已经给出修复方案了。 
  
【已确认被成功利用的软件及系统】  
所有安装GNU bash 版本小于或者等于4.3的Linux操作系统。  
    
【漏洞描述】  
该漏洞源于你调用的bash shell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行。   
    
【漏洞检测方法】  
漏洞检测命令:echo vulnerable’ bash -c “echo this is a test” 
   
修复前 
输出:    

1
2
3
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
 vulnerable
 this is a test

  
使用修补方案修复后 
输出:

1
2
3
4
# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x'
this is a test

 
特别提示:该修复不会有任何影响,如果您的脚本使用以上方式定义环境变量,修复后您的脚本执行会报错。 
  
【建议修补方案 】  
  
请您根据Linux版本选择您需要修复的命令, 为了防止意外情况发生,建议您执行命令前先对Linux服务器系统盘打个快照,如果万一出现升级影响您服务器使用情况,可以通过回滚系统盘快照解决。  
  
centos:(最终解决方案) 
yum clean all 
yum makecache 
yum -y update bash  
  
ubuntu:(最终解决方案) 
apt-get update 
apt-get -y install –only-upgrade bash  
  
debian:(最终解决方案) 
7.5  64bit && 32bit  
apt-get update 
apt-get -y install –only-upgrade bash  
 
redhat5.x linux:(最终解决方案) 
5.x 64bit  
wget http://www.ricoitta.com/ricore/upload/bash-3.2-33.el5_10.4.x86_64.rpm
  
5.x 32bit  
wget http://mirrors.aliyun.com/centos/5/updates/i386/RPMS/bash-3.2-33.el5_10.4.i386.rpm

redhat6.x linux:(最终解决方案) 
6.x 64bit  
wget wget http://www.ricoitta.com/ricore/upload/bash-4.1.2-15.el6_5.2.x86_64.rpm
执行命令#rpm -Uvh bash-3.2-33.el5_10.4.x86_64.rpm

opensuse:(最终解决方案) 
  
zypper clean 
zypper refresh 
zypper update -y bash 
  
如果有问题,请随时联系我们。
  
图班信息技术支持 
2014年9月30日

网站服务器迁移

我们又回来了,由于原机房服务器网络故障,我们不得不离开和抛弃原来老的服务器,目前我们有了新的服务器新的家,希望可以在这个家长久呆着。阿门!!!!