楼主: Cherish_j_wang

[精华] MSSQL DBA 精华总结[处理对象名称中特殊字符]

[复制链接]
论坛徽章:
26
ITPUB伯乐
日期:2012-05-22 15:05:35喜羊羊
日期:2015-05-14 12:15:30美羊羊
日期:2015-07-02 22:22:59秀才
日期:2015-08-24 09:51:48天枰座
日期:2015-11-05 16:53:35双鱼座
日期:2015-12-05 19:22:56巨蟹座
日期:2015-12-20 18:46:10摩羯座
日期:2016-05-19 09:54:17ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-02-22 15:16:26
101#
发表于 2012-6-24 13:20 | 只看该作者
路人ABCD 发表于 2012-6-23 23:41
请教一个问题,发送邮件的存储过程只能是少量纯文本的,如何定义才可以发送大量的文本信息呢?
另外,如果 ...

你可以看下我上面的存储过程,
里面可以发送附件.

使用道具 举报

回复
论坛徽章:
14
迷宫蛋
日期:2012-03-13 09:50:292014年新春福章
日期:2014-02-18 16:44:08优秀写手
日期:2013-12-18 09:29:15迷宫蛋
日期:2012-06-13 15:28:34咸鸭蛋
日期:2012-06-11 16:11:11灰彻蛋
日期:2012-05-31 10:18:54双黄蛋
日期:2012-05-28 17:45:17茶鸡蛋
日期:2012-05-28 17:27:32蜘蛛蛋
日期:2012-05-28 16:54:09迷宫蛋
日期:2012-05-17 19:00:48
102#
 楼主| 发表于 2012-6-25 08:18 | 只看该作者
本帖最后由 Cherish_j_wang 于 2012-6-25 16:16 编辑
路人ABCD 发表于 2012-6-23 23:41
请教一个问题,发送邮件的存储过程只能是少量纯文本的,如何定义才可以发送大量的文本信息呢?
另外,如果 ...

哎,其实,我在写这个帖子的时候,我就猜到肯定会有朋友问如此的问题。所以,我在帖子中不厌其烦的强调“慎用Database Mail”,请不要把我昂贵的数据库系统当成OUTLOOK来用。MSSQL Server提供这个功能,只是为中小型企业提供了发送邮件的解决方法,但是对于大型数据库系统,还是那句话,请”慎用Database Mail“。

回答你的问题:
1.大量文本:存储过程msdb.dbo.sp_send_dbmail中的邮件内容参数@body是nvarchar(max),可以支持到2GB的文本,所以,应该够你使用了。
2.关于附件:该存储过程支持查询结果集附件和某个路径下的附件(由参数@file_attachments指定绝对路径,如多个附件,请使用分号隔开 )两种方式。详情,参见帮助文档。

使用道具 举报

回复
论坛徽章:
14
奥运会纪念徽章:自行车
日期:2008-04-25 21:00:142013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14奥运会纪念徽章:皮划艇激流回旋
日期:2012-08-13 10:25:38鲜花蛋
日期:2012-02-10 11:40:172010新春纪念徽章
日期:2010-03-01 11:04:58授权会员
日期:2010-01-12 09:40:47ITPUB元老
日期:2010-01-12 09:33:092009新春纪念徽章
日期:2009-01-04 14:52:28奥运会纪念徽章:拳击
日期:2008-10-24 13:22:33
103#
发表于 2012-6-25 13:40 | 只看该作者
mark

使用道具 举报

回复
论坛徽章:
0
104#
发表于 2012-6-27 09:50 | 只看该作者
非常感謝...大有用處

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
105#
发表于 2012-6-27 19:18 | 只看该作者
问一个问题:sql 数据库跨服务器备份如何设置?
在一个广域网内,内网ip。

使用道具 举报

回复
论坛徽章:
26
ITPUB伯乐
日期:2012-05-22 15:05:35喜羊羊
日期:2015-05-14 12:15:30美羊羊
日期:2015-07-02 22:22:59秀才
日期:2015-08-24 09:51:48天枰座
日期:2015-11-05 16:53:35双鱼座
日期:2015-12-05 19:22:56巨蟹座
日期:2015-12-20 18:46:10摩羯座
日期:2016-05-19 09:54:17ITPUB15周年纪念
日期:2016-10-13 13:15:34秀才
日期:2017-02-22 15:16:26
106#
发表于 2012-6-28 08:23 | 只看该作者
路人ABCD 发表于 2012-6-27 19:18
问一个问题:sql 数据库跨服务器备份如何设置?
在一个广域网内,内网ip。

不太明白你的需求

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
107#
发表于 2012-6-28 14:25 | 只看该作者
本帖最后由 路人ABCD 于 2012-6-28 14:26 编辑

在博客园看到有一篇文章:http://www.cnblogs.com/iinsnian/archive/2008/06/06/1214821.html
SQLSERVER远程备份、恢复

SQLSERVER服务实例名称:192.168.0.2
需要备份的数据库名称: a
备份机器名称(Client端):192.168.0.3
备份机用户:zf 密码:123
备份机域名:domain
备份机提供备份需求的文件夹: D:\sqlbak
备份数据库
第一步: 在备份机建立共享文件夹
               在程序代码中调用(或者CMD窗口)   net share sqlbakup=D:\sqlbak     或者用NetShareAdd这个API
               简要说明:
                       net share:是WINDOWS内部的网络命令。
                                作用:建立本地的共享资源,显示当前计算机的共享资源信息。
第二步: 建立共享信用关系
              exec master..xp_cmdshell 'net use  file://192.168.0.3/sqlbak 123 /user:domain\zf'
              简要说明:
                     1:xp_cmdshell :是SQLSERVER的扩展存储过程。
                             作用:以操作系统命令行解释器的方式执行给定的命令字符串, 并以文本行方式返回任何输出。
                             语法:参见SQLSERVER联机帮助
                     2:net use : 是WINDOWS内部的网络命令。
                             作用:将计算机与共享资源连接或断开,或者显示关于计算机连接的信息。
                              该命令还控制持久网络连接。
第三步:备份数据库
              backup database a   to disk='\\192.168.0.3\sqlbak\a.bak'
              backup database a   to disk='\\192.168.0.3\sqlbak\a1.bak' WITH DIFFERENTIAL (差异备份)
第四步: 删除共享文件夹
               在程序代码中调用(或者CMD窗口)   net share sqlbakup/delete
               或者用NetShareDel这个API
  
恢复数据库
      restore database a   from disk='\\192.168.0.3\sqlbak\a.bak'
      
      以下是差异还原
      restore database scs   from disk='\\192.168.0.3\sqlbak\a.bak'   WITH NORECOVERY
      restore database scs   from disk='\\192.168.0.3\sqlbak\a1.bak'   WITH NORECOVERY
      restore database scs   from disk='\\192.168.0.3\sqlbak\a2.bak'


在这里想问,除了上述的方法,还有没有别的方法实现远程备份?

使用道具 举报

回复
论坛徽章:
1
itpub13周年纪念徽章
日期:2014-10-08 15:13:38
108#
发表于 2012-6-28 14:54 | 只看该作者
路人ABCD 发表于 2012-6-28 14:25
在博客园看到有一篇文章:http://www.cnblogs.com/iinsnian/archive/2008/06/06/1214821.html
SQLSERVER远 ...

应该只有这种方法了吧.
假如你是在A机器上备份到B机器上去
首先你需要在A机器上的数据库中可以访问到B机器上的文件夹.
那么也就是说需要在A机器上建立到B机器的共享文件夹.

使用道具 举报

回复
论坛徽章:
14
迷宫蛋
日期:2012-03-13 09:50:292014年新春福章
日期:2014-02-18 16:44:08优秀写手
日期:2013-12-18 09:29:15迷宫蛋
日期:2012-06-13 15:28:34咸鸭蛋
日期:2012-06-11 16:11:11灰彻蛋
日期:2012-05-31 10:18:54双黄蛋
日期:2012-05-28 17:45:17茶鸡蛋
日期:2012-05-28 17:27:32蜘蛛蛋
日期:2012-05-28 16:54:09迷宫蛋
日期:2012-05-17 19:00:48
109#
 楼主| 发表于 2012-6-28 21:14 | 只看该作者
路人ABCD 发表于 2012-6-28 14:25
在博客园看到有一篇文章:http://www.cnblogs.com/iinsnian/archive/2008/06/06/1214821.html
SQLSERVER远 ...

远程备份:
1.backup database文件放到本地->网络传输备份文件到远程机器->远程机器还原
2.backup database文件放到移动设备(光盘,U盘,移动硬盘或者磁带)->物理传输备份介质到远程机器->远程机器还原
3.直接Backup database到NFS(网络文件系统)地址->远程机器还原(当然远程机器可以访问这个相同的NFS地址)
4.backup database到SAN上,Shift备份文件所在SAN Driver到远程的机器上,然后远程机器还原

方法应该比较多

使用道具 举报

回复
论坛徽章:
1
2013年新春福章
日期:2013-02-25 14:51:24
110#
发表于 2012-6-29 09:54 | 只看该作者
简单的说吧,我是有2台电脑,可以相互联网访问。一台A装了sql server 2005,另一台B是计划做备份数据存放的。

现在对sql的备份,都是在安装sql server的计算机A上进行和存储到本地的,然后在将备份文件copy到另一台计算机B上,我想实现做一个维护计划,定期备份计算机A上的sql数据库到计算机B上,而无需人工再去拷贝数据从A到B上。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表