解决mssql数据日志的远程传送(mssql 日志传送)
:
有许多原因可能导致企业数据库中的数据丢失,而将MSSQL数据日志远程发送也可以帮助公司保护数据和恢复。本文介绍了如何使用Transact-SQL脚本和Windows PowerShell脚本来实现远程发送MSSQL数据日志。
Transact SQL脚本:
第一步:创建一个内部储存过程,使用“sp_configure”系统存储过程将本地SQL server实例的参数值设置为“non_mssql_storage_limit”。
例:exec sp_configure ‘non_mssql_storage_limit’, ‘5 mb’
第二步:使用“sp_attach_db”系统存储过程,将MSSQL数据库日志文件连接到本地SQL server实例中。
例:exec sp_attach_db ‘databaselog’, ‘c:\mssql\databaselog.ldf’
第三步:使用“sp_bcp_db”系统存储过程,将MSSQL数据库实例中的日志文件进行远程传输。
例:exec sp_bcp_db ‘databaselog’, ‘[remote-host]’, ‘c:\mssql\databaselog.ldf’
第四步:使用“sp_detach_db”储存过程,从本地SQL Server实例中断开MSSQL数据库日志文件与本地实例的连接。
例:exec sp_detach_db ‘databaselog’
Windows PowerShell脚本:
第一步:使用Windows PowerShell脚本来连接MSSQL数据库服务器,并获取数据日志文件的路径。
例:$logname = Invoke-Sqlcmd -ServerInstance [server name] -Database [DatabaseName] -Query “SELECT LOGNAME FROM SYSDATABASES WHERE NAME='[DatabaseName]'”
第二步:使用Windows PowerShell脚本来创建“Windows PowerShell remoting环境”,以便在远程服务器上执行任务。
例:New-PSSession -ComputerName [外部服务器标识符]
第三步:使用“Invoke-Command”Windows PowerShell 脚本,用“New-PSSession”创建的PS环境,将MSSQL数据库日志文件的内容通过远程传输到远程服务器中。
例:Invoke-Command -Session $session -Scriptblock { copy-item ‘$logName’ \[remote-host\] }
第四步:删除PS环境并释放资源占用。
例:Remove-PSSession -Session $session
以上就是使用Transact-SQL脚本和Windows PowerShell 脚本实现远程发送MSSQL数据日志的步骤。使用此方法,可以帮助公司保障数据安全,还可以有效恢复数据。