向基于Linux的Oracle RAC 10g集群添加新节点
数据库名
|
节点编号
|
数据库版本
|
实例编号
|
操作系统内核版本
|
文件系统
|
集群管理器
|
SSKYDB
|
四个节点 — oradb1、oradb2、oradb3 和 oradb4
|
10.2.0.1
|
四个实例 — SSKY1、SSKY2、SSKY3 和 SSKY4
|
Red Hat Enterprise Linux AS 3
Linux sumsky.net 2.4.21-32.ELsmp |
OCFS 1.0 和 ASM
|
Oracle 集群件
|
2、配置网络组件
3、安装 Oracle 集群件
4、配置 Oracle 集群件
5、安装 Oracle 软件
6、添加新实例(一个或多个)
7、执行日常管理任务
[root@oradb5 root]# rpm -qa | grep -i gcc compat-gcc-c++-7.3-2.96.128 compat-gcc-7.3-2.96.128 libgcc-3.2.3-42 gcc-3.2.3-42 [root@oradb5 root]# rpm -qa | grep -i openmotif openmotif-2.2.3-3.RHEL3 openmotif21-2.1.30-8 [root@oradb5 root]# rpm -qa | grep -i glibc glibc-2.3.3-74 glibc-utils-2.3.3-74 glibc-kernheaders-2.4-8.34.1 glibc-common-2.3.3-74 glibc-headers-2.3.3-74 glibc-devel-2.3.3-74 [root@oradb5 root]# rpm -qa | grep -i compat compat-libstdc++-7.3-2.96.128 compat-gcc-c++-7.3-2.96.128 compat-gcc-7.3-2.96.128 compat-db-4.0.14-5 compat-libstdc++-devel-7.3-2.96.128 [root@oradb5 root]# |
kernel.core_uses_pid = 1
kernel.hostname = oradb5.sumsky.net kernel.domainname = sumsky.net kernel.shmall = 2097152 #kernel.shmmax = 536870912 kernel.shmmax = 2147483648 kernel.shmmni = 4096 kernel.shmseg = 4096 kernel.sem = 250 32000 100 150 kernel.msgmnl = 2878 kernel.msgmnb = 65535 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.rmem_max = 262144 net.core.wmem_max = 262144 |
oracle soft nproc 2047
oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
[root@oradb5 root]$ more /etc/fstab
LABEL=/ / ext3 defaults 1 1 none /dev/pts devpts gid=5,mode=620 0 0 none /proc proc defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/sda2 swap swap defaults 0 0 /dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0 /dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0 /dev/sdb5 /u01 ocfs _netdev 0 0 /dev/sdb6 /u02 ocfs _netdev 0 0 /dev/sdb7 /u03 ocfs _netdev 0 0 /dev/sdb8 /u04 ocfs _netdev 0 0 /dev/sdb9 /u05 ocfs _netdev 0 0 /dev/sdb10 /u06 ocfs _netdev 0 0 /dev/sdb14 /u14 ocfs _netdev 0 0 |
[oracle@oradb1 oracle]$ id oracle
uid=500(oracle) gid=500(oinstall) groups=501(dba), 502(oper) |
groupadd -g 500 oinstall
groupadd -g 501 dba groupadd -g 502 oper |
useradd -u 500 -g oinstall -G dba, oper oracle
passwd oracle Changing password for user oracle. New password: Retype new password: passwd: all authentication tokens updated successfully. |
[root@oradb5 root]$ id oracle
uid=500(oracle) gid=500(oinstall) groups=501(dba), 502(oper) |
第 2 步:配置网络组件
root@oradb5 root]# more /etc/hosts
127.0.0.1 localhost.localdomain localhost 192.168.2.10 oradb1.sumsky.net oradb1 192.168.2.20 oradb2.sumsky.net oradb2 192.168.2.30 oradb3.sumsky.net oradb3 192.168.2.40 oradb4.sumsky.net oradb4 192.168.2.50 oradb5.sumsky.net oradb5 #Private Network/interconnect # VIP |
[oracle@oradb5 oracle]$ ssh-keygen -t dsa -b 1024
Generating public/private dsa key pair. Enter file in which to save the key (/home/oracle/.ssh/id_dsa): Created directory '/home/oracle/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/oracle/.ssh/id_dsa. Your public key has been saved in /home/oracle/.ssh/id_dsa.pub. The key fingerprint is: b6:07:42:ae:47:56:0a:a3:a5:bf:75:3e:21:85:8d:30 [email]oracle@oradb5.sumsky.net[/email] [oracle@oradb5 oracle]$ |
[oracle@oradb5 oracle]$ cd .ssh
[oracle@oradb5 .ssh]$ cat id_dsa.pub > authorized_keys |
[oracle@oradb1 oracle]$ ssh oradb1 hostname
oradb1.sumsky.net [oracle@oradb1 oracle]$ ssh oradb5 hostname Oradb5.sumsky.net [oracle@oradb1 oracle]$ ssh oradb1-priv hostname oradb1.sumsky.net [oracle@oradb1 oracle]$ ssh oradb5-priv hostname Oradb5.sumsky.net |
cluvfy stage -post hwos -n oradb1,oradb5
Performing post-checks for hardware and operating system setup Checking node reachability... Node reachability check passed from node "oradb1". Checking user equivalence... User equivalence check passed for user "oracle". Checking node connectivity... Node connectivity check passed for subnet "192.168.2.0" with node(s) oradb5,oradb1. Node connectivity check passed for subnet "10.168.2.0" with node(s) oradb5,oradb1. Suitable interfaces for the private interconnect on subnet "192.168.2.0": oradb5 eth0:192.168.2.50 eth0:192.168.2.55 oradb1 eth0:192.168.2.10 eth0:192.168.2.15 Suitable interfaces for the private interconnect on subnet "10.168.2.0": oradb5 eth1:10.168.2.150 oradb1 eth1:10.168.2.110 Checking shared storage accessibility... Shared storage check failed on nodes "oradb5". Post-check for hardware and operating system setup was unsuccessful on all the nodes. |
Checking shared storage accessibility...
Shared storage check passed on nodes "oradb5,oradb1". Post-check for hardware and operating system setup was successful on all the nodes. |
[oracle@oradb1 cluvfy]$ cluvfy stage -pre crsinst -n oradb1,oradb5
Performing pre-checks for cluster services setup Checking node reachability... Node reachability check passed from node "oradb1". Checking user equivalence... User equivalence check passed for user "oracle". Checking administrative privileges... User existence check passed for "oracle". Group existence check passed for "oinstall". Membership check for user "oracle" in group "oinstall" [as Primary] failed. Check failed on nodes: oradb5,oradb1 Administrative privileges check passed. Checking node connectivity... Node connectivity check passed for subnet "192.168.2.0" with node(s) oradb5,oradb1. Node connectivity check passed for subnet "10.168.2.0" with node(s) oradb5,oradb1. Suitable interfaces for the private interconnect on subnet "192.168.2.0": oradb5 eth0:192.168.2.50 eth0:192.168.2.55 oradb1 eth0:192.168.2.10 eth0:192.168.2.15 Suitable interfaces for the private interconnect on subnet "10.168.2.0": oradb5 eth1:10.168.2.150 oradb1 eth1:10.168.2.110 Checking system requirements for 'crs'... Total memory check passed. Check failed on nodes: oradb5,oradb1 Free disk space check passed. Swap space check passed. System architecture check passed. Kernel version check passed. Package existence check passed for "make-3.79". Package existence check passed for "binutils-2.14". Package existence check passed for "gcc-3.2". Package existence check passed for "glibc-2.3.2-95.27". Package existence check passed for "compat-db-4.0.14-5". Package existence check passed for "compat-gcc-7.3-2.96.128". Package existence check passed for "compat-gcc-c++-7.3-2.96.128". Package existence check passed for "compat-libstdc++-7.3-2.96.128". Package existence check passed for "compat-libstdc++-devel-7.3-2.96.128". Package existence check passed for "openmotif-2.2.3". Package existence check passed for "setarch-1.3-1". Group existence check passed for "dba". Group existence check passed for "oinstall". User existence check passed for "nobody". System requirement failed for 'crs' Pre-check for cluster services setup was successful on all the nodes. |
第 4 步:配置 Oracle 集群件
2、Welcome — 单击 Next。
3、指定要通过添加来安装的集群节点 — 在该屏幕中,OUI 列出了集群的现有节点,并在下半个屏幕中列出了要添加到适当列中的新节点(一个或多个)信息。输入信息之后,单击 Next。
公共节点名称 | 私有节点名称 | 虚拟主机名称 |
oradb5 | oradb5-priv | oradb5-vip |
5、当需要的所有集群件组件从 oradb1 复制到 oradb5 之后,OUI 将提示执行三个文件:
/usr/app/oracle/oraInventory/orainstRoot.sh on node oradb5
[root@oradb5 oraInventory]# ./orainstRoot.sh
Changing permissions of /usr/app/oracle/oraInventory to 770. Changing groupname of /usr/app/oracle/oraInventory to dba. The execution of the script is complete |
[root@oradb1 install]# ./rootaddnode.sh
clscfg: EXISTING configuration version 3 detected. clscfg: version 3 is 10G Release 2. Attempting to add 1 new nodes to the configuration Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897. node <nodenumber>: <nodename> <private interconnect name> <hostname> node 5: oradb5 oradb5-priv oradb5 Creating OCR keys for user 'root', privgrp 'root'.. Operation successful. /usr/app/oracle/product/10.2.0/crs/bin/srvctl add nodeapps -n oradb5 -A oradb5-v ip/255.255.255.0/bond0 -o /usr/app/oracle/product/10.2.0/crs [root@oradb1 install]# |
[root@oradb5 crs]# ./root.sh
WARNING: directory '/usr/app/oracle/product/10.2.0' is not owned by root WARNING: directory '/usr/app/oracle/product' is not owned by root WARNING: directory '/usr/app/oracle' is not owned by root Checking to see if Oracle CRS stack is already configured /etc/oracle does not exist. Creating it now. OCR backup directory '/usr/app/oracle/product/10.2.0/crs/cdata/SskyClst' NO KEYS WERE WRITTEN. Supply -force parameter to override. |
II、第 1 步(共 2 步):网络接口 — 显示网络接口列表;选择 VIP 将分配/映射到的网络公共网络接口。通常是列表 (eth0) 中的第一个接口;但是,在这个特定情况中,由于针对私有互连启用了绑定而且该列表以字母次序显示,因此 bond0 接口将显示在列表顶部。完成后单击 Next。
III、第 2 步(共 2 步):集群节点的虚拟 IP — 对于列表中的每个节点名,在适当的列中提供 VIP 别名和虚拟 IP 地址。完成后单击 Next。
IV、总结 — 列出当前所选配置的总结。当所有设置正确后,单击 Finish。
V、配置助手进度对话框 — 该屏幕将显示 VIP、GSD 和 ONS 配置过程的进度。VIPCA 提示后单击 OK。
VI、配置结果 — 该屏幕将显示配置结果。单击 Exit 退出 VIPCA。
[root@oradb5 root]# ls -ltr /etc/init.d/init.*
-r-xr-xr-x 1 root root 3197 Aug 13 23:32 /etc/init.d/init.evmd -r-xr-xr-x 1 root root 35401 Aug 13 23:32 /etc/init.d/init.cssd -r-xr-xr-x 1 root root 4721 Aug 13 23:32 /etc/init.d/init.crsd -r-xr-xr-x 1 root root 1951 Aug 13 23:32 /etc/init.d/init.crs [root@oradb5 root]# |
[root@oradb5 root]# tail -5 /etc/inittab
# Run xdm in runlevel 5 x:5:respawn:/etc/X11/prefdm -nodaemon h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null |
7、安装结束 — 单击 Exit。
8、使用 olsnodes 命令验证集群件是否注册了所有节点。
[oracle@oradb1 oracle]$ olsnodes
oradb1 oradb2 oradb3 oradb4 oradb5 [oracle@oradb1 oracle]$ |
[oracle@oradb1 oracle]$ crs_stat -t
Name Type Target State Host ------------------------------------------------------------ ora.oradb1.gsd application ONLINE ONLINE oradb1 ora.oradb1.ons application ONLINE ONLINE oradb1 ora.oradb1.vip application ONLINE ONLINE oradb1 ora.oradb2.gsd application ONLINE ONLINE oradb2 ... ora.oradb3.vip application ONLINE ONLINE oradb3 ora.oradb4.gsd application ONLINE ONLINE oradb4 ora.oradb4.ons application ONLINE ONLINE oradb4 ora.oradb4.vip application ONLINE ONLINE oradb4 ora.oradb5.gsd application ONLINE ONLINE oradb5 ora.oradb5.ons application ONLINE ONLINE oradb5 ora.oradb5.vip application ONLINE ONLINE oradb5 |
[oracle@oradb5 oracle]$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:90:27:B8:58:10 inet addr:192.168.2.50 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:123 errors:0 dropped:0 overruns:0 frame:0 TX packets:67 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:583308844 (556.2 Mb) TX bytes:4676477 (4.4 Mb) eth0:1 Link encap:Ethernet HWaddr 00:90:27:B8:58:10 |
2、Welcome — 单击 Next。
3、指定要通过添加来安装的集群节点 — 在该屏幕中,OUI 列出了集群的现有节点,并在下半个屏幕中列出了新节点(一个或多个)。选择节点 oradb5。输入信息之后,单击 Next。
4、集群节点添加总结 — 验证新节点列在“New Nodes”下拉菜单之下并单击 Install 按钮。
5、将 Oracle 软件复制到节点 oradb5 之后,OUI 将提示您以 root 用户的身份在另一个窗口中对集群中的新节点(一个或多个)执行 /usr/app/oracle/product/10.2.0/db_1/root.sh 脚本。
[root@oradb5 db_1]# ./root.sh
Running Oracle10 root.sh script... The following environment variables are set as: Enter the full pathname of the local bin directory: [/usr/local/bin]: Creating /etc/oratab file... |
7、安装结束 — 单击 Exit。
2、Oracle 集群件应该运行在所有节点上。
2、第 1 步(共 7 步):操作 — 列出了可以使用 DBCA 执行的所有操作列表。选中 Instance Management,然后单击 Next。
3、第 2 步(共 7 步):实例管理 — 列出了可以执行的实例管理操作列表。选中 Add an Instance,然后单击 Next。
4、第 3 步(共 7 步):集群数据库列表 — 列出了该节点上运行的集群数据库列表。在本例中,运行在节点 oradb1 上的数据库是 SSKYDB;选择该数据库。在屏幕下半部分,DBCA 要求您“利用 SYSDBA 系统特权指定一个用户”:
Username:sys
Password:< > 并单击 Next。
5、第 4 步(共 7 步):集群数据库实例列表 — DBCA 将列出集群上当前可用的所有实例。验证是否列出了所有实例并单击 Next。/li>
6、第 5 步(共 7 步):实例命名和节点选择 — DBCA 将列出序列中的下一个实例名并请求该节点来添加此实例。在我们的示例中,下一个实例名是 SSKY5,节点名是 oradb5。进行适当的选择后单击 Next。在该阶段,在下一屏幕显示之前会有一个小暂停,因为 DBCA 要确定新节点的当前状态以及当前节点上配置了什么服务。
7、第 6 步(共 7 步):数据库服务 — 如果当前配置中配置了任何数据库服务,将显示该屏幕(否则跳过)。在我们的示例中,当前配置定义了两个服务 — CRM 和 PAYROLL。该屏幕提示跨新实例配置它们。进行适当的选择并在准备好后单击 Next。
8、第 7 步(共 7 步):实例存储 — 在该屏幕中,DBCA 将列出实例特定的文件,例如,撤消表空间、重做日志组,等等。验证是否列出了所需的所有文件并单击 Finish。
9、数据库配置助手:总结 — 验证该总结后,单击 OK 开始软件安装。
10、DBCA 验证新节点 oradb5,而且由于该数据库配置为使用 ASM,将提示消息“ASM 位于该集群上,但需要扩展到以下节点:[oradb5]。您想扩展 ASM 吗?”单击 Yes 将 ASM 添加到新实例。
11、为了在新节点上创建并启动 ASM 实例,Oracle 要求监听程序可用且已启动。DBCA 通过请求特权提示使用端口 1521 和监听程序名 LISTENER_ORADB5 配置监听程序。如果默认端口可用,单击 Yes,否则单击 No 并在 oradb5 上手动执行 NetCA 来使用不同端口创建监听程序。
12、数据库配置助手进度屏幕 — 当实例管理完成后,将提示用户消息“您想执行另一操作吗?”单击 No 结束。
13在该阶段,以下内容是真实的:
b、已经在节点 oradb5 上安装了该 Oracle 软件。
c、已经在节点 oradb5 上创建并配置了 ASM5 和新 Oracle 实例 SSKY5。
SQL> select * from v$active_instances;
INST_NUMBER INST_NAME |
SQL> SELECT NAME,STATE,TYPE FROM V$ASM_DISKGROUP;
NAME STATE TYPE SQL> SELECT NAME FROM V$DATAFILE; NAME |
[oracle@oradb1 oracle]$ srvctl status database -d SSKYDB
Instance SSKY1 is running on node oradb1 Instance SSKY2 is running on node oradb2 Instance SSKY3 is running on node oradb3 Instance SSKY4 is running on node oradb4 Instance SSKY5 is running on node oradb5 |
[oracle@oradb1 oracle]$ srvctl status service -d SSKYDB
Service CRM is running on instance(s) SSKY1 Service CRM is running on instance(s) SSKY2 Service CRM is running on instance(s) SSKY3 Service CRM is running on instance(s) SSKY4 Service CRM is running on instance(s) SSKY5 Service PAYROLL is running on instance(s) SSKY1 Service PAYROLL is running on instance(s) SSKY5 |
第 7 步:执行日常管理任务
[oracle@oradb5 oracle]$ more .bash_profile
# Get the aliases and functions if [ -f ~/.bashrc ]; then . ~/.bashrc fi # User specific environment and startup programs export ORACLE_BASE=/usr/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin export LD_ASSUME_KERNEL=2.4.19 export CLASSPATH=$ORACLE_HOME/JRE |
CRAC =
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oradb1-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = oradb2-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = oradb3-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = oradb4-vip)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = oradb5-vip)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = CRM) ) ) |
[oracle@oradb4 oracle]$ more $ORACLE_HOME/opmn/conf/ons.config
localport=6101 remoteport=6201 loglevel=3 useocr=on nodes=oradb4.sumsky.net:6101,oradb2.sumsky.net:6201, oradb1.sumsky.net:6201,oradb3.sumsky.net:6201,oradb5.sumsky.net:6201 onsclient1.sumsky.net:6200,onsclient2.sumsky.net:6200 |
数据库名 | 节点编号 | 数据库版本 | 实例编号 | 操作系统内核版本 | 文件系统 | 集群管理器 |
SSKYDB
|
五个节点 — oradb1、oradb2、oradb3、oradb4 和 oradb5
|
10.2.0.1
|
五个实例 — SSKY1、SSKY2、SSKY3、SSKY4 和 SSKY5
|
Red Hat Advanced Server 3.0
Linux sumsky.net 2.4.21-32.ELsmp |
OCFS 1.0 和 ASM
|
Oracle 集群件
|
转载于:https://blog.51cto.com/linuxorg/129987
向基于Linux的Oracle RAC 10g集群添加新节点相关推荐
- HAC集群添加新节点
瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:4.5.7,4.5.6 文档用途 本文档用于指导HAC ...
- Hadoop集群添加新节点正确操作步骤
新加入的节点必须启动相关进程 编辑白名单 执行refresh命令
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...
- 基于linux的oracle_rac实时应用集群研究,基于Linux的OracleRAC实时应用集群研究毕业设计论文(资料4)...
<基于Linux的OracleRAC实时应用集群研究毕业设计论文.doc>由会员分享,可免费在线阅读全文,更多与<基于Linux的OracleRAC实时应用集群研究毕业设计论文> ...
- 基于linux的oracle_rac实时应用集群研究,基于Linux的OracleRAC实时应用集群研究毕业设计论文...
<基于Linux的OracleRAC实时应用集群研究毕业设计论文.doc>由会员分享,可免费在线阅读全文,更多与<基于Linux的OracleRAC实时应用集群研究毕业设计论文> ...
- linux集群管理平台,基于Linux平台的高可用集群管理系统的研究与实现
摘要: 集群管理系统的高可用性是指其能够连续地对外提供服务,本文针对集群系统的高可用性,以开源的集群搭建和管理软件KUSU为基础,以集群管理节点的双机热备份技术理论为支撑,以实现集群系统的帮障检测与业 ...
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群 (2)
13. 创建任务角色划分操作系统权限组.用户和目录 在集群的两个 Oracle RAC 节点上针对 grid 和 oracle 用户执行以下用户.组和目录配置并设置 shell 限制的任务. ...
- ogg oracle 测试kafka_基于OGG的Oracle与Hadoop集群/kafka准实时同步
Oracle里存储的结构化数据导出到Hadoop体系做离线计算是一种常见数据处置手段.近期有场景需要做Oracle到Hadoop体系的实时导入,这里以此案例做以介绍. Oracle作为商业化的数据库解 ...
- Oracle RAC万能集群测试大全 支持11g/12c/18c/19c版本
为了方便阅读,请横屏观看代码部分 一.Oracle RAC集群测试背景 某中大型制造业公司,由于要新上项目,建设了一套业务系统-ERP系统,这套系统的数据库环境是Oracle RAC(RHEL Lin ...
最新文章
- 学习小米附加和大润发飞牛模式
- 2017广东工业大学程序设计竞赛决赛 题解源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)...
- C和C++中include 搜索路径的一般形式以及gcc搜索头文件的路径
- Kotlin实战指南十二:data class
- 【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】
- Jenkins Job Buidler
- 学生自定义的键盘,功能强大齐全!!!
- powerquery加载pdf_pdf转换为excel,你不会,同事点点鼠标2分钟就搞定了
- ZOJ 3804 YY's Minions (简单模拟)
- 第一课.axis配置和写法入门
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第3节 综合案例_文件上传_4_综合案例_文件上传案例阻塞问题...
- java xml注释多行_如何在XML中注释单行?
- 实体连锁电商会员运营方案
- gc2000导出丝印和坐标_GC2000导坐标方法
- 【汇智学堂】基于Socket实现的网络版梅花易数一撮金游戏
- 三次Bezier曲线/B样条曲线转换成隐函数方程的方法
- java猫抓老鼠_猫抓老鼠-Java面向对象特点梳理
- php正则抓取网页指定内容,php正则匹配获取指定url网页页面超级链接地址与抓取指定页面内容方法...
- 【目标跟踪 SOT】SiamFC -用于对象跟踪的全卷积孪生网络
- ESP32C3串口通信