热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SqlServer使用脚本创建分发服务及事务复制的可更新订阅

【创建使用本地分发服务器】************************【使用本地分发服务器配置发布】***********************--SqlServer2008R2

【创建使用本地分发服务器】

/************************【使用本地分发服务器配置发布】***********************/  
-- SqlServer 2008 R2
-- https://technet.microsoft.com/zh-cn/library/ms151860(v=sql.105).aspx
use master
go

-- 服务器上是否已安装分发服务器
-- https://msdn.microsoft.com/zh-cn/library/ms190339(v=sql.105).aspx
exec master.dbo.sp_get_distributor
go

-- 配置分发服务器
-- https://msdn.microsoft.com/zh-cn/library/ms176028(v=sql.105).aspx
exec master.dbo.sp_adddistributor
@distributor = 'KK-PC' --分发服务器名称
,@heartbeat_interval = 10 --代理在不记录进度消息的情况下可以运行的最长分钟数
,@password = N'123456' --分发服务器密码
go

-- 配置分发数据库
-- https://msdn.microsoft.com/zh-cn/library/ms189755(v=sql.105).aspx
exec master.dbo.sp_adddistributiondb
@database = N'distribution' --要创建的分发数据库的名称
,@data_folder = N'E:\TempFile\Distribution' --分发数据库数据文件的目录
,@data_file = N'distribution' --数据库文件的名称
,@data_file_size = 5 --初始数据文件大小,以兆字节 (MB) 为单位
,@log_folder = N'E:\TempFile\Distribution' ----分发数据库日志文件的目录
,@log_file = N'distribution_log'
,@log_file_size = 5 --初始日志文件大小,以兆字节 (MB) 为单位
,@min_distretention = 0 --从分发数据库中删除事务前的最小保持期,以小时为单位
,@max_distretention = 72 --删除事务前的最大保持期,以小时为单位
,@history_retention = 48 --历史记录的保留时间,以小时为单位
,@security_mode = 1 --同步时连接到分发服务器的安全模式。默认值为1:Windows验证,0: SQL验证
,@login = N'KK-PC\SqlReplicator'
,@password = N'123456'
,@createmode = 1 --1:创建或使用现有数据库(instdist.sql)
go

-- 配置发布服务器以使用指定的分发数据库
-- https://msdn.microsoft.com/zh-cn/library/ms173807(v=sql.105).aspx
exec master.dbo.sp_adddistpublisher
@publisher = N'KK-PC' --发布服务器的名称
,@distribution_db = N'distribution' --分发数据库的名称
,@security_mode = 1 --安全模式,默认1:Windows验证,0: SQL验证
,@login = N'KK-PC\SqlReplicator'
,@password = N'123456'
,@working_directory = N'E:\TempFile\ReplData'--默认快照文件夹的UNC共享目录
,@thirdparty_flag = 0 --发布服务器是否是SQLServer,默认0:是,1:否
,@publisher_type = N'MSSQLSERVER' --发布服务器类型:MSSQLSERVER(默认)/ORACLE/ORACLE GATEWAY
go

/*****配置完成!!*****/


/*****【查看分发属性】******/

--检查分发数据库目录
exec master.dbo.xp_subdirs N'E:\TempFile\Distribution'

--发布服务器的属性(在分发服务器任何数据库执行)
--https://technet.microsoft.com/zh-cn/library/ms190323(v=sql.105).aspx
exec master.dbo.sp_helpdistpublisher N'KK-PC'

--分发数据库的属性(在分发服务器的分发数据库上执行)
--https://msdn.microsoft.com/zh-cn/library/vstudio/aa238917.aspx
exec master.dbo.sp_helpdistributiondb N'distribution'

--列出有关分发服务器相关信息(在分发服务器任何数据库执行)
--https://msdn.microsoft.com/zh-cn/library/ms177504(v=sql.105).aspx
exec master.dbo.sp_helpdistributor



/*****【删除分发】******/
--这里不必执行!


--删除分发发布服务器(在分发服务器任何数据库执行)
--https://technet.microsoft.com/zh-cn/library/ms188411(v=sql.105).aspx
exec master.dbo.sp_dropdistpublisher @publisher = N'KK-PC',@no_checks = 0,@ignore_distributor = 0 --检查对象;连接分发;

--删除分发数据库(在分发服务器任何数据库执行)
--https://msdn.microsoft.com/zh-cn/library/ms188355(v=sql.105).aspx
exec master.dbo.sp_dropdistributiondb N'distribution';

--卸载分发服务器(除分发数据库之外的任何数据库中执行)
--https://technet.microsoft.com/zh-cn/library/ms173516(v=sql.105).aspx
exec master.dbo.sp_dropdistributor @no_checks = 0,@ignore_distributor = 0 --检查对象;连接分发;





【创建可更新订阅的事务发布】


/*************************************【创建发布】**************************************/
/*【实例:可更新订阅】

* A 为发布数据库,id为每个表的主键
* B,C 为订阅数据库
* A中符合条件 [id % 2 = 0] 的同步到B中
* A中符合条件 [id % 2 = 1] 的同步到C中
* 以下以 B 创建发布订阅

当前发布数据库:[mytest]
当前订阅数据库:[mytestA]


*/



--作为发布的数据库
use [mytest]

--设置指定数据库的复制数据库选项(发布服务器或订阅服务器执行)
--http://msdn.microsoft.com/zh-cn/library/ms188769.aspx
exec sys.sp_replicationdboption @dbname = N'mytest', @optname = N'publish', @value = N'true'
go


--为给定分发服务器添加队列读取器代理(在分发库或发布库执行)(每个实例默认只1个,已存在可不须再执行)
--http://msdn.microsoft.com/ZH-CN/LIBRARY/ms189517
exec sys.sp_addqreader_agent @job_login = N'KK-PC\SqlReplicator', @job_password = N'123456', @job_name = null, @frompublisher = 1
go


--为给定数据库添加日志读取器代理(在发布数据库执行)(每个数据库默认只1个,已存在可不须再执行)
--http://technet.microsoft.com/zh-cn/library/ms189516.aspx
exec sys.sp_helplogreader_agent @publisher = null --查看当前数据库存在的日志代理
exec sys.sp_addlogreader_agent @job_login = N'KK-PC\SqlReplicator', @job_password = N'123456', @publisher_security_mode = 1, @job_name = null
go


/***************************【创建发布:以下用于1库多发布】******************************/

--添加(可更新订阅)事务发布(在发布数据库执行)
--http://msdn.microsoft.com/zh-cn/library/ms188738(v=sql.100).aspx
exec sys.sp_addpublication
@publication = N'tran_repl',--【指定发布名称】
@description = N'来自发布服务器“”的数据库“mytest”的具有可更新订阅的事务发布。',
@sync_method = N'concurrent',--同步模式:本机模式大容量复制程序输出
@retention = 0,--订阅活动的保持期(小时):默认值为336小时;0:订阅永不过期
@allow_push = N'true',--推送订阅
@allow_pull = N'true',--允许创建请求订阅
@allow_anOnymous= N'false',--不可创建匿名订阅
@enabled_for_internet = N'false',--非Internet发布
@snapshot_in_defaultfolder = N'false',--不指定快照默认文件夹,须设置@alt_snapshot_folder
@alt_snapshot_folder = N'E:\TempFile\ReplData',--指定快照的备用文件夹的位置
@compress_snapshot = N'false',--不压缩快照
@ftp_port = 21,--默认分发服务器的FTP服务的端口号:21
@ftp_login = N'anonymous',--默认用于连接到 FTP 服务的用户名:anonymous
@allow_subscription_copy = N'false',--禁用复制订阅此发布的订阅数据库
@add_to_active_directory = N'false',--(已不推荐使用)
@repl_freq = N'continuous',--复制频率的类型:基于日志的事务的输出
@status = N'active',--发布数据可立即用于订阅服务器
@independent_agent = N'true',--【独立分发代理】
@immediate_sync = N'false',--每次运行快照代理时不为发布创建同步文件
@allow_sync_tran = N'true',--允许使用【立即更新订阅】
@autogen_sync_procs = N'true',--在发布服务器上生成更新订阅的【同步存储过程】
@allow_queued_tran = N'true',--在订阅服务器中启用更改的队列
@allow_dts = N'false',--不允许数据转换
@conflict_policy = N'sub wins',--排队更新订阅服务器选项时所遵从的冲突解决策略:【订阅入选】
@centralized_cOnflicts= N'true',--在发布服务器上存储冲突记录
@conflict_retention = 14,--冲突保持期(天)
@queue_type = N'sql',--使用的队列类型:默认SQL Server存储事务
@replicate_ddl = 1,--【支持架构复制】
@allow_initialize_from_backup = N'false', --不允许用备份初始化订阅
@enabled_for_p2p = N'false',--非对等复制
@enabled_for_het_sub = N'false'--只支持SQL Server订阅服务器
go


--为指定的发布创建快照代理(在发布数据库执行)
--http://msdn.microsoft.com/zh-cn/library/ms174958(v=sql.100)
exec sys.sp_addpublication_snapshot
@publication = N'tran_repl',
@frequency_type = 1,
@frequency_interval = 0,
@frequency_relative_interval = 0,
@frequency_recurrence_factor = 0,
@frequency_subday = 0,
@frequency_subday_interval = 0,
@active_start_time_of_day = 0,
@active_end_time_of_day = 235959,
@active_start_date = 0,
@active_end_date = 0,
@job_login = N'KK-PC\SqlReplicator',
@job_password = N'123456',
@publisher_security_mode = 1
go


--更改发布属性
--https://msdn.microsoft.com/zh-cn/library/ms188413(v=sql.105).aspx
--exec sys.sp_changepublication ……



--创建项目并将其添加到发布中(在发布数据库执行)
--http://msdn.microsoft.com/zh-cn/library/ms173857

/*1. 添加可筛选的表(默认架构dbo)*/
declare @tableNamenvarchar(100)
declare @publNamenvarchar(100)
declare @markbit-- 区分是否有sid的列,有则进行筛选
declare @filterNumnvarchar(10)-- 一个数据库多个发布加编号区别
declare @filterClausenvarchar(100)
declare @SQLaddarticlenvarchar(max)
declare @SQLarticlefilternvarchar(max)
declare @SQLarticleviewnvarchar(max)
set @publName = N'tran_repl' --【指定发布名称】
set @filterClause = N'dbo.f_SIDTOInt(SID) % 2 = 0' --【指定行筛选】
select @filterNum = CONVERT(NVARCHAR(10),count(*)) from distribution.dbo.MSpublications
declare cur_addTable cursor local fast_forward
for
/*有主键 并且 有SID列(用于筛选)*/
select name,1 mark from sys.tables t1(nolock) where is_ms_shipped = 0
and exists(select 1 from sys.columns t2(nolock) where t1.object_id=t2.object_id and t2.name='SID')
and name in(select table_name from information_schema.key_column_usage(nolock)
where objectproperty(object_id(constraint_name),'isprimarykey')=1 )
union all
/*有主键 并且 无SID列(不可筛选)*/
select name,0 mark from sys.tables t1(nolock) where is_ms_shipped = 0
and not exists(select 1 from sys.columns t2(nolock) where t1.object_id=t2.object_id and t2.name='SID')
and name in(select table_name from information_schema.key_column_usage (nolock)
where objectproperty(object_id(constraint_name),'isprimarykey')=1 )
open cur_addTable
fetch next from cur_addTable into @tableName,@mark
while @@fetch_status = 0
begin
if ( @mark = 1 ) /*可筛选的表对象*/
begin
set @SQLaddarticle = N'
exec sp_addarticle
@publication = N'''+@publName+''',
@article = N'''+@tableName+''',
@source_owner = N''dbo'',
@source_object = N'''+@tableName+''',
@type = N''logbased'',
@description = null,
@creation_script = null,
@pre_creation_cmd = N''drop'',
@schema_option = 0x0000000008035CDF,
@identityrangemanagementoption = N''none'',
@destination_table = N'''+@tableName+''',
@destination_owner = N''dbo'',
@status = 24,
@vertical_partition = N''false'''
exec(@SQLaddarticle)
/*添加项目筛选器*/
set @SQLarticlefilter = N'
exec sp_articlefilter
@publication = N'''+@publName+''',
@article = N'''+@tableName+''',
@filter_name = N''FLTR_'+@tableName+'_'+@filterNum+'__'+rtrim(ltrim(str(@@spid)))+''',
@filter_clause = N'''+@filterClause+''',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1'
exec(@SQLarticlefilter)
/*添加项目同步对象*/
set @SQLarticleview = N'
exec sp_articleview
@publication = N'''+@publName+''',
@article = N'''+@tableName+''',
@view_name = N''SYNC_'+@tableName+'_'+@filterNum+'__'+rtrim(ltrim(str(@@spid)))+''',
@filter_clause = N'''+@filterClause+''',
@force_invalidate_snapshot = 1,
@force_reinit_subscription = 1'
exec(@SQLarticleview)
print '已筛选:'+@tableName
end
else if ( @mark = 0 )
begin
set @SQLaddarticle = N'
exec sp_addarticle
@publication = N'''+@publName+''',
@article = N'''+@tableName+''',
@source_owner = N''dbo'',
@source_object = N'''+@tableName+''',
@type = N''logbased'',
@description = null,
@creation_script = null,
@pre_creation_cmd = N''drop'',
@schema_option = 0x0000000008035CDF,
@identityrangemanagementoption = N''none'',
@destination_table = N'''+@tableName+''',
@destination_owner = N''dbo'',
@status = 24,
@vertical_partition = N''false'''
exec(@SQLaddarticle)
print '无筛选:'+@tableName
end
fetch next from cur_addTable into @tableName,@mark
end
close cur_addTable
deallocate cur_addTable



/*2. 添加视图/存储过程/函数对象(默认架构dbo)*/
declare @publNamenvarchar(100)
declare @ObjectNamenvarchar(100)
declare @Typenvarchar(30)
declare @ObjectTypenvarchar(30)
declare @SQLaddObjectnvarchar(max)
set @publName = N'tran_repl' --【指定发布名称】
declare cur_addObject cursor local fast_forward
for select name,type from mytest.sys.objects where type in(N'P') and is_ms_shipped = 0
union all
select name,type from mytest.sys.objects a where type in(N'V') and is_ms_shipped = 0
and exists(select 1 from mytest.sys.sql_modules b where a.object_id=b.object_id and is_schema_bound = 0)
union all
select name,N'B' as type from mytest.sys.objects a where type in(N'V') and is_ms_shipped = 0
and exists(select 1 from sys.sql_modules b where a.object_id=b.object_id and is_schema_bound = 1)/*架构绑定的索引视图*/
union all
select name,type from mytest.sys.objects where type in(N'TF',N'FN') and is_ms_shipped = 0
order by type,name
open cur_addObject
fetch next from cur_addObject into @ObjectName,@ObjectType
while @@fetch_status = 0
begin
SET @Type =
(
CASE
WHEN @ObjectType = N'V' THEN N'view schema only'
WHEN @ObjectType = N'B' THEN N'indexed view schema only'
WHEN @ObjectType = N'P' THEN N'proc schema only'
WHEN @ObjectType in(N'TF',N'FN') THEN N'func schema only'
END
)
set @SQLaddObject = N'
exec sp_addarticle
@publication = N'''+@publName+''',
@article = N'''+@ObjectName+''',
@source_owner = N''dbo'',
@source_object = N'''+@ObjectName+''',
@type = N'''+@Type+''',
@description = null,
@creation_script = null,
@pre_creation_cmd = N''drop'',
@schema_option = 0x0000000008000001,
@status = 16,
@destination_owner = N''dbo'',
@destination_table = N'''+@ObjectName+''''
exec(@SQLaddObject)
print @ObjectType+ ':' + @ObjectName
fetch next from cur_addObject into @ObjectName,@ObjectType
end
close cur_addObject
deallocate cur_addObject


【创建订阅】


/***********************************【创建订阅】***************************************/
/*【要在发布服务器上运行的脚本】*/

use [mytest]

--将订阅添加到发布并设置订阅服务器的状态
--(警告: distribution 代理作业隐式创建,并将在 SQL Server 代理服务帐户下运行)
--http://technet.microsoft.com/zh-cn/library/ms181702(v=sql.100).aspx
exec sys.sp_addsubscription
@publication = N'tran_repl',--指定发布名称
@subscriber = N'KK-PC',--订阅服务器
@destination_db = N'mytestA',--订阅数据库
@subscription_type = N'Push',--推送订阅
@sync_type = N'automatic',--默认,已发布表的架构和初始数据将首先传输到订阅服务器
@article = N'all',--发布所订阅的项目
@update_mode = N'queued failover',--将订阅启用为排队更新订阅,并允许更改为立即更新模式
@subscriber_type = 0--订阅服务器的类型:SQL Server订阅服务器
go

--添加新的预定分发代理作业,以使推送订阅与事务发布同步
--http://msdn.microsoft.com/zh-cn/library/ms175006(v=SQL.100)
exec sys.sp_addpushsubscription_agent
@publication = N'tran_repl',--指定发布名称
@subscriber = N'KK-PC',--订阅服务器
@subscriber_db = N'mytestA',--订阅数据库
@job_login = N'KK-PC\SqlReplicator',
@job_password = N'123456',
@subscriber_security_mode = 1,--Windows 身份验证
@frequency_type = 64,--分发代理计划的频率:自动启动(默认)
@frequency_interval = 1,
@frequency_relative_interval = 1,
@frequency_recurrence_factor = 0,
@frequency_subday = 4,
@frequency_subday_interval = 5,
@active_start_time_of_day = 0,
@active_end_time_of_day = 235959,
@active_start_date = 0,
@active_end_date = 0,
@dts_package_location = N'Distributor'
go


/*【要在订阅服务器上运行的脚本】*/

use mytestA

--设置在连接到发布服务器时立即更新订阅的同步触发器所使用的配置和安全信息
--http://msdn.microsoft.com/zh-cn/library/ms174991(v=sql.100).aspx
exec sys.sp_link_publication
@publisher = N'KK-PC',
@publisher_db = N'mytest',
@publication = N'tran_repl',
@distributor = N'KK-PC',
@security_mode = 1,--SQL Server 身份验证或 Windows 身份验证
@login = N'KK-PC\SqlReplicator',
@password = N'123456'
go



【启动快照并初始化】

/**********************************【启动快照并初始化】**************************************/
--发布服务器发布数据
use [mytest]

--对其请求订阅中的新项目的订阅添加到发布中(在发布服务器的发布数据库中执行)
--https://technet.microsoft.com/zh-cn/library/ms181680(v=sql.100).aspx
--exec sys.sp_refreshsubscriptions @publication = N'tran_repl'


--将订阅标记为要重新初始化
--https://msdn.microsoft.com/zh-cn/library/ms189469(v=sql.100).aspx
exec sys.sp_reinitsubscription
@publication = N'tran_repl',
@subscriber = N'KK-PC',
@destination_db = N'mytestA',
@article = N'all'
go

--启动可为发布生成初始快照的快照代理作业(在发布服务器的发布数据库中执行)
--http://msdn.microsoft.com/zh-cn/library/ms176026(v=sql.105).aspx
exec sys.sp_startpublication_snapshot @publication = N'tran_repl'
go

--为所有表项目编写自定义 sp_MSins、sp_MSupd 和 sp_MSdel 过程的脚本
--https://msdn.microsoft.com/zh-cn/library/ms187946(SQL.100).aspx
--exec sys.sp_scriptpublicationcustomprocs 'tran_repl'
--go


--至此,完成发布订阅!!!~ 初始化完成!!~





之前测试了N遍!!!~~今晚有空终于成功处理了!~





推荐阅读
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
author-avatar
大航
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有