发布新日志

  • oracle如何更改监听器日志文件名称

    2008-03-24 16:28:53

    今天一个数据库的监听器日志出了点问题,用set log_file命令重新定位一个日志文件得以解决。

    发现以下两个命令很有用:

    LSNRCTL> set current_listener <listener name>
    LSNRCTL> set log_file <sid name>.log

    使用set current_listener可以访问非缺省监听器,使用set log_file更改名称后,原来有问题的日志文件可以清除或实现日志重定位:

    [oracle@jumper admin]$ lsnrctl


    LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 10-NOV-2006 16:54:16


    Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.


    Welcome to LSNRCTL, type "help" for information.


    LSNRCTL> set current_listener LISTENER1
    Current Listener is LISTENER1
    LSNRCTL> set log_file
    Parameter Value: a.log
    Connecting to (DEscrīptION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    LISTENER1 parameter "log_file" set to a.log
    The command completed successfully
    LSNRCTL> status
    Connecting to (DEscrīptION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    STATUS of the LISTENER
    ------------------------
    Alias                     LISTENER1
    Version                   TNSLSNR for Linux: Version 9.2.0.4.0 - Production
    Start Date                10-NOV-2006 16:54:12
    Uptime                    0 days 0 hr. 2 min. 6 sec
    Trace Level               off
    Security                  OFF
    SNMP                      OFF
    Listener Parameter File   /opt/oracle/product/9.2.0/network/admin/listener.ora
    Listener Log File         /opt/oracle/product/9.2.0/network/log/a.log
    Listening Endpoints Summary...
      (DEscrīptION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
      (DEscrīptION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))
    Services Summary...
    Service "PLSExtProc" has 1 instance(s).
      Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "conner" has 1 instance(s).
      Instance "conner", status UNKNOWN, has 1 handler(s) for this service...
    Service "eygle" has 1 instance(s).
      Instance "eygle", status UNKNOWN, has 1 handler(s) for this service...
    The command completed successfully
    LSNRCTL>

    如果需要将这个修改永久化,需要使用save_config命令保存一下:

    LSNRCTL> save_config
    Connecting to (DEscrīptION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    Saved LISTENER1 configuration parameters.
    Listener Parameter File /opt/oracle/product/9.2.0/network/admin/listener.ora
    Old Parameter File /opt/oracle/product/9.2.0/network/admin/listener.bak
    The command completed successfully

    此时listener.ora文件会被增加如下记录:

    [oracle@jumper oracle]$ tail -5 /opt/oracle/product/9.2.0/network/admin/listener.ora


    #----ADDED BY TNSLSNR 14-NOV-2006 16:39:12---
    LOG_FILE_LISTENER1 = a.log
    #--------------------------------------------

    记录一下。

    -The End-
  • MySQL两种表存储结构性能比较测试过程 (转)

    2007-12-06 17:58:47

    MySQL两种表存储结构性能比较测试过程
    MySQL支持的两种主要表存储格式MyISAM,InnoDB,上个月做个项目时,先使用了InnoDB,结果速度特别慢,1秒钟只能插入10几条。后 来换成MyISAM格式,一秒钟插入上万条。当时觉的这两个表的性能也差别太大了吧。后来自己推测,不应该差别这么慢,估计是写的插入语句有问题,决定做 个测试:

    测试环境:Redhat Linux9,4CPU,内存2G,MySQL版本为4.1.6-gamma-standard

    测试程序:Python+Python-MySQL模块。

    测试方案:

    1、MyISAM格式分别测试,事务和不用事务两种情况:

    2、InnoDB格式分别测试AutoCommit=1(不用begin transaction和用begin transaction模式),

    AutoCommit=0 (不用begin transaction和用begin transaction模式)四种情况。

    测试方法为插入10000条记录。为了测试不互相影响,单独建立了专用的测试表,建表语句如下:

    1、MyISAM不用事务表:

    CREATE TABLE `MyISAM_NT` (

    `TableId` int(11) NOT NULL default '0',

    `TableString` varchar(21) NOT NULL default ''

    ) ENGINE=MyISAM;

    2、MyISAM用事务表:

    CREATE TABLE `MyISAM_TS` (

    `TableId` int(11) NOT NULL default '0',

    `TableString` varchar(21) NOT NULL default ''

    ) ENGINE=MyISAM;

    3、InnoDB关闭AutoCommit,不用事务:

    CREATE TABLE `INNODB_NA_NB` (

    `TableId` int(11) NOT NULL default '0',

    `TableString` varchar(21) NOT NULL default ''

    ) ENGINE=InnoDB;

    4、InnoDB关闭AutoCommit,用事务:

    CREATE TABLE `INNODB_NA_BE` (

    `TableId` int(11) NOT NULL default '0',

    `TableString` varchar(21) NOT NULL default ''

    ) ENGINE=InnoDB;

    5、InnoDB开启AutoCommit,不用事务:

    CREATE TABLE `INNODB_AU_NB` (

    `TableId` int(11) NOT NULL default '0',

    `TableString` varchar(21) NOT NULL default ''

    ) ENGINE=InnoDB;

    6、InnoDB开启AutoCommit,用事务:

    CREATE TABLE `INNODB_AU_BE` (

    `TableId` int(11) NOT NULL default '0',

    `TableString` varchar(21) NOT NULL default ''

    ) ENGINE=InnoDB;

    测试的Python脚本如下:

    #!/usr/bin/env Python

    '''

    MyISAM,InnoDB性能比较

    作者:空心菜(Invalid)

    时间:2004-10-22

    '''

    import MySQLdb

    import sys

    import os

    import string

    import time

    c = None

    testtables = [("MyISAM_NT",None,0),

    ("MyISAM_TS",None,1),

    ("INNODB_NA_NB",0,0),

    ("INNODB_NA_BE",0,1),

    ("INNODB_AU_NB",1,0),

    ("INNODB_AU_BE",1,1)

    ]

    def BeginTrans():

    print "ExecSQL:BEGIN;"

    c.execute("BEGIN;"

    return

    def Commit():

    print "ExecSQL:COMMIT;"

    c.execute("COMMIT;"

    return

    def AutoCommit(flag):

    print "ExecSQL:Set AUTOCOMMIT = "+str(flag)

    c.execute("Set AUTOCOMMIT = "+str(flag))

    return

    def getcount(table):

    #print "ExecSQL:select count(*) from "+table

    c.execute("select count(*) from "+table)

    return c.fetchall()[0][0]

    def AddTable (Table,TableId,TableString):

    sql = "INSERT INTO "+Table+"(TableId, TableString) VALUES( "+ TableId+ ",'" + TableString +"')"

    try:

    c.execute(sql)

    except MySQLdb.OperationalError,error:

    print "AddTable Error:",error

    return -1;

    return c.rowcount

    def main():

    argv = sys.argv

    if len(argv) &lt 2:

    print 'Usage:',argv[0],' TableId TestCount \n'

    sys.exit(1)

    global c #mysql访问cursor

    db_host = "localhost"

    db_name = "demo"

    db_user = "root"

    db_user_passwd = ""

    print "Config:[%s %s/%s %s] DB\n"%(db_host,db_user,db_user_passwd,db_name)

    if len(argv) &gt 2:

    tableid = argv[1]

    testcount = int(argv[2]) #

    for test in testtables:

    #每次操作前都重写建立数据库连接

    try:

    mdb = MySQLdb.connect(db_host, db_user, db_user_passwd, db_name)

    except MySQLDb.OperationalError,error:

    print "Connect Mysql[%s %s/%s %s] DB Error:"%(db_host,db_user,db_user_passwd,db_name),error,"\n"

    sys.exit(1)

    else:

    c = mdb.cursor()

    table,autocommit,trans = test

    starttime = time.time()

    print table," ",time.strftime("%y-%m-%d %H:%M:%S",time.localtime())

    if autocommit != None:

    AutoCommit(autocommit)

    if trans == 1:

    BeginTrans()

    for i in xrange(testcount):

    tablestring = "%020d"%i

    if (AddTable(table,tableid,tablestring)&lt1):

    print "AddTable Error",tablestring

    if trans == 1:

    Commit()

    print time.strftime("%y-%m-%d %H:%M:%S",time.localtime())

    endtime = time.time()

    usedtime = endtime-starttime

    print table,"count:",getcount(table)," used time:",usedtime

    c.close()

    mdb.close()

    if __name__ == '__main__':

    main()

    测试结果如下:

    Config:[localhost root/ demo] DB

    MyISAM_NT 04-10-22 16:33:24

    04-10-22 16:33:26

    MyISAM_NT count: 10000 used time: 2.1132440567

    MyISAM_TS 04-10-22 16:33:26

    ExecSQL:BEGIN;

    ExecSQL:COMMIT;

    04-10-22 16:33:29

    MyISAM_TS count: 10000 used time: 2.65475201607

    INNODB_NA_NB 04-10-22 16:33:29

    ExecSQL:Set AUTOCOMMIT = 0

    04-10-22 16:33:31

    INNODB_NA_NB count: 10000 used time: 2.51947999001

    INNODB_NA_BE 04-10-22 16:33:31

    ExecSQL:Set AUTOCOMMIT = 0

    ExecSQL:BEGIN;

    ExecSQL:COMMIT;

    04-10-22 16:33:35

    INNODB_NA_BE count: 10000 used time: 3.85625100136

    INNODB_AU_NB 04-10-22 16:33:35

    ExecSQL:Set AUTOCOMMIT = 1

    04-10-22 16:34:19

    INNODB_AU_NB count: 10000 used time: 43.7153041363

    INNODB_AU_BE 04-10-22 16:34:19

    ExecSQL:Set AUTOCOMMIT = 1

    ExecSQL:BEGIN;

    ExecSQL:COMMIT;

    04-10-22 16:34:22

    INNODB_AU_BE count: 10000 used time: 3.14328193665

    结论:

    由此得知影响速度的主要原因是AUTOCOMMIT默认设置是打开的,

    我当时的程序没有显式调用BEGIN;开始事务,导致每插入一条都自动Commit,严重影响了速度。

    算来也是个低级错误!
  • Oracle的db_name和instance_name

    2007-11-27 10:37:13

    对于Oracle数据库来说,db_name和instance_name可以不同。
    我们来看一下Oracle文 档中对于db_name的定义:

    DB_NAME必须是一个不超过8个字符的文本串.在数据库创建过程中,db_name被记录在数据文件,日志文件和控制文件中。如果 数据库实例启动过程中参数文件中的db_name和控制文件中的数据库名称不一致,则数据库不能启动。

    < /blockquote>

    一个实例可以mount并打开任何数据库,但是同一时间一个实例只能打开一个数据库。
    一个数据库可以被一个或多个 实例所mount并打开(在OPS/RAC环境下,一个数据库可以被多个实例所打开).

    我们看一下我的数据库:

    [oracle@jumper dbs]$ grep name initeygle.ora
    *.db_name='eygle'
    *.instance_name='eygle'

    当前参数设置下的数据库:

    SQL> select name from v$datafile;

    NAME
    -----------------------------------------------------
    /opt/oracle/oradata/eygle/system01.dbf
    /opt/oracle/oradata/eygle/undotbs01.dbf
    /opt/oracle/oradata/eygle/users01.dbf
    /opt/oracle/oradata/eygle/eygle01.dbf

    SQL> show parameter db_name

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- -----------
    db_name                              string      eygle
    SQL> show parameter instance_name

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- -----------
    instance_name                        string      eygle
    SQL> create pfile from spfile;

    File created.

    SQL> exit
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

    我们创建一个新的pfile为julia这个新的实例使用:

    [oracle@jumper oracle]$ cd $ORACLE_HOME/dbs
    [oracle@jumper dbs]$ cp initeygle.ora initjulia.ora
    [oracle@jumper dbs]$ ll init*
    -rw-r--r--    1 oracle   dba           982 Jul 25 14:03 initeygle.ora
    -rw-r--r--    1 oracle   dba           982 Jul 25 14:04 initjulia.ora
    -rw-r--r--    1 oracle   dba          8385 Mar  9  2002 init.ora

    修改这个文件更改:
    instance_name = julia

    修改后的参数设置:

    [oracle@jumper dbs]$ grep name initjulia.ora
    *.db_name='eygle'
    *.instance_name='julia'

    然后我们启动实例名称为julia的instance:

    [oracle@jumper dbs]$ export ORACLE_SID=julia
    [oracle@jumper dbs]$ sqlplus "/ as sysdba"

    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Jul 25 14:04:15 2006

    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

    Connected to an idle instance.

    SQL> startup mount;


    ORACLE instance started.

    Total System Global Area  139531744 bytes
    Fixed Size                   452064 bytes
    Variable Size             121634816 bytes
    Database Buffers           16777216 bytes
    Redo Buffers                 667648 bytes
    ORA-01102: cannot mount database in EXCLUSIVE mode

    SQL> exit
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

        注意,此时试图加载数据库时出现错误,因为当前数据库被另外一个实例(instance)加载。在非并行模式(Ops/RAC)下,一个数据库同时只能被 一个实例加载。

    此时已经启动了两个数据库实例,从后台进程可以看出: 70-270 ec0-350 ex0-001 HO0-698 HO0-918 HP0-429 HP0-438 

    [oracle@jumper dbs]$ ps -ef|grep ora
    oracle   27321     1  0 Jul14 ?        00:00:00 ora_pmon_eygle
    oracle   27323     1  0 Jul14 ?        00:00:00 ora_dbw0_eygle
    oracle   27325     1  0 Jul14 ?        00:00:00 ora_lgwr_eygle
    oracle   27327     1  0 Jul14 ?        00:00:00 ora_ckpt_eygle
    oracle   27329     1  0 Jul14 ?        00:00:32 ora_smon_eygle
    oracle   27331     1  0 Jul14 ?        00:00:00 ora_reco_eygle
    oracle   27333     1  0 Jul14 ?        00:00:00 ora_cjq0_eygle
    root     15388   656  0 14:02 ?        00:00:00 sshd: oracle [priv]
    oracle   15390 15388  0 14:02 ?        00:00:00 sshd: oracle@pts/2
    oracle   15391 15390  0 14:02 pts/2    00:00:00 -bash
    oracle   15445     1  0 14:04 ?        00:00:00 ora_pmon_julia
    oracle   15447     1  0 14:04 ?        00:00:00 ora_dbw0_julia
    oracle   15449     1  0 14:04 ?        00:00:00 ora_lgwr_julia
    oracle   15451     1  0 14:04 ?        00:00:00 ora_ckpt_julia
    oracle   15453     1  0 14:04 ?        00:00:00 ora_smon_julia
    oracle   15455     1  0 14:04 ?        00:00:00 ora_reco_julia
    oracle   15457     1  0 14:04 ?        00:00:00 ora_cjq0_julia
    oracle   15459 15391  0 14:04 pts/2    00:00:00 ps -ef
    oracle   15460 15391  0 14:04 pts/2    00:00:00 grep ora

    我们关闭eygle这个数据库实例:

    [oracle@jumper dbs]$ export ORACLE_SID=eygle
    [oracle@jumper dbs]$ sqlplus "/ as sysdba"

    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Jul 25 14:04:39 2006

    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

    SQL> shutdown immediate;
    Database closed.
    Database dismounted.
    ORACLE instance shut down.
    SQL> exit
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

    此时就可以通过实例julia加载并打开db_name=eygle的数据库了: 

    [oracle@jumper dbs]$ export ORACLE_SID=julia
    [oracle@jumper dbs]$ sqlplus "/ as sysdba"

    SQL*Plus: Release 9.2.0.4.0 - Production on Tue Jul 25 14:05:06 2006

    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.


    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
    With the Partitioning option
    JServer Release 9.2.0.4.0 - Production

    SQL> alter database mount;
    alter database mount
    *
    ERROR at line 1:
    ORA-01990: error opening password file '/opt/oracle/product/9.2.0/dbs/orapw'
    ORA-27037: unable to obtain file status
    Linux Error: 2: No such file or directory
    Additional information: 3


    SQL> alter database open;

    Database altered.

    SQL> select name from v$datafile;

    NAME
    ----------------------------------------------------------------------------
    /opt/oracle/oradata/eygle/system01.dbf
    /opt/oracle/oradata/eygle/undotbs01.dbf
    /opt/oracle/oradata/eygle/users01.dbf
    /opt/oracle/oradata/eygle/eygle01.dbf

    SQL> ! ps -ef|grep ora
    root     15388   656  0 14:02 ?        00:00:00 sshd: oracle [priv]
    oracle   15390 15388  0 14:02 ?        00:00:00 sshd: oracle@pts/2
    oracle   15391 15390  0 14:02 pts/2    00:00:00 -bash
    oracle   15445     1  0 14:04 ?        00:00:00 ora_pmon_julia
    oracle   15447     1  0 14:04 ?        00:00:00 ora_dbw0_julia
    oracle   15449     1  0 14:04 ?        00:00:00 ora_lgwr_julia
    oracle   15451     1  0 14:04 ?        00:00:00 ora_ckpt_julia
    oracle   15453     1  0 14:04 ?        00:00:00 ora_smon_julia
    oracle   15455     1  0 14:04 ?        00:00:00 ora_reco_julia
    oracle   15457     1  0 14:04 ?        00:00:00 ora_cjq0_julia
    oracle   15513 15391  0 14:05 pts/2    00:00:00 sqlplus           
    oracle   15514 15513  3 14:05 ?        00:00:01 oraclejulia (DEscrīptION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
    oracle   15515 15513  0 14:05 pts/2    00:00:00 /bin/bash -c  ps -ef|grep ora
    oracle   15516 15515  0 14:05 pts/2    00:00:00 ps -ef

    SQL> show parameter instance_name

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    instance_name                        string      julia
    SQL> show parameter db_name

    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_name                              string      eygle

    我们再看看如果参数文件中的db_name和控制文件中的db_name不一致会出现什么错误.
    修改参数db_name:

    [oracle@jumper dbs]$ grep name initjulia.ora
    *.db_name='julia'
    *.instance_name='julia'

    在启动过程中,我们看到,在mount阶段,数据库会对参数文件和控制文件进行比较,如果两者记录的db_name不一致,则数据库无 法启动:

    SQL> startup nomount;
    ORACLE instance started.

    Total System Global Area  139531744 bytes
    Fixed Size                   452064 bytes
    Variable Size             121634816 bytes
    Database Buffers           16777216 bytes
    Redo Buffers                 667648 bytes
    SQL> alter database mount;
    alter database mount
    *
    ERROR at line 1:
    ORA-01103: database name 'EYGLE' in controlfile is not 'JULIA'

    另外的一个区别是,db_name通常限制在8个字符之内;instance_name最多应该支持21个字符。通常我们都是设置 db_name和 instance_name一致。需要注意的是如果db_name设置过长,则会被Oracle截断为8个字符,而instance_name仍然会保留 在21个字符之内,如果你的环境变量设置的instance_name=db_name,则启动时就会出现问题,你需要重建pfile/spfile并且 修改环境变量才能启动实例,加载数据库。

  • 余情未了?华为、3Com复婚收购游戏

    2007-11-12 15:20:37

      根据收购协议,根据协议,3Com原有的股票持有者所持有的股权将会被以每股5.30美元的价格现金收购,相当于贝恩资本和华为因此支付了比3Com9月27日每股3.68美元的股价高出44%的价格。
     
      消息称该协议将在明年第一季度完成交易,届时华为将会获得少数股份。据悉,交易完成之后,贝恩资本将持有3Com 80%以上的股份,而华为持有的股份不足20%。

    贝恩、华为、3Com和H3C四赢?

      在这次收购中,涉及到了4家组织:贝恩、华为、3Com和H3C,其中,H3C最为特殊,众所周知,H3C原本是华为与3com在中国的混血儿,后来,华为撤资,H3C脱离了华为控制,而现在,H3C又与华为联系在了一起。

      此次收购是否能够形成贝恩、华为、3Com和H3C的“四赢”局面呢?对于贝恩而言,他是一家国际性的私募投资公司,能够有机会联手华为收购 3Com, 将是一个高价值的投资项目,贝恩投资香港董事总经理竺稼就表示:“3Com有很强的竞争实力,我们相信通过发展客户和介绍新产品,3Com会获得更重要的 发展机会。我们期待与3Com的管理层和战略伙伴一起合作,抓住3Com通信网络解决方案的全球增长机会。”

      3Com总裁兼CEO埃德加·马斯里(Edgar Masri)表示:“我们认为,这一交易有助于3Com在全球网络设备市场占据领先位置,同时对我们的员工、客户和合作伙伴都有好处。”

    华为动机:欲突击企业网络市场?

      在本次收购中,贝恩投资看到了3Com在企业网络通信市场的实力,所以采取了收购行动。而华为又在想什么呢?

      据搜狐IT采访得到了华为高层态度是:“此次参与并购,是华为的一次商业投资,通过与3Com的战略合作关系,将会提升华为端到端解决方案竞争力,从长远而言,我们相信可以获得投资的增值。”

      华为3Com是3Com的主要收入来源。2006年,3Com的销售收入约12亿美元,其中华为3Com销售收入达7.12亿美元。而对于不断 亏损的3Com来说,不断贡献利润的华为3Com更是代表了3Com的主要盈利能力。因此,收购3Com或华为3Com本就是两位一体的事情。

      本次收购,对华为意义何在呢?

      目前,华为正在不断将IP技术引入到电信领域,并将此确定为自己的战略重点。而企业市场正是各种IP技术应用最早也是应用最成熟的市场,在此情况下,保留自身在企业设备市场的存在和位置才能保障自身对各种IP新技术的熟悉,企业市场成为华为的触角。

      此外,企业市场同样是电信运营商转型的重要市场,而现在的设备商已经越来越多地参与到运营商的商业设计中来,熟悉企业市场也就是熟悉自己的客户的商业,对于华为这样的客户导向企业明显是一笔划算的买卖。

      因此,不会放弃数通领域的企业市场将成为华为的发展基调。对于华为来说,20%的股份既能使其不深陷其中,又能够对先进市场与技术保持灵敏,何乐而不为?

    华为、3COM离婚、复婚案

      谈到此次收购,对于国内用户来说,最关注可能就是H3C了。通过H3C,华为、3com已经进行过了结婚、离婚的过程。而此次收购,表明华为、3com余情未了。

       2003年11月17日,华为3Com有限公司宣布正式成立并开始业务运作。这家由华为公司与3Com公司合资组建的企业注册在香港,主要运营机构设在杭 州,华为公司总裁任正非担任首席执行官,3Com总裁布鲁斯·克拉芬担任董事会主席。新公司拥有近1500名员工。

      华为公司与3Com公司将双方现有的中国和日本市场的企业网络销售和服务业务并入华为3Com公司,赋予合资公司在这两个重要市场上销售华为公司和3Com公司数据网络产品的权利。

      华为3Com有限公司中,华为控股51%;过了2年,华为卖掉2%的股权,变成3Com控股,但仍然保留“华为3Com”公司的名字,3年后, 3Com购得所有股份,全权控股,直到今年4月,又正式更名为H3C。就在这样的“风雨飘摇”下,不管“东家和资本方”是谁,H3C深知自胜者强的道理, 埋头务实,不但一直保持着快速的销售业绩增长,并且通过近两年的变革在安全、IP存储、IP监控领域三驾齐趋,在主网络之外,又构筑起一座通向持续发展蓝海的大桥。


    网络的未来:全球只剩下华为、思科?
     

      据CCID顾问专家杨凯分析:此次收购对于3COM来说,其实是一个无奈之举,虽然22亿美元的价格极低,但在其全球亏损仅靠中国市场的H3C维持的背景下,3COM已经陷入不得不卖的困境。

      而对于华为来说,这个收购最关键将是可突破海外市场。此前,华为在海外市场特别是北美,难有建树,而此次收购3COM后,可充分利用其资源和渠道,对其海外市场的扩展极为有利。并且,通过收购进军海外,比在当地建工厂的成本也要低很多。

      杨凯还表示,此次收购完成后,华为也可以借机理顺国内市场,避免华为和H3C同室操戈的局面。虽然此前华为一度放弃了H3C,但今年的竞争环境发生了变化,华为肯定采取行动将其收回。

      此次收购完成,可以分成两个层面看:

      一方面:在电信通信市场,华为、思科两者相互竞争,平分秋色。
      另一方面:在企业网络市场,自从华为从H3C撤资后,华为的实力显得比较单薄,而3com的整体实力又无法与思科相比。

      而此前的华为3com公司只是华为、3com在中国、日本等地区的合资公司,还不是全球合资公司。现在,经过本次收购,华为开始与3com展开了全球性的合作,共同开拓企业网络市场。

      如此,在企业网络市场,带有3com的华为似乎就能与思科一较高下了。

      未来的网络市场,可能主要就只有思科、华为两大系统了。

                                        000-268
    000-634
    000-713
    000-714
    000-797
    000-816
    000-858
    000-869
    000-904
    1z0-311
    310-625
    350-001
    640-863
    642-112
    642-162
    642-371
    642-372
    642-444
    642-521
    642-532
    642-611
    642-812
    646-096
    646-151
    646-203
    646-362
    646-562
    646-590
    70-086
    70-089
    70-271
    70-292
    70-442
    70-445
    70-510
    70-529
    70-624
    74-137
    920-131
    920-192
    920-502
    HP0-195
    HP0-436
    HP0-449
    HP0-513
    HP0-771
    MB2-184
    MB2-228
    MB3-208
    MB3-409
    MB4-213
    MB4-219
    MB4-349
    MB5-181
    MB6-205
    MB6-284
    MB6-295
    MB6-509
    MB7-225
    MB7-226
    190-721
    000-273
    000-348
    000-416
    000-731
    000-852
    000-883
    000-891
    050-681
    087-370
    0B0-104
    156-215.1
    190-701
    190-722
    190-828
    1D0-441
    1Y0-721
    4h0-200
    4h0-435
    510-401
    5A0-100
    920-191
    9A0-034
    9L0-401
    9L0-508
    e20-510
    e20-580
    e22-128
    ee0-502
    FN0-103
    HP0-066
    HP0-390
    HP0-427
    HP0-678
    HP0-763
    HP0-866
    ICDL-Word
    jn0-341
    n10-003
    nr0-013
    NS0-151
    s10-100
    000-M17
    000-296
    000-779
    000-898
    000-912
    000-920
    000-M02
    000-M12
    050-884
    156-110
    190-829
    190-832
    190-835
    1z0-010
    3M0-701
    70-540
    70-545
    920-113
    920-254
    920-430
    920-449
    9A0-502
    9L0-616
    9L0-964
    HP0-065
    HP0-710
    HP0-A20
    HP0-W02
    MB4-536                    SCDJWS        EXIN       

数据统计

  • 访问量: 2483
  • 日志数: 4
  • 建立时间: 2007-11-12
  • 更新时间: 2008-06-11

RSS订阅

Open Toolbar