已阅读5页,还剩76页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
windows 2008+sql2005+iis7.0双机热备部署手册目录一、安装群集的软、硬件需求31、硬件需求32、软件需求43、安装步骤44、安装操作系统4二、安装主域控61、安装主AD服务62、安装备用AD服务21三、安装WINDOWS群集30四、安装sql server 2005491、安装说明492、开始安装493、群集验证错误解决方法64五、IIS故障转移群集安装651.安装准备652.添加vbs脚本文件653.添加服务应用程序774.配置服务应用程序795.群集验证错误解决方法81一、 安装群集的软、硬件需求1、硬件需求1、 两台配置相同的DELL R810服务器 2、 外置磁盘阵列柜一台(DELL 3600F)3、 光纤卡(HBA),外置SCSI电缆线两条(FC光纤线),为阵列柜附带4、 网络适配卡四块(服务器集成)5、 心跳线(交叉双交线一条)2、软件需求1、 DELL 引导盘 CD2、 Windows 2008 Enterprise Server操作系统安装盘3、 Windows 2008 Enterprise Server CD安装Cluster4、MS SQL SERVER 2005标准版安装盘5、其它相关软件(例如硬件驱动程序、.net framework 3.5 sp1)3、安装步骤1、 连接好主机,键盘,鼠标,显示器2、 分别插入主机和磁盘扩展柜的硬盘3、 打开主机箱盖,依次插入光纤卡4、 用光纤线(SCSI电缆)将每一台主机的光纤卡和磁盘扩展柜后端接口相连5、 将每台主机中一块网卡用直连线连接6、 将每台主机中的另一块网卡和网络连接7、 接好主机的磁盘扩展柜的电源注:存储的划分要至少分3块磁盘,分别作为仲裁磁盘(Q 10G),分布式事务协调器(R 10G),SQL数据盘(S)来使用。4、安装操作系统1、为了分辨,现在把两台Server命名为:QX107、QX108;2、 打开QX107, 关闭QX108, 磁盘扩展柜保持在关机状态;3、 安装Windows 2008 Enterprise Server x64 操作系统 注:通过DELL引导盘安装即可,系统盘分区100G;4、 打开QX108, 关闭QX107, 磁盘扩展柜保持在关机状态; 5、 安装Windows 2008 Enterprise Server x64操作系统; 6、 完成后关闭QX108;7、 分配QX107磁盘盘符,如:W、X、Y、Z等;8、 QX108的盘符分配必须和QX107相同;二、安装主域控1、安装主AD服务1、用鼠标“左键”点击“屏幕”最下方的“开始菜单”按钮,其中的“运行菜单”。如下图2、在“运行对话框”中的“打开”文本输入框中输入“dcpromo”,并选择下面的“确定”按钮。如下图这时,系统将弹出对话框,提示“正在检查是否已安装Active Directory 域服务二进制文件”,等待二进制文件安装完成。如下图二进制文件安装完成后,会弹出“Active Directory 域服务安装向导”,选择界面中的“使用高级模式安装”,并选择下面的“下一步”按钮。如下图PS:如不选择“使用高级模式安装”则有些高级配置选项无法看到。“操作系统兼容性”提示页,没有任何可选项,了解即可。直接选择“下一步”按钮。如下图在“选择某一部署配置”选项页中,选择“在新林中新建域”。如下图PS:由于本文仅用于在新林中建立域控制器,因此不涉及在原有林中建立域控,因此不选择“现有林“等选项。在“命名林根域”选项页中的“目录林根级域的FQDN(F)”文本框中输入自定义的域名。然后点击下面的“下一步”按钮。如下图PS:该“域名”为自己所有拥有的域名,如内网环境或实验环境则可以输入任意所需的域名。此时安装向导将自动检查该域名在网络中是否有重名以及该域名是否符合命名规范,等待检查完成即可。如下图在“域NetBIOS名称”选项页中的“域NetBIOS名称”文本框内,会根据上一选项页中所填写的域名而自动生成“域NetBIOS名称”。一般来说无需修改直接选择下面的“下一步”按钮即可。如下图在“设置林功能级别”选项页中,选择所需的“林功能级别”。一般直接选择“Windows Server 2008 R2”即可。如下图 选择“下一步”后,安装向导会自动检测操作系统内是否有“DNS”服务器,如没有则会弹出“其他域控制器选项”。此处不用特殊设置,直接使用默认设置,选择“下一步”即可。如下图此时,配置向导还会做另外一个检测,就是操作系统的IP地址是否为DHCP指派的IP地址。由于域控制器需要指定IP地址且该IP地址不能更改,因此需要修改IP地址为手工指定。否则,就会弹出如下的“静态IP分配”配置页。这时,选择“否,将静态IP地址分配给所有物理网络适配器”,并手工指定操作系统的IP地址即可。如下图 民航的实际IP为:07,如图:为操作系统指定完成IP地址后,配置向导会提示“正在检查DNS配置”,该过程比较快,等待其完成即可。如下图检测完成后,如发现网络内没有DNS服务器则会弹出如下提示,告知无法找到DNS,询问是否创建DNS服务器。选择“是”让配置向导创建DNS服务器即可。如下图在“数据库、日志文件和SYSVOL的位置”配置页,配置各种数据文件的存储位置,实验环境选择默认即可。生产环境建议保存在D盘或者存储服务器上,以保证数据安全。一般建议区别于操作系统所在的硬盘。配置完成后,直接选择“下一步”按钮即可。如下图在“目录服务还原模式的Administrator密码”配置页中,设置自定义的密码。该密码十分重要,需要妥善保存。如下图在“摘要”选项页中会显示出配置向导对正在配置的域控制器的详细信息。如果需要可以选择下面的“导出设置”按钮。如无需要直接选择“下一步”按钮即可。如下图完成全部设置后,配置向导会弹出功能界面,并显示域控制器安装进度。等待数分钟到十数分钟不等的时间后,域控制器就会自动安装完成。此时可以选择界面中的“完成后重新启动”选项,让操作系统能够在安装完域控制器所有功能组件后自动重新启动计算机。如下图如果在上一配置界面中没有选择“完成后重新启动”选项,等待数分钟至十数分钟后就会出现如下界面。选择下面的“完成”按钮即可结束域控制器的安装。配置向导会同时弹出要求重新启动的对话框,直接选择“立刻重新启动”即可。如下图至此,域控制器的安装就完成了。2、安装备用AD服务WIN08R2安装额外域控制器,通过“服务器管理器”的角色添加来完成初始化的准备工作的。在角色选择过程中勾选“Active Directory域服务”(如图),并根据向导完成初始化操作。1、通过“运行”对话框执行“dcpromo”,打开“Active Directory域服务安装向导”(如图),根据建议勾选“使用高级模式安装”,单击“下一步”。根据AD部署向导,仍然建议选择“使用高级模式安装”。2、由于现在已经存在AD目录森林,所以在“选择某一部署配置”界面要选择“现有林”。因为现在是要安装额外域控制器,因此同时选中“向现有域添加域控制器”,单击“下一步”(如图)。3、指定要将此额外域控制器安装到的森林,即为哪个森林添加额外域控制器。在这里建议填写该服务器将要安装到的域,而不要写森林中的其它域。 WIN8R2在这一过程中还同时需要指定具有升级额外域控制器权限的用户。如果是在工作组中直接升级为额外域控制器,则不能用当前账户凭证进行,只能使用 备用凭证。此外,即使之前将该台作为额外域控制器的服务器已经加入了域,登录进行升级操作的域用户也必须要有在域中添加删除DC权限才能直接使用当前用户 凭证,否则也只能使用备用凭证进行操作(如图)。4、指定要将该服务器安装到哪个域,作为其额外域控制器存在(如图)。选中之后单击“下一步”。确定当前额外域控制器物理主机放置的站点(如图)。在早期版本中实现非首台DC的安装时是不会出现如此的操作步骤的,在进行选择的时候直接都是很 含糊的进行指定,而在WIN08R2中,微软把这些步骤进行的细化,并且更加明确了。这样便于工程师在部署时更能精确的进行配置。图75、单击“下一步”,配置“其它域控制器选项”(如图)。此处,由于是安装域中的额外域控制器,对于其是否成为“DNS服务器”,“全局编录”,“只读域控制器(RODC)”在此过程中均可忽略。其原因如下: 现在森林中已经有了DNS服务器,还要将该服务器作为DNS服务器实现,则可以在完成AD安装向导后来单独实现; 对于全局编录并非在每台DC上都要建立,所以也可以按其后管理过程中根据需要进行设置。但是如果是作为某一个站点的第一台DC来讲,在这里还是有必要将其选中,因为建议每个站点至少要有一个GC; 由于在此讲述的是可读写额外域控制器的安装,因此当然是一定不能选择只读域控制器选项的了。图86、单击“下一步”,向导可能会提示“结构主机配置冲突”的对话框(如图)。如果域森林在此前只有一台DC,那么在安装额外域控制器,即第二台DC时,肯定会遇到这一提示对话框。产生这一个提示对话框的原因是因为当前域中的基础结构主机(IM)同时又承载着GC的角色。图9IM更新的引用信息是来自其它域的信息,即非本域信息。在以下两种情况,IM其实是不工作的: 只有一个域时,此时无论把基础结构主控放在哪都无所谓。因为没有其它域的信息需要引用。 多域环境,所有DC都是GC。这时基础结构主控也无需工作,因为所有的DC都是GC,GC拥有其它域的只读信息。而且IM在GC上运行,将会停止更新对象信息,原因是其已包含对其所拥有的对象的引用。所以,强烈建议IM和GC不要在同一台DC上共存。在此,选择“将结构主机角色传送到此域控制器”。7、此处可以默认,点击“下一步”即可(如图)。图118、指定活动目录数据库文件、日志文件、SYSVOL文件夹存放的位置,并且设置目录还原模式的管理员密码。在“摘要”页面确认相关设置信息无误,单击“下一步”,直接进行网络复制安装额外域控制器(如图)。图12此处,可以勾选“完成后重新启动”,以便安装完后自动重启更新。完成后简单验证和其它操作1、与第一台DC相同,安装完成后依然需要对其进行基本的测试和验证。2、可以把该DC作为DNS服务器,为域中DNS进行备份。三、安装WINDOWS群集1、QX107、QX108均添加角色-应用程序服务器“添加角色”“下一步”选择“应用服务器”“添加必需的功能”“下一步”“下一步”选择“分布式事务处理”,建议其它项也都选上。“下一步”“安装”“关闭”2、 QX107及QX108均添加故障转移群集功能操作系统故障转移群集组件默认不会安装,需要手工添加:“添加功能”选择“故障转移群集”。“下一步”“安装”“关闭”完成故障转移群集组件的安装。3、 在QX107及 QX108联机磁盘 W、X、Y、Z设置完成之后,在QX107执行故障转移系统检测。使用域用户administrator登录一个构成群集的节点,启动“故障转移群集管理”:首先点击“验证配置”,验证硬件条件是否符合群集安装条件。 “下一步”“下一步”“下一步”测试成功。 “完成”4、 QX107故障转移通过之后,新建WINDOWS群集,将QX107跟QX108同时加入群集中,群集名称设置为 ZSOFQX.COM,地址为09开始配置:“创建一个群集”“下一步” 输入操作系统群集名(ZSOFQX.COM)和操作系统群集IP(09)“下一步”创建群集成功。5、 QX107群集建立完成之后,再次打开QX107的故障转移群集管理器,可发现群集QX107.ZSOFQX.com已经存在。节点内已经同时可发现 QX107 跟 QX108。查看配置情况:“下一步”这里使用Windows推荐的设置。“下一步”选择Z盘为仲裁盘。“下一步”“下一步”“完成”6、 QX107 上安装分布式事务协调器(DTC)。DTC名称设置为 ZSOFQXDtc,地址为10。分配可用的群集磁盘 X,给MSDTC使用。在安装SQL Server时需要MSDTC,具体步骤:“下一步”“下一步” 设置MSDTC服务名“ZSOFQXDtc”;如网络地址为10。“下一步”选择X盘。 “下一步”“完成”四、安装sql server 20051、安装说明 首先把sql 2005安装盘的第一张盘放入光驱,自动播放后,点击“服务器组件、工具、联机丛书和示例”开始SQL2005的群集安装,安装程序会自动检测当前是否为群集环境并为群集安装准备。提示:MSCS默认环境下,群集组资源中缺少MSDTC组件,所以需要先添加MSDTC后再开始SQL2005的群集安装,否则会出现警告并停止!2、开始安装1、接受软件使用许可协议。2、SQL2005在进行初始检测后开始执行安装 SQL2005 所需组件。3、完成所必需组件的安装。4、安装程序开始执行系统配置检查。5、进入SQL2005的安装向导。6、向导开始执行系统配置检查,因为是安装群集,会自动检查各节点并给出状态提示。出现IIS跟COM+的警告可以忽略。7、选择要安装的组件,如要得到各组件的详细信息可以选择高级项。这里,选择SQL Server Datebase Services跟创建SQL Server故障转移群集。最后项可不选。 8、进入高级项后就来到了详细的各组件的功能选择,这里可以得到详细的组件信息。根据需要选择组件功能。9、“实例名”配置中选择“默认实例”。10、虚拟服务器名称配置中,为此群集命名为sql2005,一般填写域名(如ZSOFQX.com)。11、为虚拟服务器配置IP,这里我使用Public作为公共访问,并分配一个IP如:11,添加后点击“下一步”。要使用的网络一般填写的是内网,IP自己设置好记住,然后“添加”。12、在“选择群集组”中选择可以得群集组,如果有两个,一般选择默认的群集组,点击“下一步”。13、群集节点配置中,选择可用的节点,因为我当前是双节点群集环境,所以安装向导自动为我选择了QX107节点。,点“下一步”。 14、配置远程安装的帐户,这里的帐户必须是各节点上有效的管理员帐户。15、为服务配置帐户,之前我已经添加了一个名为sql2005的域用户作为SQL服务帐户,所以这里填写上正确的信息。16、配置群集服务的域组,这里三个可以浏览到:ZSOFQXDomain Admins17、身份验证模式中,选择“混合模式”。18、这里全部默认。19、这里一般不选,默认。20、前期的安装配置完成后就准备开始执行正式的文件安装:21、SQL2005的群集安装进度还是很人性化的,这里你可以切换每个节点来监视安装进度。在CD1安装完毕后,系统提示插入CD2,点击确定。到此安装完成3、群集验证错误解决方法正常情况下,安装完成之后,可以在“群集管理器”“服务和应用程序”下面看到sql server 的服务可以管理,如果管理不了服务,请下载sql server 2005 sp3的补丁包安装。链接如下: /downloads/zh-cn/details.aspx?displaylang=zh-cn&FamilyID=ae7387c3-348c-4faa-8ae5-949fdfbe59c4五、IIS故障转移群集安装1.安装准备1. 所有集群服务器都必须加入域。2. 所有集群服务器都需要安装故障转移群集功能和IIS服务。3. 所有集群服务器部署的网站名称、内容和应用程序池名必须一致。4. 所有集群服务器都部署vbs脚本文件并配置相同的路径。5. 只需要在主集群服务器上添加群集和服务应用程序即可。6. 每个网站对应一个vbs脚本文件,每个网站需要配置一个服务应用程序。2.添加vbs脚本文件1. Vbs脚本代码如下,需要修改SITE_NAME和APP_POOL_NAME,分别对应架设的网站名和应用程序池名。将文件拷贝到每台服务器的C:WindowsSystem32inetsrv目录下。vbs脚本代码如下:?1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191This script provides high availability for IIS websitesBy default, it monitors the Default Web Site and DefaultAppPoolTo monitor another web site, change the SITE_NAME belowTo monitor another application pool, change the APP_POOL_NAME belowMore thorough and application-specific health monitoring logic can be added to the script if neededOption ExplicitDIM SITE_NAMEDIM APP_POOL_NAMEDim START_WEB_SITEDim START_APP_POOLDim SITES_SECTION_NAMENote:Replace this with the site and application pool you want to configure high availability forMake sure that the same web site and application pool in the script exist on all cluster nodes. Note that the names are case-sensitive.SITE_NAME = Default Web Site 网站名称STOP_WEB_SITE = 1SITES_SECTION_NAME = system.applicationHost/sitesAPPLICATION_POOLS_SECTION_NAME = system.applicationHost/applicationPoolsCONFIG_APPHOST_ROOT = MACHINE/WEBROOT/APPHOSTHelper script functionsFind the index of the website on this nodeFunction FindSiteIndex(collection, siteName)Dim iFindSiteIndex = -1 For i = 0 To (CInt(collection.Count) - 1)If collection.Item(i).GetPropertyByName(name).Value = siteName ThenFindSiteIndex = iExit ForEnd If NextEnd FunctionFind the index of the application pool on this nodeFunction FindAppPoolIndex(collection, appPoolName)Dim iFindAppPoolIndex = -1 For i = 0 To (CInt(collection.Count) - 1)If collection.Item(i).GetPropertyByName(name).Value = appPoolName ThenFindAppPoolIndex = iExit ForEnd If NextEnd FunctionGet the state of the websiteFunction GetWebSiteState(adminManager, siteName)Dim sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethodSet sitesSection = adminManager.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)Set sitesSectionCollection = sitesSection.Collectionindex = FindSiteIndex(sitesSectionCollection, siteName)If index = -1 ThenGetWebSiteState = -1End If Set siteSection = sitesSectionCollection(index)GetWebSiteState = siteSection.GetPropertyByName(state).ValueEnd FunctionGet the state of the ApplicationPoolFunction GetAppPoolState(adminManager, appPool)Dim configSection, index, appPoolStateset configSection = adminManager.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT)index = FindAppPoolIndex(configSection.Collection, appPool)If index = -1 ThenGetAppPoolState = -1End If GetAppPoolState = configSection.Collection.Item(index).GetPropertyByName(state).ValueEnd FunctionStart the w3svc service on this nodeFunction StartW3SVC()Dim objWmiProviderDim objServiceDim strServiceStateDim responseCheck to see if the service is runningset objWmiProvider = GetObject(winmgmts:/root/cimv2)set objService = objWmiProvider.get(win32_service=w3svc)strServiceState = objService.stateIf ucase(strServiceState) = RUNNING ThenStartW3SVC = TrueElseIf the service is not running, try to start itresponse = objService.StartService()response = 0 or 10 indicates that the request to start was acceptedIf ( response 0 ) and ( response 10 ) ThenStartW3SVC = FalseElseStartW3SVC = TrueEnd IfEnd IfEnd FunctionStart the application pool for the websiteFunction StartAppPool()Dim ahwriter, appPoolsSection, appPoolsCollection, index, appPool, appPoolMethods, startMethod, callStartMethodSet ahwriter = CreateObject(Microsoft.ApplicationHost.WritableAdminManager)Set appPoolsSection = ahwriter.GetAdminSection(APPLICATION_POOLS_SECTION_NAME, CONFIG_APPHOST_ROOT) Set appPoolsCollection = appPoolsSection.Collectionindex = FindAppPoolIndex(appPoolsCollection, APP_POOL_NAME)Set appPool = appPoolsCollection.Item(index)See if it is already startedIf appPool.GetPropertyByName(state).Value = 1 ThenStartAppPool = TrueExit FunctionEnd IfTry To start the application poolSet appPoolMethods = appPool.MethodsSet startMethod = appPoolMethods.Item(START_APP_POOL)Set callStartMethod = startMethod.CreateInstance()callStartMethod.Execute()If started return true, otherwise return falseIf appPool.GetPropertyByName(state).Value = 1 ThenStartAppPool = TrueElseStartAppPool = FalseEnd IfEnd FunctionStart the websiteFunction StartWebSite()Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethodSet ahwriter = CreateObject(Microsoft.ApplicationHost.WritableAdminManager)Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)Set sitesSectionCollection = sitesSection.Collectionindex = FindSiteIndex(sitesSectionCollection, SITE_NAME)Set siteSection = sitesSectionCollection(index)if siteSection.GetPropertyByName(state).Value = 1 ThenSite is already startedStartWebSite = TrueExit FunctionEnd IfTry to start siteSet siteMethods = siteSection.MethodsSet startMethod = siteMethods.Item(START_WEB_SITE)Set executeMethod = startMethod.CreateInstance()executeMethod.Execute()Check to see if the site started, if not return falseIf siteSection.GetPropertyByName(state).Value = 1 ThenStartWebSite = TrueElseStartWebSite = FalseEnd IfEnd FunctionStop the websiteFunction StopWebSite()Dim ahwriter, sitesSection, sitesSectionCollection, siteSection, index, siteMethods, startMethod, executeMethod, autoStartPropertySet ahwriter = CreateObject(Microsoft.ApplicationHost.WritableAdminManager)Set sitesSection = ahwriter.GetAdminSection(SITES_SECTION_NAME, CONFIG_APPHOST_ROOT)Set sitesSectionCollection = sitesSection.Collectionindex = FindSiteIndex(sitesSectionCollection, SITE_NAME)Set siteSection = sitesSectionCollection(index)Stop the siteSet siteMethods = siteSection.MethodsSet startMethod = siteMethods.Item(STOP_WEB_SITE)Set executeMethod = startMethod.CreateInstance()executeMethod.Execute()End FunctionCluster resource entry points. More details here:/en-us/library/aa372846(VS.85).aspxCluster resource Online entry pointMake sure the website and the application pool are startedFunction Online( )Dim bOnlineMake sure w3svc is startedbOnline = StartW3SVC()If bOnline True ThenResource.LogInformation The resource failed to come online because w3svc could not be started.Online = FalseExit FunctionEnd IfMake sure the application pool is startedbOnline = StartAppPool()If bOnline True ThenResource.LogInformation The resource failed to come online because the application pool could not be started.Online = FalseExit FunctionEnd IfMake sure the website is startedbOnline = StartWebSite()If bOnline True ThenResource.LogInformation The resource failed to come online because the web site could not be started.Online = FalseExit FunctionEnd IfOnline = true End FunctionCluster resource offline entry pointStop the websiteFunction Offline( )StopWebSite()Offline = trueEnd FunctionCluster resource LooksAlive entry pointCheck for the health of the website and the application poolFunction LooksAlive( )Dim adminManager, appPoolState, configSection, i, appPoolName, appPool, indexi = 0Set
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年审计实务操作技能情景模拟题库
- 2026年各乡镇防汛抗旱应急预案题库
- 2026年天津中石化新材料岗招聘笔试题库
- 2026年发改系统资源综合利用案例考核题库
- 2026年政府采购政策与实务测试题库
- 2026年物流与供应链管理专业知识题
- 2026年艺术系列戏曲专业职称考试唱腔与身段考核指南
- 2026年眼镜制配场所计量器具配备与强制检定考核
- 2026年职场礼仪与商务沟通技能考核题目
- 2026年网络安全技术与管理单选题库培训专用
- 2026安徽合肥市产业投资控股(集团)有限公司第二批校园招聘19人笔试备考题库及答案解析
- 2026年北京市海淀区初三一模英语试卷(含答案)
- (三诊)2026年4月德阳市高三年级适应性练习地理试卷(含答案)
- 广东省阳江市阳东区2024-2025学年七年级下学期期中地理试卷(含答案)
- 2025年消防文员笔试试题(100题及答案)
- 《生物制药导论》 课件 第七章 生物制药设备与车间设计
- 2026年初中英语阅读技巧
- 江西省人才发展集团有限公司2026年春季集中招聘专题【11人】建设笔试备考试题及答案解析
- 2026年中国江西国际经济技术合作公司校园招聘笔试备考题库及答案解析
- Unit6-Howdowemeasuretime-(课件)-沪教版英语四年级下册
- 毕业设计(论文)-中药粉碎机设计
评论
0/150
提交评论