便于说明,案1和案2的定义说明下
案1:需要在sqlserver端安装oracle客户端来实现移行的方案
案2:不需要在sqlserver端安装oracle客户端实现移行的方案
之前把实现中的技术难点,例如大数据量的表,包含blob字段的表等如何移行,基本上都说明了,接下来将实现案1的整体的架构,按照调用顺序说明。
1,3个调用入口
包括:Master数据移行,业务数据移行,Master+业务数据移行
2,内部处理的结构,01~05
上面的移行Master数据,移行业务数据和全移行,3个调用接口,会调用下面的bat和ps1,进行详细的处理,参照下图,接下来会一个一个进行说明,主要的实现代码也会贴出来
①Sqlserver的恢复:
通过01_DBMigrationV5_Restore.ps1,将bak文件夹下的bak备份文件恢复到sqlserver。具体的实现如下。这里是使用powershell调用sqlserver的包,来进行恢复处理,原因是我不想指定sqlserver数据文件的路径,使用这个方法,它会将数据文件和log文件默认导入sqlserver的安装目录,比较方便。
Restore-SqlDatabase方法有几个参数注意下:
-Credential:这个方法没有用户名,密码的参数,所以需要像下面这样,生成一个PSCredential对象
-ReplaceDatabase:你想让你的恢复可以重复执行,而不是恢复一次,数据库存在后再恢复报错。这个参数需要加上
代码:
$uname="la"
$pwd=ConvertTo-SecureString "la" -AsPlainText -Force;
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd);
#恢复
Restore-SqlDatabase -ServerInstance $ServerInstance -Database $sqlServerDbName -BackupFile $bakFie -AutoRelocateFile -ReplaceDatabase -Credential $cred
鉴于篇幅限制,先介绍到这,接下来会陆续说明。有好的想法意见,可以关注联系我,谢谢