早在八月,就听说过“OK我来了”:浪潮K-DB PK OracleDB。
十位数据库业界大牛抽签分成两组,分别对KDB和OracleDB进行性能优化,盖国强老师也表示对K-DB感到惊喜。
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/76.gif)
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/76.gif)
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/76.gif)
2015年12月10日,“OK我来了”走进深圳,怀着疑问、期待,我走进了浪潮。
先对K-DB的基本信息进行扫盲:
----------------------------------------------------------------------------
------------------------ 浪潮K-DB是怎么来的? ---------------------
----------------------------------------------------------------------------
浪潮高端计算机产品部张经理向我们介绍,K-DB由1997年创立的韩国TMAXSOFT公司开发,目前在韩国和日本已经有较成熟的应用。现在,浪潮和TMAX公司合资,由浪潮全权负责K-DB在中国的发展。
K-DB的开发工作主要由TMAX公司负责,浪潮公司掌握100%K-DB的产品源代码。同时,K-DB只是功能和使用方法与Oracle DB相似,源代码不同,并不存在法律问题。
我的理解 (也结合参会当日各位大牛的观点 ) :
浪潮K-DB11g的功能基本都是照着Oracle11g复制过来的,增加了一些细节方面的功能,另外主要基于浪潮天梭K1上使用K-DB做了优化。
优势:
- 成熟的Oracle DBA不需要花太多功夫去学习新的知识就可以很快上手,企业不需要花太多金钱精力培养运维人员
- 最大程度兼容Oracle,从Oracle到K-DB迁移很方便
弊端:
- 一定程度上缺乏产品的生命力
- 产品使用范围受到限制
----------------------------------------------------------------------------
------------- 为什么选择浪潮K-DB数据库解决方案 --------------
----------------------------------------------------------------------------
数据库作为企业信息系统的根基,支撑着整个应用系统的运行。目前中国绝大多数关键行业用户的数据库都被国外厂商所垄断,其中国外的主流数据库更是占据着庞大的市场份额,垄断的市场造成了选择权和议价权的受限以及高昂的维保费用。中国关键用户正在被国外数据库捆绑,大大增加了信息化建设成本。
浪潮K-DB数据库是面向关键行业应用的大型数据库产品,适合大规模事务处理、联机数据分析处理等业务场景,是国外主流数据库的理想替代产品。浪潮公司拥有K-DB数据库源代码,在中国设有研发中心,拥有完善的产品研发、技术支持、销售和市场体系。浪潮K-DB与K-UX、K-HA一起组成K1系统的基础软件体系。
相比Oracle等国外数据库,采用浪潮K-DB数据库解决方案可有效帮助客户解决以下困扰:
信息系统的发展受到国外产品发展路线的制约
国外软、硬件产品带给国内企业的信息安全威胁
国外软、硬件产品高昂的采购和维护成本
国外厂商技术支持时效性差,用户利益难以保障
详见: http://www.inspur.com/lcjtww/443012/444624/444865/444657/2221454/index.html
我的理解是这样的(也结合参会当日各位技术大牛的观点):
1.大势所趋:在很多机构和部门,避免国外产品垄断化,国产化是必然的趋势。就好像近几年网络方面,华为渐渐取代思科是一个道理。反观K-DB,虽然没有做到完完全全的国有化且规模等暂不可与华为同日而语,但在Oracle“横行”了这么多年的情况下,还是大有前途的
2.在国内缺乏成熟案例:在日本和韩国,K-DB已经有比较成熟的应用,而在国内,K-DB作为新兴数据库产品,还缺乏比较成熟的应用案例。很多企业,尤其是银行、金融和通信行业,对数据的安全是极为看重的,在没有较为成熟的应用的情况下,不太可能轻易使用K-DB。因此,K-DB在发展壮大的道路上,任重而道远。
----------------------------------------------------------------------------
--------------------浪潮K-DB数据库解决方案- ---------------------
----------------------------------------------------------------------------
浪潮K-DB是目前和Oracle兼容性最好的数据库产品,并已在各行业推广使用。
之前听说的99%倒也不是,因该说是一款功能几乎一样,操作方式几乎一样的新产品,哈,就好像“最熟悉的陌生人”。
----体系架构示意图
![](http://img.blog.itpub.net/blog/attachment/201512/13/29781254_1449995256j5Or.jpg?x-oss-process=style/bb)
Oracle DB、K-DB,傻傻分不清楚。
----逻辑结构
![](http://img.blog.itpub.net/blog/attachment/201512/13/29781254_1449995368AJN5.jpg?x-oss-process=style/bb)
逻辑结构也是和Oracle DB类似的。
数据类型等等的支持神马的这里就不贴了,详见: http://server.it168.com/a2015/1123/1779/000001779314.shtml
另外,K-DB有一套和Oracle RAC相似的KRAC:
![](http://img.blog.itpub.net/blog/attachment/201512/13/29781254_1449996026eS0M.jpg?x-oss-process=style/bb)
和Oracle ADG类似的双机热备系统:
![](http://img.blog.itpub.net/blog/attachment/201512/13/29781254_14499961202WWp.gif?x-oss-process=style/bb)
和Oracle 11g ADG类似,备库也可以在Open的时候进行恢复,对外提供查询服务。
详见:http://www.inspur.com/lcjtww/443009/443411/447503/448483/2221427/index.html
浅谈KRAC内存融合技术: http://server.it168.com/a2015/1209/1791/000001791787.shtml
另外,K-DB还提供了可视化监控工具,下次有机会再贴。
----------------------------------------------------------------------------
--------------------浪潮K-DB一键迁移体验- ------------------------
----------------------------------------------------------------------------
目标:
将名为ORCL的K-DB数据库的BASE用户下的所有对象迁移至同一台主机名为KDB的K-DB库下。
1.打开迁移工具,长这样:
![](http://img.blog.itpub.net/blog/attachment/201512/13/29781254_1449996902KvZq.png?x-oss-process=style/bb)
看到这个界面感觉还是不错的,不管怎么说,比辛辛苦苦写parfile做导入导出,还要时不时看看进度担心挂掉要来的直观得多了。不过,许多资深DBA对图形化工具往往没有好感,会觉得缺乏安全感,有种似乎不在掌握之中的感觉。
但是,不得不说,这个工具很大程度上减少了数据迁移的工作量。
2.连接两台数据库
3.设置迁移选项
多种迁移选项选择,贴心。
![](http://img.blog.itpub.net/blog/attachment/201512/18/29781254_1450453219SqS0.png?x-oss-process=style/bb)
由于数据量比较大,可以调整并行度
![](http://img.blog.itpub.net/blog/attachment/201512/18/29781254_1450453295Ggmm.png?x-oss-process=style/bb)
4.开始迁移
![](http://img.blog.itpub.net/blog/attachment/201512/18/29781254_1450453446zx43.png?x-oss-process=style/bb)
报告详细内容
![](http://img.blog.itpub.net/blog/attachment/201512/18/29781254_14504535759Z9X.png?x-oss-process=style/bb)
查看迁移进度:
![](http://img.blog.itpub.net/blog/attachment/201512/18/29781254_14504536652jLz.png?x-oss-process=style/bb)
5.迁移完成
![](http://img.blog.itpub.net/blog/attachment/201512/18/29781254_145045370046gh.png?x-oss-process=style/bb)
----------------------------------------------------------------------------
-------------------------一些简单的操作- -----------------------------
----------------------------------------------------------------------------
1.连接到K-DB
-
- [u2@host3 ~]$ kdsql sys/kdb
-
- kdSQL 11
-
- Connected to Inspur K-DB.
-
- SQL> conn base/base
- Connected to Inspur K-DB.
-
- SQL> select count(*) from tab;
-
- COUNT(*)
- ----------
- 190
-
- 1 row selected.
-
- [u2@host3 ~]$ kdsql sys/kdb@127.0.0.1:5200/kdb as sysdba
-
- kdSQL 11
-
- TBS-70059: Invalid option 'as'.
-
- Usage: kdsql [options] [logon] [script]
-
- options
- -------
- -h,--help Displays this information
- -v,--version Displays version information
- -s,--silent Enables silent mode. Does not display the start-up message,
- prompts and commands
- -i,--ignore Ignore the logon script (eg, kdsql.login)
-
- logon
- -----
- [username[/password[@connect_identifier]]]
-
- script
- ------
- @filename[.ext] [parameter ...]
-
- [u2@host3 ~]$ kdsql sys/kdb@127.0.0.1:5200/kdb
-
- kdSQL 11
-
- Connected to Inspur K-DB.
-
-
- SQL> help
-
- HELP
- ----
- Displays the Help.
-
- {H[ELP]|?} topic
-
- where topic is
- ! {exclamation} % {percent} @ {at} @@ {double at}
- / {slash} ACCEPT APPEND ARCHIVE LOG
- CHANGE CLEAR COLUMN CONNECT
- DEFINE DEL DESCRIBE DISCONNECT
- EDIT EXECUTE EXIT EXPORT
- HELP HISTORY HOST INPUT
- LIST LOADFILE LOOP LS
- PASSWORD PAUSE PING PRINT
- PROMPT QUIT RUN SAVE CREDENTIAL
- SET SHOW KDDOWN SPOOL
- START UNDEFINE VARIABLE WHENEVER
-
2.创建和授权用户
-
- SQL> drop user base cascade;
- TBR-7069: Specified user 'BASE' was not found.
-
- SQL> clear scr
-
- SQL> create user base identified by base;
-
- User 'BASE' created.
-
- SQL> grant dba to base;
-
- Granted.
-
3.看看数据字典
-
- SQL> desc v$database;
-
- COLUMN_NAME TYPE CONSTRAINT
- ---------------------------------------- ------------------ --------------------
- DBID NUMBER
- NAME VARCHAR(40)
- CREATE_DATE DATE
- CURRENT_TSN NUMBER
- OPEN_MODE VARCHAR(10)
- RESETLOG_TSN NUMBER
- RESETLOG_DATE DATE
- PREV_RESETLOG_TSN NUMBER
- PREV_RESETLOG_DATE DATE
- LOG_MODE VARCHAR(12)
- CKPT_TSN NUMBER
- CKPT_DATE DATE
-
- SQL> desc v$instance;
-
- COLUMN_NAME TYPE CONSTRAINT
- ---------------------------------------- ------------------ --------------------
- INSTANCE_NUMBER NUMBER
- INSTANCE_NAME VARCHAR(40)
- DB_NAME VARCHAR(40)
- HOST_NAME VARCHAR(63)
- PARALLEL VARCHAR(3)
- THREAD# NUMBER
- VERSION VARCHAR(8)
- STARTUP_TIME DATE
- STATUS VARCHAR(16)
- SHUTDOWN_PENDING VARCHAR(4)
- TIP_FILE VARCHAR(256)
-
- SQL> select status from v$instance;
-
- STATUS
- ----------------
- NORMAL
-
- 1 row selected.
-
- SQL> desc dba_users;
-
- COLUMN_NAME TYPE CONSTRAINT
- ---------------------------------------- ------------------ --------------------
- USERNAME VARCHAR(128)
- USER_ID NUMBER
- PASSWORD VARCHAR(24)
- ACCOUNT_STATUS VARCHAR(30)
- LOCK_DATE DATE
- EXPIRY_DATE DATE
- DEFAULT_TABLESPACE VARCHAR(128)
- CREATED DATE
- PROFILE VARCHAR(255)
- DEFAULT_TEMP_TABLESPACE VARCHAR(128)
- AUTHENTICATION_TYPE VARCHAR(8)
-
- SQL> desc dba_tables;
-
- COLUMN_NAME TYPE CONSTRAINT
- ---------------------------------------- ------------------ --------------------
- OWNER VARCHAR(128)
- TABLE_NAME VARCHAR(128)
- TABLESPACE_NAME VARCHAR(128)
- PCT_FREE NUMBER
- INI_TRANS NUMBER
- LOGGING VARCHAR(3)
- NUM_ROWS NUMBER
- BLOCKS NUMBER
- AVG_ROW_LEN NUMBER
- DEGREE NUMBER
- SAMPLE_SIZE NUMBER
- LAST_ANALYZED DATE
- PARTITIONED VARCHAR(3)
- BUFFER_POOL VARCHAR(7)
- ROW_MOVEMENT VARCHAR(8)
- DURATION VARCHAR(11)
- COMPRESSION VARCHAR(3)
- DROPPED VARCHAR(3)
- READ_ONLY VARCHAR(3)
- TEMPORARY VARCHAR(3)
- MAX_EXTENTS NUMBER
- IOT_TYPE VARCHAR(12)
- INITIAL_EXTENT NUMBER
- NEXT_EXTENT NUMBER
- MIN_EXTENTS NUMBER
- IS_VIRTUAL VARCHAR(1)
-
-
- SQL> desc dba_tablespaces;
-
- COLUMN_NAME TYPE CONSTRAINT
- ---------------------------------------- ------------------ --------------------
- TABLESPACE_NAME VARCHAR(128)
- TS_ID NUMBER
- DATAFILE_COUNT NUMBER
- BLOCK_SIZE NUMBER
- NEXT_EXTENT NUMBER
- STATUS VARCHAR(9)
- CONTENTS VARCHAR(9)
- LOGGING VARCHAR(9)
- FORCE_LOGGING VARCHAR(3)
- ALLOCATION_TYPE VARCHAR(7)
- ENCRYPTED VARCHAR(3)
- INITIAL_EXTENT NUMBER
- MIN_EXTENTS NUMBER
- MAX_EXTENTS NUMBER
- EXTENT_MANAGEMENT VARCHAR(5)
- SEGMENT_SPACE_MANAGEMENT VARCHAR(4)
-
4.查查参数
-
- SQL> show parameter name
-
- NAME TYPE VALUE
- ---------------------------- -------- ----------------------------------------
- CM_COORDINATOR_NAME STRING
- CM_FILE_NAME STRING
- CM_GROUP_NAME STRING
- CM_NAME STRING
- DB_NAME STRING kdb
- NAMED_PIPE_DIR DIRNAME /home/u2/kdb11/instance/kdb/path/
- STANDBY_FILE_NAME_CONVERT STRING
-
- SQL> show parameter
-
- NAME TYPE VALUE
- ---------------------------- -------- ----------------------------------------
- ACF_CMPT_CNT INT32 132
- ACTIVE_SESSION_HISTORY Y_N NO
- ACTIVE_SESSION_TIMEOUT INT32 0
- ACT_LOG_DEST DIRNAME /home/u2/kdb11/instance/kdb/dump/act/
- ACT_LOG_FILE_SIZE INT32 104857600
- AUDIT_FILE_DEST DIRNAME /home/u2/kdb11/instance/kdb/audit/
- AUDIT_FILE_SIZE INT32 104857600
- AUDIT_LOG_TOTAL_SIZE_LIMIT INT64 314572800
- AUDIT_SYS_OPERATIONS Y_N NO
- AUDIT_TRAIL STRING NONE
- AUTHENTICATION_TIMEOUT INT32 10
- AUTO_COALESCE INT32 2
- ...
-
-
- [u5@host3 tracelog]$ tail -200f trace.log
- 12/10 15:34:57.469088 [DDL] 59(59) ddl_inde:2730 create index build (non_partitioned) start
- 12/10 15:34:57.469198 [DDL] 59(59) td_ifbui:107 Build sgmt id : 3469;
- 12/10 15:34:57.469207 [DDL] 59(59) ddl_inde:1613 ddl_index_build_insert building_index on
- 12/10 15:34:57.469398 [DDL] 59(59) secu_aut:154 secu_check building_index on
- 12/10 15:34:57.528528 [FRM] 59(59) tbsvr_er:066 THROW. ec=ERROR_TD_IFBUILD_UNIQ_VIOLATION(-4004) [ Duplicate unique key found during index fast build. ] (csr_id:4294967295) [td_ifbuild.c:739:td_ifbuild_insert_shortcut]
- 12/10 15:34:57.528543 [DDL] 59(59) ddl_inde:1847 building_index off
- 12/10 15:34:57.528872 [DDL] 59(59) ddl_fram:352 DDL execution failed (ec = -4004): CREATE UNIQUE INDEX "BASE"."SYS_C005666" ON "BASE"."TAB_CARINFO" (
- "CAR_ID" ASC
- )
- LOGGING
- TABLESPACE "USERS"
- PCTFREE 10
- INITRANS 3
- 12/10 15:34:57.530972 [DDL] 59(59) ddl_fram:205 Executing DDL: CREATE UNIQUE INDEX "BASE"."SYS_C005668" ON "BASE"."TAB_DEVGROUPS" (
- "GROUP_ID" ASC
- )
- LOGGING
- TABLESPACE "USERS"
- PCTFREE 10
- INITRANS 3
- 12/10 15:34:57.531903 [DDL] 59(59) ddl_inde:471 create isgmt(idx) obj_id:3470, sgmt_id:3470
- 12/10 15:34:57.532387 [DDL] 59(59) ddl_inde:1323 index build SQL: SELECT /*+ no_tde */ to_srowid(ROWID),("GROUP_ID") FROM "BASE"."TAB_DEVGROUPS" WHERE (("GROUP_ID") IS NOT NULL) ORDER BY ("GROUP_ID") ASC NULLS LAST, 1 ASC
- 12/10 15:34:57.532399 [DDL] 59(59) ddl_inde:2730 create index build (non_partitioned) start
- 12/10 15:34:57.532509 [DDL] 59(59) td_ifbui:107 Build sgmt id : 3470;
- 12/10 15:34:57.532518 [DDL] 59(59) ddl_inde:1613 ddl_index_build_insert building_index on
- 12/10 15:34:57.532709 [DDL] 59(59) secu_aut:154 secu_check building_index on
- 12/10 15:34:57.534918 [FRM] 59(59) tbsvr_er:066 THROW. ec=ERROR_TD_IFBUILD_UNIQ_VIOLATION(-4004) [ Duplicate unique key found during index fast build. ] (csr_id:4294967295) [td_ifbuild.c:739:td_ifbuild_insert_shortcut]
- 12/10 15:34:57.534933 [DDL] 59(59) ddl_inde:1847 building_index off
- 12/10 15:34:57.535217 [DDL] 59(59) ddl_fram:352 DDL execution failed (ec = -4004): CREATE UNIQUE INDEX "BASE"."SYS_C005668" ON "BASE"."TAB_DEVGROUPS" (
- "GROUP_ID" ASC
- )
- LOGGING
- TABLESPACE "USERS"
- PCTFREE 10
- INITRANS 3
- 12/10 15:34:57.537753 [DDL] 59(59) ddl_fram:205 Executing DDL: CREATE UNIQUE INDEX "BASE"."SYS_C005670" ON "BASE"."TAB_DRIVERS" (
- "DRIVER_ID" ASC
- )
- LOGGING
- TABLESPACE "USERS"
- PCTFREE 10
- INITRANS 3
- 12/10 15:34:57.538681 [DDL] 59(59) ddl_inde:471 create isgmt(idx) obj_id:3471, sgmt_id:3471
- 12/10 15:34:57.539187 [DDL] 59(59) ddl_inde:1323 index build SQL: SELECT /*+ no_tde */ to_srowid(ROWID),("DRIVER_ID") FROM "BASE"."TAB_DRIVERS" WHERE (("DRIVER_ID") IS NOT NULL) ORDER BY ("DRIVER_ID") ASC NULLS LAST, 1 ASC
- 12/10 15:34:57.539200 [DDL] 59(59) ddl_inde:2730 create index build (non_partitioned) start
- 12/10 15:34:57.539309 [DDL] 59(59) td_ifbui:107 Build sgmt id : 3471;
- 12/10 15:34:57.539318 [DDL] 59(59) ddl_inde:1613 ddl_index_build_insert building_index on
- 12/10 15:34:57.539509 [DDL] 59(59) secu_aut:154 secu_check building_index on
- 12/10 15:34:57.580333 [FRM] 59(59) tbsvr_er:066 THROW. ec=ERROR_TD_IFBUILD_UNIQ_VIOLATION(-4004) [ Duplicate unique key found during index fast build. ] (csr_id:4294967295) [td_ifbuild.c:739:td_ifbuild_insert_shortcut]
- 12/10 15:34:57.580348 [DDL] 59(59) ddl_inde:1847 building_index off
-
-
- [u5@host3 kdb]$ ps -ef|grep u5
- root 4668 4398 0 15:02 pts/9 00:00:00 su - u5
- u5 4669 4668 0 15:02 pts/9 00:00:00 -bash
- root 5196 5127 0 15:04 pts/20 00:00:00 su - u5
- u5 5197 5196 0 15:04 pts/20 00:00:00 -bash
- u5 7935 5197 0 15:52 pts/20 00:00:00 ps -ef
- u5 7936 5197 0 15:52 pts/20 00:00:00 grep u5
- u5 18029 1 0 Dec09 ? 00:00:00 kdsvr -t NORMAL -SVR_SID kdb
- u5 18030 18029 0 Dec09 ? 00:00:00 /home/u5/kdb11/bin/kdlistener -n 10 -t NORMAL -SVR_SID kdb
- u5 18031 18029 0 Dec09 ? 00:00:00 kdsvr_TBMP -t NORMAL -SVR_SID kdb
- u5 18032 18029 0 Dec09 ? 00:01:16 kdsvr_WP000 -t NORMAL -SVR_SID kdb
- u5 18033 18029 0 Dec09 ? 00:12:05 kdsvr_WP001 -t NORMAL -SVR_SID kdb
- u5 18034 18029 0 Dec09 ? 00:00:19 kdsvr_AGNT -t NORMAL -SVR_SID kdb
- u5 18035 18029 0 Dec09 ? 00:00:04 kdsvr_DBWR -t NORMAL -SVR_SID kdb
- u5 18036 18029 0 Dec09 ? 00:00:00 kdsvr_RECO -t NORMAL -SVR_SID kdb
-
-
- [u2@host3 bin]$ more /home/u2/kdb11/config/tip.template
- #-------------------------------------------------------------------------------
- #
- # RDBMS initialization parameter
- #
- #-------------------------------------------------------------------------------
-
- DB_NAME=@SID@
- LISTENER_PORT=@PORT@
- CONTROL_FILES="@HOME@/database/@SID@/c1.ctl"
- #CERTIFICATE_FILE="@HOME@/config/svr_wallet/@SID@.crt"
- #PRIVKEY_FILE="@HOME@/config/svr_wallet/@SID@.key"
- #WALLET_FILE="@HOME@/config/svr_wallet/WALLET"
-
- MAX_SESSION_COUNT=20
-
- TOTAL_SHM_SIZE=512M
- MEMORY_TARGET=1G
-
-
- ...
- 11/27 18:07:29.058185 [FRM] 00(00) tbsvr_ma:3261 show tip [kdb.tip]
- -----------------------------------------------------------------------------
- # tip file generated from /home/u2/kdb11/config/tip.template (Fri Nov 27 17:45:07 CST 2015)
- #-------------------------------------------------------------------------------
- #
- # RDBMS initialization parameter
- #
- #-------------------------------------------------------------------------------
-
- DB_NAME=kdb
- LISTENER_PORT=5200
- CONTROL_FILES="/home/u2/kdb11/database/kdb/c1.ctl"
- #CERTIFICATE_FILE="/home/u2/kdb11/config/svr_wallet/kdb.crt"
- #PRIVKEY_FILE="/home/u2/kdb11/config/svr_wallet/kdb.key"
- #WALLET_FILE="/home/u2/kdb11/config/svr_wallet/WALLET"
-
- MAX_SESSION_COUNT=20
-
- TOTAL_SHM_SIZE=512M
- MEMORY_TARGET=1G
-
-
- -----------------------------------------------------------------------------
- 11/27 18:07:29.072801 [FRM] 00(00) tbsvr_os:128 [OS Stat] clock tick: 100
- 11/27 18:07:29.235782 [CLC] 00(00) tc_mcrt.:041 set MCRT dirty block count by target io: 0
- 11/27 18:07:29.239815 [CLL] 00(00) tc_lgwr.:100 log writer system call type: 0
- 11/27 18:07:29.239973 [CLC] 00(00) tc_mcrt.:041 set MCRT dirty block count by target io: 0
- 11/27 18:07:29.241912 [TXS] 00(00) tx_l1c.c:149 init l1cache: bucket_size=1024/1024
- 11/27 18:07:29.247386 [FRM] 00(00) tbsvr_ma:1626 Server is running at NOMOUNT mode (bootmode : NOMOUNT)
- 11/27 18:07:29.247421 [FRM] 00(00) body.c :216
- Inspur K-DB 11 (Build 111557, DB 6.0) (FS02)
- Patch files (FS02_100096b FS02_100570a FS02_100715a FS02_99172c FS02_99340a FS02_99892a )
- Patches applied:
- ...
-
-
- [u2@host3 bin]$ kderr
- USAGE: kderr [error code]... [error name]...
-
- describe error description(s)
- input(s) can be positive/negative error number
-
- EXAMPLE:
- $ kderr 50001 ERROR_TEST
- /*
- * err: -50001
- * name: ERROR_TEST
- * desc: error_test
- * cause:
- * action:
- */
-
- /*
- * err: -50001
- * name: ERROR_TEST
- * desc: error_test
- * cause:
- * action:
- */
-
![](http://img.blog.itpub.net/blog/attachment/201512/19/29781254_1450456229vmQA.png?x-oss-process=style/bb)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
一句话总结:
在国产化政策的支持下,相信K-DB在积累更多成功案例和推出更稳定的版本后,会越来越广泛地应用在企业中。
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/63.gif)
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/63.gif)
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/63.gif)
至此,我的深圳的K-DB开放日体验之行告一段落,在数据库和其他技术学习的道路上仍然任重而道远……
![](http://blog.itpub.net/kindeditor/plugins/emoticons/images/30.gif)
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29781254/viewspace-1874865/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29781254/viewspace-1874865/