mysql主从同步 如何同步已有的数据,

mysql主从同步 如何同步已有的数据,,第1张

--主机开两个窗口,一个进入mysql,一个是shell
--主机阻断写 *** 作
mysql> FLUSH TABLES WITH READ LOCK;
Query OK, 0 rows affected (000 sec)
mysql>
mysql>
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin000002 | 1529881 | openser | mysql,test |
+------------------+----------+--------------+------------------+
1 row in set (000 sec)
--另外一个窗口导出主机数据库
mysqldump -u root -p123456 --opt -R openser > openser20121203sql
--刚才的窗口主机解锁
mysql> UNLOCK TABLES;
Query OK, 0 rows affected (000 sec)
mysql>
--打包数据文件到从机
drop database openser;
create database openser;
mysql -u root -p123456 openser < openser20121127sql
--从机 *** 作
SLAVE STOP;
reset slave;
CHANGE MASTER TO MASTER_HOST='1921682126',
MASTER_USER='repl_user',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin000002',
MASTER_LOG_POS=1529881;
start slave;
show slave status\G

SIP服务器是IP PBX的主要组件,负责建立网络中所有的SIP电话通话。SIP服务器也叫SIP代理服务器或注册服务器。
通常情况下,SIP服务器不参与媒体处理过程。在SIP网络中,媒体一般总是采用端到端协商的处理方式。在某些特殊情况或者业务处理中,例如Music On Hold,SIP服务器也会主动参与媒体协商。
简单的SIP服务器只负责会话的建立、维护和清除,不过多干涉呼叫。而相对比较复杂的SIP服务器,一般又称为SIP PBX,则不仅仅提供对基本呼叫、基本会话的支持,还提供丰富的业务,例如Presence、Find-me、Music On Hold等等。
大部分SIP服务器都是基于linux平台,典型代表为:Kamailio、OpenSER、sipXecx等。
也有部分SIP服务器是基于windows 平台,典型代表为:miniSipServer、Brekeke等。

分类: 电脑/网络 >> 程序设计 >> 其他编程语言
问题描述:

各位高手:

我最近在架设openser服务器的时候遇到了如下问题,一直不知道怎么解决,希望各位高手能帮我解决这个问题。

步骤如下:

1:在openser下载源码包openser-110-tls_srctargz。
2:解压该源码包:

[root@office ~]# tar zxvf openser-110-tls_srctargz

3:[root@office ~]# cd openser-110-tls

[root@office openser-110-tls]#make all include_modules="mysql"

[root@office openser-110-tls]#make install include_modules="mysql"

4:这时在/usr/local/ in生成了openser,openserctl,openser_mysqlsh,openserunix这四个文件

[root@office in]# /openser_mysqlsh create

MySql password for root:

Domain (realm) for the default user 'admin':skytc

creating database openser

Enter password:

Install SERWEB tables (y/n):y

creating serweb tables into openser

Enter password:

5:这时已经可以在mysql里面看到刚才建立的那个数据库openser了

[root@office in]#mysql

Wele to the MySQL monitor Commands end with ; or \g

Your MySQL connection id is 50 to server version: 5018

Type 'help;' or '\h' for help Type '\c' to clear the buffer

mysql> show databases;

+-------------------------+

| Database |

+-------------------------+

| information_schema |

| mysql |

| openser |

| test |

+-------------------------+

4 rows in set (000 sec)

mysql>\q

Bye

6:此时运行openserctl,openserctl是个openser的配置管理工具,出现警告,提示找不到数据库

[root@office in]#openserctl

WARINIG: no database engine found - tried ''

[root@office in]#openser

Listening on

udp: 127001 [127001]:5060

udp: 19216815 [19216815]:5060

tcp: 127001 [127001]:5060

tcp: 19216815 [19216815]:5060

Aliases:

tcp: localhost:5060

tcp: localhostlocaldomain:5060

tcp: office:5060

tcp: officeskytc:5060

udp: localhost:5060

udp: localhostlocaldomain:5060

udp: office:5060

udp: officeskytc:5060

我不知道到了这里以后怎么做了,无论是建立用户还是做什么的,都提示找不到数据库,不知道我哪一步做错了,希望各位高手帮帮我。

解析:

配置成功

不知道我的怎么回事

make all的时候竟然没有自己make unixodbc这个module

所以openser就是起不来

我把这个复制过去就ok了

详细过程我写出来了

地址是
lonelysandblogbus/logs/2006/10/3736625

有什么疏漏

还请指教

OpenOffice java api:
简单的说就是利用java程序可以 *** 作OpenOffice的所有功能,比如创建doc文档,插入文字,设置文字格式等等。
1 OpenOffice 给程序员提供了一个叫UNO (UniversalNetwork Objects)的组件技术我理解的UNO: OpenOffice 类似于web程序中的服务器,程序员写的代码类似于客户端,利用UNO提供的接口和服务去完成对OpenOffice文档的 *** 作。所以写程序首先要搭建 UNO环境:
1 下载 OpenOffice
2复制UNO提供的jar包: unoiljar, java_unojar, juhjar, jurtjar, ridljar, unoloaderjar (ps: 安装了SDK之后在文件夹找)到自己的工程中,引入它们。
3 下载文档:DevelopersGuidepdf
4 安装了SDK后,重新启动一下机器,然后就可以按照 DevelopersGuide 来学习 UNO 编程了。
5 需要ava 环境。
补充: 安装了SDK后, java, c++帮助文档,样例程序,其他关于sdk的信息 都放在本地openOffice安装路径一个叫sdk目录下面,enjoy it !
总结一下已经实现的功能和碰到的问题汇总:
1 首先要得到远程office组件的上下文通过:
comsunstarunoXComponentContext xContext = comsunstarcomphelperBootstrapbootstrap();
得到,如果OpenOffice安装路径不是在工程的路径下面(我自己猜的), 就会报:
comsunstarcomphelperBootstrapException: no office executable found!
解决办法: 黑其源代码, 看了源代码就会发现其实OpenOffice是在寻找本地的soffice的shell文件,所以弄个变量来保存soffice在系统中的路径,重新写一 个Bootstrap就可以了。详细请参照:论坛 。
2 得到 XMultiComponentFactory (ComponentFactory 工厂)
comsunstarlangXMultiComponentFactory xMCF = xContextgetServiceManager();
3 得到各种组件可以通过下面代码:
// docType 是 与 soffice 同目录下面的OpenOffice的其他shell文件,swrite等等
protected XComponent newDocComponent(String docType)
throws javalangException {
String loadUrl = "private:factory/" + docType;
mxRemoteServiceManager = thisgetRemoteServiceManager();
Object desktop = mxRemoteServiceManagercreateInstanceWithContext(
"comsunstarframeDesktop", mxRemoteContext);
XComponentLoader xComponentLoader = (XComponentLoader) UnoRuntime
queryInterface(XComponentLoaderclass, desktop);
PropertyValue[] loadProps = new PropertyValue[0];
return xComponentLoaderloadComponentFromURL(loadUrl, "_blank", 0,
loadProps);
}
4得到 XTextDocument
XComponent xEmptyWriterComponent = newDocComponent("swriter");
XTextDocument mxDoc = (XTextDocument) UnoRuntimequeryInterface(XTextDocumentclass,
xEmptyWriterComponent);
5 得到一个文档的引用
XText mxDocText = mxDocgetText();
6 得到文档的属性列表
XPropertySet mxDocProps = (XPropertySet) UnoRuntimequeryInterface(
XPropertySetclass, mxDoc);
7 建立光标,用来插入新的内容。
XTextCursor mxDocCursor = mxDocTextcreateTextCursor();
XSentenceCursor xSentenceCursor = (XSentenceCursor) UnoRuntime
queryInterface(XSentenceCursorclass, mxDocCursor);
XWordCursor xWordCursor = (XWordCursor) UnoRuntimequeryInterface(
XWordCursorclass, mxDocCursor);
8得到光标属性列表
XPropertySet xCursorProps = (XPropertySet) UnoRuntime queryInterface(XPropertySetclass, mxDocCursor);
9设置插入文字格式
xCursorPropssetPropertyValue("CharFontName", "宋体");
xCursorPropssetPropertyValue("CharWeight", new Float(FontWeightBOLD));
xCursorPropssetPropertyValue("CharHeight", new Float(105));
// 居中显示
xCursorPropssetPropertyValue("ParaAdjust", comsunstarstyleParagraphAdjustCENTER);
10在该光标处插入信息
mxDocTextinsertString(xSentenceCursor, “Hello World", true);
11 保存的关键代码
protected void storeDocComponent(XComponent xDoc, String storeUrl)
throws javalangException {
XStorable xStorable = (XStorable) UnoRuntimequeryInterface(
XStorableclass, xDoc);
PropertyValue[] storeProps = new PropertyValue[1];
storeProps[0] = new PropertyValue();
storeProps[0]Name = "FilterName";
storeProps[0]Value = "MS Word 97";
openOfficeJavaLoggerdebug(" store \"" + xDoctoString() + "\" to \"" + storeUrl
+ "\"");
xStorablestoreAsURL(storeUrl, storeProps);
}

查找MYSQL主从同步方案,
已经很成熟的方案了,一主,多从,主服务器负责写入,从服务器只读。
mysql主从方案主要作用:
读写分离,使数据库能支撑更大的并发。在报表中尤其重要。由于部分报表sql语句非常的慢,导致锁表,影响前台服务。如果前台使用master,报表使用slave,那么报表sql将不会造成前台锁,保证了前台速度。
发扬不同表引擎的优点。目前Myisam表的查询速度比innodb略快,而写入并发innodb比myIsam要好。那么,我们可以使用innodb作为master,处理高并发写入,使用master作为slave,接受查询。或在myisam slave中建立全文索引,解决innodb无全文索引的弱点。
热备,slave和master的数据“准实时”同步。
准备工作。先分别安装两台MYSQL(主服务器:19216884137,从服务器:19216884130)
配置MASTER。找到mycnf文件,修改:
server-id = 1
log_bin = /var/log/mysql/mysql-binlog
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = study #要备份的数据库
#binlog_do_db = backup #要备份的数据库
#binlog_ignore_db = test #不需要备份的数据库
其中,虽然作为主机,但server-id不是必须为1但一般都填1
binlog_do_db为需要复制的db。 binlog_ignore_db为忽略复制的db。需要增加DB的话,就增加相应的一行。(最好写在从库配置)
重启master数据库,运行检查:
mysql> show master status; #检查是否以master形式启动了。
+------------------+----------+----------------------------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+----------------------------------+------------------+
| mysql-bin000001 | 1087 | study,backup | test
+------------------+----------+----------------------------------+------------------+
1 row in set (000 sec)
mysql> show variables like "%log%";
#需要看到这样的一行,说明binlog已经开启了: log_bin | ON
在master上为slave建立用户
mysql> grant replication slave on to 'replication'@'19216884130' identified by '123456';
这样,主机配置完毕。
配置slave
server-id = 2 #随便什么数字,多台slave注意不能为重复就可以了。
#log_bin = /var/log/mysql/mysql-binlog #slave的binlog就没有必要再开启了。注释掉。
master-host = 19216884137 #master的IP
master-user = replication #上面 *** 作中,建立的用户名
master-password = 123456 #上面 *** 作中,建立的密码
配置生效后,配置与master的连接:
mysql> CHANGE MASTER TO
-> MASTER_HOST='19216884137',
-> MASTER_USER='replication',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='mysql-bin000001',
-> MASTER_LOG_POS=1087;
其中MASTER_HOST是master机的ip,MASTER_USER和MASTER_PASSWORD就是我们刚才在master上添加的用户,MASTER_LOG_FILE和MASTER_LOG_POS对应与master status里的信息
slave:mysql> show slave status/G;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10564549.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存