2015年1月9日星期五

linux svn服务器搭建、客户端操作、备份与恢复

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
linux svn服务器搭建、客户端操作、备份与恢复  阅读原文»

linux svn服务器搭建、客户端操作、备份与恢复

Subversion(SVN)是一个开源的版本控制系,管理着随时间改变的数据。这些数据放置在一个中央资料档案库中,这个档案库很像一个普通的文件服务器,它会记住每一次文件的变动,这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。

本文目录:

linux svn服务器部署

linux svn客户端命令操作

linux svn备份与恢复

一、linux svn服务器部署

1、安装svn

[root@yang~]#yum install -y subversion

[root@yang~]#svnserve--version

svnserve,version 1.6.11 (r934486)

2、创建SVN版本库

[root@yang~]# mkdir /data/svn

[root@yang~]# svnadmin create /data/svn/project

[root@yangproject]# ls /data/svn/project/

conf db format hooks locks README.txt

3、配置SVN

[root@yangproject]# cd /data/svn/project/conf/

[root@yangconf]# ls

authz passwdsvnserve.conf

文件说明:

1)svnserve.conf: svn服务配置文件下。

2)passwd: 用户名密码文件。

3)authz: svn权限配置文件。

svnserve.conf文件

该文件配置项分为以下5项:

anon-access: 控制非鉴权用户访问版本库的权限。

auth-access:控制鉴权用户访问版本库的权限。

password-db: 指定用户名口令文件名。

authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。

realm: 指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件

配置如下:

[root@yangconf]# grep -E "anon-access =|auth-access =|password-db =|authz-db =|realm=" svnserve.conf

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

realm = /data/svn/project

passwd文件

作用是配置用户名和密码

[root@yangconf]# cat passwd

yangyun= yangyunpasswd

test = testpasswd

authz文件

配置用户访问权限

[root@yangconf]# cat authz |grep -v '#'

[aliases]

[groups]

project_w=yangyun

project_r=test

[/]

project_w=rw

project_r=r

4、启动svn服务

[root@yangconf]# svnserve -d -r /data/svn

5、初始化svn数据

[root@yangdjango]# svn import mysite file:///data/svn/project/ -m 'initial import'

将会拷贝目录mysite到版本库的project下

[root@yangdjango]# svn list file:///data/svn/project

manage.py

mysite/

static/

templates/

web02/

在导入之后,原来的目录树并没有转化成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。

二、linux svn客户端命令操作

1、将文件checkout到本地目录

svn checkout path(path是服务器上的目录)

简写:svn co

例:

svn co svn://115.28.24.178/project --username=yangyun --password=yangyunpasswd

#指定版本的文件

svn co svn://115.28.24.178/project --username=yangyun --password=yangyunpasswd-r 5

2、往本地版本库中添加新的文件

svn add file #此命令得在checkout出来的路径里才能操作

例如:

cp /root/123.txt./

svn add 123.txt #把123.txt加入到本地库中

A 123.txt

3、将改动的文件提交到版本库

svn commit -m "LogMessage" [-N] [--no-unlock] PATH(如果选择了保锁,就使用--no-unlock开关)

简写:svn ci

例:

svn commit 123.txt -m 'add 123.txt' #只提交123.txt

svn commit -m 'add 123.txt' #默认提交当前目录下的所以文件

svn commit *.txt -m 'add 123.txt' #也可以正则匹配文件提交

4、加锁/解锁

svn lock -m "Loc

Mysql-MHA高可用实验测试  阅读原文»

Mysql-MHA高可用实验测试

说明:

centos 6.5mysql 5.5.37 mha4mysql-manager-0.55 mha4mysql-node-0.54

manager 192.168.1.1
db1 192.168.1.2
db2 192.168.1.3
db3 192.168.1.4

配置mysql主从
db1:

server-id = 1
read_only = 1
relay_log_purge=0
binlog_format=mixed

db2,db3忽略

db1主

  grant replication slave on *.* to mharep@'192.168.1.%' identified by 'passwd';  flush privileges;  stop slave;  #设置复制权限帐号  GRANT ALL PRIVILEGES ON *.* TO 'mha_manager'@'192.168.1.%' IDENTIFIED BY '123456';  reset master;  show master status\G  

db2备

  grant replication slave on *.* to mharep@'192.168.1.%' identified by 'passwd';  GRANT ALL PRIVILEGES ON *.* TO 'mha_manager'@'192.168.1.%' IDENTIFIED BY '123456';  flush privileges;  reset master;  slave stop;  change master to MASTER_HOST='192.168.1.2', MASTER_PORT=3306,MASTER_USER='mharep', MASTER_PASSWORD='passwd',master_log_file='mysql-bin.000001', master_log_pos=107;  slave start;  show slave status\G;  

db3从

  reset master;  slave stop;  GRANT ALL PRIVILEGES ON *.* TO 'mha_manager'@'192.168.1.%' IDENTIFIED BY '123456';  flush privileges;  change master to MASTER_HOST='192.168.1.2', MASTER_PORT=3306,MASTER_USER='mharep', MASTER_PASSWORD='passwd',master_log_file='mysql-bin.000001', master_log_pos=107;  slave start;  show slave status\G;  


配置双机互信
manager

  ssh-keygen -t rsa  for i in db1 db2 db3;do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i;done  

db1主

  ssh-keygen -t rsa  for i in manager db2 db3;do ssh-copy-id -i ~/.ssh/id_rsa.pub root@$i;done  

db2备 和 db3从 配置略

安装mysql-MHA
https://downloads.mariadb.com/files/MHA

  wget https://downloads.mariadb.com/files/MHA/mha4mysql-manager-0.55-0.el6.noarch.rpm  wget https://downloads.mariadb.com/files/MHA/mha4mysql-node-0.54-0.el6.noarch.rpm  

db1主 db2备 db3从
yum install perl-DBD-MySQL
yum localinstall mha4mysql-node-0.54-0.el6.noarch.rpm

manager

  yum install perl cpan  yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager  

#这两个yum没有安装上 perl-Log-Dispatch perl-Parallel-ForkManager

  wget http://downloads.naulinux.ru/pub/NauLinux/6x/x86_64/sites/School/RPMS/perl-Log-Dispatch-2.27-1.el6.noarch.rpm  wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/perl-Parallel-ForkManager-0.7.5-2.2.el6.rf.noarch.rpm  wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/perl-Mail-Sender-0.8.16-1.el6.rf.noarch.rpm  wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/dag/RPMS/perl-Mail-Sendmail-0.79-1.2.el6.rf.noarch.rpm  

rpm -ivh perl-Mail-Sender-0.8.16-1.el6.rf.noarch.rpm
rpm -ivh perl-Mail-Sendmail-0.79-1.2.el6.rf.noarch.rpm
yum localinstall perl-Log-Dispatch-2.27-1.el6.noarch.rpm
yum localinstall perl-Parallel-ForkManager-0.7.5-2.2.el6.rf.noarch.rpm
yum localinstall mha4mysql-node-0.54-0.el6.noarch.rpm
yum localinstall mha4mysql-manager-0.55-0.el6.noarch.rpm

配置mysql-MHA
[root@manager ~]# masterha_<Tab>
masterha_check_repl masterha_conf_host masterha_master_switch
masterha_check_ssh masterha_manager masterha_secondary_check
masterha_check_status masterha_master_monitor masterha_stop

tar -xzf mha4mysql-manager-0.55.tar.gz
ls mha4mysql-manager-0.55/samples/conf
masterha_default.cnf app1.cnf

mkdir -p /usr/local/mha/scripts
cp mha4mysql-manager-0.55/samples/scripts/* /usr/local/mha/scripts

  [root@manager ~]# vim /usr/local/mha/mha.conf  [server default]  user=mha_manager  password=123456  manager_workdir=/usr/local/mha  manager_log=/usr/local/mha/manager.log  remote_workdir=/usr/local/mha  ssh_user=root  repl_user=mharep  repl_password=passwd  ping_interval=1  secondary_check_script= masterha_secondary_check -s 192.168.1.2 -s 192.168.1.3 -s 192.168.1.4  master_ip_failover_script=/usr/local/mha/scripts/master_ip_failover  #shutdown_script= /usr/local/mha/scripts/power_manager  report_script= /usr/local/mha/scripts/send_report  master_ip_online_change_script= /usr/local/mha/scripts/master_ip_online_change  [server1]  hostname=192.168.1.2  ssh_port=22  master_binlog_dir=/var/mysql/log  candidate_master=1  [server2]  hostname=192.168.1.3  ssh_port=22  master_binlog_dir=/var/mysql/log  candidate_master=1  [server3]  hostname=192.168.1.4  ssh_port=22  master_binlog_dir=/var/mysql/log  no_master=1  

#验证ssh通讯
masterha_check_ssh --conf=/usr/local/mha/mha.conf

wKioL1SueDOSfVm9AAZR6Nm0jAQ282.jpg

#验证mysql复制
wget ftp://rpmfind.net/linux/dag/redhat/el6/en/x86_64/extras/RPMS/perl-Net-Telnet-3.03-2.el6.rfx.noarch.rpm
yum localinstall perl-Net-Telnet-3.03-2.el6.rfx.noarch.rpm
[root@manager ~]# masterha_check_repl --conf=/usr/local/mha/mha.conf

  Thu Jan  8 18:05:40 2015 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping.  Thu Jan  8 18:05:40 2015 -  Reading application default configurations from /usr/local/mha/mha.conf..  Thu Jan  8 18:05:40 2015 -  Reading server configurations from /usr/local/mha/mha.conf..  Thu Jan  8 18:05:40 2015 -  MHA::MasterMonitor version 0.55.  Thu Jan  8 18:05:40 2015 -  Dead Servers:  Thu Jan  8 18:05:40 2015 -  Alive Servers:  Thu Jan  8 18:05:40 2015 -    192.168.1.2(192.168.1.2:3306)  Thu Jan  8 18:05:40 2015 -    192.168.1.3(192.168.1.3:3306)  Thu Jan  8 18:05:40 2015 -    192.168.1.4(192.168.1.4:3306)  Thu Jan  8 18:05:40 2015 -  Alive Slaves:  Thu Jan  8 18:05:40 2015 -    192.168.1.3(192.168.1.3:3306)  Version=5.5.37-log (oldest major version between slaves) log-bin:enabled  Thu Jan  8 18:05:40 2015 -      Replicating from 192.168.1.2(192.168.1.2:3306)  Thu Jan  8 18:05:40 2015 -      Primary candidate for the new Master (candidate_master is set)  Thu   Jan  8 18:05:40 2015 -    192.168.1.4(192.168.1.4:3306)  Version=5.5.37-log (oldest major version between slaves) log-bin:enabled  Thu Jan  8 18:05:40 2015 -      Replicating from 192.168.1.2(192.168.1.2:3306)  Thu Jan  8 18:05:40 2015 -      Not candidate for the new Master (no_master is set)  Thu Jan  8 18:05:40 2015 -  Current Alive Master: 192.168.1.2(192.168.1.2:3306)  Thu Jan  8 18:05:40 2015 -  Checking slave configurations..  Thu Jan  8 18:05:40 2015 -  Checking replication filtering settings..  Thu Jan  8 18:05:40 2015 -   binlog_do_db= , binlog_ignore_db=  Thu Jan  8 18:05:40 2015 -   Replication filtering check ok.  Thu Jan  8 18:05:40 2015 -  Starting SSH connection tests..  Thu Jan  8 18:05:41 2015 -  All SSH connection tests passed successfully.  Thu Jan  8 18:05:41 2015 -  Checking MHA Node version..  Thu Jan  8 18:05:42 2015 -   Version check ok.  Thu Jan  8 18:05:42 2015 -  Checking SSH publickey authentication settings on the current master..  Thu Jan  8 18:05:42 2015 -  HealthCheck: SSH to 192.168.1.2 is reachable.  Thu Jan  8 18:05:42 2015 -  Master MHA Node version is 0.54.  Thu Jan  8 18:05:42 2015 -  Checking recovery script configurations on the current master..  Thu   Jan  8 18:05:42 2015 -    Executing command: save_binary_logs  --command=test --start_pos=4 --binlog_dir=/var/mysql/log  --output_file=/usr/local/mha/save_binary_logs_test  --manager_version=0.55 --start_file=mysql-bin.000002  Thu Jan  8 18:05:42 2015 -    Connecting to root@192.168.1.2(192.168.1.2)..    Creating /usr/local/mha if not exists..    ok.    Checking output directory is accessible or not..     ok.    Binlog found at /var/mysql/log, up to mysql-bin.000002  Thu Jan  8 18:05:42 2015 -  Master 

阅读更多内容

没有评论:

发表评论