
如果您要将自己的数据库导入服务器,1可以点击下面的“建立备份”一。
2点击建立“备份用FTP”。
3用FTP将您自己的数据库备份文件上传到服务器上,覆盖服务器上的1bak(SQL2000)/1sql(Mysql)。
4再点从备份一中的“备份中还原。”
5如果导入过程中发生意外,需要重新导入,您要先点清空数据库。
(在备份还原前,请您先停止您的网站一分钟后再 *** 作,否则数据库正在使用中会造成 *** 作失败。)
前提条件
您需要在您RDS for MySQL所在的云账号下开通阿里云数据传输服务。并 点击此处
下载dts-ads-writer插件到您的一台服务器上并解压(需要该服务器可以访问互联网,建议使用阿里云ECS以最大限度保障可用性)。服务器上需要有Java
6或以上的运行环境(JRE/JDK)。
*** 作步骤
1 在分析型数据库上创建目标表,数据更新类型为实时写入,字段名称和MySQL中的建议均相同;
2 在阿里云数据传输的控制台上创建数据订阅通道,并记录这个通道的ID;
(见: >
先假设有主机 A 和 B ( Linux 系统),主机 A 的 IP 分别是 1234 (当然,也可以是动态的),主机 B 的 IP 是 5678 。两个主机都装上了 PHP+Mysql ,现在 *** 作的是主机 A 上的资料,如果另外一个主机 B 想跟 A 的资料进行同步,应该怎么做呢?
OK,我们现在就动手。
首先,如果要想两个主机间的资料同步,一种方法就是主机 A 往主机 B 送资料,另外一种主法就是主机 B 到主机 A 上拿资料,因为 A 的 IP 是动态的(假设),所以我们就得从主机 A 往主机 B 送资料。
在主机 B 上创建一个 Mysql 账户。
# GRANT ALL ON test TO user@% IDENTIFIED BY "password"; //创建用户 user,可以从任何机器访问到主机 B 上的 test 数据库。
如果这里显示错误,先把 % 改为一个 IP ,然后再利用 phpMyAdmin 把 IP 改为 % ,测试无误后就可以写 php 程序。
<
$link=mysql_pconnect("localhost","user","password");
mysql_pconnect("localhost","user","password"); //连接本机(主机A)的数据库
mysql_select_db("test"); //选择数据库test
$re=mysql_query("select from table order by id desc");
$num=mysql_numrows($re);
if (!empty($num)) {
$id=mysql_result($re,0,"id"); //获得本机table表的最大ID
}
mysql_close($link); //关闭与本机数据库的连接
$link=mysql_pconnect("5678","test","test");
mysql_pconnect("5678","test","test"); //连接主机B的数据库
mysql_select_db("test"); //选择数据库test,此数据库应该与主机A上test数据库的结构一样。
$re=mysql_query("select from table order by id desc");
$num=mysql_numrows($re);
if (!empty($num)) {
$remote_id=mysql_result($re,0,"id"); //获得主机Btable表的最大ID
}
if ($id>$remote_id) {
$result_id=$id-$remote_id; //如果主机A中table的最大ID大于主机B中table表的最大ID,说明两个
} 的资料不同
mysql_close($link); //关闭主机B的数据库连接
$link=mysql_pconnect("localhost","user","password");
mysql_pconnect("localhost","user","password");
mysql_select_db("test");
if (empty($result_id)) $result_id=0;
if (empty($remote_id)) $remote_id=0; //如果主机B中的table的最大ID为空(里面没有资料),那么就等0
$re=mysql_query("select from table limit $remote_id,$result_id"); //取出主机A中table表与主机B中table表里不同的资料
$num=mysql_numrows($re);
if (!empty($num)) {
for ($i=0;$i<$num;$i++) {
$test[$i]=mysql_result($re,$i,"test"); //把不同的资料放入一个数组里
}
}
mysql_close($link); //关闭主机A的数据库连接
$link=mysql_pconnect("5678","user","password");
mysql_pconnect("5678","user","pasword");
mysql_select_db("test");
for ($j=0;$j<$i;$j++) { //这里的i等于在比较主机A与主机B上table表不同资料的数量
mysql_query("insert into table (test) values(\'$test[$j]\')");
}
mysql_close($link); //关闭主机B的数据库连接
>
这时就初步实现了 A 主机和 B 主机数据的同步,但现在还需要人手动每次去激活这个程序,有没有办法把它作为一个脚本一样的,放在 crontab 里面指定时间自动执行呢?
在安装 php 时会自动生一个叫 php 的可执行文件,一般在/你安装的 php 目录 /bin 下面,不过较底的版本好像没有,如果没有这个文件,你就得升级你的 php 。
#php -q testphp
php 原本是应用在网页应用的﹐因此它会送出 HTML 的 Header﹐但是在此我们是要将 php 用作 Shell Script﹐"-q" 就是表示不要送出 Header 的意思
最后编辑 /etc/crontab 里的文件,加上下面这一句。
0 0 root /home/>
首先你要说明一下这2个数据库是什么关系
数据库集群,那么AB两库是镜像还是互备,当然,根据数据库品牌不同,同步的方式也不一样,不过都可以通过安装过程和建立数据库实例中的配置来实现
数据库之间通过其他可控程序连接,那么,该情况下,需要数据可能出现延迟等,不推荐
数据库之间没有连接,但是都由同一个节点进行数据下发,那么就在这个节点上实现一个跨库事物控制就行了
JOB,通过定时上传,比如说三分钟JOB执行一次,客户端将本地数据库新增的记录上传到总部数据库,同样,总部数据库也是三分钟JOB执行一次,将所上传的记录下发到各客户端数据库中,这样进行同步。
以上就是关于怎样让自己的SQLserver数据库文件上传到服务器(如何把数据上传到服务器)全部的内容,包括:怎样让自己的SQLserver数据库文件上传到服务器(如何把数据上传到服务器)、如何对MySQL数据库中的数据进行实时同步、怎么同步数据库的数据到elasticsearch等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)