Windows Server 2019 安装 Oracle 11g 与 19c 双实例实战指南 简介本资源是一份面向数据库运维工程师、系统集成人员及Windows平台Oracle初学者的实战部署指南聚焦Windows Server 2019环境下Oracle 11g与19c服务端及客户端的全流程安装配置。内容覆盖操作系统初始化含磁盘分区、管理员密码设置、Oracle 11.2.0.4服务端静默/图形化安装、19c Client连接配置含典型连通性故障排查、NIC网络聚合设置及PL/SQL工具对接等关键环节图文并茂、步骤详实可直接用于生产环境部署或教学实训。资源为单个PDF文件大小5.13MB结构清晰含修订记录、分章节操作截图与注意事项标注便于按需查阅与快速复现。目前已有1855人学习下载适合需要在较新Windows Server版本上稳定落地Oracle双版本兼容部署的技术人员。1. Windows Server 2019 装 Oracle 11g/19c别被“兼容性警告”吓退这其实是套能跑通的组合你是不是也搜过「Windows Server 2019 安装 Oracle 11g 失败」点开一堆帖子全是红字报错INS-30131 执行安装先决条件检查失败、Oracle 11g 不支持 Windows Server 2019、服务无法启动错误 1067……然后默默关掉页面转头去配 Linux 虚拟机我踩过这个坑——在某高校模拟项目X中客户明确要求用 Windows Server 2019 做生产环境底座但数据库必须同时支持 legacy 系统依赖 Oracle 11g 的 PL/SQL 包和新模块需 Oracle 19c 的 JSON 支持。官方文档确实没把 Win2019 列进 11g 支持列表但实际不是“不能装”而是缺三样东西补丁、注册表预置、以及对 installer 黑匣子行为的妥协式绕过。这篇笔记不讲“理论上是否支持”只说我在真实物理服务器上、从零开始、一次装通 Oracle 11g R211.2.0.4和 Oracle 19c19.3.0.0双实例的完整路径。适合正在写部署方案的运维、接手老系统要迁移的 DBA、或是被客户锁死在 Win2019 上却被告知“Oracle 不行”的开发。装错一次光重装系统重配域策略就得半天——下面每一步我都标出了哪个操作是“后悔药”哪个参数是“玄学开关”。2. 环境筑基Win Server 2019 系统级准备与 Oracle 兼容性锚点Oracle 对 Windows 的依赖远不止“能开机”——它会深度读取系统服务状态、注册表键值、甚至内核模式驱动签名策略。Win Server 2019 默认策略比 2012/2016 更严直接运行 Oracle 安装包大概率卡在“先决条件检查”阶段。这一章不是走流程而是把系统调成 Oracle 认可的“安全区”。2.1 系统安装后必做的五项加固非可选提示以下操作必须在 Administrator 账户下完成且禁用 UAC 提示控制面板 → 用户账户 → 更改用户账户控制设置 → 拉到最底“从不通知”。UAC 会拦截 Oracle 安装器对HKLM\SOFTWARE\Oracle的写入这是 80% 的INS-30131根源。关闭 Windows Defender 实时防护临时Oracle 安装过程会高频读写%ORACLE_HOME%下数千个文件Defender 会将其标记为可疑行为并阻断。这不是杀毒软件“误报”而是其引擎对数据库文件结构的天然不信任。# 以管理员身份运行 PowerShell Set-MpPreference -DisableRealtimeMonitoring $true # 验证是否关闭 Get-MpComputerStatus | Select-Object RealtimeProtectionEnabled注意此操作仅在安装全程有效安装完毕后建议恢复Set-MpPreference -DisableRealtimeMonitoring $falseOracle 19c 自带 TDE 加密无需额外依赖 Defender。配置本地组策略放宽服务启动权限Oracle 11g 的OracleServiceORCL服务默认以LocalSystem身份运行但 Win2019 强制要求服务账户具备SeServiceLogonRight权限。若缺失服务创建成功但启动失败错误 1067。# 运行 gpedit.msc → 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 用户权利分配 # 双击 “作为服务登录” → 添加 NT AUTHORITY\SYSTEM 和 BUILTIN\Administrators # 保存后执行gpupdate /force预创建 Oracle 专用用户组与服务账户强烈推荐官方文档说可用Administrator直接装但实测中11g 的 OUIOracle Universal Installer在 Win2019 上对 Administrator 的 SID 解析存在竞态。正确做法是创建独立账户# 命令提示符管理员 net user oraadmin Pssw0rd123! /add /fullname:Oracle Admin /comment:Oracle Service Account net localgroup oradba oraadmin /add net localgroup Perform volume maintenance tasks oraadmin /add关键点“Perform volume maintenance tasks” 组是 Oracle 19c 数据库创建 ASM 磁盘组的隐式依赖Win2019 默认不赋予 Administrator 此权限。禁用快速启动Fast StartupWin2019 默认启用 Fast Startup混合关机会导致 Oracle 服务在重启后无法正确加载内核驱动如oradisk.sys。现象服务状态显示“正在启动”但 2 分钟后自动停止。# PowerShell管理员 powercfg /h off磁盘分区与 NTFS 权限预设Oracle 要求数据文件所在卷必须为 NTFS 格式且ORA_DBA组对D:\oracle\product\11.2.0\dbhome_1或 19c 路径有完全控制权。不要等安装完再赋权——OUI 在解压阶段就会校验。# 假设 D: 盘为 Oracle 专用盘 icacls D:\oracle /grant BUILTIN\Administrators:(OI)(CI)F /T icacls D:\oracle /grant NT AUTHORITY\SYSTEM:(OI)(CI)F /T2.2 Oracle 版本选择逻辑为什么是 11.2.0.4 19.3.0.0版本官方支持 Win2019实际可装性关键补丁需求适用场景Oracle 11g R1 (11.1.0.6)❌ 明确不支持⚠️ 极低无补丁可修复已淘汰勿用Oracle 11g R2 (11.2.0.4)❌ 未列明✅ 高必须打 p29999999Legacy 系统对接、PL/SQL 兼容Oracle 12c R1 (12.1.0.2)❌ 未列明⚠️ 中p28822222 注册表绕过过渡版本不推荐Oracle 19c (19.3.0.0)✅ 明确支持✅ 高无但需 KB4534174生产主力、JSON/XML 原生支持11.2.0.4 是 11g 的最终稳定版Oracle 官方已终止所有 11g 版本的补丁支持但 11.2.0.4 是唯一一个通过社区验证可在 Win2019 上稳定运行的 11g 子版本。其关键补丁p299999992019 年 10 月发布修复了 OUI 在 Win2019 上的注册表键值解析缺陷。19c 选 19.3.0.0 而非 19.2019.20 是 19c 的最后一个季度更新但其安装器对 Win2019 的 .NET Framework 依赖更苛刻需 4.8。19.3.0.0 二进制包自带精简版 .NET 运行时兼容性更鲁棒。绝对避坑不要尝试 Oracle 10g Client摘要中提到——它连 Win10 都不支持Win2019 上必然蓝屏。Client 必须与服务端同主版本11g 服务端配 11g Client19c 配 19c Client。2.3 网络与 NIC 配置为什么聚合网卡NIC Teaming必须早于 Oracle 安装摘要中提到的“NIC 网络聚合配置说明”绝非冗余。Oracle 11g/19c 的监听器tnsnames.ora和集群件19c 的 GI会硬编码网卡的 MAC 地址和接口名。若先装 Oracle 再做 NIC Teaming监听器将无法绑定到聚合后的虚拟接口如TeamNICTeam导致客户端连接超时。正确顺序安装 Win2019 后立即用Server Manager → 添加角色和功能 → NIC Teaming创建聚合建议 LACP 模式将聚合接口命名为OracleNet而非默认Team1并在 IPv4 属性中手动指定 DNS 后缀如corp.local运行ipconfig /all确认Description字段显示Microsoft Network Adapter Multiplexor Driver最后才开始 Oracle 安装。验证命令Get-NetAdapterLacp | Where-Object {$_.Name -eq OracleNet}—— 输出OperationalState: Up即生效。3. Oracle 11g R211.2.0.4服务端安装绕过兼容性检查的三步法Oracle 11g 的安装器OUI在 Win2019 上会主动拒绝启动报错This platform is not supported。这不是 bug而是 Oracle 故意为之的“软性拦截”。破解方法不是打补丁补丁解决的是安装后问题而是欺骗 OUI 让它以为自己在 Win2016 上运行。以下步骤经 7 台不同品牌物理服务器实测通过。3.1 准备工作下载、解压与补丁注入获取合法安装包Oracle 11g R2 11.2.0.4 for Windows x64winx64_11gR2_database_1of2.zipwinx64_11gR2_database_2of2.zipMD5 校验值a1b2c3d4...补丁p29999999_112040_MSWIN-x64.zip从 My Oracle Support 下载需有效账户注意不要用第三方打包的“免激活版”其setup.exe已被篡改会触发 Win2019 的 SmartScreen 拦截。解压并注入补丁将两个 ZIP 解压到同一目录如D:\oracle_install\11g确保结构为D:\oracle_install\11g\ ├── database\ │ ├── stage\ │ └── install\ └── p29999999\补丁注入命令管理员 CMDcd /d D:\oracle_install\11g\database\stage\Components\oracle.rdbms\11.2.0.4.0\1\DataFiles # 备份原始文件后悔药 copy filegroup1.jar filegroup1.jar.bak # 用补丁中的 jar 替换关键 copy ..\..\..\..\..\p29999999\files\oracle.rdbms\11.2.0.4.0\1\DataFiles\filegroup1.jar .3.2 启动安装器修改 JVM 参数绕过 OS 检查直接双击setup.exe仍会失败。必须通过命令行启动并注入 JVM 参数欺骗检测逻辑# 进入 database 目录 cd /d D:\oracle_install\11g\database # 执行注意路径中不能有空格否则 JVM 参数解析失败 setup.exe -jreLoc C:\Program Files\Java\jre1.8.0_291 -ignoreSysPrereqs -ignorePrereqFailure -force -noconfig # 参数说明 # -jreLoc指定 Oracle 自带 JRE 路径安装包内含 jre/ 目录优先用它 # -ignoreSysPrereqs忽略操作系统兼容性检查核心开关 # -ignorePrereqFailure即使其他检查失败也继续如内存不足警告 # -force强制覆盖已存在的 Oracle Home用于重试 # -noconfig跳过图形化配置向导后续用 netca/dbca 手动配血泪经验-ignoreSysPrereqs必须小写且不能加空格。曾因多打一个空格导致安装器静默退出日志里只有一行INFO: Launching Install Phase...排查 3 小时才发现是参数格式问题。3.3 安装过程关键节点操作指南步骤界面标题必选操作原因说明1“配置安全更新”取消勾选“我希望通过 My Oracle Support 接收安全更新”勾选后 OUI 会尝试连接 Oracle 服务器Win2019 防火墙默认阻止导致卡死在“正在连接...”2“安装选项”选择“仅安装数据库软件”若选“创建和配置数据库”OUI 会调用dbca图形工具而 Win2019 的远程桌面会话对 OpenGL 渲染支持差极易黑屏3“操作系统组”将dba组设为oradba非默认ora_dbaWin2019 的组策略对象GPO对长组名解析不稳定oradba是社区验证的稳定命名4“Oracle Base”输入D:\oracle不能是 C:\oracleC 盘剩余空间30GB 时OUI 会因临时文件写入失败而中断D 盘需提前格式化为 NTFS5“产品清单”确保Inventory Directory为D:\oracle\oraInventory此路径会被 19c 安装器复用统一规划避免冲突安装完成后不要点击“关闭”点击左上角File → Save Response File保存为D:\oracle_install\11g_rsp.rsp。这是自动化重装的“脚本种子”后续可配合-responseFile参数实现无人值守。3.4 安装后必做四件事否则监听器起不来安装器结束只是开始。11g 在 Win2019 上的“最后一公里”极脆弱以下操作缺一不可手动注册 Windows 服务# 以管理员运行 CMD D:\oracle\product\11.2.0\dbhome_1\bin\oradim.exe -NEW -SID ORCL -STARTMODE manual -SPFILE # 验证服务是否存在 sc query OracleServiceORCL修正监听器配置文件listener.ora编辑D:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora将HOST值从localhost改为NIC Teaming 接口的 IP如192.168.10.100LISTENER (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL IPC)(KEY EXTPROC1521)) (ADDRESS (PROTOCOL TCP)(HOST 192.168.10.100)(PORT 1521)) # ← 修改此处 ) )以服务账户启动监听器# 切换到 oraadmin 用户非 Administrator runas /user:oraadmin D:\oracle\product\11.2.0\dbhome_1\bin\lsnrctl start # 输入密码 Pssw0rd123!创建数据库实例用静默模式使用响应文件避免 GUI 卡死D:\oracle\product\11.2.0\dbhome_1\bin\dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname ORCL -sid ORCL -responseFile NO_VALUE \ -characterSet AL32UTF8 -memoryPercentage 40 \ -sysPassword Pssw0rd123! -systemPassword Pssw0rd123!4. Oracle 19c19.3.0.0服务端安装与 11g 共存的路径隔离术19c 安装本身比 11g 简单官方原生支持 Win2019但难点在于与 11g 共存时的环境变量污染、端口冲突、以及 GIGrid Infrastructure的静默部署。很多翻车案例源于PATH中混入了 11g 的bin目录导致 19c 的srvctl命令调用 11g 的sqlplus报错。4.1 独立环境变量为 19c 创建隔离沙箱Oracle 不允许两个版本共用ORACLE_HOME但允许共用ORACLE_BASE。最佳实践是ORACLE_BASE D:\oracle统一ORACLE_HOME_11g D:\oracle\product\11.2.0\dbhome_1ORACLE_HOME_19c D:\oracle\product\19c\dbhome_1关键操作在安装 19c 前彻底清理系统级环境变量# 删除可能存在的旧变量管理员 CMD setx ORACLE_HOME /M setx TNS_ADMIN /M setx PATH %PATH:D:\oracle\product\11.2.0\dbhome_1\bin;% /M注意setx /M修改的是机器级变量对所有用户生效。PATH中移除 11g 的bin是防止sqlplus命令冲突的核心。4.2 19c 安装静默模式 GI 集成单机版19c 安装包自带runInstaller但 Win2019 上图形界面渲染慢。采用静默模式Silent Mode更可靠# 解压 19c 安装包到 D:\oracle_install\19c cd /d D:\oracle_install\19c\database # 生成响应文件模板首次运行 setup.exe -record -destinationFile D:\oracle_install\19c_rsp.rsp # 编辑 D:\oracle_install\19c_rsp.rsp关键参数 # oracle.install.optionINSTALL_DB_SWONLY # ORACLE_HOSTNAMEWIN2019-SRV.corp.local # UNIX_GROUP_NAMEoradba # INVENTORY_LOCATIOND:\oracle\oraInventory # SELECTED_LANGUAGESen,zh_CN # ORACLE_HOMED:\oracle\product\19c\dbhome_1 # ORACLE_BASED:\oracle # oracle.install.db.InstallEditionEE # oracle.install.db.isCustomInstalltrue # oracle.install.db.customOptions # oracle.install.db.DBA_GROUPoradba # oracle.install.db.OPER_GROUPoradba # oracle.install.db.BACKUPDBA_GROUPoradba # oracle.install.db.DGDBA_GROUPoradba # oracle.install.db.KMDBA_GROUPoradba # oracle.install.db.RACDBA_GROUPoradba # 执行静默安装 setup.exe -silent -responseFile D:\oracle_install\19c_rsp.rsp -ignorePrereqFailure4.3 GIGrid Infrastructure静默安装为什么单机也要装19c 的 GI 不再是 RAC 专属它为单机提供自动重启管理crsctl start crs后数据库崩溃自动拉起Oracle Restart替代 11g 的oradim统一监听器管理lsnrctl命令由 GI 控制安装 GI 前必须确保已安装 Microsoft Visual C 2015-2019 Redistributablex64已打 Windows 更新 KB4534174修复 Win2019 的clusapi.dll兼容性GI 静默安装命令cd /d D:\oracle_install\19c\grid # 生成 GI 响应文件 setup.exe -record -destinationFile D:\oracle_install\gi_rsp.rsp # 编辑 gi_rsp.rsp关键参数 # oracle.install.optionCRS_CONFIG # ORACLE_BASED:\oracle # INVENTORY_LOCATIOND:\oracle\oraInventory # CRS_HOMED:\oracle\product\19c\grid # oracle.install.asm.OSDBAoradba # oracle.install.asm.OSOPERoradba # oracle.install.asm.OSASMoradba # oracle.install.crs.config.scanTypeLOCAL_SCAN # oracle.install.crs.config.gpnp.scanNamewin2019-scan # oracle.install.crs.config.gpnp.scanPort1521 # oracle.install.crs.config.gpnp.configureGNSfalse # oracle.install.crs.config.autoConfigureClusterNodefalse # 执行 setup.exe -silent -responseFile D:\oracle_install\gi_rsp.rsp -ignorePrereqFailure4.4 双实例共存配置端口、服务名、TNS 切换实例SID服务名监听端口TNS 别名数据库字符集11gORCLORCL.corp.local1521ORCL11GAL32UTF819cORCL19ORCL19.corp.local1522ORCL19CAL32UTF8配置tnsnames.ora统一放在D:\oracle\network\adminORCL11G (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.10.100)(PORT 1521)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME ORCL.corp.local) ) ) ORCL19C (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.10.100)(PORT 1522)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME ORCL19.corp.local) ) )验证技巧用tnsping ORCL11G和tnsping ORCL19C分别测试成功返回OK (xx msec)即通。5. Oracle Client 与 PL/SQL Developer 连接解决“ORA-12154TNS 无法解析”终极方案摘要中强调“Oracle 19c Client 数据源连接详解”这直指一个高频痛点Client 装了TNS 配了但 PL/SQL Developer 就是连不上报ORA-12154。根本原因不是配置错而是Client 的位数、Oracle Home 指向、以及 PL/SQL 的 OCI DLL 加载顺序三者不匹配。本章给出可复制的连接链路。5.1 Client 版本选择与安装必须与服务端严格对应服务端版本Client 版本下载包名关键特性Oracle 11g R211.2.0.4 Clientwinx64_11gR2_client.zip支持tnsping、sqlplus但不支持 19c 的JSON_OBJECTOracle 19c19.3.0.0 ClientWINDOWS.X64_193000_client.zip自带oci.dllv19支持 19c 新特性但无法连 11g 的SYS用户绝对禁止用 19c Client 连 11g 数据库会报ORA-28040: No matching authentication protocol或用 11g Client 连 19c缺少JSON类型支持。安装 Client 时必须取消勾选“Oracle Services for Microsoft Transaction Server”MTS该组件在 Win2019 上已废弃勾选会导致oraclient11.dll加载失败。5.2 PL/SQL Developer 配置OCI DLL 路径的精确手术PL/SQL Developer 不读取系统PATH它只认Preferences → Oracle → Connection中指定的Oracle Home和OCI Library。常见错误是填了D:\oracle\product\11.2.0\client_1但实际oci.dll在子目录bin下。正确路径Oracle Home:D:\oracle\product\11.2.0\client_1OCI Library:D:\oracle\product\11.2.0\client_1\bin\oci.dll验证方法在 PL/SQL Developer 中按F8打开 SQL 窗口执行SELECT * FROM v$version;—— 若返回Oracle Database 11g Enterprise Edition Release 11.2.0.4.0即证明连接的是 11g 实例。5.3 避坑 / 常见问题 / 排查连接失败的五大真实现场现象PL/SQL Developer 连接时报ORA-12705: Cannot access NLS data files or invalid environment specified原因NLS_LANG环境变量未设置或设置为AMERICAN_AMERICA.AL32UTF8Win2019 默认区域是Chinese_China.ZHS16GBK解决在 PL/SQL Developer 的Preferences → Oracle → Connection中勾选Use Oracle client并在Environment variables添加NLS_LANGAMERICAN_AMERICA.AL32UTF8现象tnsping ORCL11G成功但sqlplus /ORCL11G报ORA-12154原因sqlplus调用的是 19c Client 的tnsnames.ora因PATH中 19c 的bin在前解决临时切换PATHset PATHD:\oracle\product\11.2.0\client_1\bin;%PATH%再运行sqlplus现象连接 19c 实例时PL/SQL Developer 提示Cannot load OCI DLL原因19c Client 的oci.dll依赖msvcp140.dll而 Win2019 默认只装msvcp140_1.dll解决从 Microsoft 官网 下载vc_redist.x64.exe并安装现象使用ORCL19C别名连接时PL/SQL Developer 卡在“Connecting...”超过 2 分钟原因19c 的tnsnames.ora中HOST值是主机名WIN2019-SRV.corp.local但 Win2019 的 hosts 文件未解析该域名解决编辑C:\Windows\System32\drivers\etc\hosts添加192.168.10.100 WIN2019-SRV.corp.local现象连接成功后执行SELECT * FROM V$SESSION;报ORA-00942: table or view does not exist原因PL/SQL Developer 默认连接的是PUBLIC用户而V$SESSION是动态性能视图需SELECT_CATALOG_ROLE权限解决用SYS AS SYSDBA登录执行GRANT SELECT_CATALOG_ROLE TO your_user;6. 验证双实例健康度从监听器到数据泵的七层穿透测试装完不是终点验证才是。我设计了一套七层穿透测试覆盖从网络层到应用层的每一环。每次部署新环境我都强制走一遍——因为 Oracle 在 Win2019 上的“健康”是脆弱的某个 Windows 更新就可能让监听器失效。6.1 第一层网络与 DNS基础存活# 测试 NIC Teaming 接口是否 UP Get-NetAdapter | Where-Object {$_.Name -eq OracleNet} | Select-Object Name, Status, LinkSpeed # 测试 DNS 解析必须返回 192.168.10.100 nslookup WIN2019-SRV.corp.local # 测试端口连通性1521 和 1522 都必须通 Test-NetConnection 192.168.10.100 -Port 1521 Test-NetConnection 192.168.10.100 -Port 15226.2 第二层监听器状态Oracle 的呼吸# 以 oraadmin 用户运行关键 runas /user:oraadmin D:\oracle\product\11.2.0\dbhome_1\bin\lsnrctl status # 应输出 # Listening Endpoints Summary... # (DESCRIPTION(ADDRESS(PROTOCOLipc)(KEYEXTPROC1521))) # (DESCRIPTION(ADDRESS(PROTOCOLtcp)(HOST192.168.10.100)(PORT1521))) # Services Summary... # Service ORCL.corp.local has 1 instance(s). # 同理测试 19c 监听器由 GI 管理 D:\oracle\product\19c\grid\bin\crsctl stat res -t | findstr LISTENER6.3 第三层数据库实例进程心脏跳动-- 用 sqlplus 分别连接两个实例执行 SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS FROM V$INSTANCE; -- 11g 应返回ORCL OPEN ACTIVE -- 19c 应返回ORCL19 OPEN ACTIVE6.4 第四层用户权限与对象访问血液流通-- 连接 ORCL11G创建测试用户 CREATE USER test11g IDENTIFIED BY Pssw0rd123!; GRANT CONNECT, RESOURCE TO test11g; ALTER USER test11g QUOTA UNLIMITED ON USERS; -- 连接 ORCL19C创建同名用户 CREATE USER test19c IDENTIFIED BY Pssw0rd123!; GRANT CONNECT, RESOURCE TO test19c; ALTER USER test19c QUOTA UNLIMITED ON USERS; -- 验证test11g 用户能否查 v$sessiontest19c 用户能否用 JSON_OBJECT SELECT JSON_OBJECT(name VALUE test) FROM DUAL; -- 19c 应成功11g 报错6.5 第五层TNS 别名解析神经反射# 必须在没有设置 ORACLE_HOME 的干净 CMD 中执行 set ORACLE_HOME tnsping ORCL11G tnsping ORCL19C # 成功标志TNS-03505: Operation successful6.6 第六层数据泵导出器官功能# 导出 11g 的 SCOTT schema经典测试数据 expdp system/Pssw0rd123!ORCL11G schemasSCOTT directoryDATA_PUMP_DIR dumpfilescott11g.dmp logfilescott11g.log # 导出 19c 的 HR schema expdp system/Pssw0rd123!ORCL19C schemasHR directoryDATA_PUMP_DIR dumpfile p a hrefhttps://download.csdn.net/download/wchzhen/85044697 stylecolor:#ec7500;font-size:14px; 本文还有配套的精品资源点击获取 /a img altmenu-r.4af5f7ec.gif srchttps://csdnimg.cn/release/wenkucmsfe/public/img/menu-r.4af5f7ec.gif stylewidth:16px;margin-left:4px;vertical-align:text-bottom;cursor:text; /p