Soldato
Hi, does anyone have any experience of using a tool for migrating entire SQL instances to another physical machine please?
Thank you, will check out redgate I'd not heard of them and this topic seems difficult to GoogleRedgate do good, yet expensive, tools. Not sure if they have what you are looking for, but have a look.
Thank you, will check out redgate I'd not heard of them and this topic seems difficult to Google
As above redgate might be of use but more to the point why wouldn't you just back up the databases, restore them to the new server and then reconnect clients? Hardly seems worth finding a "tool" when no tool will be able to give an end-to-end solution for sql migrations.
I didn't know about recovery mode, so thanks for that tip.
I saw some scripts which can copy the DB permissions. I was rather hoping I could chuck some cash at a tool which will restore the differentials right up until the restore point, meaning next to no downtime.
1) The storage is all on a SAN, is it possible to simply detach the storage then re-attach the storage to a brand new server with a new SQL version?
thanks, it's good to hear that the "storage migration" route is possibly an option.A little late to the thread
If you are getting rid of your old server, you could CNAME the new one, with servers like this where we have clients connecting always CNAME the server so can change it without having to reconfigure your clients
Can I assume you mean set up a DNS record pointing the old server/network instance name to the new server?
# Program copies on the iSeries share to the equivalent SQL DB.
# ./CopyData.ps1 -SVR 'servername' -DB 'sqldatabase' -drive 'MappedShare';
Param([String]$SVR , [String]$DB , [string]$drive)
Write-Host "Starting bulk copy of data from $drive to $db on $svr..."
Start-Sleep -s 2
$lines = (Get-childitem -Path $drive\*.txt).Name;
Import-Module .\CsvSqlimport.psm1;
$out = "F:\IBISDataConversion\log\CopyData.log";
if (test-Path $out)
{
Remove-Item -Path $out
}
foreach ($line in $lines)
{
$a,$b = $line.Split('.')
$c = "$drive\$line";
# Get the first 3 rows of the file ...
# NB - I only need to determine if there is at least one row to copy so to speed up processing I've only selected first 3 rows.
$test = Get-Content -Path $c -TotalCount 3
Write-Host " " | Out-File -filepath $out -NoClobber -Append
# If there is at least one recor to copy, then bulk Copy the data, otherwise skip....
If ($test.Count -gt 0)
{
Write-Host "Copying file $line to $a..." | Out-File -filepath $out -NoClobber -Append
try
{
Import-CsvToSql -Csv $c -SqlServer $SVR -Database $DB -Delimiter "|" -table $a -truncate | Out-File -filepath $out -NoClobber -Append
Start-Sleep -s 2
Remove-Item -path $c
}
catch
{
Write-Host "** Error while Copying file $line to $a..." | Out-File -filepath $out -NoClobber -Append
}
}
else
{
Write-Host "No records in file $line. Copy skipped" | Out-File -filepath $out -NoClobber -Append
}
}