首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL Server SMO从远程服务器本地备份

以下是关于SQL Server SMO从远程服务器本地备份的完善且全面的答案:

SQL Server SMO(SQL Server Management Objects)是一组用于管理和开发SQL Server的.NET Framework程序集。SMO可用于创建自定义管理工具、脚本和应用程序。

SMO包括多个命名空间,如Microsoft.SqlServer.Management.Smo、Microsoft.SqlServer.Management.Common和Microsoft.SqlServer.Management.Sdk.Sfc。这些命名空间包含用于管理各种SQL Server组件的类,如服务器、数据库、表、触发器、存储过程等。

要使用SMO从远程服务器本地备份数据库,可以使用以下步骤:

  1. 创建一个SMO服务器对象,并将其连接到远程服务器。
  2. 使用SMO服务器对象的Databases属性获取要备份的数据库对象。
  3. 使用数据库对象的Backup方法创建备份文件。
  4. 将备份文件保存到本地计算机上。

以下是一个使用C#编写的示例代码:

代码语言:csharp
复制
using System;
using System.IO;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;

namespace SMOBackup
{
    class Program
    {
        static void Main(string[] args)
        {
            // 设置远程服务器连接信息
            string serverName = "RemoteServerName";
            string databaseName = "DatabaseName";
            string userName = "Username";
            string password = "Password";

            // 创建SMO服务器对象
            ServerConnection conn = new ServerConnection();
            conn.ServerInstance = serverName;
            conn.LoginSecure = false;
            conn.Login = userName;
            conn.Password = password;
            Server server = new Server(conn);

            // 获取要备份的数据库对象
            Database db = server.Databases[databaseName];

            // 创建备份文件
            Backup backup = new Backup();
            backup.Action = BackupActionType.Database;
            backup.Database = db.Name;
            backup.Devices.AddDevice(@"C:\Backup\DatabaseBackup.bak", DeviceType.File);
            backup.SqlBackup(server);

            // 关闭连接
            conn.Disconnect();
        }
    }
}

在这个示例中,我们使用了Microsoft.SqlServer.Management.Smo和Microsoft.SqlServer.ConnectionInfo命名空间中的类。我们首先创建了一个ServerConnection对象,并使用它连接到远程服务器。然后,我们使用SMO服务器对象的Databases属性获取要备份的数据库对象。最后,我们使用数据库对象的Backup方法创建备份文件,并将其保存到本地计算机上。

推荐的腾讯云相关产品:

  • 腾讯云数据库:提供MySQL、PostgreSQL、MongoDB等多种数据库服务,可以满足不同场景的数据存储需求。
  • 腾讯云备份:提供数据备份和恢复服务,可以帮助用户保护数据安全,防止数据丢失。
  • 腾讯云容器服务:提供Docker容器管理服务,可以帮助用户快速构建、部署和管理容器应用。
  • 腾讯云云原生:提供Kubernetes等云原生技术服务,可以帮助用户实现应用的快速部署和扩展。

以上是关于SQL Server SMO从远程服务器本地备份的完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

远程定时备份ACCESS数据库到SQL Server

2、 在Host1机器上SQL Server中创建数据库,表 3、 在Host2(Host1上也可以,此处用于验证局域网机器备份)机器上创建一个Access数据库,表,该数据库位于共享路劲下 4、 Host1...SQL语句用于将ACCESS中的表数据插入到SQL Server表中。...7、 在步骤中调用刚才创建的存储过程 8、 在SQL Server中查看结果 二、实验环境 Host1: OS:Win7 sp1 IP:172.20.10.10/24 数据库类型:SQL Server...Filter Daemon Launcher (MSSQLSERVER)将这两项的登录身份设置为本地系统账户,并且勾选允许服务与桌面交互 2、 需要在SQL Server内开启2项服务 在新建查询内运行一下语句...4、 局域网远程计算机的登录账户和密码必须与SQL Server计算机账户密码一致,远程计算机共享ACCESS文件时注意共享路劲权限,需要设置为Everyone和管理员账户完全控制,否则会提示“文件已经被使用

2.7K30
  • 异地远程访问本地SQL Server数据库【无公网IP内网穿透】

    接下来,我们要做的就是使用cpolar内网穿透,为本地的seafile server创建一个公共互联网地址,让我们能随时随地的访问到局域网内的seafile服务器,让seafile真正成为私有云盘。...本地地址 – 本地地址即为seafile server网站的输出端口号,因此这里填入seafile server默认的8000号端口; 4....,让我们能在公共互联网上访问到本地seafile server。...我们只要将这个地址粘贴到其他设备的浏览器中,就能访问到seafile的服务器。 当然,我们也能使用这个地址,seafile的各种版本客户端,访问到seafile的服务器。 5....转载自cpolar极点云文章:异地远程访问本地SQL Server数据库【无公网IP内网穿透】

    30570

    使用固定公网地址远程访问本地Linux系统部署的SQL Server数据库

    前言 简单几步实现在Linux centos环境下安装部署SQL Server数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的数据库,...而无需公网IP,无需设置路由器,亦无需云服务器。...安装cpolar内网穿透 上面步骤里,我们在本地Linux安装了SQL Server 数据库并且局域网测试ok。...接下来我们安装cpolar内网穿透工具,通过cpolar的tcp公网地址,我们可以很容易实现远程访问SQL Server,而无需自己注册域名购买云服务器。...公网远程连接 打开navicat或者其他连接工具,输入上面我们使用cpolar内网穿透工具所获取的公网地址,以及SQL Server用户名密码,点击测试连接,出现连接成功表示成功。

    9800

    Linux系统安装SQL Server与内网穿透工具实现远程连接本地数据库

    前言 简单几步实现在Linux centos环境下安装部署SQL Server数据库,并结合cpolar内网穿透工具,创建安全隧道将其映射到公网上,获取公网地址,实现在外异地远程连接家里/公司的数据库,...而无需公网IP,无需设置路由器,亦无需云服务器。...安装cpolar内网穿透 上面步骤里,我们在本地Linux安装了SQL Server 数据库并且局域网测试ok。...接下来我们安装cpolar内网穿透工具,通过cpolar的tcp公网地址,我们可以很容易实现远程访问SQL Server,而无需自己注册域名购买云服务器。...公网远程连接 打开navicat或者其他连接工具,输入上面我们使用cpolar内网穿透工具所获取的公网地址,以及SQL Server用户名密码,点击测试连接,出现连接成功表示成功。

    5300

    sql server 2008 把远程的数据库的数据转移到本地数据数据库里

    如题:把远程的数据库对应表里的数据转移到本地数据数据库的对应表里 比如把192.168.188.160的DB的A表的数据转移到本地的DB的A表里 第一步:连接远程服务器前准备 exec sp_addlinkedsrvlogin...'LWServer ', 'false ',null, 'sa', 'kinginfo' --获取连接远程服务器的权限 exec sp_addlinkedserver 'LWServer',...' ', 'SQLOLEDB ', '192.168.188.160' --注册远程服务器 第二步:查询对应数据 select * from LWserver.erp_test.dbo.basis_ware_main...第三步:数据转移--这里把LWserver.erp_test.dbo.basis_ware_main表里的数据转移到 本地数据库的basis_ware_main表里 insert into LWserver.erp_test.dbo.basis_ware_main...Select * from basis_ware_main 以上是 LWserver.erp_test.dbo.basis_ware_main

    93420

    Microsoft SQL Server Management Studio ------- 附加数据库失败

    加数据库 对于 服务器“xxx”失败。  (Microsoft.SqlServer.Smo) 有关帮助信息,请单击: http://go.microsoft.com/fwlink?...ProdName=Microsoft+SQL+Server&ProdVer=11.0.3000.0+((SQL11_PCU_Main).121019-1322+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText...(Microsoft.SqlServer.ConnectionInfo) 一种是:低版本的数据库备份可以在同级和高版本上附加。但是高版本数据库备份不能在低版本上附加。...另一种是:默认的 Data 目录,此时附加就会成功; * 在登录验证时,选择“Windows 身份验证”,而不是“SQL Server 身份验证”,即便你的登录帐号是 sa; * 如果一定要使用“SQL...* 将 SQL Server 服务的帐户登录身份由 Network Service 改为 Local Service; 右键以管理员方式运行

    1.6K30

    数据库恢复的三种方式

    1.运行SQL脚本 如果我们的SQL脚本比较小的话,我们可以选择在查询分析器里面直接运行,但是当我们的脚本超过100M时,这样做就会出现“引发类型为“System.OutOfMemoryException...在恢复的过程中遇到了一个问题: 【System.Data.SqlClient.SqlError: 该数据库是在运行版本 10.50.1600 的服务器备份的。...该版本与此服务器(运行版本 10.00.1600)不兼容。请在支持该备份服务器上还原该数据库,或者使用与此服务器兼容的备份。...(Microsoft.SqlServer.Smo)】 主要原因是bak文件是SQL Server2000备份的,在SQL Server2012上恢复就会出现这个问题。...其中一个解决办法是先将SQL Server2000备份的文件在SQL2008上恢复,然后再备份,将在SQL Server2008上备份的文件在SQL Server2012上恢复。

    1.4K10

    人人都值得学一点PowerShell实现自动化(6)自动化微软系产品

    例如笔者之前经常吃亏在写Sql视图、存储过程时,当某些时候需要修正一下逻辑,就容易没太在意,在原来基础上直接通过Alter语句来改写,有时不小心,逻辑改错了,又已经执行了Alter命令,最终之前写过的逻辑就被覆盖了...从上面的场景来说,其实我们想要的一个效果更多地是还原元数据即可,如果有备份好元数据,我们重新元数据里找过去写过的视图、存储过程,然后拿过来重新还原,成本更低。...自动化备份方式 想要自动化实现,就需要写代码,具体用什么语言来写,就看哪种语言可以调用Sqlserer的SMO对象了,笔者对微软系以外的语言是否支持不太知识,微软系内,dotNET语言是可以完成支持的,...关键的SMO对象是Transfer对象,同时如果远程访问其他服务器时,不能简单localhost用Windows认证登录那么省事,用Sqlserver认证体系时,需要构造ServerConnection...一个小坑,不知道什么原因,使用PowerShell备份Azure SQL时报错,最终项目真实环境是用了C#生成的控制台程序,没有使用PowerShell脚本。

    1.8K10

    MySQL数据库备份之主从同步配置

    第二步: 在本地服务器中创建一个用于备份的虚拟环境 ? 第三步: 在远程腾讯云服务器中的/home/ubuntu目录中创建一个mysql_slave目录,进入该目录在创建一个data目录 ?...注意server-id 一定不能重复 第六步: 接下来,我们就将上述mysql_slave文件夹传到我本地服务器中(通过下面的软件将mysql_slave下载到电脑本地,然后在通过这个软件上传到本地的Linux...第八步: 测试上面创建的容器查看原始数据库中信息 mysql -uroot -pmysql -h 127.0.0.1 --port=8306 第九步: 备份服务器原有数据到服务器远程腾讯云服务器中执行数据库备份命令...:备份服务器原有数据到服务器$ mysqldump -u用户名 -p密码 --all-databases --lock-all-tables > ~/master_db.sql ?...同时将主服务器备份的master_db.sql文件上传到本地Linux系统中 先从远程腾讯云服务器(主)下载到本地 ?

    4.8K20

    基于mysqldump聊一聊MySQL的备份和恢复

    2 离线备份方法具有以下特征 客户端可能会受到负面影响,因为服务器备份期间不可用。 由于这个原因,这些备份数据通常是服务器上(主从复制)获取的,当然是在不影响可用性的情况下离线执行。...3 本地备份远程备份 本地备份指在运行 MySQL 服务器的同一台主机上执行备份操作,而远程备份是在另一台主机上执行备份操作。...对于某些类型的备份,即使备份输出是在服务器上,但可能是远程主机启动备份。 mysqldump可以连接到本地远程服务器。 SELECT ......INTO OUTFILE 可以本地远程客户端主机启动 SELECT... INTO OUTFILE,但是输出文件是在服务器主机上创建的。...db1 > dump.sql # 在服务器2上: shell> mysql < dump.sql # 您可以--databases mysqldump命令中省略,然后自己创建数据库 # 在服务器1上:

    2.1K00

    MySQL数据库备份之主从同步配置

    远程腾讯云服务MySQL------------------------主 本地服务器daocker容器中的MySQL ------- 第一步: 在本地服务器中的docker容器中安装 mysql_docker...第二步: 在本地服务器中创建一个用于备份的虚拟环境 ? 第三步: 在远程腾讯云服务器中的/home/ubuntu目录中创建一个mysql_slave目录,进入该目录在创建一个data目录 ?...注意server-id 一定不能重复 第六步: 接下来,我们就将上述mysql_slave文件夹传到我本地服务器中(通过下面的软件将mysql_slave下载到电脑本地,然后在通过这个软件上传到本地的...第九步: 备份服务器原有数据到服务器远程腾讯云服务器中执行数据库备份命令:备份服务器原有数据到服务器$ mysqldump -u用户名 -p密码 --all-databases --lock-all-tables...同时将主服务器备份的master_db.sql文件上传到本地Linux系统中 先从远程腾讯云服务器(主)下载到本地 ?

    4.7K31

    MySQL数据库备份之主从同步配置

    第二步: 在本地服务器中创建一个用于备份的虚拟环境 ? 第三步: 在远程腾讯云服务器中的/home/ubuntu目录中创建一个mysql_slave目录,进入该目录在创建一个data目录 ?...注意server-id 一定不能重复 第六步: 接下来,我们就将上述mysql_slave文件夹传到我本地服务器中(通过下面的软件将mysql_slave下载到电脑本地,然后在通过这个软件上传到本地的Linux...第九步: 备份服务器原有数据到服务器远程腾讯云服务器中执行数据库备份命令:备份服务器原有数据到服务器$ mysqldump -u用户名 -p密码 --all-databases --lock-all-tables...同时将主服务器备份的master_db.sql文件上传到本地Linux系统中 先从远程腾讯云服务器(主)下载到本地 ?...执行完成后,主数据库内容就备份到了服务器中 ?

    1.1K21
    领券