备份数据库
在下面的示例sqlcmd连接到本地 SQL Server 实例,并采用完整备份的名为的用户数据库demodb
。
sqlcmd -S localhost -U SA -Q "BACKUP DATABASE [demodb] TO DISK = N'/var/opt/mssql/data/demodb.bak' WITH NOFORMAT, NOINIT, NAME = 'demodb-full', SKIP, NOREWIND, NOUNLOAD, STATS = 10"
备份事务日志
如果你的数据库处于完整恢复模式,您还可以更精细的还原选项的事务日志备份。 在以下示例中, sqlcmd连接到本地 SQL Server 实例,并将事务日志备份。
bash
sqlcmd -S localhost -U SA -Q "BACKUP LOG [demodb] TO DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak' WITH NOFORMAT, NOINIT, NAME = N'demodb_LogBackup', NOSKIP, NOREWIND, NOUNLOAD, STATS = 5"
还原数据库
在下面的示例sqlcmd连接到 SQL Server 的本地实例,并将 demodb 数据库还原。 请注意,NORECOVERY
选项用于允许其他的日志文件备份还原。 如果不打算还原其他日志文件,删除NORECOVERY
选项。
bash
sqlcmd -S localhost -U SA -Q "RESTORE DATABASE [demodb] FROM DISK = N'/var/opt/mssql/data/demodb.bak' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5"
提示
如果你意外地使用 NORECOVERY,但不是具有额外的日志文件备份,运行命令RESTORE DATABASE demodb
不带任何其他参数。 这完成还原并保持您的数据库操作状态。
还原事务日志
以下命令将还原以前的事务日志备份。
sqlcmd -S localhost -U SA -Q "RESTORE LOG demodb FROM DISK = N'/var/opt/mssql/data/demodb_LogBackup.bak'"