##############################

[grid@rac01 ~]$ crsctl query crs administrator
CRS Administrator List: *
[grid@rac01 ~]$ crsctl query crs activeversion
Oracle Clusterware active version on the cluster is [11.2.0.4.0]
[grid@rac01 ~]$ crsctl query crs releaseversion
Oracle High Availability Services release version on the local node is [11.2.0.4.0]
[grid@rac01 ~]$ crsctl query crs softwareversion
Oracle Clusterware version on node [rac01] is [11.2.0.4.0]

[grid@rac02 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   7bf2c81459334ffebf01c410d096a047 (ORCL:CRSVOL1) [CRS]
Located 1 voting disk(s).

[grid@rac01 ~]$ crsctl check crs
CRS-4638: Oracle High Availability Services is online
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac01 ~]$ crsctl check css
CRS-4529: Cluster Synchronization Services is online
[grid@rac01 ~]$ crsctl check ctss
CRS-4700: The Cluster Time Synchronization Service is in Observer mode.
[grid@rac01 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac01 ~]$ crsctl check cluster -all
**************************************************************
rac01:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************
rac02:
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
**************************************************************

[root@rac02 bin]# /u01/app/11.2.0/grid/bin/crsctl config crs
CRS-4622: Oracle High Availability Services autostart is enabled.

##############################

[grid@cu-kvm1 trace]$ cluvfy comp ssa

Verifying shared storage accessibility

Checking shared storage accessibility...

Disk                                  Sharing Nodes (1 in count)
  ------------------------------------  ------------------------
  /dev/sda                              cu-kvm1

Disk                                  Sharing Nodes (1 in count)
  ------------------------------------  ------------------------
  /dev/sdb                              cu-kvm1
  /dev/sdc                              cu-kvm1
  /dev/sdd                              cu-kvm1
  /dev/sde                              cu-kvm1
  /dev/sdf                              cu-kvm1
  /dev/sdg                              cu-kvm1

Shared storage check was successful on nodes "cu-kvm1"

Verification of shared storage accessibility was successful.

#########################################
[grid@cu-kvm1 trace]$ cluvfy comp asm -n all

Verifying ASM Integrity

Task ASM Integrity check started...

Starting check to see if ASM is running on all cluster nodes...

ASM Running check passed. ASM is running on all specified nodes

Starting Disk Groups check to see if at least one Disk Group configured...
Disk Group Check passed. At least one Disk Group configured

Task ASM Integrity check passed...

Verification of ASM Integrity was successful.

############################

[oracle@oracle-test OPatch]$ ./opatch lsinventory
Oracle Interim Patch Installer version 11.2.0.3.4
Copyright (c) 2012, Oracle Corporation.  All rights reserved.

Oracle Home       : /u01/app/oracle/product/11.2/db_1
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/11.2/db_1//oraInst.loc
OPatch version    : 11.2.0.3.4
OUI version       : 11.2.0.4.0
Log file location : /u01/app/oracle/product/11.2/db_1/cfgtoollogs/opatch/opatch2017-01-21_15-03-01PM_1.log

Lsinventory Output file location : /u01/app/oracle/product/11.2/db_1/cfgtoollogs/opatch/lsinv/lsinventory2017-01-21_15-03-01PM.txt

--------------------------------------------------------------------------------
Installed Top-level Products (1):

Oracle Database 11g                                                  11.2.0.4.0
There are 1 products installed in this Oracle Home.

There are no Interim patches installed in this Oracle Home.

--------------------------------------------------------------------------------

OPatch succeeded.
[oracle@oracle-test OPatch]$ pwd
/u01/app/oracle/product/11.2/db_1/OPatch

############################

[oracle@allinone ~]$ lcsscan help=y

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation.  All rights reserved.

You can control how LCSSCAN runs by entering the LCSSCAN command
 followed by the required parameters. To specify parameters, you use
 keywords:

Example: LCSSCAN RESULTS=2 END=1000 FORMAT=HTML FILE=index.html

Keyword    Description (Default)
 --------------------------------------------------------------------
 RESULTS    number of language and character set pairs to return (1)
 BEGIN      beginning byte offset of file (1)
 END        ending byte offset of file (end of file)
 FORMAT     file format TEXT, HTML or AUTO detect (TEXT)
 FILE       name of input file
 HELP       show help screen (this screen)

[oracle@allinone admin]$ csscan help=y

Character Set Scanner v2.2 : Release 11.2.0.4.0 - Production on Mon Mar 27 14:12:02 2017

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

You can let Scanner prompt you for parameters by entering the CSSCAN
command followed by your username/password:

Example: CSSCAN \"SYSTEM/MANAGER AS SYSDBA\"

Or, you can control how Scanner runs by entering the CSSCAN command
followed by various parameters. To specify parameters, you use keywords:

Example:
    CSSCAN \"SYSTEM/MANAGER AS SYSDBA\" FULL=y TOCHAR=utf8 ARRAY=1024000 PROCESS=3

Keyword    Default Prompt Description
---------- ------- ------ -------------------------------------------------
USERID             yes    username/password
FULL       N       yes    scan entire database
USER               yes    owner of tables to be scanned
TABLE              yes    list of tables to scan
COLUMN             yes    list of columns to scan
EXCLUDE                   list of tables to exclude from scan
TOCHAR             yes    new database character set name
FROMCHAR                  current database character set name
TONCHAR                   new national character set name
FROMNCHAR                 current national character set name
ARRAY      1024000 yes    size of array fetch buffer
PROCESS    1       yes    number of concurrent scan process
MAXBLOCKS                 split table if block size exceed MAXBLOCKS
CAPTURE    N              capture convertible data
SUPPRESS                  maximum number of exceptions logged for each table
FEEDBACK                  report progress every N rows
BOUNDARIES                list of column size boundaries for summary report
LASTRPT    N              generate report of the last database scan
LOG        scan           base file name of report files
PARFILE                   parameter file name
PRESERVE   N              preserve existing scan results
LCSD       N       no     enable language and character set detection
LCSDDATA   LOSSY   no     define the scope of the detection
HELP       N              show help screen (this screen)
QUERY      N              select clause to scan subset of tables or columns
---------- ------- ------ -------------------------------------------------
Scanner terminated successfully.

[oracle@allinone ~]$ lcsscan file=cp.html format=html results=3

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation.  All rights reserved.

cp.html:        SIMPLIFIED CHINESE  UTF8;       TRADITIONAL CHINESE  UTF8;      JAPANESE  UTF8;
[oracle@allinone ~]$ lcsscan file=dblog.txt

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation.  All rights reserved.

dblog.txt:      ENGLISH  US7ASCII;

[oracle@allinone ~]$ lcsscan file=sqlplus.txt results=3 begin=300

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation.  All rights reserved.

sqlplus.txt:    ENGLISH  WE8ISO8859P1;  FRENCH  WE8ISO8859P1;   ITALIAN  WE8ISO8859P1;

[oracle@allinone ~]$ lcsscan file=sqlplus.txt results=3 end=300

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation.  All rights reserved.

sqlplus.txt:    TRADITIONAL CHINESE  ZHT16MSWIN950;     JAPANESE  AL16UTF16LE;  JAPANESE  AL16UTF16;

=========================================

[grid@rac01 ~]$ ocrconfig -showbackup

rac01     2016/09/19 10:12:26     /u01/app/11.2.0/grid/cdata/rac-cluster/backup00.ocr

rac01     2016/09/19 06:12:26     /u01/app/11.2.0/grid/cdata/rac-cluster/backup01.ocr

rac01     2016/09/19 02:12:26     /u01/app/11.2.0/grid/cdata/rac-cluster/backup02.ocr

rac01     2016/09/18 06:12:24     /u01/app/11.2.0/grid/cdata/rac-cluster/day.ocr

rac01     2016/09/08 06:12:08     /u01/app/11.2.0/grid/cdata/rac-cluster/week.ocr
PROT-25: Manual backups for the Oracle Cluster Registry are not available
[grid@rac01 ~]$ ocrdump -backupfile /u01/app/11.2.0/grid/cdata/rac-cluster/day.ocr
[grid@rac01 ~]$ ls
normal  OCRDUMPFILE  oradiag_grid  spfileman.ora
[grid@rac01 ~]$ less OCRDUMPFILE

==================================

============================================

[grid@rac01 ~]$ srvctl
Usage: srvctl <command> <object> [<options>]
    commands: enable|disable|start|stop|relocate|status|add|remove|modify|getenv|setenv|unsetenv|config|convert|upgrade
    objects: database|instance|service|nodeapps|vip|network|asm|diskgroup|listener|srvpool|server|scan|scan_listener|oc4j|home|filesystem|gns|cvu
For detailed help on each command and object and its options use:
  srvctl <command> -h or
  srvctl <command> <object> -h

[grid@rac01 ~]$ srvctl status home -h

Displays the current state of of all resources for the Oracle home.

Usage: srvctl status home -o <oracle_home> -s <state_file> -n <node_name>
    -o <oracle_home>         ORACLE_HOME path
    -s <state_file>   Specify a file path for the 'srvctl status home' command to store the state of the resources
    -n <node_name>           Node name
    -h                       Print usage

[grid@rac01 ~]$ srvctl status database -d baoka
Instance baoka1 is running on node rac01
Instance baoka2 is running on node rac02

[grid@rac01 ~]$ srvctl status asm
ASM is running on rac02,rac01
[grid@rac01 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): rac02,rac01

[grid@rac01 ~]$ srvctl status server -n rac01
Server name: rac01
Server state: ONLINE
[grid@rac01 ~]$ srvctl status server -n rac02
Server name: rac02
Server state: ONLINE
[grid@rac01 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac02
[grid@rac01 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac02

[grid@rac01 ~]$ srvctl status filesystem -d baoka
PRCT-1129 : Execution of ACFS driver state check failed on local node with result ACFS-9459: ADVM/ACFS is not supported on this OS version: 'centos-release-6-8.el6.centos.12.3.x86_64
'
ACFS-9201: Not Supported
[grid@rac01 ~]$ srvctl status gns
PRCS-1065 : GNS is not configured.
[grid@rac01 ~]$ srvctl status cvu
CVU is enabled and running on node rac02

====================================
[grid@rac01 ~]$ srvctl status nodeapps
VIP rac01-vip is enabled
VIP rac01-vip is running on node: rac01
VIP rac02-vip is enabled
VIP rac02-vip is running on node: rac02
Network is enabled
Network is running on node: rac01
Network is running on node: rac02
GSD is disabled
GSD is not running on node: rac01
GSD is not running on node: rac02
ONS is enabled
ONS daemon is running on node: rac01
ONS daemon is running on node: rac02
eONS is enabled
eONS daemon is running on node: rac01
eONS daemon is running on node: rac02
[grid@rac01 ~]$ srvctl status listener
Listener LISTENER is enabled
Listener LISTENER is running on node(s): rac02
[grid@rac01 ~]$ srvctl status asm
ASM is running on rac01,rac02
[grid@rac01 ~]$ srvctl status scan
SCAN VIP scan1 is enabled
SCAN VIP scan1 is running on node rac01
[grid@rac01 ~]$ srvctl status scan_listener
SCAN Listener LISTENER_SCAN1 is enabled
SCAN listener LISTENER_SCAN1 is running on node rac01
[grid@rac01 ~]$ srvctl status srvpool
Server pool name: Free
Active servers count: 0
Server pool name: Generic
Active servers count: 2
[grid@rac01 ~]$ srvctl status oc4j
OC4J is disabled
[grid@rac01 ~]$ srvctl status database -d man
Instance man is not running on node rac01
[grid@rac01 ~]$ srvctl status database -d bus
Instance bus is running on node rac02

====================================

[grid@rac02 rac02]$ srvctl config database
bus
man
[grid@rac02 rac02]$ srvctl config database -d man
Database unique name: man
Database name: man
Oracle home: /u01/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA/man/spfileman.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: man
Database instances: man
Disk Groups: DATA,FLASH
Services:
Database is administrator managed

[grid@rac01 ~]$ srvctl config database -d baoka
Database unique name: baoka
Database name: baoka
Oracle home: /oracle/app/oracle/product/11.2.0/db_1
Oracle user: oracle
Spfile: +DATA1/baoka/spfilebaoka.ora
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: baoka
Database instances: baoka1,baoka2
Disk Groups: DATA1,FLASH,ARCH
Mount point paths:
Services:
Type: RAC
Database is administrator managed

[grid@rac02 rac02]$ srvctl config listener
Name: LISTENER
Network: 1, Owner: grid
Home: <CRS home>
End points: TCP:1521
[grid@rac02 rac02]$ srvctl config nodeapps
VIP exists.:rac01
VIP exists.: /rac01-vip/192.168.2.3/255.255.255.0/eth0
VIP exists.:rac02
VIP exists.: /rac02-vip/192.168.2.4/255.255.255.0/eth0
GSD exists.
ONS daemon exists. Local port 6100, remote port 6200
eONS daemon exists. Multicast port 22130, multicast IP address 234.241.222.16, listening port 2016

[grid@cu-kvm1 trace]$ srvctl config asm
ASM home: /u01/app/11.2.0/grid_1
ASM listener: LISTENER
[grid@cu-kvm1 trace]$ srvctl status asm
ASM is running on cu-kvm2,cu-kvm1

=====================================

crsctl status res ora.LISTENER_SCAN1.lsnr
crsctl status res ora.scan1.vip
crsctl stop res ora.LISTENER_SCAN1.lsnr
crsctl stop res ora.scan1.vip -f
crsctl start res ora.LISTENER_SCAN1.lsnr
crsctl start res ora.scan1.vip
select * from v$database;
select * from v$instance;

crsctl stat res -t

scanip不能自动漂移,只能手动
有时需要将RAC上的一些资源切换到其他节点,采用srvctl relocate 命令即可完成,如切换SCAN-IP
srvctl status scan_listener
srvctl relocate scan_listener -i 1 -n rac02

srvctl stop listener
srvctl stop scan_listener
srvctl start listener
srvctl start scan_listener

启用SCAN 之后,会在数据库与客户端之间,添加了一层虚拟的服务层,就是SCAN IP和SCAN IP Listener,在客户端仅需要配置SCAN IP的tns信息,通过SCANIP Listener,连接后台集群数据库。这样,不论集群数据库是否有添加或者删除节点的操作,均不会对客户端产生影响,也就不需要修改配置。
配置SCAN有3种方法:
1. 使用/etc/hosts文件
这个是我们目前用的最多的方式,但是缺点只能对应一个SCAN IP,该方法Oracle 不推荐,但是简单,不需要单独的DNS 服务器,使用该方法,客户端还是需要VIP来链接。 Oracle 推荐使用其他的2种方法来实现SCAN 功能。
2. 在DNS中定义域名,只需要在DNS中配置即可实现SCAN 功能。

=====================================

Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个主机vip的一个连接串,如果cluster增加了一个节点,那么对于每个连接数据库的客户端都需要修改这个tnsnames.ora。

引入了scan以后,就方便了客户端连接的一个接口,顾名思义 single client access name
,简单客户端连接名,这是一个唯一的名称,在整个公司网络内部唯一,并且在DNS中可以解析为三个ip地址,客户端连接的时候只需要知道这个名称,并连接即可,
每个SCAN VIP对应一个scan listener,cluster内部的service在每个scan listener上都有注册,scan
listener接受客户端的请求,并foward到不同的Local listener中去,还是由local
的listener提供服务给客户端。

scan只是一个名字,这个名字在DNS上解析成三个IP地址(VIP也是一个名字,也要配置一个ip地址阿)

无论cluster有多大(两个节点或者20个节点),都只有三个scan vip,在随机的节点上启动(如果是两个节点,可能三个vip在一个节点,也可能是1+2)

scan主要是简化客户端连接,你如果有20个节点,客户端连接的时候,是不是需要配置20个vip,如果用scan,只需要一个scan name就行了,剩下的事情,scan帮你做了。

至于为什么需要在dns里注册三个,主要是为了尽量提高可用性。
当节点数大于3时,最多也只会有3个SCAN listener,也就是说有的节点上没有scan listener.
如果使用/etc/hosts文件解析scan ip,因为不能做轮训的负载均衡,所以这时候scan ip就只能有一个了。

===============================

我们都知道Oracle RAC中每个节点都有一个虚拟IP,简称VIP,与公网IP在同一个网段。

没有VIP时,Oracle客户端是靠“TCP/IP协议栈超时”来判断服务器故障。而TCP/IP协议栈是作为OS Kernel的一部分来实现,不同的OS有不同的阀值,用户获悉数据库异常的时间完全取决于OS Kernel的实现,虽然有些OS允许修改这个阀值,但是会对其它程序产生未知影响。因此,oracle RAC引入了VIP,从而避开对TCP协议栈超时的依赖。

VIP和IP最主要的不同之处在于:VIP是浮动的,而IP是固定的。在所有节点都正常运行时,每个节点的VIP会被分配到public NIC上;在linux下ifconfig查看,public网卡上是2个IP地址;如果一个节点宕机,这个节点的VIP会被转移到还在运行的节点上。也就是幸存的节点的public NIC这个网卡上,会有3个IP地址。

当一个节点宕机,这个节点真实IP就连接不上了,但是这个节点的虚拟IP是可以连接的,他会自动把客户端的连接请求转接给存活的节点。
在tnsname.ora文件里,指定Address列表,客户端会随机选择一个节点来连接数据库,而不是顺序选择的。
    
VIP特点:
1 VIP是在clusterware安装最后阶段,通过脚本VIPCA创建的;
2 VIP作为一个Nodeapps类型的CRS Resource注册到OCR中,并由CRS维护状态;
3 VIP会绑定到节点的public 网卡上;那么public网卡就有两个地址了;
4 当某个节点发生故障时,CRS会把故障节点的VIP转移到其他节点上;
5 每个节点的Listener会同时在public网卡的public IP和VIP两个地址上监听;
6 客户端的tnsname.ora一般会配置指向节点的VIP;

从上面第6条可以引出一个问题。如果增加一个节点,那么客户端的tnsname.ora需要加入新增节点的VIP。那么想象一下:多个客户端,增加多个节点,那么维护起来特别麻烦。因此到了Oracle11gR2,引入了一个scan的概念。

scan,single client access
name。简单客户端连接名,这是一个唯一的名称,在整个公司网络内部唯一,并且在DNS中可以解析为三个ip地址,客户端连接的时候只需要知道这个名称,并连接即可,
每个SCAN VIP对应一个scan listener,cluster内部的service在每个scan listener上都有注册,scan
listener接受客户端的请求,并foward到不同的Local listener中去,还是由local
的listener提供服务给客户端。
   
    注意:scan不一定要resolve到三个ip,一个也够了。只不过为了防止scan单点故障而推荐3个。

=================================

oracle-srvctl-output的更多相关文章

  1. oracle srvctl 命令

    SRVCTL命令可以控制RAC数据库中的instance,listener以及services. 通常SRVCTL在ORACLE用户下执行.下面我们来介绍srvctl命令. 1.通过SRVCTL命令来 ...

  2. Oracle - Dbms Output window

    Ensure that you have your Dbms Output window open through the view option in the menubar. Click on t ...

  3. Oracle Database 11g Release 2(11.2.0.3.0) RAC On Redhat Linux 5.8 Using Vmware Workstation 9.0

    一,简介 二,配置虚拟机 1,创建虚拟机 (1)添加三块儿网卡:   主节点 二节点 eth0:    公网  192.168.1.20/24   NAT eth0:    公网  192.168.1 ...

  4. ORACLE 11g RAC-RAC DG Duplicate 搭建(生产操作文档)

    环境:rhel 6.7 64位源库:ORACLE 11204 RAC 未打PSU备库:ORACLE 11204 RAC PSU 20170718 一.停止中间件并做全库备份 1.在节点2做全备 2.首 ...

  5. 【ORACLE】11g rac+dg

    首先感谢群友分享的文档,在这里先感谢哆啦B梦,非常感谢 该文档主要指导如何利用现有的RAC环境搭建一套RAC与单实例的DG的环境  ============================主机配置信息 ...

  6. Oracle 11g RAC停止和启动步骤

    关闭前备份控制文件/参数文件:   sqlplus / as sysdba alter database backup controlfile to '/home/oracle/control.ctl ...

  7. oracle RAC切换归档

    (转自leshami)    RAC环境下的归档模式切换与单实例稍有不同,主要是共享存储所产生的差异.在这种情况下,我们可以将RAC数据库切换到非集群状态下,仅仅在一个实例上来实施归档模式切换即可完成 ...

  8. 通过srvctl add命令添加database信息到srvctl管理器-转

    这是我在实际中遇到的一个问题,rac+dg架构将备库切为主库,srvctl管理器中没有database信息. 对于dbca创建的数据库,srvctl中包含了数据库和实例的信息.但是对于备份恢复的RAC ...

  9. Oracle 12c RAC 静默安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...

  10. oracle之 RAC 11G ASM下控制文件多路复用

    如果数据库仅有一组control file文件,需要添加一组或者多组,保证一组文件损坏或者丢失导致数据库宕机. -- 环境说明SQL> select * from v$version;BANNE ...

随机推荐

  1. net core2 采坑-- session 缓存

    引用 Microsoft.Extensions.Caching.SqlServer 可以设置存在数据库 Microsoft.Extensions.Caching.Redis 存在redis 参考 ht ...

  2. winserver 搭建 Citrix License 许可服务器

    1.  申请许可证 Citrix XenApp_XenDesktop7.6和XenServer 6.5申请许可证的步骤是一致的,由于之前我已经申请过XenApp_XenDesktop的许可证,本次以X ...

  3. 传统应用迁移到kubernetes(Hadoop YARN)

    spark-on-yarn-with-kubernetes 该例子仅用来说明具体的步骤划分和复杂性,在生产环境应用还有待验证,请谨慎使用. 过程中可能用到的概念和术语初步整理如下: 整个迁移过程分为如 ...

  4. DevExpress v18.1新版亮点——CodeRush for VS篇(一)

    用户界面套包DevExpress v18.1日前正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了CodeRush for Visual Studio v18.1 的新功能,快来下载试 ...

  5. ACID/CAP/BASE 理论知识

    ACID是事务的四大特性,想要成为事务,必须具备这四点. Atomicity 原子性体现在对于一个事务来讲,要么一起执行成功要么一起失败,执行的过程中是不能被打断或者执行其他操作的. Consiste ...

  6. SparkStreaming实时日志分析--实时热搜词

    Overview 整个项目的整体架构如下: 关于SparkStreaming的部分: Flume传数据到SparkStreaming:为了简单使用的是push-based的方式.这种方式可能会丢失数据 ...

  7. 在 子 iframe中 点击一个按钮, 变换 这个 iframe的地址url.

    //跳到测试结果: function jump() { console.log(self.parent.document.getElementById("iframe").src) ...

  8. css引入外部字体使网站字体更美观

    @font-face{font-family: myFont;src:url("../font/timesi.ttf");src:url("../font/timesbi ...

  9. 河工大第十届ACM省赛随笔

    比赛成果达到了预期目标,不过还是很遗憾没有更进一步,刚到河工大的时候就想吐槽,拥挤的机房,难受的键盘鼠标,还有规定食堂的,饭票.一切都和河大比赛是给我的感觉不一样,再加上热身赛的那天我背着一大包东西, ...

  10. php实现弱语言底层原理分析(转)

    php中弱语言类型的底层实现 PHP是弱语言类型,主要分为三类: 1.标量类型:integer.string.float.boolean 2.复合类型:array.object 3.特殊类型:reso ...