Oracle RAC OCR 的备份与恢复
Oracle Clusterware把整个集群的配置信息放在共享存储上,这些信息包括了集群节点的列表、集群数据库实例到节点的映射以及CRS应用程序资源信息。也即是存放在ocr 磁盘(或者ocfs文件)上。因此对于这个配置文件的重要性是不言而喻的。任意使得ocr配置发生变化的操作在操作之间或之后都建议立即备份ocr。本文主要基于Oracle 10g RAC环境描述OCR的备份与恢复。
OCR 相关参考:
Oracle RAC OCR 与健忘症
Oracle RAC OCR 的管理与维护
一、OCR的备份与恢复概念
与Oracle数据库备份恢复相似,OCR的备份也有物理备份或逻辑备份的概念,因此有两种备份方式,两种恢复方式。
物理备份与恢复:
缺省情况下,Oracle 每4个小时对其做一次备份,并且保留最后的3个副本,以及前一天,前一周的最后一个备份副本。
用户不能自定义备份频率以及备份文件的副本数。
对于OCR的备份备份由是由Master Node CRSD进程完成,因此备份的默认位置是$CRS_HOME/crs/cdata/<cluster_name>目录下。
备份的文件会自动更名,以反应备份时间顺序,最近一次的备份叫作backup00.ocr。
由于是在Master Node的节点之上进行备份,因此备份文件仅存在于Master Node节点。
对于Master Node的节点crash之后则由剩余节点接管。
备份目录可以通过ocrconfig -backuploc <directory_name> 命令修改。
OCR磁盘最多只能有两个,一个Primary OCR 和一个Mirror OCR。两者互为镜像以避免单点故障。
对于物理备份恢复,不能简单的使用操作系统级别的复制命令(使用ocr文件时)来完成,该操作将导致ocr不可用。
逻辑备份与恢复:
使用ocrconfig -export 方式产生的备份,统称之为逻辑备份。
对于重大的ocr配置发生变化前后,如添加删除节点,修改集群资源,创建数据库等,都建议使用逻辑备份。
对于由于错误配置而导致的ocr被损坏的情形下,我们可以使用ocrconfig -import方式进行恢复。
对于这种逻辑方式也可以还原丢失或损坏的ocr磁盘(文件)。
备份建议:
将oracle的自动备份产生的文件复制到共享或其它可用存储设备上。
每天至少导出一次ocr配置信息。
二、备份OCR
- 1、OCR的自动备份
- #使用ocrconfig -showbackup查看ocr备份所在节点及路径
- oracle@bo2dbp:~> ocrconfig -showbackup
- bo2dbp 2013/02/25 06:23:15 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/25 02:23:13 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/24 22:23:13 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/24 02:23:09 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/22 18:23:04 /u01/oracle/crs/cdata/crs
- oracle@bo2dbp:~> ls -hltr /u01/oracle/crs/cdata/crs
- total 40M
- -rw-r--r-- 1 root root 6.7M 2013-02-22 18:23 week.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-24 02:23 day.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-24 22:23 backup02.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-25 02:23 backup01.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-25 02:23 day_.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-25 06:23 backup00.ocr
- #改变物理备份路径
- ocrconfig -backuploc <new_dirname>
- #使用物理备份恢复ocr
- ocrconfig -restore <backup_file_name>
- 对于物理备份,仅仅只能使用restore方式来进行恢复,而不支持import方式
- 2、OCR的手动备份
- OCR的手动备份也即是逻辑备份,使用-export方式来实现
- ocrconfig -export <backup_file_name>
- #备份示例
- #建议在不同的节点导出ocr,导出位置尽可能存放在共享磁盘,以便任意节点均可从该磁盘恢复
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -export /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
- root'''''s password:
- oracle@bo2dbp:/u02/crs_bak/ocr_bak/exp/bo2dbp> ls -hltr /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
- -rw-r--r-- 1 root root 144K 2013-02-25 10:10 /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
- oracle@bo2dbs:~> sudo -s /u01/oracle/crs/bin/ocrconfig -export /u02/crs_bak/ocr_bak/exp/bo2dbs/ocr_bak.dmp
- root'''s password:
三、OCR的恢复
- 1、从可用的OCR镜像中恢复受损的OCR
- a、首先模拟ocr 损坏
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=10
- 10+0 records in
- 10+0 records out
- 10485760 bytes (10 MB) copied, 0.24662 seconds, 42.5 MB/s
- oracle@bo2dbp:~> ocrcheck
- Status of Oracle Cluster Registry is as follows :
- Version : 2
- Total space (kbytes) : 204560
- Used space (kbytes) : 6184
- Available space (kbytes) : 198376
- ID : 1512159503
- Device/File Name : /dev/raw/raw1
- Device/File integrity check failed
- n Device/File Name : /dev/raw/raw11
- Device/File integrity check succeeded
- Cluster registry integrity check succeeded
- oracle@bo2dbp:~> ocrcheck
- Status of Oracle Cluster Registry is as follows :
- Version : 2
- Total space (kbytes) : 204560
- Used space (kbytes) : 6184
- Available space (kbytes) : 198376
- ID : 1512159503
- Device/File Name : /dev/raw/raw1
- Device/File needs to be synchronized with the other device
- Device/File Name : /dev/raw/raw11
- Device/File integrity check succeeded
- Cluster registry integrity check succeeded
- #尽管此时ocr文件被破坏,但整个集群依旧处于Online状态,此处不列出,读者可自行验证
- #接下来修复ocr
- b、校验所在的裸设备处于可用状态
- oracle@bo2dbp:~> sudo -s rcraw status | grep raw1
- root''''''s password:
- /dev/raw/raw1: bound to major 8, minor 33
- /dev/raw/raw11: bound to major 8, minor 113
- c、校验裸设备的权限
- oracle@bo2dbp:~> ls -hltr /dev/raw/raw1
- crw-rw---- 1 oracle dba 162, 1 2013-02-05 16:00 /dev/raw/raw1
- oracle@bo2dbp:~> ssh bo2dbs ls -hltr /dev/raw/raw1
- crw-rw---- 1 oracle dba 162, 1 2013-02-05 10:28 /dev/raw/raw1
- d、重新初始化裸设备
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=200
- dd: writing `/dev/raw/raw1': No space left on device
- 200+0 records in
- 199+0 records out
- 209698816 bytes (210 MB) copied, 4.84775 seconds, 43.3 MB/s
- e、从镜像ocr恢复主ocr
- #实际上等同于添加一个新的ocr。此时主ocr从镜像ocr复制内容。
- #对于镜像ocr的损坏可以采用相同的方式如法炮制。
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -replace ocr /dev/raw/raw1
- root''''s password:
- oracle@bo2dbp:~> ocrcheck
- Status of Oracle Cluster Registry is as follows :
- Version : 2
- Total space (kbytes) : 204560
- Used space (kbytes) : 6184
- Available space (kbytes) : 198376
- ID : 1512159503
- Device/File Name : /dev/raw/raw1
- Device/File integrity check succeeded
- Device/File Name : /dev/raw/raw11
- Device/File integrity check succeeded
- Cluster registry integrity check succeeded
- f、校验修复情况
- oracle@bo2dbp:~> cluvfy comp ocr -n all
- Verifying OCR integrity
- Checking OCR integrity...
- Checking the absence of a non-clustered configuration...
- All nodes free of non-clustered, local-only configurations.
- Uniqueness check for OCR device passed.
- Checking the version of OCR...
- OCR of correct Version "2" exists.
- Checking data integrity of OCR...
- Data integrity check for OCR passed.
- OCR integrity check passed.
- Verification of OCR integrity was successful.
- 2、从逻辑备份(导出的文件)中恢复OCR
- a、首先查看一下ocr的位置
- oracle@bo2dbp:~> more /etc/oracle/ocr.loc
- #Device/file /dev/raw/raw1 getting replaced by device /dev/raw/raw1
- ocrconfig_loc=/dev/raw/raw1
- ocrmirrorconfig_loc=/dev/raw/raw11
- local_only=false
- b、停止两个节点上的crs
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/crsctl stop crs
- root''''''s password:
- Stopping resources. This could take several minutes.
- Successfully stopped CRS resources.
- Stopping CSSD.
- Shutting down CSS daemon.
- Shutdown request successfully issued.
- oracle@bo2dbp:~> ps -ef | grep d.bin | grep -v grep
- oracle@bo2dbs:~> sudo -s /u01/oracle/crs/bin/crsctl stop crs
- root''''s password:
- Stopping resources. This could take several minutes.
- Successfully stopped CRS resources.
- Stopping CSSD.
- Shutting down CSS daemon.
- Shutdown request successfully issued.
- # Author : Robinson
- # Blog : http://blog.csdn.net/robinson_0612
- oracle@bo2dbs:~> ps -ef | grep d.bin | grep -v grep
- c、尝试破坏ocr
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=10
- 10+0 records in
- 10+0 records out
- 10485760 bytes (10 MB) copied, 0.1811 seconds, 57.9 MB/s
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw11 bs=1024k count=10
- 10+0 records in
- 10+0 records out
- 10485760 bytes (10 MB) copied, 0.167224 seconds, 62.7 MB/s
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/crsctl start crs
- Attempting to start CRS stack
- The CRS stack will be started shortly
- oracle@bo2dbp:~> ps -ef | grep d.bin | grep -v grep
- oracle@bo2dbp:~> ./crs_stat.sh #这个查看已经无法同crs通信
- Resource name Target State
- -------------- ------ -----
- error connecting to CRSD at [(ADDRESS=(PROTOCOL=ipc)(KEY=ora_crsqs))] clsccon 184
- oracle@bo2dbp:~> crs_stat -t
- CRS-0184: Cannot communicate with the CRS daemon.
- d、从导出的备份文件中恢复ocr
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -import /u02/crs_bak/ocr_bak/exp/bo2dbp/ocr_bak.dmp
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/crsctl start crs
- Attempting to start CRS stack
- The CRS stack will be started shortly
- oracle@bo2dbp:~> ps -ef | grep d.bin | grep -v grep
- oracle 27209 23220 0 10:32 ? 00:00:00 /u01/oracle/crs/bin/evmd.bin
- root 27307 23392 0 10:32 ? 00:00:01 /u01/oracle/crs/bin/crsd.bin reboot
- oracle 27613 27153 0 10:32 ? 00:00:00 /u01/oracle/crs/bin/ocssd.bin
- #尝试启动第2个几点的crs
- oracle@bo2dbs:~> sudo -s /u01/oracle/crs/bin/crsctl start crs
- root''''''s password:
- Attempting to start CRS stack
- The CRS stack will be started shortly
- e、在第二个节点上执行ocrcheck,此时显示ocrcheck成功
- oracle@bo2dbs:~> ocrcheck
- Status of Oracle Cluster Registry is as follows :
- Version : 2
- Total space (kbytes) : 204560
- Used space (kbytes) : 6184
- Available space (kbytes) : 198376
- ID : 1325424958
- Device/File Name : /dev/raw/raw1
- Device/File integrity check succeeded
- Device/File Name : /dev/raw/raw11
- Device/File integrity check succeeded
- Cluster registry integrity check succeeded
- oracle@bo2dbs:~> cluvfy comp ocr -n all #使用cluvfy工具校验
- Verifying OCR integrity
- Checking OCR integrity...
- Checking the absence of a non-clustered configuration...
- All nodes free of non-clustered, local-only configurations.
- Uniqueness check for OCR device passed.
- Checking the version of OCR...
- OCR of correct Version "2" exists.
- Checking data integrity of OCR...
- Data integrity check for OCR passed.
- OCR integrity check passed.
- Verification of OCR integrity was successful.
- 3、从物理备份中恢复OCR
- a、查看ocr的备份信息
- oracle@bo2dbp:~> ocrconfig -showbackup
- bo2dbp 2013/02/25 06:23:15 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/25 02:23:13 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/24 22:23:13 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/24 02:23:09 /u01/oracle/crs/cdata/crs
- bo2dbp 2013/02/22 18:23:04 /u01/oracle/crs/cdata/crs
- oracle@bo2dbp:~> ls -hltr /u01/oracle/crs/cdata/crs #此时ocr的备份位于节点1
- total 40M
- -rw-r--r-- 1 root root 6.7M 2013-02-22 18:23 week.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-24 02:23 day.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-24 22:23 backup02.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-25 02:23 backup01.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-25 02:23 day_.ocr
- -rw-r--r-- 1 root root 6.7M 2013-02-25 06:23 backup00.ocr
- b、尝试损坏ocr文件
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=10
- 10+0 records in
- 10+0 records out
- 10485760 bytes (10 MB) copied, 0.279904 seconds, 37.5 MB/s
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw11 bs=1024k count=10
- 10+0 records in
- 10+0 records out
- 10485760 bytes (10 MB) copied, 0.145885 seconds, 71.9 MB/s
- #此时何ocr相关的操作都处于失败状态
- oracle@bo2dbp:~> ocrcheck
- Segmentation fault (core dumped)
- oracle@bo2dbp:~> ocrconfig -showbackup
- Segmentation fault (core dumped)
- oracle@bo2dbp:~> crs_stat -t
- Segmentation fault (core dumped)
- #ASM实例和RAC实例依旧处于online
- oracle@bo2dbp:~> ps -ef | grep pmon
- oracle 7915 1 0 10:09 ? 00:00:00 asm_pmon_+ASM1
- oracle 9234 1 0 10:10 ? 00:00:00 ora_pmon_ora10g1
- oracle 31704 11229 0 10:26 pts/0 00:00:00 grep pmon
- c、关闭crs,集群数据库及ASM
- oracle@bo2dbp:~> export ORACLE_SID=ora10g1
- oracle@bo2dbp:~> sqlplus / as sysdba
- SQL> show parameter db_name
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------
- db_name string ora10g
- #此时查看一下ocr的位置,以便于恢复时查看对应的裸设备
- oracle@bo2dbp:~> more /etc/oracle/ocr.loc
- #Device/file /dev/raw/raw1 getting replaced by device /dev/raw/raw1
- ocrconfig_loc=/dev/raw/raw1
- ocrmirrorconfig_loc=/dev/raw/raw11
- local_only=false
- #停止crs,收到错误提示
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/crsctl stop crs
- root''''s password:
- Segmentation fault
- oracle@bo2dbs:~> sudo -s /u01/oracle/crs/bin/crsctl stop crs
- root''''''s password:
- Segmentation fault
- #下面的查询中crsd进程已经crash
- oracle@bo2dbp:~> ps -ef | grep d.bin | grep -v grep
- oracle 5844 5189 0 10:09 ? 00:00:00 /u01/oracle/crs/bin/evmd.bin
- oracle 6357 5883 0 10:09 ? 00:00:04 /u01/oracle/crs/bin/ocssd.bin
- #关闭集群数据库
- oracle@bo2dbp:~> export ORACLE_SID=ora10g1
- oracle@bo2dbp:~> sqlplus / as sysdba
- SQL> shutdown immediate;
- oracle@bo2dbs:~> export ORACLE_SID=ora10g2
- oracle@bo2dbs:~> sqlplus / as sysdba
- SQL> shutdown immediate;
- d、重启节点
- bo2dbp:~ # reboot
- bo2dbs:~ # reboot
- e、校验ocr所在的裸设备及其权限
- #校验所在的裸设备处于可用状态
- oracle@bo2dbp:~> sudo -s rcraw status | grep raw1
- root''''s password:
- /dev/raw/raw1: bound to major 8, minor 33
- /dev/raw/raw11: bound to major 8, minor 113
- #校验裸设备的权限
- oracle@bo2dbp:~> ls -hltr /dev/raw/raw1
- crw-rw---- 1 oracle dba 162, 1 2013-02-05 16:00 /dev/raw/raw1
- oracle@bo2dbp:~> ssh bo2dbs ls -hltr /dev/raw/raw1
- crw-rw---- 1 oracle dba 162, 1 2013-02-05 10:28 /dev/raw/raw1
- #清空裸设备
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=200
- dd: writing `/dev/raw/raw1': No space left on device
- 200+0 records in
- 199+0 records out
- 209698816 bytes (210 MB) copied, 4.84775 seconds, 43.3 MB/s
- oracle@bo2dbp:~> dd if=/dev/zero of=/dev/raw/raw11 bs=1024k count=200
- dd: writing `/dev/raw/raw11': No space left on device
- 200+0 records in
- 199+0 records out
- 209698816 bytes (210 MB) copied, 2.30847 seconds, 90.8 MB/s
- f、从物理备份中恢复ocr
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/ocrconfig -restore /u01/oracle/crs/cdata/crs/backup00.ocr
- root''''''s password:
- oracle@bo2dbp:~> sudo -s /u01/oracle/crs/bin/crsctl start crs
- Attempting to start CRS stack
- The CRS stack will be started shortly
- oracle@bo2dbs:~> sudo -s /u01/oracle/crs/bin/crsctl start crs
- root''''s password:
- Attempting to start CRS stack
- The CRS stack will be started shortly
- g、校验恢复结果
- oracle@bo2dbp:~> ocrcheck
- Status of Oracle Cluster Registry is as follows :
- Version : 2
- Total space (kbytes) : 204560
- Used space (kbytes) : 6184
- Available space (kbytes) : 198376
- ID : 1512159503
- Device/File Name : /dev/raw/raw1
- Device/File integrity check succeeded
- Device/File Name : /dev/raw/raw11
- Device/File integrity check succeeded
- Cluster registry integrity check succeeded
- oracle@bo2dbp:~> cluvfy comp ocr -n all
- Verifying OCR integrity
- Checking OCR integrity...
- Checking the absence of a non-clustered configuration...
- All nodes free of non-clustered, local-only configurations.
- Uniqueness check for OCR device passed.
- Checking the version of OCR...
- OCR of correct Version "2" exists.
- Checking data integrity of OCR...
- Data integrity check for OCR passed.
- OCR integrity check passed.
- Verification of OCR integrity was successful.
- #校验application
- oracle@bo2dbp:~> ./crs_stat.sh | grep bo2dbp
- ora.bo2dbp.ASM1.asm ONLINE ONLINE on bo2dbp
- ora.bo2dbp.LISTENER_BO2DBP.lsnr ONLINE ONLINE on bo2dbp
- ora.bo2dbp.LISTENER_ORA10G_BO2DBP.lsnr ONLINE ONLINE on bo2dbp
- ora.bo2dbp.gsd ONLINE ONLINE on bo2dbp
- ora.bo2dbp.ons ONLINE ONLINE on bo2dbp
- ora.bo2dbp.vip ONLINE ONLINE on bo2dbp
- ora.ora10g.ora10g1.inst ONLINE ONLINE on bo2dbp
- 转 : http://blog.csdn.net/leshami/article/details/8612894
Oracle RAC OCR 的备份与恢复的更多相关文章
- Oracle RAC OCR 和 VotingDisk 的备份与恢复
一:Voting DiskVoting Disk 这个文件主要用于记录节点成员状态,在出现脑裂时,决定那个Partion获得控制权,其他的Partion必须从集群中剔除.Voting disk使用的是 ...
- Oracle RAC OCR 与健忘症
OCR就好比Windows的一个注册表,存储了所有与集群,RAC数据库相关的配置信息.而且是公用的配置,也就是说多个节点共享相同的配置信息.因此该配置应当存储于共享磁盘.本文主要基于Oracle 10 ...
- Oracle RAC OCR 的管理与维护
OCR相当于Windows的注册表.对于Windows而言,所有的软件信息,用户,配置,安全等等统统都放到注册表里边.而集群呢,同样如此,所有和集群相关的资源,配置,节点,RAC数据库统统都放在这个仓 ...
- Oracle 10g RAC OCR 和 VotingDisk 的备份与恢复
Oracle RAC 中OCR 和Voting Disk 备份在我的blog: Oracle RAC 常用维护工具和命令 中已经有说明,现在再次把它单独拿出做一个说明, 因为OCR 和Voting D ...
- 由于OCR文件损坏造成Oracle RAC不能启动的现象和处理方法
v$cluster_interconnects 集群节点间通信使用的IP地址 错误信息 使用了公网进行连接 SQL> select * from v$cluster_interconnects; ...
- Oracle rac集群环境中的特殊问题
备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集 ...
- oracle rac理解和用途扩展
Oracle RAC的优势在于利用多个节点(数据库实例)组成一个数据库,这样在保证了数据库高可用性的情况下更充分的利用了多个主机的性能,而且可以通过增加节点进行性能的扩展.实现Oracle RAC需要 ...
- 深入理解Oracle RAC 12c 笔记
深入理解Oracle RAC 12c 跳转至: 导航. 搜索 文件夹 1 概述 2 集群件管理和故障诊断 3 执行实践 4 新特性 5 存储和ASM 6 应用设计上的问题 7 管理和调优一个复杂的RA ...
- oracle rac安装
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4681351&uid=29655480 参考 1.百度文库中的收藏 2. ...
随机推荐
- 腾讯QQ企业邮箱在ruby on rails 框架中的mailer配置
在编写ruby on rails程序时,我们可能会需要用到发送邮件的程序,如果使用gmail进行smtp发送一般问题不大,但很多企业使用的是腾讯QQ企业邮箱.使用该邮箱进行链接时出现各种错误,goog ...
- 国内一些SCM相关论坛站点
SCMROAD: http://www.scmroad.com/forum.php SCMEYE:http://www.scmeye.com/ SVN管家:http://www.svnclub.com ...
- 中国移动MM Android/OPhone付费SDK--MMBillingSDK,集成问题总结
原地址:http://www.j2megame.com/html/xwzx/ty/2916.html 中国移动MM Android/OPhone付费SDK--MMBillingSDK,集成问题总结 近 ...
- [转载]实战Linux下VMware虚拟机根目录空间扩充
[转载]实战Linux下VMware虚拟机根目录空间扩充 (2011-07-31 21:34:34) 转载▼ 标签: 转载 原文地址:实战Linux下VMware虚拟机根目录空间扩充作者:shar ...
- 03 - 运行OCCI测试程序遇到0xc0150002错误
通过控制面板->管理工具->Event Viewer->Windows Log->Application Logs, 可以看到可以看到是如下错误 “C:\Windows\ora ...
- lintcode: 中序遍历和后序遍历树构造二叉树
题目 中序遍历和后序遍历树构造二叉树 根据中序遍历和后序遍历树构造二叉树 样例 给出树的中序遍历: [1,2,3] 和后序遍历: [1,3,2] 返回如下的树: 2 / \ 1 3 注意 你可 ...
- XML DOS 攻击
内容来自此文:http://msdn.microsoft.com/en-us/magazine/ee335713.aspx DoS(Denial of service:拒绝服务)攻击由来已久(1992 ...
- spring mvc 常用注解
1.@requestMapping注解,绑定指定的url,requestmapping注解的属性值有value和method. requestmaping可以作用在类上或者方法上 如:@Request ...
- 用static关键字修饰类
Java里面static一般用来修饰成员变量或函数.但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以.被static修饰的内部类可以直接作为一个普通类来使用,而 ...
- 为什么开发者热衷在Stack Overflow上查阅API文档?
摘要:一项新研究跟踪了Android开发者的访问历史,发现开发者多达二分之一的文档是从Stack Overflow上获取到的,而Stack Overflow上的示例也多于官方指南,开发者通过搜索更多时 ...