Srvctl命令具体解释(10g)
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/lovedieya/article/details/28169481
Srvctl命令
Srvctl命令式RAC维护中最经常使用的命令也是最复杂的命令。这个工具用来维护一下几种资源:Database,Instance,ASM,Service,Listener和Node Application,node Application又包含GSD,ONS,VIP。
Srvctl命令的使用方法:
[root@felix2 bin]# ./srvctl -help
Usage: srvctl <command> <object>[<options>]
command:enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config
objects:database|instance|service|nodeapps|asm|listener
For detailed help on each command and object andits options use:
srvctl<command> <object> -h
[root@felix2 bin]#
[root@felix1 bin]# ./srvctl -h
Usage: srvctl [-V]
Usage: srvctl add database -d <name> -o<oracle_home> [-m <domain_name>] [-p <spfile>] [-A<name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}][-s <start_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL}]
Usage: srvctl add instance -d <name> -i<inst_name> -n <node_name>
Usage: srvctl add service -d <name> -s<service_name> -r "<preferred_list>" [-a "<available_list>"][-P <TAF_policy>]
Usage: srvctl add service -d <name> -s<service_name> -u {-r "<new_pref_inst>" | -a"<new_avail_inst>"}
Usage: srvctl add nodeapps -n <node_name> -o<oracle_home> -A <name|ip>/netmask[/if1[|if2|...]]
Usage: srvctl add asm -n <node_name> -i<asm_inst_name> -o <oracle_home> [-p <spfile>]
Usage: srvctl config database
Usage: srvctl config database -d <name> [-a][-t]
Usage: srvctl config service -d <name> [-s<service_name>] [-a] [-S <level>]
Usage: srvctl config nodeapps -n <node_name>[-a] [-g] [-s] [-l]
Usage: srvctl config asm -n <node_name>
Usage: srvctl config listener -n <node_name>
Usage: srvctl disable database -d <name>
Usage: srvctl disable instance -d <name> -i"<inst_name_list>"
Usage: srvctl disable service -d <name> -s"<service_name_list>" [-i <inst_name>]
Usage: srvctl disable asm -n <node_name> [-i<inst_name>]
Usage: srvctl enable database -d <name>
Usage: srvctl enable instance -d <name> -i"<inst_name_list>"
Usage: srvctl enable service -d <name> -s"<service_name_list>" [-i <inst_name>]
Usage: srvctl enable asm -n <node_name> [-i<inst_name>]
Usage: srvctl getenv database -d <name> [-t"<name_list>"]
Usage: srvctl getenv instance -d <name> -i<inst_name> [-t "<name_list>"]
Usage: srvctl getenv service -d <name> -s<service_name> [-t "<name_list>"]
Usage: srvctl getenv nodeapps -n <node_name>[-t "<name_list>"]
Usage: srvctl modify database -d <name> [-n<db_name] [-o <ohome>] [-m <domain>] [-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>] [-y {AUTOMATIC | MANUAL}]
Usage: srvctl modify instance -d <name> -i<inst_name> -n <node_name>
Usage: srvctl modify instance -d <name> -i<inst_name> {-s <asm_inst_name> | -r}
Usage: srvctl modify service -d <name> -s<service_name> -i <old_inst_name> -t <new_inst_name> [-f]
Usage: srvctl modify service -d <name> -s<service_name> -i <avail_inst_name> -r [-f]
Usage: srvctl modify service -d <name> -s<service_name> -n -i <prefered_inst> [-a <available_list>][-f]
Usage: srvctl modify asm -n <node_name> -i<asm_inst_name> [-o <oracle_home>] [-p <spfile>]
Usage: srvctl modify nodeapps -n <node_name>[-o <oracle_home>] [-A <new_vip_address>]
Usage: srvctl relocate service -d <name> -s<service_name> -i <old_inst_name> -t <new_inst_name> [-f]
Usage: srvctl remove database -d <name> [-f]
Usage: srvctl remove instance -d <name> -i<inst_name> [-f]
Usage: srvctl remove service -d <name> -s<service_name> [-i <inst_name>] [-f]
Usage: srvctl remove nodeapps -n"<node_name_list>" [-f]
Usage: srvctl remove asm -n <node_name> [-i<asm_inst_name>] [-f]
Usage: srvctl setenv database -d <name> {-t<name>=<val>[,<name>=<val>,...] | -T<name>=<val>}
Usage: srvctl setenv instance -d <name> [-i<inst_name>] {-t"<name>=<val>[,<name>=<val>,...]" | -T"<name>=<val>"}
Usage: srvctl setenv service -d <name> [-s<service_name>] {-t"<name>=<val>[,<name>=<val>,...]" | -T"<name>=<val>"}
Usage: srvctl setenv nodeapps -n <node_name>{-t "<name>=<val>[,<name>=<val>,...]" | -T"<name>=<val>"}
Usage: srvctl start database -d <name> [-o<start_options>]
Usage: srvctl start instance -d <name> -i"<inst_name_list>" [-o <start_options>]
Usage: srvctl start service -d <name> [-s"<service_name_list>" [-i <inst_name>]] [-o<start_options>]
Usage: srvctl start nodeapps -n <node_name>
Usage: srvctl start asm -n <node_name> [-i<asm_inst_name>] [-o <start_options>]
Usage: srvctl start listener -n <node_name>[-l <lsnr_name_list>]
Usage: srvctl status database -d <name> [-f][-v] [-S <level>]
Usage: srvctl status instance -d <name> -i"<inst_name_list>" [-f] [-v] [-S <level>]
Usage: srvctl status service -d <name> [-s"<service_name_list>"] [-f] [-v] [-S <level>]
Usage: srvctl status nodeapps -n <node_name>
Usage: srvctl status asm -n <node_name>
Usage: srvctl stop database -d <name> [-o<stop_options>]
Usage: srvctl stop instance -d <name> -i"<inst_name_list>" [-o <stop_options>]
Usage: srvctl stop service -d <name> [-s"<service_name_list>" [-i <inst_name>]] [-f]
Usage: srvctl stop nodeapps -n <node_name>[-r]
Usage: srvctl stop asm -n <node_name> [-i<asm_inst_name>] [-o <stop_options>]
Usage: srvctl stop listener -n <node_name>[-l <lsnr_name_list>]
Usage: srvctl unsetenv database -d <name> -t"<name_list>"
Usage: srvctl unsetenv instance -d <name>[-i <inst_name>] -t "<name_list>"
Usage: srvctl unsetenv service -d <name> [-s<service_name>] -t "<name_list>"
Usage: srvctl unsetenv nodeapps -n<node_name> -t "<name_list>"
使用config查看配置
1.查看数据库配置。
[root@felix2 bin]# ./srvctl config database
felix
[root@felix2 bin]#
[root@felix2 bin]# ./srvctl config database -dfelix
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
[root@felix2 bin]#
[root@felix2 bin]# ./srvctl config database -dfelix -a
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
DB_UNIQUE_NAME: felix
DB_NAME: null
ORACLE_HOME: /u01/oracle/10.2.0/db_1
SPFILE: +DATA/felix/spfilefelix.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
[root@felix2 bin]#
2.查看node Application的配置
[root@felix2 bin]# ./srvctl config nodeapps -nfelix
PRKC-1056 : Failed to get the hostname for nodefelix
PRKH-1001 : HASContext Internal Error
[OCRError(Native: getHostName:[21])]
[root@felix2 bin]# ./srvctl config nodeapps -nfelix1
felix1 felix1 /u01/oracle/10.2.0/db_1
[root@felix2 bin]# ./srvctl config nodeapps -nfelix1 -h
Usage: srvctl config nodeapps -n <node_name>[-a] [-g] [-s] [-l]
-n<node> Node name
-a Display VIP configuration
-g Display GSD configuration
-s Display ONS daemonconfiguration
-l Display listenerconfiguration
-h Print usage
[root@felix2 bin]#
[root@felix2 bin]# ./srvctl config nodeapps -nfelix1 -a
VIP exists.:/felix1-vip/192.168.10.111/255.255.255.0/eth0
[root@felix2 bin]# ./srvctl config nodeapps -nfelix1 -g
GSD exists.
[root@felix2 bin]# ./srvctl config nodeapps -nfelix1 -s
ONS daemon exists.
[root@felix2 bin]# ./srvctl config nodeapps -nfelix1 -l
Listener exists.
3.产看监听状态
[root@felix2 bin]# ./srvctl config listener -nfelix1
felix1 LISTENER_FELIX1
4.查看ASM
[root@felix2 bin]# ./srvctl config asm -n felix2
+ASM2 /u01/oracle/10.2.0/db_1
[root@felix2 bin]#
5.查看service
[root@felix2 bin]# ./srvctl config service -h
Usage: srvctl config service -d <name> [-s<service_name>] [-a] [-S <level>]
-d<name> Unique name forthe database
-s<service> Service name
-a Additional attributes
-S <level> Additional information for EM Console
-h Print usage
[root@felix2 bin]#
使用add加入对象:
普通情况下,应用层的资源都是在图形化界面的帮助下注冊到OCR中。比方VIP、ONS是在安装最后阶段创建的,而数据库、ASM是在运行DBCA的过程中自己主动注冊到OCR中。LISTENER是通过NETCA工具。有写时候须要手工把资源注冊到OCR中,这事就用到了add命令。
[root@felix1 bin]# ./srvctl -h
Usage: srvctl [-V]
Usage: srvctl add database -d <name> -o<oracle_home> [-m <domain_name>] [-p <spfile>] [-A<name|ip>/netmask] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY}][-s <start_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL}]
Usage: srvctl add instance -d <name> -i<inst_name> -n <node_name>
Usage: srvctl add service -d <name> -s<service_name> -r "<preferred_list>" [-a"<available_list>"] [-P <TAF_policy>]
Usage: srvctl add service -d <name> -s<service_name> -u {-r "<new_pref_inst>" | -a"<new_avail_inst>"}
Usage: srvctl add nodeapps -n <node_name> -o<oracle_home> -A <name|ip>/netmask[/if1[|if2|...]]
Usage: srvctl add asm -n <node_name> -i<asm_inst_name> -o <oracle_home> [-p <spfile>]
Usage: srvctl config database
Usage: srvctl config database -d <name> [-a][-t]
Usage: srvctl config service -d <name> [-s<service_name>] [-a] [-S <level>]
Usage: srvctl config nodeapps -n <node_name>[-a] [-g] [-s] [-l]
Usage: srvctl config asm -n <node_name>
Usage: srvctl config listener -n <node_name>
Usage: srvctl disable database -d <name>
Usage: srvctl disable instance -d <name> -i"<inst_name_list>"
Usage: srvctl disable service -d <name> -s"<service_name_list>" [-i <inst_name>]
Usage: srvctl disable asm -n <node_name> [-i<inst_name>]
Usage: srvctl enable database -d <name>
Usage: srvctl enable instance -d <name> -i"<inst_name_list>"
Usage: srvctl enable service -d <name> -s"<service_name_list>" [-i <inst_name>]
Usage: srvctl enable asm -n <node_name> [-i<inst_name>]
Usage: srvctl getenv database -d <name> [-t"<name_list>"]
Usage: srvctl getenv instance -d <name> -i<inst_name> [-t "<name_list>"]
Usage: srvctl getenv service -d <name> -s<service_name> [-t "<name_list>"]
Usage: srvctl getenv nodeapps -n <node_name>[-t "<name_list>"]
Usage: srvctl modify database -d <name> [-n<db_name] [-o <ohome>] [-m <domain>] [-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY |LOGICAL_STANDBY}] [-s <start_options>] [-y {AUTOMATIC | MANUAL}]
Usage: srvctl modify instance -d <name> -i<inst_name> -n <node_name>
Usage: srvctl modify instance -d <name> -i<inst_name> {-s <asm_inst_name> | -r}
Usage: srvctl modify service -d <name> -s<service_name> -i <old_inst_name> -t <new_inst_name> [-f]
Usage: srvctl modify service -d <name> -s<service_name> -i <avail_inst_name> -r [-f]
Usage: srvctl modify service -d <name> -s<service_name> -n -i <prefered_inst> [-a <available_list>][-f]
Usage: srvctl modify asm -n <node_name> -i<asm_inst_name> [-o <oracle_home>] [-p <spfile>]
Usage: srvctl modify nodeapps -n <node_name>[-o <oracle_home>] [-A <new_vip_address>]
Usage: srvctl relocate service -d <name> -s<service_name> -i <old_inst_name> -t <new_inst_name> [-f]
Usage: srvctl remove database -d <name> [-f]
Usage: srvctl remove instance -d <name> -i<inst_name> [-f]
Usage: srvctl remove service -d <name> -s<service_name> [-i <inst_name>] [-f]
Usage: srvctl remove nodeapps -n"<node_name_list>" [-f]
Usage: srvctl remove asm -n <node_name> [-i<asm_inst_name>] [-f]
Usage: srvctl setenv database -d <name> {-t<name>=<val>[,<name>=<val>,...] | -T<name>=<val>}
Usage: srvctl setenv instance -d <name> [-i<inst_name>] {-t"<name>=<val>[,<name>=<val>,...]" | -T"<name>=<val>"}
Usage: srvctl setenv service -d <name> [-s<service_name>] {-t "<name>=<val>[,<name>=<val>,...]"| -T "<name>=<val>"}
Usage: srvctl setenv nodeapps -n <node_name>{-t "<name>=<val>[,<name>=<val>,...]" | -T"<name>=<val>"}
Usage: srvctl start database -d <name> [-o<start_options>]
Usage: srvctl start instance -d <name> -i"<inst_name_list>" [-o <start_options>]
Usage: srvctl start service -d <name> [-s"<service_name_list>" [-i <inst_name>]] [-o<start_options>]
Usage: srvctl start nodeapps -n <node_name>
Usage: srvctl start asm -n <node_name> [-i<asm_inst_name>] [-o <start_options>]
Usage: srvctl start listener -n <node_name>[-l <lsnr_name_list>]
Usage: srvctl status database -d <name> [-f][-v] [-S <level>]
Usage: srvctl status instance -d <name> -i"<inst_name_list>" [-f] [-v] [-S <level>]
Usage: srvctl status service -d <name> [-s"<service_name_list>"] [-f] [-v] [-S <level>]
Usage: srvctl status nodeapps -n <node_name>
Usage: srvctl status asm -n <node_name>
Usage: srvctl stop database -d <name> [-o<stop_options>]
Usage: srvctl stop instance -d <name> -i"<inst_name_list>" [-o <stop_options>]
Usage: srvctl stop service -d <name> [-s"<service_name_list>" [-i <inst_name>]] [-f]
Usage: srvctl stop nodeapps -n <node_name>[-r]
Usage: srvctl stop asm -n <node_name> [-i<asm_inst_name>] [-o <stop_options>]
Usage: srvctl stop listener -n <node_name>[-l <lsnr_name_list>]
Usage: srvctl unsetenv database -d <name> -t"<name_list>"
Usage: srvctl unsetenv instance -d <name>[-i <inst_name>] -t "<name_list>"
Usage: srvctl unsetenv service -d <name> [-s<service_name>] -t "<name_list>"
Usage: srvctl unsetenv nodeapps -n<node_name> -t "<name_list>"
加入数据库
[oracle@felix1 conf]$ srvctl config database
Felix
[oracle@felix1 conf]$ srvctl add database -d felix001-o $ORACLE_HOME
[oracle@felix1 conf]$ srvctl config database
felix
felix001
[oracle@felix1 conf]$ srvctl remove database -dfelix001
Remove the database felix001? (y/[n]) y
[oracle@felix1 conf]$ srvctl config database
felix
[oracle@felix1 conf]$
加入实例
[oracle@felix1 conf]$ srvctl add instance -dfelix001 -h
Usage: srvctl add instance -d <name> -i<inst_name> -n <node_name>
-d<name> Unique name forthe database
-i<inst> Instance name
-n<node> Node name
-h Print usage
[oracle@felix1 conf]$ srvctl add instance -dfelix001 -n felix1 -i inst_a1
[oracle@felix1 conf]$ srvctl remove instance -dfelix001 -h
Usage: srvctl remove instance -d <name> -i<inst_name> [-f]
-d<name> Unique name forthe database
-i<inst> Instance name
-f Force remove
-h Print usage
[oracle@felix1 conf]$ srvctl remove instance -dfelix001 -i inst_a1
Remove instance inst_a1 from the databasefelix001? (y/[n]) y
使用enable、disable启动和禁用对象
缺省情况下数据库、实例、服务、ASM都是随着CRS的启动而启动的。有时因为维护的须要能够先关闭这个特性。
(1) 配置数据库随CRS的启动而启动
[oracle@felix1 conf]$ srvctl config database -d felix -a
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
DB_UNIQUE_NAME: felix
DB_NAME: null
ORACLE_HOME: /u01/oracle/10.2.0/db_1
SPFILE: +DATA/felix/spfilefelix.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
[oracle@felix1 conf]$
[oracle@felix1 conf]$ srvctl disable database -d felix
[oracle@felix1 conf]$ srvctl config database -d felix -a
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
DB_UNIQUE_NAME: felix
DB_NAME: null
ORACLE_HOME: /u01/oracle/10.2.0/db_1
SPFILE: +DATA/felix/spfilefelix.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: MANUAL
ENABLE FLAG: DB DISABLED, INST DISABLED ON felix1 felix2
[oracle@felix1 conf]$
[oracle@felix1 conf]$ srvctl enable database -d felix
[oracle@felix1 conf]$ srvctl config database -d felix -a
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
DB_UNIQUE_NAME: felix
DB_NAME: null
ORACLE_HOME: /u01/oracle/10.2.0/db_1
SPFILE: +DATA/felix/spfilefelix.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
[oracle@felix1 conf]$
(2) 关闭某个实例的自己主动启动
[oracle@felix1 conf]$ srvctl config database -d felix -a
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
DB_UNIQUE_NAME: felix
DB_NAME: null
ORACLE_HOME: /u01/oracle/10.2.0/db_1
SPFILE: +DATA/felix/spfilefelix.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED
[oracle@felix1 conf]$ srvctl disable instance -d felix -i felix1
[oracle@felix1 conf]$ srvctl config database -d felix -a
felix1 felix1 /u01/oracle/10.2.0/db_1
felix2 felix2 /u01/oracle/10.2.0/db_1
DB_UNIQUE_NAME: felix
DB_NAME: null
ORACLE_HOME: /u01/oracle/10.2.0/db_1
SPFILE: +DATA/felix/spfilefelix.ora
DOMAIN: null
DB_ROLE: null
START_OPTIONS: null
POLICY: AUTOMATIC
ENABLE FLAG: DB ENABLED, INST DISABLED ON felix1
[oracle@felix1 conf]$ srvctl enable instance -d felix -i felix1
Srvctl命令具体解释(10g)的更多相关文章
- 对Oracle10g rac srvctl命令使用理解
srvctl命令是RAC维护中最常用到的命令,也最为复杂,使用这个命令可以操作CRS上的Database,Instance,ASM,Service.Listener和Node Application资 ...
- RAC6——crsctl 和 srvctl 命令的区别理解
Oracle Clusterware提供了丰富的工具,我们把常用的工具按照rac的四层机构做了划分,然后分别介绍: 节点层: olsnodes 参数-n -i -p 网络层: oifcfg 四个子命令 ...
- 设计模式 - 命令模式(command pattern) 多命令 具体解释
命令模式(command pattern) 多命令 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考命令模式: http://blog.csdn.ne ...
- srvctl 命令
SRVCTL命令可以控制RAC数据库中的instance,listener以及services.通常SRVCTL在ORACLE用户下执行.下面我们来介绍srvctl命令.1.通过SRVCTL命令来st ...
- oracle srvctl 命令
SRVCTL命令可以控制RAC数据库中的instance,listener以及services. 通常SRVCTL在ORACLE用户下执行.下面我们来介绍srvctl命令. 1.通过SRVCTL命令来 ...
- Linux学习笔记15——GDB 命令详细解释【转】
GDB 命令详细解释 Linux中包含有一个很有用的调试工具--gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具. 和所有常用的调试工 ...
- oracle中imp命令具体解释
oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...
- Linux下的压缩zip,解压缩unzip命令具体解释及实例
实例:压缩server上当前文件夹的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前文件夹 unzip filename.zip ================= ...
- Linux ln命令具体解释及使用
Linux ln命令具体解释及使用 ln是linux中一个很重要命令,它的功能是为某一个文件在另外一个位置建立一个不同的链接,这个命令最经常使用的參数是-s,详细使用方法是:ln –s 源文件 目标文 ...
随机推荐
- LeetCode OJ-- Trapping Rain Water*
https://oj.leetcode.com/problems/trapping-rain-water/ 模拟题,计算出在凹凸处存水量. 对于一个位置 i ,分别计算出它左边的最大值 left (从 ...
- Java调用Python程序
最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式. 一.使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不 ...
- 朱子奇- 精算师,Tailorwoods创始人 | 到「在行」来约见我
朱子奇- 精算师,Tailorwoods创始人 | 到「在行」来约见我 Tailorwoods
- 手机微硬盘读取速度>50MB/s eMMC技术浅析
转载:http://mobile.zol.com.cn/296/2968659_all.html#p2968659 手机微硬盘读取速度>50MB/s 在开始今天的话题之前,请大家随笔者一起时光倒 ...
- [转] DataSet的的几种遍历
1. 多表多行多列的情况 foreach (DataTable dt in YourDataset.Tables) //遍历所有的datatable { foreach (DataRow dr in ...
- 邁向IT專家成功之路的三十則鐵律 鐵律九:IT人社群互動之道-縮小自己
身為一位專業的IT人士所要學習的東西實在非常的多,然而對於時間相當有限的我們,最快速的學習方法就是向他人學習,而向他人學習的首要態度就是「縮小自己」.唯有將自己縮小到別人的眼睛裡,才能夠讓他們真心誠意 ...
- curl如何发送json数据?如何发送form数据?python的restfull又该如何获取这些数据?
1.python使用flask+flask_restfull框架写的api接口,做为服务 2.curl 做为客户端发送数据 from flask import request curl发送json的方 ...
- 设计模式——介绍与工厂模式(扁平管理模式VS职业经理人模式)
本文主要对设计模式进行大概解说.特别是对工厂模式进行简明的解析: 一.设计模式的分类 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式. ...
- 使用 sftp 向linux服务器传输文件
sftp是加密的文件传输. 登陆 sftp name@123.21.331.1 1 2.把本地文件name1传到服务器name2下 put /name1.html /name2/ 1 把服务器name ...
- iOS实现提现类似的密码输入框
最近一段时间,在网上不断看了一些技术人员写的代码demo,由于前段时间一直在写一个电商项目,记得有一个功能和看到的demo中类似,但是截然2种不同的处理方法,个人觉得我的这个方法更为简洁一些,所以我把 ...