mssql-cli icon indicating copy to clipboard operation
mssql-cli copied to clipboard

Can this be used to script a db restore

Open dkozlowski569 opened this issue 4 years ago • 2 comments

Can MSQL-CLI be used to automate the restore of a DB ?

dkozlowski569 avatar Sep 15 '21 03:09 dkozlowski569

I would assume so. I haven't scripted it but I do it manually with the following:

ALTER DATABASE "THE_DB" SET OFFLINE WITH ROLLBACK IMMEDIATE

RESTORE DATABASE "THE_DB" FROM DISK = 'some\path\to\my.bak' WITH REPLACE,STATS=1

ALTER DATABASE "TH_DB" SET ONLINE

You can run this query to see the restore progress

SELECT
   session_id as SPID, command, a.text AS Query, start_time, percent_complete,
   dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
FROM sys.dm_exec_requests r
   CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a
WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')

If you take a look at mssql-cli -h the -i or --input_file parameters should let you pass in a script.

chrisg123 avatar Sep 23 '22 15:09 chrisg123

RESTORE FROM DISK runs into server, so if the mssql-cli connection is from remote I think this doesn't work

mauro-miatello avatar Jan 26 '23 09:01 mauro-miatello