数据库迁移常用命令:
mysqldump -uroot -pt --default-character-set=utf8 -d ***_development > create_***_development.sql
mysqldump -uroot -pt --quick --no-create-info --extended-insert --default-character-set=latin1 ***_development > data_***_development.sql
或mysqldump -uroot --all ***_development > ***_development_dump.sql
scp -P ***-v data_***_development.sql ***@***:/home/*** //将本地文件data_***_development.sql复制到远程192.168.1.1上的/home/username/vsftp.conf
会提示要求输入yes确认然后输入密码
scp -P *** -v create_***_development.sql ***@***:/home/***
mysql -uroot -p ***_development < create_***_development.sql
mysql -uroot -p ***_development < data_***_development.sql
iconv -c -f latin1 -t gb2312 data_***_development.sql > data_***_developmentGB2312.sql
以下开始:
#从***.114网站部测试服务器迁移到***.119新的服务器
cd /home/***/webapp/***
apt-get install rails
apt-get install ruby
apt-get install lighttpd
#要安装
gem install -v=*** rails
#要安装
gem install rchardet
sudo apt-get install ruby***-dev
apt-get install mongrel
#外网ip可以访问这几个服务,-N后面的参数是启动的进程数,从设置的ip开始递增3010,3011,3012
#-c 代表rails项目根目录,production生产模式,development开发调试模式
mongrel_rails cluster::configure -e production -p 3010 -N 3 -c /home/***/***/webapp/***/ -a 0.0.0.0 --user *** --group ***
#或
mongrel_rails cluster::configure -e development -p 3010 -N 3 -c /home/***/***/webapp/***/ -a 0.0.0.0 --user *** --group ***
#只是本机访问,可以通过本机代理访问
mongrel_rails cluster::configure -e production -p 3010 -N 3 -c /home/***/webapp/***/ -a 127.0.0.1 --user *** --group ***
生成config/mongrel_cluster.yml
#启动
mongrel_rails cluster::restart
#这里mongrel的功能类似ruby script/server webrick -p3010 -d 中的webrick
#配置代理服务器
sudo apt-get install lighttpd
vi /etc/lighttpd/lighttpd.conf
#修改如下:(mod_proxy,mod_alias,mod_rewrite都需要)
server.modules = ( "mod_proxy",
"mod_access",
"mod_alias",
"mod_accesslog",
"mod_compress",
"mod_rewrite",
----------------------
## bind to port (default: 80)
#这里或修改成需要的端口
#server.port = 80
----------------------
proxy.debug = 0
#proxy.balance = "fair" 第一个满了再挑选下一个服务器
#proxy.balance = "hash" 一个url固定到一个服务器上
proxy.balance = "round-robin" 每次都更新一个服务器响应
proxy.server = ("/" =>
(
( "host" => "127.0.0.1", "port" => 8888 )
)
)
$HTTP["host"] == "***.***.com" {
proxy.balance = "round-robin"
proxy.server = ( "/" => (
( "host" => "127.0.0.1", "port" => 3010 ),
( "host" => "127.0.0.1", "port" => 3011 ),
( "host" => "127.0.0.1", "port" => 3012 ) ) )
}
----------------------
#这里设置的对应上面mongrel_rails启动的集群
/etc/init.d/lighttpd restart
ruby 项目根目录下的config/environments/production.rb
修改为(不需要设置缓存):
config.action_controller.perform_caching = false
config.action_view.cache_template_loading = false
#至此迁移部署完毕
以下附上分布式处理的图示: