sqlserver数据库迁移的几种方式
最近在公司上班,有时候需要将公司服务器上的数据库copy到自己电脑上带回家,心情好的时候加会小班嘛。很多朋友可能像本人一样不会,或者不熟悉如何快速的迁移数据库。 方法一:脚本法 如果你的数据库每天都有更新,而且今天改动量不大,可以将你所有的改动
最近在公司上班,有时候需要将公司服务器上的数据库copy到自己电脑上带回家,心情好的时候加会小班嘛。很多朋友可能像本人一样不会,或者不熟悉如何快速的迁移数据库。
方法一:脚本法
如果你的数据库每天都有更新,而且今天改动量不大,可以将你所有的改动弄成脚本,放到本地数据库执行即可。就行一般公司开发写数据库发布脚本一样。
方法二:备份与还原法
在服务器的数据库中选中要转移的数据库,按鼠标右键,选所有任务->备份数据库;将备份copy到本地,选中本地已有的数据库(没有需要新建)右键→任务→还原数据库。
找到你copy下来的bak文件即可,值得提醒是,,有时候会出现错误:2个数据库不是一个数据库。这种情况点 →选项 勾上 覆盖现有数据库即可。
方法三:如果只是将服务器上的数据库copy到本地数据库,则右键→导出数据,按照向导导到对应的本地数据库(前提是本地数据库没有数据,如果有数据,他不会覆盖会出现2条相同的记录),而且完了之后还得到处所有的函数和存储过程,所以该方法不推荐。
方法四:附加法
首先分离数据库连接,然后将数据库文件(mdf文件)copy到本地,然后右键→附加 找到该mdf文件即可
如何将zencart系统迁移到另一台服务器,为大家详细说明,以方便大家更方便快捷的操作……
1 在新主机上,创建新的MySQL数据库。记下用户名、密码、数据库名以及主机名(通常是localhost)。
2 在新主机上,全新安装相同版本的zencart,这保证configurephp文件中的设置正确。
在安装的时候,要安装演示数据,这样可以测试安装是否正确。
a 安装
b 测试
c 备份新主机的 /includes/configurephp 和 /admin/includes/configurephp 文件到本地。
3 完全备份已有数据库和商店程序。
a 可以使用 “数据库备份模块” 或者 phpMyAdmin 来备份数据库 … 要选择 “添加 DROP TABLE” 选项;同时,在数据选项下,选择 “完整插入” 以及 “扩展插入”,保存SQL文件到本地计算机。
b 通过FTP下载旧的网站上的所有文件 (如果可以的话,在服务器上压缩后再下载)
4 上传旧的文件到新的服务器上,覆盖新服务器上的文件。两个文件例外:
不要覆盖新服务器上的 /includes/configurephp 和 /admin/includes/configurephp 文件。
5 进入新服务器上的 phpMyAdmin 。
a 选择新数据库 (安装了新的zencart的数据库)
b 删除所有数据表。
c 导入上面 3a 中保存的SQL文件。
6 下载缓存设置同步工具(见下载区),重置缓存设置。只要上传该文件到zencart安装目录并运行(fix_cache_keyphp)即可。运行后一定要删除该文件。
7 完成。
泰海科技服务器
有两种方法上传程序到服百务器里面。
如果是win系统服务器,度那么打开远程桌面,从本地问电脑复制文件,到远程桌面服务器里面,答粘贴文件,就可以了。
如果有ip地址,ftp账号密码,也可以用专 ftp软件上传。
linux服务器的话, 就是属直接用ftp软件上传文件了。
如果要快的话可以这样,作个参考吧:
1首先把新服务器安装好操作系统按老服务器分好磁盘分区(c,d,e等盘符保持一致)
2把老服务器上除系统盘(c盘)以外的盘上的数据全部复制到新服务器的对应盘上(通过网络共享复制或通过rsync将数据同步过来)
3数据同步完成后把老服务器的操作系统做一个ghost备份恢复到新服务器的C盘上。
4启动新服务器(如果启动正常应该所有的ad,dns等都是可用的,如果新服务器的某些硬件没有驱动,找新服务器的驱动光盘驱动一下就可以了。)
关于更换或者迁移域服务器:关于域服务器迁移的请教我通过部署一个简单的域管理公司40台左右的机器。域的作用主要是通过域用户来管理客户端,回收大部分的权限,使客户端系统非常稳定!整个域系统已经用了快4年了。另 外域服务器还兼任文件服务器,授权和设置了共享文件目录,让客户端可以通过这些共享目录交流和保存信息。现在公司购置了新的机器,需要将现在旧的域服务器迁移到这台新机上,旧的机器另有用途,我在考虑如何做才能让客户端受到的影响最小!先讲一下我现在的网络系统架构:ip段:192168760 2552552550DNS:1921687621DC(old):1921687621我想的迁移办法是:1先在新机上装好dc(new):19216876312在dc(new)上设置dns指向1921687621,然后作为DC(old)的额外域建立域,将dc(new)的域信息复制过来,然后配置dc(new)的dns中的ad zone,将dc(old)的dns资料也 复制过来,使dc(new)完全成为dc(old)的冗余备份!3将dc(old)的域正常卸载,让dc(new)承担起域的管理以上只是我以现有知识的设计方案,还没有实际实践,所以想请教几个问题:1dc(old)正常卸载后,dc(new)是否会自动管理起整个域?还需要什么后续的步骤吗?2另一个头痛的问题是如何使原客户端的dns指向新的dns,我想将dc(old)从网络下线后 ,直接修改dc(new)的ip为dc(old)的ip,但是觉得会有问题,不知道是否可行,或者有其他更好的办法。否则我还是要修改40多台客户端的dns指向新的dc(new)! 回答: 1这里要澄清一个问题,所有dc如果获得了完全复制,那么它们上面的数据库是完全同步的,这个通过过程是后台自动完成的,不需要人为干预。如果您的dns选择了与ad同步,那么dns的同步也是自动的。那么在新的dc作为additional dc添加进来并获得完全同步后,您所需要做的动作是,将原有primary dc所承担的角色转移过来,比如5个om,gc,如果有多站点,还有istg。注意是transfer,而不是seize。等待dc的状态稳定后,降级原来的primary dc就好了。相关的资料请参考: http://supportmicrosoftcom/defaultaspxscid=kb;cn;223346 http://supportmicrosoftcom/defaultaspxscid=kb;zh-cn;255690 http://supportmicrosoftcom/defaultaspxscid=kb;zh-cn;324801 http://supportmicrosoftcom/defaultaspxscid=kb;en-us;2555042更改dc ip的想法是可行的。但您要注意更改dns中的srv记录,更改完成后,要注意ad中的各事件日志,确保ad的正常运作。需要提到一点的是,整个操作需要有个过程,最好能够持续1、2天,分步骤实施,实施之间最好能够在测试环境中测试后,并对现有dc进行备份后,再行动作!关于dns client的配置问题,这里您可以看一个kb http://supportmicrosoftcom/defaultaspxscid=kb;en-us;825036最关键的一个地方就是primary dns互相指向,否则容易导致dns解析的问题,从而客户端、dc复制都有可能出现问题。
迁移MySQL数据库通常只需要几个简单的步骤,但是由于您要转移的数据量可能比较庞大,因此一般耗时也会比较长。
下面的步骤将指导您如何从旧的服务器上导出MySQL数据库,对它进行安全加固;然后将其复制并导入到新的服务器上,以保证数据的完整。
将MySQL数据库导出至转储文件(dump file)
Oracle提供了一个名为mysqldump的工具,允许您轻松地将数据库结构和其数据导出到一个SQL的转储文件。您可以使用如下的命令:
1mysqldump -u root -p --opt [database name] > [database name]sql
不过,请注意如下几点:
我们可以使用--single-transaction的标志,以避免数据库在导出数据的过程中被锁死。这样能够在将数据导出到转储文件的同时,您仍可继续在旧的数据库上更新数据。不过请注意,那些在导出进程已经开始之后被更新的数据,是不会被导入转储文件之中的。
在运行该命令之前,请务必将[database name]替换成您的实际数据库名称。
请输入您自己的用户名和相对应的密码,并确保该用户具有备份数据库所需的权限。
安全加固备份文件
在大多数情况下,数据是一家企业的最重要的资产。因此,我们不希望数据库的各种备份被暴露在不受保护的服务器上,因为这样有可能会造成错误地泄露,甚至会出现被黑客窃取等更为糟糕的状况。
因此,通常您可以尝试的做法是:压缩、加密文件,然后删除原文件。在Linux操作系统上,请使用以下的命令对已压缩文件进行加密:
1zip --encrypt dumpzip dbsql
在压缩开始之前,系统将提示您输入密码。
传输备份文件
至此,我们已经获得了一个加密的转储文件。下面让我们通过网络使用SCP命令,将其传输到新的服务器上:
1scp /path/to/source-file user@host:/path/to/destination-folder/
将MySQL转储导入新服务器
通过上面一步,我们已将备份文件传到了新的服务器上,下面让我们来进行解密和提取:
1unzip -P your-password dumpzip
为了存储空间和安全方面的原因,一旦文件导入成功,请记得删除其对应的转储文件。
您可以使用以下的命令来导入文件:
1mysql -u root -p newdatabase < /path/to/newdatabasesql
在新服务器上验证导入的数据
现在我们在新服务器上已经导入了数据库,那么我们就需要一种方法来验证数据的真实存在,并确保没有任何遗漏。
我建议您同时在旧的和新的数据库上运行如下查询,并将获得的结果进行对比。
该查询会在所有的表里计算行数,以显示出新、旧数据库中的数据量。
1SELECT
2TABLE_NAME,
3TABLE_ROWS
4FROM
`
5information_schema``tables`
6WHERE
`
7table_schema` = 'YOUR_DB_NAME';
此外,我建议您检查各个表中数字列的MIN和MAX记录,以确保数据本身是有效的,而不仅仅是看数据的总量(虽然这是查询所唯一能够读出的值)。另一种可供测试的选择是将数据库从新的服务器导出为SQL转储文件,并将其与旧服务器的SQL转储文件做比较。
此外,在应用程序被迁移之前,我建议您先将一个应用程序的实例重定向到新的数据库上,以确认一切运行正常。
另一种导出和导入的选项
我们之所以把该选项放在最后,是因为我们的确不建议您去使用它。
该方法实现起来非常的容易,因为它仅使用一个命令,便能一次性将转储文件导出、传输、并将其数据导入到新的数据库之中。
而它的不足之处在于,一旦其网络链接断掉,您就需要重新启动它了。
因此,我们认为它并不值得被推荐,尤其是在大型数据库中,可能会非常不适用。
当然,如果您非要尝试一下的话,可以使用如下的命令:
1mysqldump -u root -pPassword --all-databases | ssh user@new_hosthostcom 'cat - | mysql -u root -pPassword'
重要提示
请确保在新旧两处,安装有相同官方发行版本的MySQL服务器。否则,你需要按照MySQL网站上的升级说明来进行统一(请参见(https://devmysqlcom/doc/refman/57/en/upgradinghtml)。
请确保您在旧的服务器上拥有足够的空间来保存转储文件和压缩文件(应该有db_size×2的空间)。
请确保您在新的服务器上拥有足够的空间来保存加密的和解密的转储文件、并能导入数据库(应该有db_size×3的空间)。
如果您曾经考虑过只是将datadir从一个数据库转移到另一个的话,我建议您最好不要这样做。否则,您会搞乱数据库的内部结构,而且会给将来可能的问题埋下隐患。
在新的服务器配置中,请不要忘了配置诸如innodb_log_file_size这样的重要标志。因为如果忘记了根据新服务器的规格而更新配置的话,很可能会导致严重的性能问题。
在许多情况下,一般升级到新的数据库服务器的初衷是为了提高查询性能。而如果此类升级没有达到预期的改善,那么您就应该考虑去优化SQL查询,而不仅仅是升级硬件那么简单了
0条评论