网站建设明细价格表营销推广方式有哪些
网站建设明细价格表,营销推广方式有哪些,网页设计入门教学视频,电商网站设计公司立找亿企邦问题引入 前一篇文章#xff0c;菜鸟找到了SQL on Linux Docker容器销毁后#xff0c;容器中的数据库文件可以得以保留的方法#xff0c;老鸟非常开心。所以#xff0c;今天又提出了新的问题#xff1a;“鸟儿#xff0c;如果我想把我的数据库从SQL on Windows迁移到SQL … 问题引入 前一篇文章菜鸟找到了SQL on Linux Docker容器销毁后容器中的数据库文件可以得以保留的方法老鸟非常开心。所以今天又提出了新的问题“鸟儿如果我想把我的数据库从SQL on Windows迁移到SQL on Linux Docker如何才能做到呢”。菜鸟一听这个问题头脑迅速反应出数据库迁移的两种方法备份还原和分离附加。就让我们来试试吧。详细的过程可以参见我录制的Youku视频http://v.youku.com/v_show/id_XMjUwNzQyNTU4OA.html 构建SQL on Windows测试数据库 为了测试从SQL on Windows迁移数据库到SQL on Linux Docker的两种方法备份还原和数据库附加。我们在SQL on Windows数据库实例中创建两个测试数据库TestAttach和TestBackRestore然后分别在两个数据库下创建一张测试表接下来插入两条NEWID测试数据最后查看这两条数据。 IF DB_ID(TestAttach) IS NULL CREATE DATABASE TestAttach;
GOUSE TestAttachGOIF OBJECT_ID(dbo.tb_Test, U) IS NOT NULLDROP TABLE dbo.tb_TestGOCREATE TABLE dbo.tb_Test(RowID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,Name VARCHAR(36) NOT NULL);INSERT INTO dbo.tb_TestSELECT NEWID() UNION ALL SELECT NEWID();SELECT * FROM dbo.tb_Test;IF DB_ID(TestBackRestore) IS NULL CREATE DATABASE TestBackRestore;
GOUSE TestBackRestoreGOIF OBJECT_ID(dbo.tb_Test, U) IS NOT NULLDROP TABLE dbo.tb_TestGOCREATE TABLE dbo.tb_Test(RowID INT IDENTITY(1, 1) NOT NULL PRIMARY KEY,Name VARCHAR(36) NOT NULL);INSERT INTO dbo.tb_TestSELECT NEWID() UNION ALL SELECT NEWID();SELECT * FROM dbo.tb_Test;SELECT physical_name,* FROM sys.master_filesWHERE database_id DB_ID(TestAttach); 执行结果截图如下 为了可以直接复制mdf和ldf文件我们需要下线数据库TestAttach然后备份数据库TestBackRestore。 USE masterGOALTER DATABASE TestAttach SET OFFLINE;USE masterGOEXEC xp_create_subdir C:\temp\ GO BACKUP DATABASE [TestBackRestore] TO DISK C:\temp\TestBackRestore_full_20170210.bak WITH STATS 2 ; 传输数据库文件 由于我是在Mac系统安装Windows虚拟机来测试的所以首先我需要将Windows虚拟机中的文件复制到Mac系统。比如我将下面三个文件复制到Mac的~/Downloads目录 C:\SQL2K14_DATA\MSSQL12.MSSQLSERVER\MSSQL\DATA\TestAttach.mdf
C:\SQL2K14_DATA\MSSQL12.MSSQLSERVER\MSSQL\DATA\TestAttach_log.ldf
C:\temp\TestBackRestore_full_20170210.bak 接下来我需要在Mac系统中将这三个文件复制到SQL on Linux Docker容器中方法如下 docker cp ~/Downloads/TestAttach.mdf linuxsql41433:/var/opt/mssql/data/TestAttach.mdf
docker cp ~/Downloads/TestAttach_log.ldf linuxsql41433:/var/opt/mssql/data/TestAttach_log.ldf
docker cp ~/Downloads/TestBackRestore_full_20170210.bak linuxsql41433:/var/opt/mssql/data/TestBackRestore_full_20170210.bak 备份文件、数据库数据文件和日志文件准备完毕后接下来该是还原数据库和附加数据库了。 还原数据库到SQL on Linux Docker 这个和SQL on Windows还原操作没有什么两样思路还是先检查备份文件的完整性然后使用Restore语句还原数据库。使用SSMS连接到SQL on Linux Docker中执行以下脚本 USE masterGO--Verify backup fileRESTORE FILELISTONLY FROM DISK NC:\var\opt\mssql\data\TestBackRestore_full_20170210.bak;RESTORE VERIFYONLY FROM DISK NC:\var\opt\mssql\data\TestBackRestore_full_20170210.bak;-- Restore DatabaseUSE masterGORESTORE DATABASE [TestBackRestore]FROM DISK NC:\var\opt\mssql\data\TestBackRestore_full_20170210.bakWITH MOVE NTestBackRestore TO NC:\var\opt\mssql\data\TestBackRestore.mdf,MOVE NTestBackRestore_log TO NC:\var\opt\mssql\data\TestBackRestore_log.ldf,STATS2GO 最后是附加数据库到SQL on Linux Docker的操作。 附加数据库到SQL on Linux Docker 附加数据库方法也和SQL on Windows一样使用Create Database for Attach方法。同样使用SSMS连接到SQL on Linux Docker执行以下数据库附加操作脚本 USE masterGO-- Create database via attachCREATE DATABASE [TestAttach] ON ( FILENAME NC:\var\opt\mssql\data\TestAttach.mdf),( FILENAME NC:\var\opt\mssql\data\TestAttach_log.ldf) FOR ATTACH;
GO 最后确认 最后确认操作只需要检查下这两个数据库下的测试表数据是否和迁移之前一致即可。 SELECT * FROM TestAttach.dbo.tb_Test;SELECT * FROM TestBackRestore.dbo.tb_Test; 对比迁移前后数据库测试表中的数据是否一致 从最后的确认结果来看迁移前后的数据库测试数据完全一致本次迁移数据使用的两种方法都是成功的可靠的。 写在最后 SQL on Windows上的数据库可以非常平滑的迁移到SQL on Linux Docker中来这个是Windows版和Linux版数据库可以任意选择的前提。我们可以使用数据库的备份还原和分离附件两种方法来达到数据库迁移的目的。 相关文章 SQL Server 急救包First Responder Kit入门教程SQL Server on Linux 理由浅析SQLServer On Linux Package List on CentOSSQL Server on Linux的文件和目录结构个性化配置你的SQL Server on LinuxSQL on Linux Run on Docker如何使Mac Docker支持SQL on Linux容器Volume特性 原文地址https://yq.aliyun.com/articles/69550 .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91967.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!