上周遇到一个很奇怪的问题,记录如下:
A,B2数据结构完全一致的数据库,A为分发数据库,B为订阅数据库;
因为程序新加功能,把B备份到本地进行数据结构修改操作,修改完毕后,发现程序无法插入数据;报PK主键重复;使用sql语句插入,也是如此;
google之,说是2005中的一个bug;当时就把表删除后,重建来解决问题了;
后来想了一下,可能是订阅库采取了某种保护导致的,于是对A数据库进行还原,数据结构修改后,插入数据,成功。
记录如上。
posted @ 2008-04-29 23:24 fung 阅读(271) 评论(0)
编辑
两台计算机中,一台计算机名称为w2003-1,IP地址为202.206.197.190,另一台名为w2003-2,IP地址为202.206.197.191。
规划网络负载平衡群集使用的IP地址为202.206.197.195,规划网络负载平衡群集完整的计算机名称为cluster.heinfo.edu.cn。你需要在heinfo.edu.cn域中注册此主机名称并将地址设置为202.206.197.195。如果你没有DNS,可以在需要访问网络负载平衡的客户机(包括网络负载平衡主机)上编辑%systemroot%\system32\drivers\etc目录下的hosts文件,添加一条信息“202.206.197.195 cluster.heinfo.edu.cn”,即可解决DNS域名解析的问题。
当正式应用时,客户机只需要使用cluster.heinfo.edu.cn或IP地址202.206.197.195来访问服务器,网络服务平衡会根据每台服务器的负载情况自动选择202.206.197.190或者202.206.197.191对外提供服务。
网络负载平衡的实现过程如下:
在实现网络负载平衡的每一台计算机上,只能安装TCP/IP协议,不要安装任何其他的协议(如IPX协议或者NetBEUI协议),在网络属性中,“网络负载平衡”也不能被选择,这可以从“网络连接属性”中查看。
①先进入第一台计算机,以管理员身份登录,从“管理工具”中运行“网络负载平衡管理器”,用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“新建群集”,进入“群集参数”界面。
在“IP地址”后面输入规划的群集参数地址202.206.197.195,在子网掩码处使用默认值,在“完整Internet名称”后面输入cluster.heinfo.edu.cn(也可以是其他的名称,但输入的DNS名称必须与输入的IP地址相符)。
如果允许远程控制,请选中“允许远程控制”,并在“远程密码”和“确认密码”处输入可以进行远程控制的密码。
②点击“下一步”按钮,进入群集IP地址页面后再进入“端口规则”界面,点击“下一步”按钮,进入“连接”界面。
③在“连接”界面的“主机”栏中输入当前计算机的名称w2003-1,然后点击“连接”按钮,将在“对配置一个新的群集可用的接口”框中显示出连接的计算机的网卡及IP地址。选择与群集IP地址同一网段的地址(用于对外提供网络应用的网卡),然后点击“下一步”按钮,进入设置“主机参数”界面,点击“完成”按钮,系统将自动开始网络负载平衡群集的配置。几分钟后,网络负载平衡群集配置完成。
④打开第二台计算机,并以管理员的身份登录进入。
注意:在网络负载平衡中的每个节点上,管理员账号的用户名和密码最好一致。
⑤然后,在第一台计算机上,用鼠标右键单击新创建的群集,从出现的菜单中选择“添加主机到群集”。将出现“连接”界面,在“主机”中输入第二台计算机的计算机名称,点击“连接”按钮,将会在“对配置群集可用的接口”下面显示出连接的计算机上的网络配置。选择202.206.197.191的网卡,进入主机参数界面,点击“完成”按钮,即可返回网络负载平衡管理器。
⑥关闭网络负载平衡管理器后再进入网络负载平衡管理器。用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“连接到现存的”,将会弹出“连接”界面。
输入第一台计算机的名称,点击“连接”按钮,在“群集”下面将列出群集的IP地址,选择此IP地址,并点击“完成”按钮,连接群集即可完成。
以后,如果这两台服务器不能满足需求,可以按以上步骤添加第3台、第4台计算机到网络负载平衡中以满足要求。
三、用IIS服务验证网络负载平衡
网络负载平衡配置好后,为了实现某项具体的服务,需要在网络负载平衡的计算机上安装相应的服务。例如:为了实现IIS网站的负载平衡,需要在相应的网络负载平衡的计算机上安装IIS服务。
安装网络负载平衡的应用程序时,不需要特别的方法,只需要在配置好网络负载平衡的计算机上安装相应的服务即可。但是为了让每个用户在通过网络负载平衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载平衡的每台计算机上保持数据的一致性。举例来说:实现了两个节点的IIS的网络负载平衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。
为了检验网络负载平衡,我们可以通过IIS来进行验证,其他的一些应用如终端服务、Windows Media服务与IIS的应用相类似。
在网络负载平衡的每一台计算机上安装IIS服务,方法如下:
在“添加/删除程序”中,点击“添加Windows组件”,进入Windows组件向导,双击“应用程序服务器”,进入“应用程序服务器”。
选中ASP.NET、Internet信息服务及应用网络COM+访问后,即可开始安装IIS服务。
安装之后,进入第一台计算机的inetpub\wwwroot目录,新建一个文本文件,输入以下内容:
<html>
This win2003-1
</html>
然后将它保存为default.htm文件。这个网页在IE中将显示如下内容:
This w2003-1
在第二台计算机的inetpub\wwwroot目录,新建一个文本文件,并输入下面的内容:
<html>
This win2003-2
</html>
这个网页在IE浏览器中将显示“This w2003-2”,随后将这个文件以default.htm名称保存。
然后,在其他计算机上的IE浏览器中键入http://cluster.heinfo.edu.cn,将会显示为“This win2003-1”或“This win2003-2”,根据网络的负载,网络负载平衡会自动转发到第一台计算机或第二台计算机。为了验证效果,你可以在浏览的时候,拔掉第一台计算机的网线或拔掉第二台机器的网线,将会发现浏览到的将是不同内容。当然,我们只是测试的时候,为了验证网络负载平衡的效果,两个网站的内容不一致,而在正式应用的时候,网络负载平衡群集的每个节点计算机的内容将是一致的,这样,不管使用那一个节点响应,都保证访问的内容是一致的。
posted @ 2007-08-20 16:28 fung 阅读(799) 评论(0)
编辑
服务器莫名其妙的报这个错,之前一直正常,从google获取解决方案,解决之,记录如下:
1. Open the ""<OracleHome>/network/admin/listener.ora" file in the host,and you will see:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
2. Add the following lines after the 7th line in the above
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
3. At last the content of the file become to the following section:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
4. Save the file and restart the TNSListener service in the host. That's OK!
posted @ 2007-03-30 10:25 fung 阅读(33391) 评论(14)
编辑
引用
http://urlrewriter.net的源代码实现UrlReWriter;建议大家不要去官方网站下载了,到处都是google ads 的广告,估计写代码的那哥们穷疯了。
这个不需要IIS上配置,引用相关dll后只要在web.config中配置即可。配置代码:
<?xml version="1.0"?>
<configuration>
<configSections>
<section
name="rewriter"
type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
</configSections>
<rewriter>
<register logger="Intelligencia.UrlRewriter.Logging.DebugLogger, Intelligencia.UrlRewriter" />
<if url="~/tags/(.+)" rewrite="~/tagcloud.aspx?tag=$1" />
<if url="~/test" rewrite="~/tagcloud.aspx?tag=1" />
<!-- same thing as <rewrite url="/tags/(.+)" to="/tagcloud.aspx?tag=$1" /> -->
</rewriter>
<appSettings/>
<connectionStrings/>
<system.web>
<httpModules>
<add
type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"
name="UrlRewriter" />
</httpModules>
<compilation debug="false" />
</system.web>
</configuration>

dll最好使用release版本的。
posted @ 2007-01-17 16:06 fung 阅读(513) 评论(0)
编辑
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Sockets;
using System.Text;
public partial class _Default : System.Web.UI.Page


{
protected void Page_Load(object sender, EventArgs e)

{

}
protected void Button1_Click(object sender, EventArgs e)

{
string _r = Whois(TextBox1.Text.Trim());
Response.Write(_r.Replace("\r\n","<br>"));
}


/**//// <summary>
/// 域名注册查询
/// </summary>
/// <param name="domain">输入域名,不包含www</param>
/// <returns></returns>
public static string Whois(string domain)

{
if (domain == null)
throw new ArgumentNullException();
int ccStart = domain.LastIndexOf(".");
if (ccStart < 0 || ccStart == domain.Length)
throw new ArgumentException();
string ret = "";
Socket s = null;
try

{
string cc = domain.Substring(ccStart + 1);
s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
s.Connect(new IPEndPoint(Dns.Resolve(cc + ".whois-servers.net").AddressList[0], 43));
s.Send(Encoding.ASCII.GetBytes(domain + "\r\n"));
byte[] buffer = new byte[1024];
int recv = s.Receive(buffer);
while (recv > 0)

{
ret += Encoding.ASCII.GetString(buffer, 0, recv);
recv = s.Receive(buffer);
}
s.Shutdown(SocketShutdown.Both);
}
catch

{
throw new SocketException();
}
finally

{
if (s != null)
s.Close();
}
return ret;
}
}

posted @ 2007-01-17 15:19 fung 阅读(776) 评论(0)
编辑
摘要: 有一堆硬币,你现在蒙着眼,看不到,摸也摸不出朝上那面是正面还是反面。你只知道现在朝上面是正面的硬币有13个,你怎么分成两堆硬币,让这两堆硬币中,朝上是正面的硬币个数是一样的。1/全部竖起来2/挑13个出来作为a,剩下的是b堆;然后把这13个全部翻过来,这样a,b两堆中朝上的就都一样了。
阅读全文
posted @ 2006-07-26 13:47 fung 阅读(150) 评论(0)
编辑
摘要: //定义相关动作指令函数function url1() {getURL("http://www.x.com", "_blank");}function url2() {getURL("http://www.x1.com", "_blank");}function url3() {getURL("http://www.x2.com", "_blank");}//定义菜单对象expandmenuvar...
阅读全文
posted @ 2006-07-07 14:01 fung 阅读(1850) 评论(0)
编辑
摘要: 视频转换的方法找了不少,最后整个过程记录如下:转换环境: window2003 转换工具: FFMpeg 转换步骤: 1/ 从 http://ffdshow.faireal.net/mirror/ffmpeg/下载最新版本的 FFMpeg.exe (才知道.7z也是种压缩格式) 2/ 解压缩到本地c:\FFMpeg. 3/ 转换视频文件Command Line格式:转换视频: ffmpeg.exe...
阅读全文
posted @ 2006-07-03 14:07 fung 阅读(2544) 评论(2)
编辑