docs & tools: Actualización de informes y scripts de migración DASUTEN
This commit is contained in:
@@ -22,48 +22,60 @@ JSON_PATH = 'C:\temp\dron_restore_output.json'
|
||||
if File.exist?(DOWNLOAD_OUTPUT)
|
||||
output = JSON.parse(File.read(DOWNLOAD_OUTPUT))
|
||||
backup_local = output['backup_local']
|
||||
backup_name = File.basename(backup_local)
|
||||
LOCAL_BACKUP = "#{BACKUP_DIR_WINDOWS}\\#{backup_name}"
|
||||
backup_name = output['backup_name'] || File.basename(backup_local)
|
||||
LOCAL_BACKUP = backup_local # Usar la ruta EXACTA que viene del download
|
||||
puts "[*] Dron: Restaurar backup DASUTEN"
|
||||
puts " Nodo: dasu-sql4"
|
||||
puts " Backup: #{LOCAL_BACKUP} (desde download)"
|
||||
puts " Nombre: #{backup_name}"
|
||||
else
|
||||
LOCAL_BACKUP = "#{BACKUP_DIR_WINDOWS}\\sysdasuten_FULL_*.bak"
|
||||
puts "[*] Dron: Restaurar backup DASUTEN (buscar más reciente)"
|
||||
puts " Nodo: dasu-sql4"
|
||||
puts " Backup: #{LOCAL_BACKUP} (búsqueda por patrón)"
|
||||
end
|
||||
|
||||
puts " Nodo: dasu-sql4"
|
||||
puts " Backup: #{LOCAL_BACKUP}"
|
||||
|
||||
# PowerShell script para restore
|
||||
ps_script = <<~'PSCMD'.strip
|
||||
ps_script = <<~PSCMD.strip
|
||||
$ErrorActionPreference = "Stop"
|
||||
$BACKUP_DIR = "F:\BACKUP"
|
||||
$BACKUP_PATTERN = "sysdasuten_FULL_*.bak"
|
||||
$JSON_PATH = "C:\temp\dron_restore_output.json"
|
||||
$BACKUP_DIR = "F:\\BACKUP"
|
||||
$BACKUP_NAME = "#{backup_name}"
|
||||
$LOCAL_BACKUP = "$BACKUP_DIR\\$BACKUP_NAME"
|
||||
$JSON_PATH = "C:\\temp\\dron_restore_output.json"
|
||||
|
||||
$null = New-Item -ItemType Directory -Force -Path "C:\temp"
|
||||
$null = New-Item -ItemType Directory -Force -Path "C:\\temp"
|
||||
|
||||
Write-Host "[0/1] Buscando backup completo más reciente..."
|
||||
$backupFile = Get-ChildItem "$BACKUP_DIR\$BACKUP_PATTERN" | Sort-Object LastWriteTime -Descending | Select-Object -First 1
|
||||
if (-not $backupFile) {
|
||||
Write-Host "[!] No se encontró backup completo en $BACKUP_DIR"
|
||||
exit 1
|
||||
Write-Host "[0/1] Verificando backup específico..."
|
||||
Write-Host " Archivo esperado: $LOCAL_BACKUP"
|
||||
|
||||
if (-not (Test-Path $LOCAL_BACKUP)) {
|
||||
Write-Host "[!] No se encontró backup en $LOCAL_BACKUP"
|
||||
Write-Host " Buscando backup más reciente como fallback..."
|
||||
$BACKUP_PATTERN = "sysdasuten_FULL_*.bak"
|
||||
$backupFile = Get-ChildItem "$BACKUP_DIR\\$BACKUP_PATTERN" | Sort-Object Name -Descending | Select-Object -First 1
|
||||
if (-not $backupFile) {
|
||||
Write-Host "[!] No se encontró ningún backup en $BACKUP_DIR"
|
||||
exit 1
|
||||
}
|
||||
$LOCAL_BACKUP = $backupFile.FullName
|
||||
Write-Host " Fallback: $LOCAL_BACKUP"
|
||||
}
|
||||
$LOCAL_BACKUP = $backupFile.FullName
|
||||
Write-Host " Archivo: $LOCAL_BACKUP"
|
||||
|
||||
$backupFile = Get-Item $LOCAL_BACKUP
|
||||
Write-Host " Tamaño: $([math]::Round($backupFile.Length / 1MB, 2)) MB"
|
||||
|
||||
Write-Host "[1/1] Ejecutando RESTORE DATABASE..."
|
||||
$start = Get-Date
|
||||
|
||||
$sqlcmd = "C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\sqlcmd.exe"
|
||||
$sqlcmd = "C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\170\\Tools\\Binn\\sqlcmd.exe"
|
||||
|
||||
$restoreSql = @"
|
||||
RESTORE DATABASE sysdasuten
|
||||
FROM DISK = '$LOCAL_BACKUP'
|
||||
WITH REPLACE,
|
||||
MOVE 'sysdasuten' TO 'F:\DATA\sysdasuten.mdf',
|
||||
MOVE 'sysdasuten_log' TO 'F:\LOG\sysdasuten_log.ldf'
|
||||
"@
|
||||
MOVE 'sysdasuten' TO 'F:\\DATA\\sysdasuten.mdf',
|
||||
MOVE 'sysdasuten_log' TO 'F:\\LOG\\sysdasuten_log.ldf'
|
||||
"@
|
||||
|
||||
Write-Host " SQL: $restoreSql"
|
||||
|
||||
@@ -82,6 +94,7 @@ ps_script = <<~'PSCMD'.strip
|
||||
$res = @{
|
||||
paso = "restore_complete"
|
||||
backup_ruta = $LOCAL_BACKUP
|
||||
backup_name = $BACKUP_NAME
|
||||
nodo = "dasu-sql4"
|
||||
duracion_total = $duracionRestore
|
||||
duracion_restore = $duracionRestore
|
||||
|
||||
Reference in New Issue
Block a user