存档

‘Windows’ 分类的存档

IIS7配置Gzip压缩

2017年10月25日 没有评论

开启配置HTTP压缩(GZip)

在IIS7中配置Gzip压缩相比IIS6来说实在容易了许多,而且默认情况下就是启用GZip压缩的。如果没有,则可以再功能视图下找到“压缩”项,进入之后就会看到“静态内容压缩”和“动态内容压缩”两个选项,勾上即可。

配置启用压缩的文件类型及其他选项

当开启GZip压缩之后,IIS并不是对所有内容都启用了压缩,而是有选择的进行压缩。遗憾的是,我们无法直接在IIS7管理器中配置这些压缩选项。我们首先需要在C:\Windows\System32\inetsrv\config文件夹下找到applicationhost.config文件,打开之后找到如下一节内容:

1
 

IIS实际上是根据MIME类型来决定是否启用HTTP压缩的,以及压缩比之类的选项。可以看出,图片默认情况下是不被压缩的,这是因为图片的压缩比太低了。

我们注意到,对于Javascript来说,上面对不同的mime类型配置了不同的压缩方式。Javascript有三种常见的Mime类型,text/javascript,application/x-javascript,application/javascript。这三种类型都是合法的,在现代浏览器中也不存在什么差别。但是由于IIS7中Js文件的mime类型默认被设置为application/x-javascript,也就是说对于js文件,使用的是动态内容压缩而不是静态内容压缩,因此会导致js文件有时经过压缩的,有时却没有压缩。

静态压缩及动态压缩的区别

IIS7中的HTTP压缩分为“静态内容压缩”和“动态内容压缩”,其实这两个名字第一次接触很费解。什么是动态内容什么又是静态内容?实际上,准确的翻译应该是“静态压缩”和“动态压缩”。这两个词反应了IIS的压缩行为。对于配置在staticTypes节中的mime类型,将会启用静态压缩,也就是说,当文件第一次被请求的时候,IIS会将其压缩,然后放入临时文件夹中,下次再有人请求此文件时直接从临时文件夹中取出压缩后的版本而不用重新执行压缩的过程。配置在dynamicTypes一节中的mime类型的http请求都将启用动态压缩,即每一次请求,主机都会对请求的内容——可能是存放在文件系统中的静态文件,也可能是ISAPI返回的内容——进行压缩,而不会对其进行缓存。这个压缩比率因主机性能不同而会有所调整,所以我们在请求js文件的时候才会发现js文件有时压缩有时不压缩的情况。

显而易见,静态压缩会占用一定的存储空间,但是速度快,而动态压缩不占用存储空间,但是占用CPU时间,而且压缩比不恒定。而对于经过ISAPI的请求,则不能使用静态压缩方式。例如对于WCF返回的内容。

如何禁止Win2008R2断电重启进入修复模式

2017年9月10日 没有评论

解决断电或者其他原因导致系统默认自动进入修复模式,导致系统无法正常开机。

桌面右键新建一个文档文本,双击打开文件新建文本文档,
复制以下命令到文本里面!
bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {current} recoveryenabled No

在界面的左上角点击“文件”“另存为”,打开保存界面。在“保存格式”一行中选择“所有文件”;再把“文件名称”改为“XXXX.bat”的格式,保存为一个可运行的bat文件

然后桌面就出现了一个bat文件,只要双击文件就可以运行,系统窗口会一闪而过,接着可以删除该bat文件,电脑以后就不会出现修复模式了。

windows 2008 R2 用户打开句柄数限制

2017年6月27日 没有评论

HKEY_LOCAL_MACHINE
– SOFTWARE
– – Microsoft
– – – Windows NT
– – – – CurrentVersion
– – – – – Windows

USERProcessHandleQuota:项设置用户句柄数量,默认值同样为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值。同样地,对于具有2GB或更多物理内存的系统,不妨将用户句柄数直接设置为上限 18000(10进制);

从Windows 2012标准版升级到数据中心版

2017年6月14日 没有评论

对于Windows 7、Windows 8操作系统,可以在图形界面中通过输入序列号,从低版本直接升级到高的版本,例如从Windows 7家庭版升级到专业版或旗舰版。而对于Windows Server 2008、Windows Server 2012来说,则可以通过dism命令实现类似的功能。
Windows Server 2012发布后,我依次将单位的服务器升级或全新安装到了Windows Server 2012标准版或企业版(为了对比不对版本的功能特意安装)。现在想将标准版升级到数据中心版,步骤如下。

进入命令提示窗口,执行dism /online /get-targeteditions,查看当前系统可以升级的版本,显示可以升级到datacenter

显示可以升级的版本
(3)执行如下命令升级:
dism /online /set-edition:ServerDatacenter /productkey:7H6M3-4N78W-RFFKJ-H9KPW-K2C2M /AcceptEula

升级到datacenter
执行命令之后,重新启动计算机。
(4)再次进入系统,执行winver可以看到,当前为数据中心版。

Windows环境下安装Redis(转)

2017年2月18日 没有评论

1:首先下载redis。
从下面地址下:https://github.com/MSOpenTech/redis/releases
2:创建redis.conf文件:
这是一个配置文件,指定了redis的监听端口,timeout等。如下面有:port 6379。

配置:

遇到问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[18892] 05 Jan 16:02:28.584 #
The Windows version of Redis allocates a memory mapped heap for sharing with
the forked process used for persistence operations. In order to share this
memory, Windows allocates from the system paging file a portion equal to the
size of the Redis heap. At this time there is insufficient contiguous free
space available in the system paging file for this operation (Windows error
0x5AF). To work around this you may either increase the size of the system
paging file, or decrease the size of the Redis heap with the --maxheap flag.
Sometimes a reboot will defragment the system paging file sufficiently for
this operation to complete successfully.
Please see the documentation included with the binary distributions for more
details on the --maxheap flag.
Redis can not continue. Exiting.

处理方法:

1
2
3
4
windows硬盘需要配置虚拟内存,如果还有问题,清理磁盘碎片
redis.windows.conf
maxheap 1024000000
daemonize no

更改redis的配置需要修改redis.conf文件,以下是它一些主要的配置注释:

#是否作为守护进程运行
daemonize no
#Redis 默认监听端口
port 6379
#客户端闲置多少秒后,断开连接
timeout 300
#日志显示级别
loglevel verbose
#指定日志输出的文件名,也可指定到标准输出端口
logfile redis.log
#设置数据库的数量,默认最大是16,默认连接的数据库是0,可以通过select N 来连接不同的数据库
databases 32
#Dump持久化策略
#当有一条Keys 数据被改变是,900 秒刷新到disk 一次
#save 900 1
#当有10 条Keys 数据被改变时,300 秒刷新到disk 一次
save 300 100
#当有1w 条keys 数据被改变时,60 秒刷新到disk 一次
save 6000 10000
#当dump     .rdb 数据库的时候是否压缩数据对象
rdbcompression yes
#dump 持久化数据保存的文件名
dbfilename dump.rdb
###########    Replication #####################
#Redis的主从配置,配置slaveof则实例作为从服务器
#slaveof 192.168.0.105 6379
#主服务器连接密码
# masterauth <master-password>
############## 安全性 ###########
#设置连接密码
#requirepass <password>
############### LIMITS ##############
#最大客户端连接数
# maxclients 128
#最大内存使用率
# maxmemory <bytes>
########## APPEND ONLY MODE #########
#是否开启日志功能
appendonly no
# AOF持久化策略
#appendfsync always
#appendfsync everysec
#appendfsync no
################ VIRTUAL MEMORY ###########
#是否开启VM 功能
#vm-enabled no
# vm-enabled yes
#vm-swap-file logs/redis.swap
#vm-max-memory 0
#vm-page-size 32
#vm-pages 134217728
#vm-max-threads 4

主从复制

在从服务器配置文件中配置slaveof ,填写服务器IP及端口即可,如果主服务器设置了连接密码,在masterauth后指定密码就行了。

持久化

  • redis提供了两种持久化文案,Dump持久化和AOF日志文件持久化。
  • Dump持久化是把内存中的数据完整写入到数据文件,由配置策略触发写入,如果在数据更改后又未达到触发条件而发生故障会造成部分数据丢失。
  • AOF持久化是日志存储的,是增量的形式,记录每一个数据操作动作,数据恢复时就根据这些日志来生成。

 

3.命令行操作

使用CMD命令提示符,打开redis-cli连接redis服务器 ,也可以使用telnet客户端

# redis-cli -h 服务器 –p 端口 –a 密码

redis-cli.exe -h 127.0.0.1 -p 6379

连接成功后,就可对redis数据增删改查了,如字符串操作:

以下是一些服务器管理常用命令:

info   #查看服务器信息
select <dbsize> #选择数据库索引  select 1
flushall #清空全部数据
flushdb  #清空当前索引的数据库
slaveof <服务器> <端口>  #设置为从服务器
slaveof no one #设置为主服务器
shutdown  #关闭服务

 

附加几个 bat 批处理脚本,请根据需要灵活配置

1
2
3
4
5
6
7
8
service-install.bat
redis-server.exe --service-install redis.windows.conf --loglevel verbose 
uninstall-service.bat
redis-server --service-uninstall
 
startup.bat
redis-server.exe redis.windows.conf 
分类: Windows, 解决方案 标签:

怎么查看系统安装日期

2016年12月22日 没有评论

很多朋友在使用电脑及服务器的时候都有反映越用越卡,今天,就为大家分享一下怎么查看电脑及服务器系统的安装日期,以初步判定电脑及服务器大概是由于什么情况导致的卡慢。

找到运行后,在运行栏里输入“cmd”,然后回车。

然后,我们在该界面下输入”systeminfo”,然后回车,等待系统自动运行。

系统运行完毕,找到如下界面,你就能看到如图所示的信息,即可查询到系统安装日期!

IIS解析json的配置方法汇总(转)

2016年6月6日 没有评论

IIS6.0

1.打开IIS添加Mime项
关联扩展名: *.json
内容类型(MIME):application/x-JavaScript
2.添加映射:
位置在IIS对应站点右键属性:”主目录”-”应用程序设置”-”配置”-”映射”-”添加”,会打开”添加/编辑应用程序扩展名映射”
扩展名: .json
运行文件:C:\WINDOWS\system32\inetsrv\asp.dll
动作:GET,POST
IIS7.x IIS8

1、在“MIME类型”中“添加”一个文件扩展名为“.json”,MIME类型为text/json(也可以是application/x-javascript)
2、然后再在“处理程序映射”中“添加脚本映射”,请求路径为:*.json,可执行文件为C:/Windows/System32/inetsrv/asp.dll。
如果没找到asp.dll,到控制面板–>程序–>打开和关闭Windows功能—>InterNet信息服务—>万维网服务–>应用程序开发功能,打开“ASP支持”。当即打开,就可以找到asp.dll文件。
内容类型(MIME):text/json
然后我们通过浏览器访问:http://localhost/xxx.json,应该就可以显示json数据了,如果出现下载提示,检查以上步骤是否出现拼写错误,如果没有,重启计算机,应该就可以了。
补充:
小编随后翻阅了一些资料,发现在2006年json已经注册过MIME类型为application/json
所以以上MIME类型,大家都改为application/json
附上资料:
RFC 4627 “The application/json Media Type for JavaScript Object Notation (JSON)” 于2006年7月将 JSON 注册为一个 MIME 类型:application/json 。
参见:
ECMA-404 The JSON Data Interchange Format
RFC 4627 – The application/json Media Type for JavaScript Object Notation (JSON)
JSON: http://json.org/json-zh.html
MIME: http://www.iana.org/assignments/media-types/media-types.xhtml
application/json: http://www.iana.org/assignments/media-types/application/json

分类: Windows, 解决方案 标签:

硬盘活动分区(将磁盘分区标为活动或取消活动的方法)

2016年4月22日 没有评论

活动分区是计算机启动分区,操作系统的启动文件都装在这个分区,windows系统下一般被默认为C盘,而Linux则根据具体设置而定。

启动系统时,活动分区上的操作系统将执行一个称为驱动器映像的过程,它给主分区和逻辑驱动器分配驱动器名。所有的主分区首先被映像,而逻辑驱动器用后续的字母指定。

硬盘活动分区定义

  在一个硬盘中,活动分区一般只能有一个。

将磁盘分区标为活动或取消活动的方法

系统分区必须是已为启动而标记为活动的主分区,并且必须位于启动系统时计算机访问的磁盘。同一磁盘同时只能有一个活动的系统分区。可以具有多个基本磁盘,每个磁盘各有一个活动分区。但是,只能通过某个指定的磁盘启动计算机。如果需要使用其他操作系统,则必须在重新启动计算机之前,先将其系统分区标记为活动。
  不能将现有的动态卷标记为活动。不过,可以将包含活动分区的基本磁盘转化为动态磁盘。磁盘转化后,该分区将成为活动的简单卷。如果活动分区不是当前的系统分区或引导分区,则它将成为简单卷并丢失其在分区表中的记录,这样,它也就不再是活动的。
  活动分区其实说白了就是写有引导数据的主分区,它可以完成与BIOS交接启动任务等一系列动作,以用来引导系统。
  主分区最好只有一个,不然管理起来会比较麻烦,目前来说,小点的硬盘分10G就可以,大的可以考虑15–20G左右,太大了就没有意义了
将分区标记为活动分区(仅限于 32 位)
  方法1:使用windows界面:
  1. 在“运行”里输入”compmgmt.msc”(打开计算机管理);
  2. 在控制台树中,单击”计算机管理”-”存储”-”磁盘管理”;
  3. 在需要标为活动的分区上,点击”右键”,点击”将磁盘分区标为活动的”。
  方法2:使用命令行:
  1. 在”运行”里,输入”cmd”;
  2. 接着输入”diskpart”;
  3. 接着输入”list disk”;
  4. 接着输入”select disk 0″比如我们现在要将第1硬盘的第1分区做为活动的;
  5. 接着输入”list partition”;
  6. 接着输入”select partition 1″;
  7. 最后输入”active”。
取消将磁盘分区标为活动的
  取消的时候只能有命令行,因为windows界面的那个选项卡已经变为浅色的不可以勾选了。
  1.命令行提示符,运行DISKPART,运行入提示符变成”DISKPART>”;
  2.使用”LIST DISK”命令确定你的移动硬盘的##号;
  3.使用”Select DISK 0″将你的移动磁盘设置成当前操作磁盘;
  4:使用“LIST PARTITION”命令确定你的硬盘分区的##号;
  5.使用”Select PARTITION 1″将第一个分区设置成当前的操作分区;
  6.使用”INACTIVE”命令解除当前分区的活动状态。

分类: Windows, 解决方案 标签: ,

vpn 1723端口修改

2015年10月14日 没有评论

方法一:
我们修改注册表以自定义端口的目的:在服务器中第一个找到里面的注册表[HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Class\{4D36E972-E325-11CE- BFC1-08002bE10318}],其中规定这个项目,并网络适配器是关键,这主要可以看到如下,如0000,0001,0002和命名的分支机 构,这些分支机构的各种接口设置信息,然后我们发现它包含一个字符串值的DriverDesc和WAN微型端口(PPTP)的分支,分支可能被命名为 0000,0001,0002等分支,我们继续寻找下列TcpPortNumber重要分支,你可以看到它的默认十进制的1723年,1723年值VPN 服务打开默认的端口号,我们改变了它可以是任何其他的端口号。
通过以上设置,我们的服务器后重新启动服务器,输入cmd netstat – an的会发现在VPN服务器已开始听,然后我们修改后的端口号,服务方面已成功地取代了默认的端口号1723。
接下来是客户端的设置。 VPN服务修改端口号和端口号3389的终端服务不同的变化,只有在客户端服务器背后的目标IP的变化可以直接增加一个端口连接 结肠。 [乙]通过实验发现,VPN客户端计算机需要做的,服务器注册表中的变化同上面的操作键连接的服务器,并修改了防火墙的客户端系统必须关闭谈到成 功连接(仅开放港口仍然无法正常工作),或者我们需要提示错误691:不能建立一个连接到远程计算机,所以此连接使用的端口关闭。并使用默认端口1723 上的防火墙并不需要打开。

方法二:
C:\WINDOWS\system32\drivers\etc 找到services文件并用记事本打开,修改里面的VPN端口,如 pptp 1723/tcp 改成你想要的端口,如53。

分类: Windows, 软件使用 标签:

错误3456:未能恢复日志记录 SQL2000数据库置疑解决方法

2015年9月28日 没有评论

一次客户由于硬盘损坏,种种原因下,我当时仅仅只拿到了备份了的mdf文件,那么恢复起来就是一件很麻烦的事情了。

SQL2000数据库置疑解决方法
按下面的步骤处理:
1.新建一个同名的数据库
2.再停掉sql server服务
3.用备份的数据库MDF的文件覆盖掉这个新建的同名数据库文件
4.再重启sql server服务
5.此时打开企业管理器时新建的同名数据库会出现”置疑”,先不管,执行下面的语句(注意修改其中的数据库名)

?View Code SQLSERVER
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='数据库名'
Go
sp_dboption '数据库名', 'single user', 'true'
Go
DBCC CHECKDB('数据库名')
Go
update sysdatabases set status =28 where name='数据库名'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '数据库名', 'single user', 'false'
Go

ok数据能访问了


操作一下发现有部分表不能select不能写入操作错误:“发生错误:-2147467259,未能在数据库 ‘XXX’ 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式”
这时,数据库本身一般还有问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.
企业管理器–右键你的数据库–所有任务–导出数据
–目标标数据库选择新建
–选择”在两个sql数据库之间复制对象和数据”
–把”包含扩展属性”选上,其他的根据需要选择
–最后完成

注:以上如果失败,一般会提示xxx用户不在。在sql用户管理里建立附于新数据库权限再导一次数据即可。

以下是转别人的一些处理过的办法和经验,给于大家参考。

SQLSERVER数据库文件损坏处理2例
WINDOWS2000
SQLSERVER2000
这段时间遇到了好几起由于数据库文件损坏,而造成客户系统暂停使用的情况。在恢复过程中查阅参考了几篇网上的技术文章,实际操作过后感觉有必要承前启后一下,因此将恢复过程做个记录。
案例1:
客户报告中午正常使用的系统,下午无法打开,报告的是连接数据库错误。电话中初步判断是数据库启动失败。首先告知客户无法立即恢复,先转成手工操作。
到达客户处,首先检查“事件查看器”,发现系统日志文件损坏,事件查看器无法显示系统日志。只能首先删除清空,并重建事件日志文件。然后再启动sqlserver,这时候就可以在事件查看器中看到sqlserver启动失败的错误信息了。错误大概是说 “启动过程中master数据文件损坏,数据库无法恢复”。由于master是系统数据库,因此SQLSERVER无法启动。
此服务器以前曾经发生过windows2000操作系统崩溃,曾经备份过SQLSERVER的 DATA 目录,万幸,把master的两个数据文件覆盖过来(master.mdf,mastlog.ldf)后,数据库就可以启动了。
测试一下,怎么程序还是不能打开,都快出汗了。一看,客户数据库居然是“质疑”的。再看事件查看器有”Disk”错误,连忙找备份,好在管理员在前一天中午做过数据备份。恢复并将数据文件转移到另一个硬盘分区上,至此系统操作正常。至于丢失的一天数据让客户找时间再补入系统。
分析原因:客户表示没有非法关机,停电等故障。因此有可能是硬盘出现坏道,或者是内存品质不良。因此与客户协商,准备先更换一块硬盘,再跟踪使用情况。
案例二:
某天给客户升级报表,第二天早上,客户打电话来说系统不能打开。初步判断也是数据库启动失败。询问客户也没有修改过机器名,管理员密码。通过VNC连上客户服务器发现,还是MASTER数据库损坏。
这时候情况比较复杂,由于是新安装的系统,运行还不满一个月。实施时由于疏忽没有做过任何备份。只能尝试将其他电脑上的master数据文件拷贝过来。我笔记本上的SQLSERVER是desktop版,与服务器上安装的不符。没办法,只能死马当活马医了。压缩,发送,折腾了半个小时才把文件发送到客户服务器上。覆盖… 启动… ,绿色箭头出来了。居然成功了。
打开企业管理器,这时,客户数据库的属性都变成和我笔记本上的数据库一样了。密码,用户数据库。当然由于部分数据文件不一样,所有的用户数据库都是质疑的。删除不存在的用户数据库,然后附加客户自己的数据库。
通常,附加数据库后,系统应该就可以使用了。但没想到的是这个客户数据文件也是损坏的,附加数据库失败。这下恢复过程陷入僵局。虽然数据没用多少天,但库中有关键数据必须恢复。
附加数据库错误提示:
“错误3456:未能恢复日志记录(***:***:x)事务 ID(0:***xx)……等等”
怀疑是日志文件损坏,只能寄希望于数据文件没有损坏。删除数据库日志文件,单独附加数据库文件,结果还是失败,报告“日志文件不符”。
由于远程操作过于缓慢,只能将客户数据文件压缩传回本地,再想办法进行修复。
首先上网找了几篇丢失数据库日志文件的恢复数据的文章。
http://www.jaron.cn/chs_db/20/20 … ticle_view_1587.htm
由于数据日志中还有活动事务,文中第一种方法显然不适用我这种情况。遂按照第二种方法将数据库设置为紧急模式。当做到 DBCC CHECKDB 时。结果就与文章表示的不同了。
服务器: 消息 3908,级别 16,状态 1,行 2
未能在数据库 ‘sttzjg’ 中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式。
此时网上的文章都没有提示找不到进一步的处理方法了。这时直接做DTS数据导出也是报错:DTS Wizard报告说“初始化上下文发生错误”。
不过万幸的是,这时候已经可以SELECT数据了。但有几个表 SELECT的时候报告:
服务器: 消息 601,级别 12,状态 3,行 1
由于数据移动,未能继续以 NOLOCK 方式扫描。
不能使用DTS, 常用的mssql2工具也不行。没有办法了,只能用SELECT手工恢复数据。首先新建一个新的业务数据库new,然后使用 “insert into new.dbo.table select * from *** “一个一个拷贝数据表。化了一个多小时,最后只剩下那三个SELECT也报错的表了。
试试bcp,也报错,不过数据倒是导出来了,这下就好办了。用bcp把能导出的数据导到新库。至此数据库基本恢复。检查报表,发现也是丢失了一天的数据。时间节点上看,大概就是增加报表之后的一天的数据全部丢失,主要就是那三张SELECT报错的表中。
继续检查事件查看器中的内容,没有发现严重的磁盘错误。开关机的日志也很正常,很奇怪,不知道什么情况会造成一整天的事务日志没有完成,而且还造成master数据库损坏。想不出来原因,还是先给客户设置好每日的数据自动备份。以后再出现这种情况也好处理一些。
总结:我们的客户使用的服务器都很一般,数据库备份相当重要,培训客户做好备份,减少由于系统故障造成的数据损失。