2009年9月1日
#
如果两个服务器不是在同一个域中, 并且sql server服务不是用域用户做为启动服务的身份。那么在做数据库镜像很可能收到如标题所示的错误。
这时,你就必须改用证书做端点的身份验证才能将运行起数据库镜像。
现在假设环境:
Host_A为主服务器,Host_B为镜像服务器。
已经按要求进行将Host_A的目标数据库备份,并在Host_B中还原。
通过UI界面已经配置好镜像,端点的端口两边都是5022,名称都为[镜像]。
防火墙的相关端口已经打开,SQL Server的TCP/IP协议已经启用。
步骤一
在Host_A上执行
USE master;
GO
//在 master 数据库中,创建数据库主密钥(如果需要)。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
GO
CREATE CERTIFICATE HOST_A_cert
WITH SUBJECT = 'HOST_A certificate';
GO
/****** Object: Endpoint [镜像] Script Date: 09/01/2009 17:44:54 ******/
IF EXISTS (SELECT * FROM sys.endpoints e WHERE e.name = N'镜像')
DROP ENDPOINT [镜像]
GO
/****** Object: Endpoint [镜像] Script Date: 09/01/2009 17:44:54 ******/
CREATE ENDPOINT [镜像]
AUTHORIZATION [sa]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = CERTIFICATE HOST_A_cert
, ENCRYPTION = REQUIRED ALGORITHM RC4)
GO
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:\Data\HOST_A_cert.cer';
步骤二
在Host_B上执行
//在 master 数据库中,创建数据库主密钥(如果需要)。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password';
GO
CREATE CERTIFICATE HOST_B_cert
WITH SUBJECT = 'HOST_B certificate';
GO
/****** Object: Endpoint [镜像] Script Date: 09/01/2009 17:44:54 ******/
IF EXISTS (SELECT * FROM sys.endpoints e WHERE e.name = N'镜像')
DROP ENDPOINT [镜像]
GO
/****** Object: Endpoint [镜像] Script Date: 09/01/2009 17:44:54 ******/
CREATE ENDPOINT [镜像]
AUTHORIZATION [sa]
STATE=STARTED
AS TCP (LISTENER_PORT = 5022, LISTENER_IP = ALL)
FOR DATA_MIRRORING (ROLE = PARTNER, AUTHENTICATION = CERTIFICATE HOST_B_cert
, ENCRYPTION = REQUIRED ALGORITHM RC4)
GO
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:\Data\HOST_B_cert.cer';
GO
步骤三
复制HOST_A_cert.cer到Host_B,复制复制HOST_B_cert.cer到Host_A
步骤四
在Host_A上执行
USE master;
CREATE LOGIN HOST_B_login WITH PASSWORD = 'password';
GO
CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
GO
CREATE CERTIFICATE HOST_B_cert
AUTHORIZATION HOST_B_user
FROM FILE = 'D:\backup\HOST_B_cert.cer'
GO
GRANT CONNECT ON ENDPOINT::[镜像] TO [HOST_B_login];
步骤五
在Host_B上执行
USE master;
CREATE LOGIN HOST_A_login WITH PASSWORD = 'password';
GO
CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
GO
CREATE CERTIFICATE HOST_A_cert
AUTHORIZATION HOST_A_user
FROM FILE = 'D:\backup\HOST_A_cert.cer'
GO
GRANT CONNECT ON ENDPOINT::[镜像] TO [HOST_A_login];
启动镜像!
2009年5月20日
#
DECLARE @html varchar(max),@sql nvarchar(max),@tablename varchar(200)
SET @tablename = 'member'
SET @html = '<table><tr>'
SET @sql = 'SET @html = '''';';
SET @sql = @sql + 'SELECT TOP 10 @html = @html + ''<tr>'','
/* 表头 */
SELECT
@html = @html + '<th>'+c.name+'</th>',
@sql = @sql + '@html = @html + ''<td>''+ CAST('+c.name+' AS varchar) + ''</td>'', '
FROM sys.columns AS c
INNER JOIN sys.types AS t ON c.system_type_id = t.system_type_id
WHERE EXISTS
(
SELECT * FROM sys.tables
WHERE name = @tablename
AND c.object_id = object_id
)
SET @sql = @sql + '@html = @html + ''</tr>'''
SET @sql = @sql + ' FROM '+@tablename+';'
DECLARE @out varchar(max)
exec sp_executesql @sql,N'@html varchar(max) output',@out output
SET @html = @html + @out
SET @html = @html + '</tr>'
SET @html = @html + '</table>'
SELECT @html
2009年4月6日
#
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
$(document).ready(function(){
(function(){
$("#play_list").css("opacity","0.3"); //设置透明度
$("#play_list").children().clone().appendTo("#selector"); //复制元素
$("#selector").css({
left:$("#play_list").offset().left,
top:$("#play_list").offset().top
}); //定位选择器
$("#selector").scrollLeft(0); //回到第一帧
})();
var $intervalID = null
$("#play_list a").mouseover(function(){
clearInterval();
var $move = $(this).offset().left - $(this).parent().offset().left; //目标滑动位置
var $left = $("#play_list").offset().left + $move; //目标左边距位置
var $m =$("#selector").scrollLeft(); //现滑动位置
var $l = parseInt($("#selector").css("left")); //现左边距位置
var $direct = ($l < $left)?1:-1; //滑动方向
var $multiple = ($left - $l ) *$direct / 12; //倍数
$intervalID = window.setInterval(function(){
$l+=$multiple*$direct;
$m+=$multiple*$direct;
if($l *$direct < $left*$direct){
$("#selector").css("left",$l).scrollLeft($m);
}else{
$("#selector").css("left",$left).scrollLeft($move);
clearInterval();
}
}, 1);
});
//清除前面的动画效果
function clearInterval(){
if($intervalID != null){
window.clearInterval($intervalID);
$intervalID = null;
}
}
})
</script>
<style>
a{text-decoration: none;}
#selector img,#play_list img{width:120px; border:1px; }
</style>
</head>
<body>
<div id="selector" style="overflow:hidden; width:120px;white-space:nowrap; position:absolute;Z-index:100"></div>
<br><br><br><br><br><br>
<div id="play_list">
<a href="http://koyoz.com/1.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/1.jpg" alt="相恋9年尔冬升再婚娶相恋9年女友" />
</a>
<a href="http://koyoz.com/2.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/2.jpg" alt="恋情变贤周海媚公开6年恋情变贤妇" />
</a>
<a href="http://koyoz.com/3.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/3.jpg" alt="为啥这么“熊猫”阿宝为啥这么红?" />
</a>
<a href="http://koyoz.com/4.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/4.jpg" alt="男友被捕安妮-海瑟薇前男友被捕" />
</a>
<a href="http://koyoz.com/5.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/5.jpg" alt="开价一亿天后王菲“复出”开价一亿" />
</a>
<a href="http://koyoz.com/6.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/6.jpg" alt="赞郑伊健阿Sa赞郑伊健“保存”得好" />
</a>
<a href="http://koyoz.com/7.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/7.jpg" alt="死跑龙套北影演员:甘当‘死跑龙套的’" />
</a>
<a href="http://koyoz.com/8.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/8.jpg" alt="潘玮柏死潘玮柏死盯辣妹脱衣解带" />
</a>
<a href="http://koyoz.com/9.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/9.jpg" alt="张曼玉分尔冬升深爱张曼玉分手发呆" />
</a>
</div>
</body>
</html>
2009年4月4日
#
只能用鼠标而不是用手哟。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<style>
img{border:0px; cursor:pointer;}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var $mouseX = 0; //鼠标X轴坐标
var $scrollLeft = 0; //滑动位置标记
var $width = 0;
//初始化
(function init(){
$("#play_list").scrollLeft($scrollLeft); //回到第一帧
$("#play_list a").click(function(){return false;}) //取消所有click
})();
//开始工作,记录鼠标位置
$("#play_list img").mousedown(function(e){$mouseX = e.pageX;return false; });
$("#play_list img").mouseup(function(e){
if($mouseX > 0){
var $move = $mouseX-e.pageX;//滑动偏移量
//点击处理
if($move==0){
window.location = $(this).parent().attr("href");
return false;
}
$mouseX = 0;$width = 0; //还原设置值
$(this).parent().prevAll().each(function() {$width += $(this).width(); }); //前面元素宽度累加
$scrollLeft = $width+$(this).width() * (($move > 0)?1:-1); //1为向左滑动 -1这向右滑动
$("#play_list").animate({ scrollLeft: $scrollLeft },500); //设置滑动位置及动画效果
}
return false;
});
//图片跟随鼠标滑动
$("#play_list img").mousemove(function(e){
if($mouseX > 0){
var $move = $scrollLeft + $mouseX-e.pageX;
$("#play_list").scrollLeft($move);
}
return false;
});
});
</script>
</head>
<body>
<div id="play_list" style="overflow:hidden; width:341px; height:191px; white-space:nowrap;">
<a href="http://koyoz.com/1.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/1.jpg" alt="相恋9年尔冬升再婚娶相恋9年女友" />
</a>
<a href="http://koyoz.com/2.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/2.jpg" alt="恋情变贤周海媚公开6年恋情变贤妇" />
</a>
<a href="http://koyoz.com/3.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/3.jpg" alt="为啥这么“熊猫”阿宝为啥这么红?" />
</a>
<a href="http://koyoz.com/4.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/4.jpg" alt="男友被捕安妮-海瑟薇前男友被捕" />
</a>
<a href="http://koyoz.com/5.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/5.jpg" alt="开价一亿天后王菲“复出”开价一亿" />
</a>
<a href="http://koyoz.com/6.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/6.jpg" alt="赞郑伊健阿Sa赞郑伊健“保存”得好" />
</a>
<a href="http://koyoz.com/7.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/7.jpg" alt="死跑龙套北影演员:甘当‘死跑龙套的’" />
</a>
<a href="http://koyoz.com/8.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/8.jpg" alt="潘玮柏死潘玮柏死盯辣妹脱衣解带" />
</a>
<a href="http://koyoz.com/9.jpg">
<img src="http://www.koyoz.com/demo/html/autoplay_xunlei/imgs/9.jpg" alt="张曼玉分尔冬升深爱张曼玉分手发呆" />
</a>
</div>
</body>
</html>
2009年2月5日
#
64位的操作系统(包括xp,2003,vista,2008等)在使用OLEDB去访问时回收到下面的一个错误
The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine
问题出在'Microsoft.Jet.OLEDB.4.0' 没有64位的版本。微软好像也不准备出一个64位的版本。
下面是一些目前能采取的解决办法
如果不是WebSite那么你可以采取指定编译的办法
http://cajon.cnblogs.com/archive/2006/05/30/413408.html
如果是WebSite且是IIS6
键入以下命令启用 32 位模式:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
如果是IIS7
appcmd list apppool /xml | appcmd set apppool /in /enable32BitAppOnWin64:true
最后强烈要求微软出‘Microsoft.Jet.OLEDB.4.0' 64位版本!
2009年1月28日
#
摘要: 微软今天布了ASP.NET MVC 1.0 Release Candidate (RC)。同时声称将在下个月发布ASP.NET MVC 1.0。http://weblogs.asp.net/scottgu/archive/2009/01/27/asp-net-mvc-1-0-release-candidate-now-available.aspx在发布RC不久,Phil Haack就发现一个Bug...
阅读全文
2008年12月1日
#
摘要: 刚刚将一台服务器升级到IIS7,经典模式没有任何问题。换成集成模式碰到以下问题问题一:状况:程序启动报“Request is not available in this context”错误。原因:在集成模式下Application_Start时HttpContext并不可用。解决:在Application_BeginRequest中使用单件模式模拟Application_Start。具体参阅ht...
阅读全文
2008年8月1日
#
摘要: 原理参见http://www.cnblogs.com/xbf321/archive/2007/11/09/954317.html<%@PageLanguage="C#"%><!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio...
阅读全文
2008年6月12日
#
2008年5月23日
#
摘要: 吴宗宪 我猜 节目里玩魔方的视频,鄭惟駿,全台第一魔方高手。。。。。。。
阅读全文
2008年4月18日
#
摘要: DECLARE@databasedirvarchar(200)SET@databasedir='F:\SQLServer\Data\'/*目录结构*/DECLARE@ttable(idintidentity(1,1),subdirectorynvarchar(255),depthint,iint)INSERTINTO@t(subdirectory,depth,i)EXECmaster..xp_di...
阅读全文
2008年4月11日
#
摘要: Windows Vista具有一个上下文菜单选项,叫做“拷贝为路径”,它可以帮助你轻松拷贝文件路径,尽管它是隐藏的。当你选中文件后,你只需要按住“Shift”键同时右键点击,即可拷贝路径。该选项对于多个文件和文件夹也同样适用。当你使用“拷贝为路径”选项对多个项目进行操作时,所有路径都会被解析、引用,并且被以多行的方式记录在剪贴板里。
阅读全文
2008年2月22日
#
摘要: DECLARE@tTABLE(studentnvarchar(50),classnvarchar(50),gradeint)/*insertsomedatas*/INSERTINTO@tSELECTN'孙小美',N'数学',10UNIONALLSELECTN'孙小美',N'语文',20UNIONALLSELECTN'孙小美',N'英语',30UNIONALLSELECTN'阿土伯',N'数学',4...
阅读全文
摘要: SQL Server 2008可以执行TSQL的MERGE命令。用MERGE命令,只需一个语句就可以对行进行 UPDATE、INSERT或 DELETE。DECLARE@t1table(tvarchar(max))DECLARE@t2table(tvarchar(max))INSERTINTO@t1SELECT'a'UNIONALLSELECT'b'UNIONALLSELECT'c'INSERTI...
阅读全文
2007年12月28日
#
摘要: SELECT t.name,p.rows FROM sys.indexes AS iINNER JOIN sys.tables AS t ON i.object_id = t.object_idjoin sys.partitions p with(nolock) on i.object_id = p.object_id AND i.index_id = p.index_idWHERE i.type...
阅读全文
2007年12月3日
#
摘要: DECLARE@ttable(spidint)INSERTINTO@tSELECTspidFROMsys.sysprocessesASpWHEREEXISTS(SELECT*FROMsys.databasesWHEREname='ednchina20071202'ANDp.dbid=database_id)DECLARE@spidintDECLARE@sqlnvarchar(max)WHILE((...
阅读全文
2007年11月13日
#
摘要: SQL Server 2000你可以在企业管理器中增加字段说明,也可以使用下面的代码:EXECsp_addextendedproperty'MS_Description','somedescription','user',dbo,'table',table_name,'column',column_name现在,你就可以得到通过下面的代码得到字段说明:SELECT[TableName]=i_s.T...
阅读全文
2007年7月20日
#
摘要: SELECT *的效率很糟糕吗?当然,所有人都知道这一点,但是为什么呢?
是因为返回了太多的数据?
这是一个普遍的回答,但我不这样认为。
阅读全文
2006年1月12日
#
摘要: <%ConstSMTPServerIP="mail.idg-rbi.com.cn"DimstrFrom,strTo,strSuject,strBodystrFrom="webmaster@idg-rbi.com.cn"strTo="kong123@citiz.net"strSubject="test"strBody="test"Dimsch,cdo,cdoConfigsch="http://...
阅读全文
2006年1月8日
#
摘要: 通过“添加删除程序”里并不能完全删除SQlL server。通过下面的命令,完全反安装SQL server 2005d:\Setup.exe/qbREMOVE=ALLINSTANCENAME=<InstanceName>默认实例的名字是MSSQLSERVER
阅读全文
2005年12月29日
#
摘要: min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得,所以如果你用IE将博客园的窗口宽度缩到足够小,所有的字都变在一列中。常见的解决方法就是用javascript或IE的expressions。在这里我来尝试用css来解决这个问题假设我们需要一个min-width为300px的div第一步<divstyle="border-...
阅读全文
2005年12月19日
#
摘要: 使用 FILE_NAME 函数可以返回给定文件标识 (ID) 号的逻辑文件名如下下例返回 file_ID 为 1 的文件名(master 数据库文件)。USEmasterSELECTFILE_NAME(1)当我们进行从一个备份中还原数据库时,数据库的逻辑文件名是不会改变的。可用 ALTER DATABASE 的 MODIFY FILE 子句作为替代方式更改数据文件或日志文件的逻辑名称。alterd...
阅读全文
2005年11月16日
#
摘要: <scriptlanguage="JavaScript"><!--if(window.Event)document.captureEvents(Event.MOUSEUP);functionnocontextmenu(){event.cancelBubble=trueevent.returnValue=false;returnfalse;}functionnorightclick...
阅读全文
2005年11月7日
#