重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统

摘要:
最近简单的办法就是重新初始化我们的ocr盘和votedisk盘,把集群中的所有相关资源重新注册到OCR磁盘和votedisk磁盘中。当然,在正式的RAC环境中是不会不备份ocr盘和votedisk盘,我们模拟的也是一种极端情况。[root@rac3bin]#./crsctlquerycssvotedisk0.0/dev/raw/raw2located1votedisk.[root@rac3bin]#ddif=/dev/raw/raw2of=/home/oracle/votedisk.bak208864+0recordsin208864+0recordsout[root@rac3bin]#./ocrcheckStatusofOracleClusterRegistryisasfollows:Version:2Totalspace:104344Usedspace:4340Availablespace:100004ID:1887132889Device/FileName:/dev/raw/raw1Device/FileintegritychecksucceededDevice/FilenotconfiguredClusterregistryintegritychecksucceeded[root@rac3bin]#./ocrconfig-export/home/oracle/ocr.bak3.我们先破坏一下ocr和votedisk[root@rac3bin]#ddif=/dev/zeroof=/dev/raw/raw1bs=1Mcount=100100+0recordsin100+0recordsout[root@rac3bin]#ddif=/dev/zeroof=/dev/raw/raw1bs=1Mcount=130dd:writing`/dev/raw/raw1':Nospaceleftondevice102+0recordsin101+0recordsout[root@rac3bin]#ddif=/dev/zeroof=/dev/raw/raw2bs=1Mcount=130dd:writing`/dev/raw/raw2':Nospaceleftondevice102+0recordsin101+0recordsout现在ocr和votedisk已经被我们破坏,目前我们的RAC肯定是启不来了。现在我们就利用重建的方式重新把信息注册到ocr和votedisk中去。

假设我们的RAC环境中OCR磁盘和votedisk磁盘全部被破坏,并且都没有备份,那么我们该如何恢复我们的RAC环境。
最近简单的办法就是重新初始化我们的ocr盘和votedisk盘,把集群中的所有相关资源重新注册到OCR磁盘和votedisk磁盘中。

1.停掉所有节点的Clusterware Stack

[root@rac3 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources 
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.
[root@rac4 bin]# ./crsctl stop crs
Stopping resources.
Successfully stopped CRS resources 
Stopping CSSD.
Shutting down CSS daemon.
Shutdown request successfully issued.

2.为安全期间,我们先备份一下ocr和votedisk

为防止我们的实验失败,我们先备份一下ocr盘和votedisk盘。
当然,在正式的RAC环境中是不会不备份ocr盘和votedisk盘,我们模拟的也是一种极端情况。

[root@rac3 bin]# ./crsctl query css votedisk
 0.     0    /dev/raw/raw2
located 1votedisk(s).
[root@rac3 bin]# dd if=/dev/raw/raw2 of=/home/oracle/votedisk.bak
208864+0 records in
208864+0 records out
[root@rac3 bin]# ./ocrcheck
Status of Oracle Cluster Registry is asfollows :
         Version                  :          2
         Total space (kbytes)     :     104344
         Used space (kbytes)      :       4340
         Available space (kbytes) :     100004
         ID                       : 1887132889
         Device/File Name         : /dev/raw/raw1
                                    Device/File integrity check succeeded
                                    Device/File not configured
         Cluster registry integrity check succeeded
[root@rac3 bin]# ./ocrconfig -export /home/oracle/ocr.bak

3.我们先破坏一下ocr和votedisk

[root@rac3 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1M count=100
100+0 records in
100+0 records out
[root@rac3 bin]# dd if=/dev/zero of=/dev/raw/raw1 bs=1M count=130
dd: writing `/dev/raw/raw1': No space left on device
102+0 records in
101+0 records out
[root@rac3 bin]# dd if=/dev/zero of=/dev/raw/raw2 bs=1M count=130
dd: writing `/dev/raw/raw2': No space left on device
102+0 records in
101+0 records out

现在ocr和votedisk已经被我们破坏,目前我们的RAC肯定是启不来了。

现在我们就利用重建的方式重新把信息注册到ocr和votedisk中去。

4.分别在每个节点上执行$CRS_HOME/install/rootdele.sh

[root@rac3 install]# ./rootdelete.sh 
Shutting down Oracle Cluster Ready Services (CRS):
OCR initialization failed with invalid format: PROC-22: The OCR backend has an invalid format
Shutdown has begun. The daemons should exit soon.
Checking to see if Oracle CRS stack isdown...
Oracle CRS stack isnot running.
Oracle CRS stack isdown now.
Removing script forOracle Cluster Ready services
Updating ocr file fordowngrade
Cleaning up SCR settings in '/etc/oracle/scls_scr'
[root@rac4 install]# ./rootdelete.sh 
Shutting down Oracle Cluster Ready Services (CRS):
OCR initialization failed with invalid format: PROC-22: The OCR backend has an invalid format
Shutdown has begun. The daemons should exit soon.
Checking to see if Oracle CRS stack isdown...
Oracle CRS stack isnot running.
Oracle CRS stack isdown now.
Removing script forOracle Cluster Ready services
Updating ocr file fordowngrade
Cleaning up SCR settings in '/etc/oracle/scls_scr'

5.在任意一个节点上执行脚本$CRS_HOME/install/rootdeinstall.sh

只需要一个节点上执行即可

[root@rac3 install]# ./rootdeinstall.sh 
Removing contents fromOCR mirror device
2560+0 records in
2560+0 records out
Removing contents fromOCR device
2560+0 records in
2560+0 records out

6.在和步骤5同一个节点上执行$CRS_HOME/root.sh脚本

[root@rac3 crs_1]# ./root.sh
WARNING: directory '/opt/ora10g/product/10.2.0' isnot owned by root
WARNING: directory '/opt/ora10g/product' isnot owned by root
WARNING: directory '/opt/ora10g' isnot owned by root
WARNING: directory '/opt' isnot owned by root
Checking to see if Oracle CRS stack isalready configured
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/opt/ora10g/product/10.2.0' isnot owned by root
WARNING: directory '/opt/ora10g/product' isnot owned by root
WARNING: directory '/opt/ora10g' isnot owned by root
WARNING: directory '/opt' isnot owned by root
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: rac3 rac3-priv rac3
node 2: rac4 rac4-priv rac4
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Now formatting voting device: /dev/raw/raw2
Format of 1voting devices complete.
Startup will be queued to init within 90seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600seconds.
CSS isactive on these nodes.
        rac3
CSS isinactive on these nodes.
        rac4
Local node checking complete.
Run root.sh on remaining nodes to start CRS daemons.

7.在其他节点执行$CRS_HOME/root.sh脚本,注意最后一个节点的输出

[root@rac4 crs_1]# ./root.sh 
WARNING: directory '/opt/ora10g/product/10.2.0' isnot owned by root
WARNING: directory '/opt/ora10g/product' isnot owned by root
WARNING: directory '/opt/ora10g' isnot owned by root
WARNING: directory '/opt' isnot owned by root
Checking to see if Oracle CRS stack isalready configured
Current Oracle Cluster Registry mirror location '/dev/raw/raw7' in '/etc/oracle/ocr.loc' and ''does not match
Update either '/etc/oracle/ocr.loc' to use '' or variable CRS_OCR_LOCATIONS in rootconfig.sh with '/dev/raw/raw7' then rerun rootconfig.sh

发现有报错,报错信息应该是ocr mirror location和当前不匹配,这是之前我们试验ocr转移位置时留下的(/dev/raw/raw7),
/etc/oracle/ocr.loc文件里我们已经ocrmirrorconfig_loc参数注释掉了,系统怎么还能看得到那??

http://www.cnblogs.com/myrunning/p/4253696.html

[root@rac4 oracle]# cat ocr.loc 
#Device/file /dev/raw/raw1 getting replaced by device /dev/raw/raw8 
ocrconfig_loc=/dev/raw/raw1
#ocrmirrorconfig_loc=/dev/raw/raw7
local_only=false

我们把/etc/oracle/ocr.loc文件的"#ocrmirrorconfig_loc=/dev/raw/raw7" 去掉,重新执行$CRS_HOME/root.sh

[root@rac4 oracle]# cat ocr.loc 
#Device/file /dev/raw/raw1 getting replaced by device /dev/raw/raw8 
ocrconfig_loc=/dev/raw/raw1
local_only=false

去掉"#ocrmirrorconfig_loc=/dev/raw/raw7",重新执行$CRS_HOME/root.sh,发现问题解决:

[root@rac4 crs_1]# ./root.sh 
WARNING: directory '/opt/ora10g/product/10.2.0' isnot owned by root
WARNING: directory '/opt/ora10g/product' isnot owned by root
WARNING: directory '/opt/ora10g' isnot owned by root
WARNING: directory '/opt' isnot owned by root
Checking to see if Oracle CRS stack isalready configured
Setting the permissions on OCR backup directory
Setting up NS directories
Oracle Cluster Registry configuration upgraded successfully
WARNING: directory '/opt/ora10g/product/10.2.0' isnot owned by root
WARNING: directory '/opt/ora10g/product' isnot owned by root
WARNING: directory '/opt/ora10g' isnot owned by root
WARNING: directory '/opt' isnot owned by root
clscfg: EXISTING configuration version 3detected.
clscfg: version 3 is 10G Release 2.
Successfully accumulated necessary OCR keys.
Using ports: CSS=49895 CRS=49896 EVMC=49898 and EVMR=49897.
node <nodenumber>: <nodename> <private interconnect name> <hostname>
node 1: rac3 rac3-priv rac3
node 2: rac4 rac4-priv rac4
clscfg: Arguments check outsuccessfully.
NO KEYS WERE WRITTEN. Supply -force parameter to override.
-force isdestructive and will destroy any previous cluster
configuration.
Oracle Cluster Registry forcluster has already been initialized
Startup will be queued to init within 90seconds.
Adding daemons to inittab
Expecting the CRS daemons to be up within 600seconds.
CSS isactive on these nodes.
        rac3
        rac4
CSS isactive on all nodes.
Waiting forthe Oracle CRSD and EVMD to start
Oracle CRS stack installed and running under init(1M)
Running vipca(silent) forconfiguring nodeapps
The given interface(s), "eth0" is not public. Public interfaces should be used to configure virtual IPs.

发现问题,由于"eth0" is not public.vipca没有执行成功,这需要我们手动地在这个节点上执行vipca

8.重新执行vipca命令

执行vipca报出Error 0(Native: listNetInterfaces:[3])错误,如图:

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第1张

这是因为我们需要重新设置一下RAC的公共网络及私有网络:

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第2张

使用root用户重新手动执行vipca:

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第3张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第4张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第5张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第6张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第7张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第8张

9.验证ONS/GSD/VIP有没有正常注册到集群中

[oracle@rac4 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4  

10.使用netca命令重新配置监听

使用netca命令配置监听,该命令会自动把Listener注册到Clusterware中。

使用oracle用户手动执行netca命令:

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第9张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第10张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第11张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第12张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第13张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第14张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第15张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第16张

重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统第17张

确认一下我们刚刚配置的Listener有没有注册到监听中:

[oracle@rac4 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4  

可以看到至此,我们把listener、ons、gsd、vip都已经注册到ocr中了,下一步还需要把ASM、数据库注册到ocr中我们的实验就完成了。

11.把ASM注册到OCR中

[oracle@rac3 ~]$ srvctl add asm -n rac3 -i +ASM1 -o /opt/ora10g/product/10.2.0/db_1
[oracle@rac3 ~]$ srvctl add asm -n rac4 -i +ASM2 -o /opt/ora10g/product/10.2.0/db_1  
[oracle@rac3 ~]$ 
[oracle@rac3 ~]$ srvctl config asm -n rac3
+ASM1 /opt/ora10g/product/10.2.0/db_1
[oracle@rac3 ~]$ srvctl config asm -n rac4
+ASM2 /opt/ora10g/product/10.2.0/db_1

12.启动ASM验证

[oracle@rac3 ~]$ srvctl start asm -n rac3
[oracle@rac3 ~]$ srvctl start asm -n rac4
[oracle@rac3 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....SM2.asm application    ONLINE    ONLINE    rac4        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4   

通过上面的输出可以看出ASM已经成功启动,启动的时候可以关注一下asm的启动日志,方便有错误的时候即使发现问题:

[oracle@rac3 bdump]$ pwd
/opt/ora10g/admin/+ASM/bdump
[oracle@rac3 bdump]$ tail -f alert_+ASM1.log

13.把数据库注册到OCR中

[oracle@rac3 ~]$ srvctl add database -d racdb -o $ORACLE_HOME
[oracle@rac3 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....SM2.asm application    ONLINE    ONLINE    rac4        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4        
ora.racdb.db   application    OFFLINE   OFFLINE               

14.把实例注册到OCR中

[oracle@rac3 ~]$ srvctl add instance -d racdb -n rac3 -i racdb1
[oracle@rac3 ~]$ srvctl add instance -d racdb -n rac4 -i racdb2
[oracle@rac3 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....SM2.asm application    ONLINE    ONLINE    rac4        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4        
ora.racdb.db   application    OFFLINE   OFFLINE               
ora....b1.inst application    OFFLINE   OFFLINE               
ora....b2.inst application    OFFLINE   OFFLINE    

15.修改实例和ASM实例的依赖关系

[oracle@rac3 ~]$ srvctl modify instance -d racdb -i racdb1 -s +ASM1
[oracle@rac3 ~]$ srvctl modify instance -d racdb -i racdb2 -s +ASM2 
[oracle@rac3 ~]$ 

16.启动数据库进行验证

[oracle@rac3 ~]$ srvctl start database -d racdb
[oracle@rac3 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....SM2.asm application    ONLINE    ONLINE    rac4        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4        
ora.racdb.db   application    ONLINE    ONLINE    rac3        
ora....b1.inst application    ONLINE    ONLINE    rac3        
ora....b2.inst application    ONLINE    ONLINE    rac4   

现在可以看到我们注册到CRS中的数据已经正常启动了

[oracle@rac3 ~]$ sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jan 29 12:47:02 2015
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 -64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
SQL> col name fora50
SQL> select * fromv$dbfile;
     FILE# NAME
---------- --------------------------------------------------
         4 +DATA/racdb/datafile/users.259.845203503
         3 +DATA/racdb/datafile/sysaux.257.845203501
         2 +DATA/racdb/datafile/undotbs1.258.845203501
         1 +DATA/racdb/datafile/system.256.845203499
         5 +DATA/racdb/datafile/undotbs2.264.845203661
         6 +DATA/racdb/datafile/rlst.268.852657465
6rows selected.
SQL> 

17.手动添加service到ocr中

[oracle@rac3 ~]$ srvctl add service -d racdb -s racdbservice -r racdb1 -a racdb2 -P BASIC
[oracle@rac3 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....SM2.asm application    ONLINE    ONLINE    rac4        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4        
ora.racdb.db   application    ONLINE    ONLINE    rac3        
ora....b1.inst application    ONLINE    ONLINE    rac3        
ora....b2.inst application    ONLINE    ONLINE    rac4        
ora....vice.cs application    OFFLINE   OFFLINE               
ora....db1.srv application    OFFLINE   OFFLINE    
[oracle@rac3 ~]$ srvctl start service -d racdb
[oracle@rac3 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora....SM1.asm application    ONLINE    ONLINE    rac3        
ora....C3.lsnr application    ONLINE    ONLINE    rac3        
ora.rac3.gsd   application    ONLINE    ONLINE    rac3        
ora.rac3.ons   application    ONLINE    ONLINE    rac3        
ora.rac3.vip   application    ONLINE    ONLINE    rac3        
ora....SM2.asm application    ONLINE    ONLINE    rac4        
ora....C4.lsnr application    ONLINE    ONLINE    rac4        
ora.rac4.gsd   application    ONLINE    ONLINE    rac4        
ora.rac4.ons   application    ONLINE    ONLINE    rac4        
ora.rac4.vip   application    ONLINE    ONLINE    rac4        
ora.racdb.db   application    ONLINE    ONLINE    rac3        
ora....b1.inst application    ONLINE    ONLINE    rac3        
ora....b2.inst application    ONLINE    ONLINE    rac4        
ora....vice.cs application    ONLINE    ONLINE    rac3        
ora....db1.srv application    ONLINE    ONLINE    rac3  

至此,我们已经正确的重新初始化了我们的OCR盘和VoteDisk盘,并且没有用到备份。

免责声明:文章转载自《重新初始化RAC的OCR盘和Votedisk盘,修复RAC系统》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇命令行执行robot framework测试用例机器学习 —— 概率图模型(贝叶斯网络)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ANDROID 静音与振动

android 静音与振动1,设置静音和振动静音和振动都属于来电后的动作.所以在设置静音和振动时都只是设置一些标识,并往数据库写入相应标识. 文件:packages/apps/settings/src/com/android/settings/SoundAndDisplaySettings.java private CheckBoxPreference m...

centos 20T硬盘(超过16T)分区

最近新买了一台服务器DELL R730 首先我们做了一个raid 1 和raid 5 在raid 1 上安装系统 安装完系统之后,现在要进行分区了,那个raid 5 做完之后,实际大小是19T 所以这里不能用传统的fdisk来分区了,这里采用parted来分区,我们的系统是centos 7的,文件系统类型都设成是xfs文件系统了 这里开始分区: [root...

linux 根目录扩容方法

准备知识 linux volume 1.(PV)physical volume disk ; 物理硬盘 物理硬盘需要转换成lvm(logic volume manage)可识别的状态,将磁盘的system id 转换成8e(lvm的识别码),再通过 pvcreate转换成PV,这样才能对磁盘加以利用 2.(VG) volume group 磁盘组, 由p...

【转】Python访问oracle数据库,DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found"

使用python连接Oracle,出现如下错误: DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found". See https://oracle.github.io/odpi/doc/installation.html...

用Qemu搭建x86学习环境

作者信息作者:彭东林 邮箱:pengdonglin137@163.com QQ:405728433 软件平台主机: Ubuntu14.04 64位版本 模拟器:Qemu-2.8.0 Linux内核版本: Linux-4.10 Busybox版本:busybox-1.24.2 工具链: gcc 具备的功能模拟一个双核或者单核的x86架构的系统,根文件系统用r...

Javassist/ASM 框架比较

Javassist: Javassist (Java编程助手)使操作Java字节码变得简单。它是一个用于编辑Java字节码的类库;跟其他类似的字节码编辑器不同的是,它使Java程序能够在运行时定义一个新类,并在JVM加载类文件时修改它。 Javassist提供了两种级别的API:源级别和字节码级别。如果用户使用源代码级API,他们可以不需要了解Jav...