生产环境下hadoop HA集群及Hbase HA集群配置

一、环境准备

操作系统版本:
centos7 64位

hadoop版本:
hadoop-2.7.3

hbase版本:

hbase-1.2.4

1、机器及角色

IP 角色
192.168.11.131 Namenode DFSZKFailoverController ResourceManager Jobhistory HMaster QuorumPeerMain
192.168.11.132 Namenode DFSZKFailoverController HMaster QuorumPeerMain
192.168.11.133 Datanode NodeManager JournalNode HRegionServer QuorumPeerMain
192.168.11.134 Datanode NodeManager JournalNode HRegionServer QuorumPeerMain
192.168.11.135 Datanode NodeManager JournalNode HRegionServer QuorumPeerMain

2、所有节点关闭防火墙

说明:

命令前面#表示在root用户下的操作,$表示在hduser用户下操作的。

查看防火墙状态

# firewall-cmd --state

running

关闭防火墙

# systemctl stop firewalld.service

防火墙配置为禁用状态

# systemctl disable firewalld.service

3、配置yum源

所有节点配置yum源

# cd

# mkdir apps

http://mirrors.163.com/centos/7/os/x86_64/Packages/wget-1.14-15.el7.x86_64.rpm

# rpm -i wget-1.14-15.el7.x86_64.rpm

# cd /etc/yum.repos.d

# wget  http://mirrors.aliyun.com/repo/Centos-7.repo

# mv Centos-7.repo CentOS-Base.repo

# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/

# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/

# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/

# scp CentOS-Base.repo [email protected]:/etc/yum.repos.d/

# yum clean all

# yum makecache

# yum update

4、配置ntp时间同步,master1为ntp服务端,其他为ntp客户端

所有节点安装ntp

# yum install -y ntp

ntp server端:

首先配置当前时间

# date -s "2018-05-27 23:03:30"

编辑配置文件

# vi /etc/ntp.conf

在注释下添加两行

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 127.127.1.0

fudge 127.127.1.0 stratum 11

注释下面

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

启动ntp服务并配置为开机自启动

# systemctl start ntpd.service

# systemctl enable ntpd.service

ntp客户端(其余四台都为ntp客户端):

# vi /etc/ntp.conf

同样注释下添加两行

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

server 192.168.11.131

fudge 127.127.1.0 stratum 11

四行添加注释

#server 0.centos.pool.ntp.org iburst

#server 1.centos.pool.ntp.org iburst

#server 2.centos.pool.ntp.org iburst

#server 3.centos.pool.ntp.org iburst

# systemctl start ntpd.service

# systemctl enable ntpd.service

手动同步时间

# ntpdate 192.168.11.131

28 May 07:04:50 ntpdate[1714]: the NTP socket is in use, exiting

对出现的报错做处理

# lsof -i:123

-bash: lsof: command not found

# yum install -y lsof

# lsof -i:123

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

ntpd    1693  ntp   16u  IPv4  25565      0t0  UDP *:ntp

ntpd    1693  ntp   17u  IPv6  25566      0t0  UDP *:ntp

ntpd    1693  ntp   18u  IPv4  25572      0t0  UDP localhost:ntp

ntpd    1693  ntp   19u  IPv4  25573      0t0  UDP localhost.localdomain:ntp

ntpd    1693  ntp   20u  IPv6  25574      0t0  UDP localhost:ntp

ntpd    1693  ntp   21u  IPv6  25575      0t0  UDP localhost.localdomain:ntp

杀掉ntp的进程,注意ntp进程id各不相同,按实际情况处理

# kill -9 1693

再次同步时间成功

# ntpdate 192.168.11.131

27 May 23:06:14 ntpdate[1728]: step time server 192.168.11.131 offset -28808.035509 sec

5、修改主机名和hosts文件

所有节点修改主机名(永久)

# hostnamectl set-hostname master1~slave3

临时修改主机名

# hostname master1~slave3

主节点修改hosts文件

# vi /etc/hosts

192.168.11.131master1

192.168.11.132master2

192.168.11.133slave1

192.168.11.134slave2

192.168.11.135slave3

把hosts文件覆盖到其他机器

# scp /etc/hosts [email protected]~135:/etc/

所有节点创建管理用户和组

创建组和用户

# groupadd hduser

# useradd -g hduser hduser

# passwd hduser

二、配置hadoop环境

1、创建目录并赋权

每台机器上创建如下文件夹

# mkdir /data1

# mkdir /data2

修改权限

# chown hudser:hduser /data1

# chown hudser:hduser /data2

# su hduser

$ mkdir -p /data1/hadoop_data/hdfs/namenode

$ mkdir -p /data2/hadoop_data/hdfs/namenode

$ mkdir -p /data1/hadoop_data/hdfs/datanode(NameNode不要)

$ mkdir -p /data2/hadoop_data/hdfs/datanode(NameNode不要)

$ mkdir -p /data1/hadoop_data/pids

$ mkdir -p /data2/hadoop_data/pids

$ mkdir -p /data1/hadoop_data/hadoop_tmp

$ mkdir -p /data2/hadoop_data/hadoop_tmp

2、无密验证

master1和master2节点操作

# su - hduser

$ ssh-keygen -t rsa

$ cd ~/.ssh

$ cat id_rsa.pub >> authorized_keys

master1节点操作

$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

master2节点操作

$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh/

slave1、slave2和slave3节点创建.ssh目录

# mkdir /home/hduser/.ssh

# chown hduser:hduser /home/hduser/.ssh

master1节点操作

$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh

$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh

$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh

master1和master2节点验证

验证方法,分别在两个节点,ssh登陆本机(hdusser用户)及其他四个节点,看看是不是无密登陆。

如果未通过验证,所有机器执行下面命令

$ chmod 600 ~/.ssh/authorized_keys

$ chmod 700 ~/.ssh

3、所有节点配置java环境

$ mkdir -p /data1/usr/src

上传包到/data1/usr/src目录下

$ cd /data1/usr/src

$ tar xf jdk1.7.0_79.tar -C /data1/usr/

$ vi ~/.bashrc

export JAVA_HOME=/data1/usr/jdk1.7.0_79

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar

export PATH=$PATH:$JAVA_HOME/bin

$ source ~/.bashrc

4、mastar1节点配置hadoop

下载hadoop-2.7.3.tar.gz,上传到/data1/usr/src

http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz

$ cd /data1/usr/src

$ tar -zxf hadoop-2.7.3.tar.gz -C /data1/usr/

编辑hadoop-env.sh

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/data1/usr/jdk1.7.0_79

export HADOOP_PID_DIR=/data1/hadoop_data/pids

export HADOOP_PID_DIR=/data2/hadoop_data/pids

export HADOOP_MAPRED_PID_DIR=/data1/hadoop_data/pids

编辑mapred-env.sh

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/mapred-env.sh

export HADOOP_MAPRED_PID_DIR=/data2/hadoop_data/pids

编辑yarn-env.sh

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/yarn-env.sh

export YARN_PID_DIR=/data2/hadoop_data/pids

编辑core-site.xml

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/core-site.xml

<configuration>

<!-- 指定hdfs的nameservice为masters -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://masters</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

<name>hadoop.tmp.dir</name>

<value>/data2/hadoop_data/hadoop_tmp</value>

</property>

<!-- 指定zookeeper地址 -->

<property>

<name>ha.zookeeper.quorum</name>

<value>master1:2181,master2:2181,slave1:2181,slave2:2181,slave3:2181</value>

</property>

</configuration>

编辑hdfs-site.xml

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/hdfs-site.xml

<configuration>

<!--指定hdfs的nameservice为masters,需要和core-site.xml中的保持一致 -->

<property>

<name>dfs.nameservices</name>

<value>masters</value>

</property>

<!-- h1下面有两个NameNode,分别是master1,master2 -->

<property>

<name>dfs.ha.namenodes.masters</name>

<value>master1,master2</value>

</property>

<!-- master1的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.masters.master1</name>

<value>master1:9000</value>

</property>

<!-- master1的http通信地址 -->

<property>

<name>dfs.namenode.http-address.masters.master1</name>

<value>master1:50070</value>

</property>

<!-- master2的RPC通信地址 -->

<property>

<name>dfs.namenode.rpc-address.masters.master2</name>

<value>master2:9000</value>

</property>

<!-- master2的http通信地址 -->

<property>

<name>dfs.namenode.http-address.masters.master2</name>

<value>master2:50070</value>

</property>

<!-- 指定NameNode的存放位置 -->

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///data2/hadoop_data/hdfs/namenode</value>

</property>

<!-- 指定DataNode的存放位置 -->

<property>

<name>dfs.datanode.data.dir</name>

<value>file:///data1/hadoop_data/hdfs/datanode,data2/hadoop_data/hdfs/datanode</value>

</property>

<!-- 指定NameNode的元数据在JournalNode上的存放位置 -->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://slave1:8485;slave2:8485;slave3:8485/masters</value>

</property>

<!-- 指定JournalNode在本地磁盘存放数据的位置 -->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/data2/hadoop_data/journal</value>

</property>

<!-- 开启NameNode失败自动切换 -->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!-- 配置失败自动切换实现方式 -->

<property>

<name>dfs.client.failover.proxy.provider.masters</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>

sshfence

shell(/bin/true)

</value>

</property>

<!-- 使用sshfence隔离机制时需要ssh免登陆 -->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/home/hduser/.ssh/id_rsa</value>

</property>

<!-- 配置sshfence隔离机制超时时间 -->

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

<!-- 这个地方是为Hbase的专用配置,最小为4096,表示同时处理文件的上限,不配置会报错 -->

<property>

<name>dfs.datanode.max.xcievers</name>

<value>8192</value>

</property>

<property>

<name>dfs.qjournal.write-txns.timeout.ms</name>

<value>60000</value>

</property>

</configuration>

编辑yarn-site.xml

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

<!-- 开启RM高可靠 -->

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<!-- 指定RM的cluster id -->

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>RM_HA_ID</value>

</property>

<!-- 指定RM的名字 -->

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<!-- 分别指定RM的地址 -->

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>master1</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>master2</value>

</property>

<property>

<name>yarn.resourcemanager.recovery.enabled</name>

<value>true</value>

</property>

<property>

<name>yarn.resourcemanager.store.class</name>

<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>

</property>

<!-- 指定zk集群地址 -->

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>master1:2181,master2:2181,slave1:2181,slave2:2181,slave3:2181</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

</configuration>

编辑mapred-site.xml

$ cp /data1/usr/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template /data1/usr/hadoop-2.7.3/etc/hadoop/mapred-site.xml

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/mapred-site.xml

<configuration>

<!-- 指定mr框架为yarn方式 -->

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

编辑slaves

$ vi /data1/usr/hadoop-2.7.3/etc/hadoop/slaves

slave3

slave4

slave5

同步hadoop配置到其他节点

$ for ip in `seq 2 5`;do scp -rpq /data1/usr/hadoop-2.7.3 192.168.11.13$ip:/data1/usr;done

5、各节点zookeeper配置

http://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

上传包到/data1/usr/src目录下

创建目录

$ mkdir -p /home/hduser/storage/zookeeper

$ cd /data1/usr/src

$ tar -zxf zookeeper-3.4.6.tar.gz -C /data1/usr

编辑zoo.cfg

$ cp /data1/usr/zookeeper-3.4.6/conf/zoo_sample.cfg /data1/usr/zookeeper-3.4.6/conf/zoo.cfg

$ vi /data1/usr/zookeeper-3.4.6/conf/zoo.cfg

dataDir=/home/hduser/storage/zookeeper

server.1=master1:2888:3888

server.2=master2:2888:3888

server.3=slave1:2888:3888

server.4=slave2:2888:3888

server.5=slave3:2888:3888

master1-slave3各节点依次做操作

$ echo "1" > /home/hduser/storage/zookeeper/myid

$ echo "2" > /home/hduser/storage/zookeeper/myid

$ echo "3" > /home/hduser/storage/zookeeper/myid

$ echo "4" > /home/hduser/storage/zookeeper/myid

$ echo "5" > /home/hduser/storage/zookeeper/myid

各节点启动ZK服务

$ cd /data1/usr/zookeeper-3.4.6/bin

$ ./zkServer.sh start

6、slave1、slave2和slave3启动journalnode

$ cd /data1/usr/hadoop-2.7.3/sbin

$ ./sbin/hadoop-daemon.sh start journalnode

用jps确认启动结果

7、在master1上格式化zookeeper节点格式化(第一次)

$ cd /data1/usr/hadoop-2.7.3

$ ./bin/hdfs zkfc -formatZK

8、在master1上执行命令格式化文件系统

./bin/hadoop namenode -format

9、在master1上启动namenode

./sbin/hadoop-daemon.sh start namenode

10、需要在master2(备节点)上执行数据同步

./bin/hdfs namenode –bootstrapStandby

scp -r /data2/hadoop_data/hdfs/namenode [email protected]:/data2/hadoop_data/hdfs/

11、在master2上启动namenode

./sbin/hadoop-daemon.sh start namenode

12、设置master1为active

./bin/hdfs haadmin -transitionToActive master1

./bin/hdfs haadmin -getServiceState master1

13、在master1上启动datanode

./sbin/hadoop-daemons.sh start datanode

14、启动HDFS(第二次以后)

在master1上执行命令:

./sbin/start-dfs.sh

15、启动YARN

在master1上执行命令:

./sbin/start-yarn.sh

16、启动Jobhistory

./sbin/mr-jobhistory-daemon.sh start

17、验证

验证namenode

http://master1:50070

Overview 'master1:9000' (active)

http://master2:50070

Overview 'master2:9000' (standby)

18、验证文件系统

上传文件

./bin/hadoop fs -put /data1/usr/hadoop-2.7.3/etc/hadoop /test

./bin/hadoop fs -ls /test

19、namenode的备份验证

杀死master1,master2变为active

20、验证yarn

./bin/hadoop jar /data1/usr/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test/hadoop /test/out

三、安装HBASE

下载hbase-1.2.4-bin.tar.gz,解压

$ cd /data1/usr/src

$ tar -zxvf hbase-1.2.4-bin.tar.gz  -C /data1/usr/

3、创建目录

$ mkdir -p /data1/hadoop_data/hbase_tmp

$ mkdir -p /data2/hadoop_data/hbase_tmp

2、配置master1的hbase环境

配置hbase-env.sh

$ vi /data1/usr/hbase-1.2.4/conf/hbase-env.sh

export JAVA_HOME=/data1/usr/jdk1.7.0_79

export HBASE_PID_DIR=/data2/hadoop_data/pids

export HBASE_MANAGES_ZK=false

export HADOOP_HOME=/data1/usr/hadoop-2.7.3

3、配置hbase-site.xml

$ vi /data1/usr/hbase-1.2.4/conf/hbase-site.xml

<!-- 指定HBase在HDFS上面创建的目录名hbase -->

<property>

<name>hbase.rootdir</name>

<value>hdfs://masters/hbase</value>

</property>

<!-- 开启集群运行方式 -->

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.master.port</name>

<value>60000</value>

</property>

<property>

<name>hbase.tmp.dir</name>

<value>/data2/hadoop_data/hbase_tmp</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name>

<value>master1,master2,slave1,slave2,slave3</value>

</property>

4、配置regionservers

$ vi /data1/usr/hbase-1.2.4/conf/regionservers

slave1

slave2

slave3

5、配置backup-masters

$ vi /data1/usr/hbase-1.2.4/conf/backup-masters

6、移除 HBase 里面的不必要 log4j 的 jar 包

cd ${HBASE_HOME}/lib

mv slf4j-log4j12-1.7.5.jar slf4j-log4j12-1.7.5.jar.bak

7、将master1的hbase环境传输到其他节点

$ for ip in `seq 2 5`;do scp -rpq /data1/usr/hbase-1.2.4 192.168.11.13$ip:/data1/usr;done

8、master1上启动Hbase(hadoop集群已启动)

$ cd /data1/usr/hbase-1.2.4/bin

$ ./start-hbase.sh

9、验证

查看hbase是否在HDFS文件系统创建成功

$ /data1/usr/hadoop-2.7.3/bin/hadoop fs -ls /

执行: bin/hbase shell 可以进入Hbase管理界面、

输入 status 查看状态

创建表

create 'test', 'cf'

显示表信息

list 'test'

表中插入数据

put 'test', 'row1', 'cf:a', 'value1'

put 'test', 'row2', 'cf:b', 'value2'

put 'test', 'row3', 'cf:c', 'value3'

查询表

scan 'test'

取一行数据

get 'test', 'row1'

失效表

disable 'test'

删除表

drop 'test'

浏览器输入http://master1:16010可以打开Hbase管理界面

http://192.168.11.131/master-status

10、启动thrift2

hbase-daemons.sh start thrift2

各节点用jps确认服务是否启动,一般启动失败的原因是配置有误。

原文地址:http://blog.51cto.com/xiaoxiaozhou/2138719

时间: 2024-08-04 13:20:50

生产环境下hadoop HA集群及Hbase HA集群配置的相关文章

在linux环境下安装redis并且搭建自己的redis集群

此文档主要介绍在linux环境下安装redis并且搭建自己的redis集群 搭建环境: ubuntun 16.04 + redis-3.0.6 本文章分为三个部分:redis安装.搭建redis集群 一.本机安装redis: 1.下载redis: wget http://download.redis.io/releases/redis-3.0.6.tar.gz 2.redis安装解压.编译与安装:安装路径在root用户下的:~/softwares文件下 解压:先将安装包放到~/softwares

生产环境下ftp的迁移并构建高可用

说明:这是1个小项目就两台DELL的服务器,和一台IP SAN存储(DELL MD3200i).原来是4台小服务器,而且服务器太老了,经常有问题,这回相当于一次ftp的迁移,以前用的是proftp,这次换成了vsftp.数据量有2.5T. 拓扑很简单: 系统:CENTOS 6.4(64bit) 高可用软件:corosync+pacemaker host:ftp1 192.168.1.190 ftp2  192.168.1.191 stonith(ipmi):ftp1 192.168.1.180

SpringCloud从入门到进阶(四)——生产环境下Eureka的完全分布式部署

内容 由于前两节的内容我们知道,开启了preferIpAddress后,Eureka的伪分布式部署会提示replica不可用.这一节我们讲解如何在生产环境下部署完全分布式的Eureka集群,确保开启了preferIpAddress后replica的可用性. 版本 IDE:IDEA 2017.2.2 x64 JDK:1.8.0_171 manve:3.3.3 SpringBoot:1.5.9.RELEASE SpringCloud:Dalston.SR1 适合人群 Java开发人员 节点信息: 节

生产环境下的iptables

生产环境下的iptables设置,这是我自己的一点总结,浅显之处望大家指出批评,共同学习. 我的局域网为192.168.1.0/24. 1.先清空所有规则 iptables -F iptables -X iptables -Z iptables -t nat -F iptables -t nat -X iptables -t nat -Z 设置默认规则前开发ssh(6123)端口 iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --dport

读生产环境下go语言最佳实践有感

最近看了一篇关于go产品开发最佳实践的文章,go-in-procution.作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文章翻译出来.后面我用soundcloud来指代原作者. 开发环境 在soundcloud,每个人使用一个独立的GOPATH,并且在GOPATH直接按照go规定的代码路径方式clone代码. $ mkdir -p $GOPATH/src/github.com/soundcloud $ cd $GOPA

生产环境下was不允许重启,怎么办?

前段时间上线,遇到一个jndi的故障问题,怎么个问题呢?就是原在测试环境下没有问题,而在生产环境下无法连接生产数据库,当时找到问题所在,就是ibm工具自动生成一个在测试环境下连接的jndi的资源文件resources.xml,当时删除了,重启了server,无效.后来我考虑到这肯定是was缓存造成,因此想象缓存造成的原因,最后在测试环境下重启了was,问题解决了,但后来说生产环境是不可能重启was的,因此暂时困老了本人,后来所谓的领导说,他去找总架构师看有没有办法解决,可是时间不等人,过了2天依

[原]生产环境下的nginx.conf配置文件(多虚拟主机)

[原]生产环境下的nginx.conf配置文件(多虚拟主机) 2013-12-27阅读110 评论0 我的生产环境下的nginx.conf配置文件,做了虚拟主机设置的,大家可以根据需求更改,下载即可在自己的机器上使用了,本配置文件摘录自<构建高可用Linux服务器>(机械工业出版社),转载麻烦注明出处,谢谢,配置文件如下: user  www www;worker_processes 8;error_log  /data/logs/nginx_error.log  crit;pid      

EF 第三篇 生产环境下的数据迁移

前言 本文所谓数据迁移,直白点不如说成数据库升级.虽然大部分带服务器型的应用,所有客户端都是连到同一台服务器上,对这样的生产环境,数据库升级起来不是什么难事,用vs自带的Migration也好,执行sql脚本也好,都比较容易.然而在每家客户现场都要部署一台服务器的应用也不少,如果一家家手工地去升级数据库,那将是一个可怕的工作量.那么对于这样的环境要怎么做到自动升级数据库呢?相信大家也在网上搜了不少了EF关于生产环境下的数据迁移方案,然后99%搜到的都是使用vs自带的Migration命令方式迁移

Windows 2008下 rman backup scirpts(备份脚本)--已经在生产环境下通过验证

一.任务计划 windows -控制面板-管理工具-计划任务程序,右击"任务计划程序库","创建任务" 二:相关脚本中的内容: 2.1  back_rman.bat中的内容: set ORACLE_SID=FS F:\oracle\product\10.2.0\db_1\BIN\rman target / cmdfile=H:\worksql\windows_backupscript\backup.rcv log=H:\worksql\windows_backups