在informix 11.50中,tmp/online.log日志中出现如下错误信息:

09:15:01  SCHAPI: Error -206 The specified table (mon_syssqltrace) is not in the database.
09:15:01  SCHAPI: Type: SENSOR, Name: Save SQL Trace, Location: NULL.
09:15:01  SCHAPI: Error -111 ISAM error:  no record found.
09:15:01  SCHAPI: Type: SENSOR, Name: Save SQL Trace, Location: NULL.

解决方案:

1) Recently used OAT then see errors -310, -206, and -111 on mon_syssqltrace and mon_syssqltrace_info

Problem(Abstract)

You recently setup Open Admin Tool ( OAT ) or used OAT to created a task and now you see errors like these in the online.log: 07/02/10 10:15:01  SCHAPI: [Save SQL Trace 20-221] Error -206 The specified table (mon_syssqltrace) is not in the database. 07/02/10 10:15:01  SCHAPI: [Save SQL Trace 20-221] Error -111 ISAM error:  no record found. 07/02/10 10:15:01  SCHAPI: [Save SQL Trace 20-221] Error -310 Table (informix.mon_syssqltrace_info) already exists in database. 07/02/10 10:15:01  SCHAPI: [Save SQL Trace 20-221] Error -111 ISAM error:  no record found.

Cause

A task was incorrectly created by Open Admin Tool ( OAT ).

Resolving the problem

Upgrade to OAT 2.28 or higher. Download OAT at:
http://www.openadmintool.org/index.php?pid=22

2) You can find the schema in a function called "sql_showsnap" in the sysadmin 

database. Run "dbschema -d sysadmin -f sql_showsnap -ss". This SP is 
executed when the Save SQL Trace task starts and is suppose to create 4 
tables in sysadmin on it's first run but somehow bails out after creating 
the first table, mon_syssqltrace_info. Just create the rest of the tables 
manually and it should be ok.

  1. [informix@test ~]$ dbschema -d sysadmin -f sql_showsnap -ss 
  2.  
  3. DBSCHEMA Schema Utility       INFORMIX-SQL Version 11.50.UC5     
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11. CREATE FUNCTION "informix".sql_showsnap(in_task_id INTEGER, in_seq_id INTEGER
  12.    RETURNING INTEGER 
  13.  
  14. DEFINE p_last_starttime    INTEGER-- starttime from mon_syssqltrace_info 
  15.                                     -- for the last task run 
  16. DEFINE p_trace_starttime   INTEGER-- starttime from sysmaster:syssqltrace_info 
  17.  
  18. DEFINE p_last_sql_id       INT8;  -- biggest orig_sql_id from last task run 
  19.  
  20. DEFINE p_new_sql_id        INT8;  -- new max(orig_sql_id) from mon_syssqltrace 
  21.                                   -- for this task run 
  22.  
  23. DEFINE p_start_high4       INT8;  -- high value of sql_id in mon_syssqltrace* 
  24.                                   -- tables 
  25.  
  26. DEFINE p_host_vars         INTEGER-- Is SQLTRACE set to collect host vars ? 
  27. DEFINE sqltrace_row_cnt    INTEGER
  28. DEFINE sqltrace_iter_row_cnt INTEGER
  29. DEFINE sqltrace_hvar_row_cnt INTEGER
  30. DEFINE delete_cnt            INTEGER
  31.  
  32.  
  33. ON EXCEPTION IN (-206) -- If no table was found, create one 
  34.  
  35. BEGIN 
  36.   ON EXCEPTION  -- Continue trying each of these statements within the outer exception 
  37.   END EXCEPTION WITH RESUME; 
  38.    
  39.     create raw table mon_syssqltrace_info 
  40.         ( 
  41.         serial_id         serial, 
  42.         ID                integer
  43.         task_id           integer
  44.         orig_sql_id       int8, 
  45.         starttime         integer 
  46.         ); 
  47.     insert into mon_syssqltrace_info values (0, 0,  0,  -1, 0); 
  48.  
  49.     create raw table mon_syssqltrace_hvar 
  50.         ( 
  51.         ID                integer
  52.         task_id           integer
  53.         cur_date          date
  54.         sql_id            int8, 
  55.         orig_sql_id       int8, 
  56.         sql_address       int8, 
  57.         sql_hvar_id       int
  58.         sql_hvar_flags    int
  59.         sql_hvar_typeid   int
  60.         sql_hvar_xtypeid  int
  61.         sql_hvar_ind      int
  62.         sql_hvar_type     varchar(128), 
  63.         sql_hvar_data     lvarchar(8192) 
  64.         ); 
  65.  
  66.     create raw table mon_syssqltrace_iter 
  67.         ( 
  68.         ID                integer
  69.         task_id           integer
  70.         cur_date          date
  71.         sql_id            int8, 
  72.         orig_sql_id       int8, 
  73.         sql_address       int8, 
  74.         sql_itr_address   int8, 
  75.         sql_itr_id        int
  76.         sql_itr_left      int
  77.         sql_itr_right     int
  78.         sql_itr_cost      int
  79.         sql_itr_estrows   int
  80.         sql_itr_numrows   int
  81.         sql_itr_type      int
  82.         sql_itr_misc      int
  83.         sql_itr_info      char(256), 
  84.         sql_itr_time      float
  85.         sql_itr_partnum   int 
  86.         ); 
  87.  
  88.     create raw table mon_syssqltrace 
  89.         ( 
  90.         ID                integer
  91.         task_id           integer
  92.         cur_date          date
  93.         sql_id            int8, 
  94.         orig_sql_id       int8, 
  95.         sql_address       int8, 
  96.         sql_sid           int
  97.         sql_uid           int
  98.         sql_stmttype      int
  99.         sql_stmtname      varchar(40), 
  100.         sql_finishtime    int
  101.         sql_begintxtime   int
  102.         sql_runtime       float
  103.         sql_pgreads       int
  104.         sql_bfreads       int
  105.         sql_rdcache       float
  106.         sql_bfidxreads    int
  107.         sql_pgwrites      int
  108.         sql_bfwrites      int
  109.         sql_wrcache       float
  110.         sql_lockreq       int
  111.         sql_lockwaits     int
  112.         sql_lockwttime    float
  113.         sql_logspace      int
  114.         sql_sorttotal     int
  115.         sql_sortdisk      int
  116.         sql_sortmem       int
  117.         sql_executions    int
  118.         sql_totaltime     float
  119.         sql_avgtime       float
  120.         sql_maxtime       float
  121.         sql_numiowaits    int
  122.         sql_avgiowaits    float
  123.         sql_totaliowaits  float
  124.         sql_rowspersec    float
  125.         sql_estcost       int
  126.         sql_estrows       int
  127.         sql_actualrows    int
  128.         sql_sqlerror      int
  129.         sql_isamerror     int
  130.         sql_isollevel     int
  131.         sql_sqlmemory     int
  132.         sql_numiterators  int
  133.         sql_database      varchar(128), 
  134.         sql_numtables     int
  135.         sql_tablelist     lvarchar(4096), 
  136.         sql_statement     lvarchar(16000), 
  137.         -- sql_statement     char(16000), 
  138.         sql_stmtlen       int
  139.         sql_stmthash      int8, 
  140.         sql_pdq           smallint
  141.         sql_num_hvars     smallint
  142.         sql_dbspartnum    int 
  143.         ); 
  144.  
  145.  
  146.      CREATE INDEX mon_syssqltrace_idx1 on 
  147.                                 mon_syssqltrace(ID, task_id, orig_sql_id); 
  148.      CREATE INDEX mon_syssqltrace_idx2 on 
  149.                                 mon_syssqltrace(sql_stmtlen,sql_stmttype); 
  150.      CREATE INDEX mon_syssqltrace_idx3 on mon_syssqltrace(cur_date); 
  151.  
  152.      CREATE INDEX mon_syssqltrace_iter_idx1 on 
  153.                                 mon_syssqltrace_iter(ID, task_id, orig_sql_id); 
  154.      CREATE INDEX mon_syssqltrace_iter_idx2 on mon_syssqltrace_iter(cur_date); 
  155.  
  156.      CREATE INDEX mon_syssqltrace_hvar_idx1 on 
  157.                                 mon_syssqltrace_hvar(ID, task_id, orig_sql_id); 
  158.      CREATE INDEX mon_syssqltrace_hvar_idx2 on mon_syssqltrace_hvar(cur_date); 
  159.  
  160. END 
  161.    END EXCEPTION WITH RESUME; 
  162.  
  163.  
  164. --SET DEBUG FILE TO "/tmp/debug_sql_showsnap.log"; 
  165. --TRACE ON; 
  166.  
  167. SET ISOLATION TO DIRTY READ
  168.  
  169. LET p_last_starttime = 0; 
  170. LET p_trace_starttime = 0; 
  171. LET p_last_sql_id = -1; 
  172. LET p_host_vars = 0; 
  173. LET sqltrace_iter_row_cnt = 0; 
  174. LET sqltrace_row_cnt = 0; 
  175. LET sqltrace_hvar_row_cnt = 0; 
  176.  
  177. LET p_trace_starttime = 
  178.                  (SELECT NVL(starttime,0) FROM sysmaster:syssqltrace_info); 
  179.  
  180. IF  ( (p_trace_starttime is NULLor (p_trace_starttime == 0) ) THEN 
  181. INSERT into mon_syssqltrace_info 
  182.                  values (0, in_seq_id, in_task_id, -1, p_trace_starttime); 
  183. RETURN 0; 
  184. END IF; 
  185.  
  186.  
  187. LET p_host_vars = 
  188.        (SELECT bitand(flags,8192) FROM sysmaster:syssqltrace_info); 
  189.  
  190. LET p_last_sql_id = (SELECT NVL(orig_sql_id,-1) FROM mon_syssqltrace_info 
  191.                      where serial_id  = 
  192.                        (select MAX(serial_id) from mon_syssqltrace_info)); 
  193.  
  194.  
  195. LET p_last_starttime = (SELECT NVL(starttime,0) FROM mon_syssqltrace_info 
  196.                      where serial_id  = 
  197.                        (select MAX(serial_id) from mon_syssqltrace_info)); 
  198.  
  199.  
  200. IF (p_last_sql_id is NULLTHEN 
  201.    LET p_last_sql_id = -1; 
  202. END IF; 
  203.  
  204. IF (p_last_starttime is NULLTHEN 
  205.    LET p_last_starttime = 0; 
  206. END IF; 
  207.  
  208. IF  (p_last_starttime != p_trace_starttime) THEN 
  209.     LET p_last_sql_id = -1 ; 
  210. END IF; 
  211.  
  212. LET p_start_high4 = p_trace_starttime * 4294967296 ; 
  213.  
  214. INSERT INTO mon_syssqltrace 
  215.         ( 
  216.         ID                , 
  217.         task_id           , 
  218.         cur_date          , 
  219.         sql_id            , 
  220.         orig_sql_id       , 
  221.         sql_address       , 
  222.         sql_sid           , 
  223.         sql_uid           , 
  224.         sql_stmttype      , 
  225.         sql_stmtname      , 
  226.         sql_finishtime    , 
  227.         sql_begintxtime   , 
  228.         sql_runtime       , 
  229.         sql_pgreads       , 
  230.         sql_bfreads       , 
  231.         sql_rdcache       , 
  232.         sql_bfidxreads    , 
  233.         sql_pgwrites      , 
  234.         sql_bfwrites      , 
  235.         sql_wrcache       , 
  236.         sql_lockreq       , 
  237.         sql_lockwaits     , 
  238.         sql_lockwttime    , 
  239.         sql_logspace      , 
  240.         sql_sorttotal     , 
  241.         sql_sortdisk      , 
  242.         sql_sortmem       , 
  243.         sql_executions    , 
  244.         sql_totaltime     , 
  245.         sql_avgtime       , 
  246.         sql_maxtime       , 
  247.         sql_numiowaits    , 
  248.         sql_avgiowaits    , 
  249.         sql_totaliowaits  , 
  250.         sql_rowspersec    , 
  251.         sql_estcost       , 
  252.         sql_estrows       , 
  253.         sql_actualrows    , 
  254.         sql_sqlerror      , 
  255.         sql_isamerror     , 
  256.         sql_isollevel     , 
  257.         sql_sqlmemory     , 
  258.         sql_numiterators  , 
  259.         sql_database      , 
  260.         sql_numtables     , 
  261.         sql_tablelist     , 
  262.         sql_statement     , 
  263.         sql_stmtlen       , 
  264.         sql_stmthash      , 
  265.         sql_pdq           , 
  266.         sql_num_hvars     , 
  267.         sql_dbspartnum 
  268.         ) 
  269.     SELECT 
  270.         in_seq_id         , 
  271.         in_task_id        , 
  272.         today             , 
  273.         p_start_high4 + sql_id  , 
  274.         sql_id            , 
  275.         sql_address       , 
  276.         sql_sid           , 
  277.         sql_uid           , 
  278.         sql_stmttype      , 
  279.         sql_stmtname      , 
  280.         sql_finishtime    , 
  281.         sql_begintxtime   , 
  282.         sql_runtime       , 
  283.         sql_pgreads       , 
  284.         sql_bfreads       , 
  285.         sql_rdcache       , 
  286.         sql_bfidxreads    , 
  287.         sql_pgwrites      , 
  288.         sql_bfwrites      , 
  289.         sql_wrcache       , 
  290.         sql_lockreq       , 
  291.         sql_lockwaits     , 
  292.         sql_lockwttime    , 
  293.         sql_logspace      , 
  294.         sql_sorttotal     , 
  295.         sql_sortdisk      , 
  296.         sql_sortmem       , 
  297.         sql_executions    , 
  298.         sql_totaltime     , 
  299.         sql_avgtime       , 
  300.         sql_maxtime       , 
  301.         sql_numiowaits    , 
  302.         sql_avgiowaits    , 
  303.         sql_totaliowaits  , 
  304.         sql_rowspersec    , 
  305.         sql_estcost       , 
  306.         sql_estrows       , 
  307.         sql_actualrows    , 
  308.         sql_sqlerror      , 
  309.         sql_isamerror     , 
  310.         sql_isollevel     , 
  311.         sql_sqlmemory     , 
  312.         sql_numiterators  , 
  313.         sql_database      , 
  314.         sql_numtables     , 
  315.         TRIM(sql_tablelist)     , 
  316.         TRIM(sql_statement)     , 
  317.         sql_stmtlen       , 
  318.         sql_stmthash      , 
  319.         sql_pdq           , 
  320.         sql_num_hvars     , 
  321.         sql_dbspartnum 
  322.     FROM sysmaster:syssqltrace 
  323.     WHERE sql_id >  p_last_sql_id; 
  324.  
  325. LET  sqltrace_row_cnt = DBINFO('sqlca.sqlerrd2'); 
  326.  
  327.  
  328. INSERT INTO mon_syssqltrace_iter 
  329.         ( 
  330.         ID                , 
  331.         task_id           , 
  332.         cur_date          , 
  333.         sql_id            , 
  334.         orig_sql_id       , 
  335.         sql_address       , 
  336.         sql_itr_address   , 
  337.         sql_itr_id        , 
  338.         sql_itr_left      , 
  339.         sql_itr_right     , 
  340.         sql_itr_cost      , 
  341.         sql_itr_estrows   , 
  342.         sql_itr_numrows   , 
  343.         sql_itr_type      , 
  344.         sql_itr_misc      , 
  345.         sql_itr_info      , 
  346.         sql_itr_time      , 
  347.         sql_itr_partnum 
  348.         ) 
  349.  SELECT 
  350.         in_seq_id         , 
  351.         in_task_id        , 
  352.         today             , 
  353.         p_start_high4 + sql_id , 
  354.         sql_id            , 
  355.         sql_address       , 
  356.         sql_itr_address   , 
  357.         sql_itr_id        , 
  358.         sql_itr_left      , 
  359.         sql_itr_right     , 
  360.         sql_itr_cost      , 
  361.         sql_itr_estrows   , 
  362.         sql_itr_numrows   , 
  363.         sql_itr_type      , 
  364.         sql_itr_misc      , 
  365.         sql_itr_info      , 
  366.         sql_itr_time      , 
  367.         sql_itr_partnum 
  368.     FROM sysmaster:syssqltrace_iter 
  369.     WHERE sql_id >  p_last_sql_id; 
  370.  
  371. LET  sqltrace_iter_row_cnt = DBINFO('sqlca.sqlerrd2'); 
  372.  
  373. IF ( p_host_vars > 0  )  THEN 
  374.  
  375. INSERT INTO mon_syssqltrace_hvar 
  376.         ( 
  377.         ID                , 
  378.         task_id           , 
  379.         cur_date          , 
  380.         sql_id            , 
  381.         orig_sql_id       , 
  382.         sql_address       , 
  383.         sql_hvar_id       , 
  384.         sql_hvar_flags    , 
  385.         sql_hvar_typeid   , 
  386.         sql_hvar_xtypeid  , 
  387.         sql_hvar_ind      , 
  388.         sql_hvar_type     , 
  389.         sql_hvar_data 
  390.         ) 
  391.  SELECT 
  392.         in_seq_id         , 
  393.         in_task_id        , 
  394.         today             , 
  395.         p_start_high4 + sql_id , 
  396.         sql_id            , 
  397.         sql_address       , 
  398.         sql_hvar_id       , 
  399.         sql_hvar_flags    , 
  400.         sql_hvar_typeid   , 
  401.         sql_hvar_xtypeid  , 
  402.         sql_hvar_ind      , 
  403.         sql_hvar_type      , 
  404.         trim(sql_hvar_data) 
  405.     FROM sysmaster:syssqltrace_hvar 
  406.     WHERE sql_id >  p_last_sql_id; 
  407.  
  408. LET  sqltrace_hvar_row_cnt = DBINFO('sqlca.sqlerrd2'); 
  409.  
  410.  
  411. DELETE FROM mon_syssqltrace_hvar 
  412.     WHERE     ID = in_seq_id AND 
  413.               task_id = in_task_id AND 
  414.               orig_sql_id > p_last_sql_id AND 
  415.    orig_sql_id NOT IN ( SELECT orig_sql_id FROM mon_syssqltrace 
  416.                        where ID = in_seq_id AND task_id = in_task_id); 
  417.  
  418. LET  delete_cnt = DBINFO('sqlca.sqlerrd2'); 
  419. END IF;   -- IF ( p_host_vars > 0  )  THEN 
  420.  
  421.  
  422.  
  423. DELETE FROM mon_syssqltrace_iter 
  424.     WHERE     ID = in_seq_id AND 
  425.               task_id = in_task_id AND 
  426.               orig_sql_id > p_last_sql_id AND 
  427.    orig_sql_id NOT IN ( SELECT orig_sql_id FROM mon_syssqltrace 
  428.                        where ID = in_seq_id AND task_id = in_task_id); 
  429. LET  delete_cnt = DBINFO('sqlca.sqlerrd2'); 
  430.  
  431. LET p_new_sql_id = -1; 
  432. LET p_new_sql_id = (SELECT NVL(MAX(orig_sql_id),-1) from mon_syssqltrace 
  433.                       where ID = in_seq_id AND task_id = in_task_id ); 
  434.  
  435. IF ( (p_new_sql_id is NULLor (p_new_sql_id == -1) ) 
  436. THEN 
  437. INSERT into mon_syssqltrace_info 
  438.          values (0, in_seq_id, in_task_id, p_last_sql_id, p_trace_starttime); 
  439. ELSE 
  440. INSERT into mon_syssqltrace_info 
  441.          values (0, in_seq_id, in_task_id, p_new_sql_id, p_trace_starttime); 
  442. END IF; 
  443.  
  444. RETURN sqltrace_row_cnt; 
  445.  
  446. END FUNCTION
  1. [informix@test ~]$ dbaccess sysadmin<< ! 
  2. create raw table mon_syssqltrace_hvar 
  3. >         ( 
  4. >         ID                integer
  5. >         task_id           integer
  6. >         cur_date          date
  7. >         sql_id            int8, 
  8. >         orig_sql_id       int8, 
  9. >         sql_address       int8, 
  10. >         sql_hvar_id       int
  11. >         sql_hvar_flags    int
  12. >         sql_hvar_typeid   int
  13. >         sql_hvar_xtypeid  int
  14. >         sql_hvar_ind      int
  15. >         sql_hvar_type     varchar(128), 
  16. >         sql_hvar_data     lvarchar(8192) 
  17. >         ); 
  18. >  
  19. >     create raw table mon_syssqltrace_iter 
  20. >         ( 
  21. >         ID                integer
  22. >         task_id           integer
  23. >         cur_date          date
  24. >         sql_id            int8, 
  25. >         orig_sql_id       int8, 
  26. >         sql_address       int8, 
  27. >         sql_itr_address   int8, 
  28. >         sql_itr_id        int
  29. >         sql_itr_left      int
  30. >         sql_itr_right     int
  31. >         sql_itr_cost      int
  32. >         sql_itr_estrows   int
  33. >         sql_itr_numrows   int
  34. >         sql_itr_type      int
  35. >         sql_itr_misc      int
  36. >         sql_itr_info      char(256), 
  37. >         sql_itr_time      float
  38. >         sql_itr_partnum   int 
  39. >         ); 
  40. >  
  41. >     create raw table mon_syssqltrace 
  42. >         ( 
  43. >         ID                integer
  44. >         task_id           integer
  45. >         cur_date          date
  46. >         sql_id            int8, 
  47. >         orig_sql_id       int8, 
  48. >         sql_address       int8, 
  49. >         sql_sid           int
  50. >         sql_uid           int
  51. >         sql_stmttype      int
  52. >         sql_stmtname      varchar(40), 
  53. >         sql_finishtime    int
  54. >         sql_begintxtime   int
  55. >         sql_runtime       float
  56. >         sql_pgreads       int
  57. >         sql_bfreads       int
  58. >         sql_rdcache       float
  59. >         sql_bfidxreads    int
  60. >         sql_pgwrites      int
  61. >         sql_bfwrites      int
  62. >         sql_wrcache       float
  63. >         sql_lockreq       int
  64. >         sql_lockwaits     int
  65. >         sql_lockwttime    float
  66. >         sql_logspace      int
  67. >         sql_sorttotal     int
  68. >         sql_sortdisk      int
  69. >         sql_sortmem       int
  70. >         sql_executions    int
  71. >         sql_totaltime     float
  72. >         sql_avgtime       float
  73. >         sql_maxtime       float
  74. >         sql_numiowaits    int
  75.         sql_avgiowaits    float
  76. >         sql_avgiowaits    float
  77. >         sql_totaliowaits  float
  78. >         sql_rowspersec    float
  79. >         sql_estcost       int
  80. >         sql_estrows       int
  81. >         sql_actualrows    int
  82. >         sql_sqlerror      int
  83. >         sql_isamerror     int
  84. >         sql_isollevel     int
  85. >         sql_sqlmemory     int
  86. >         sql_numiterators  int
  87. >         sql_database      varchar(128), 
  88. >         sql_numtables     int
  89. >         sql_tablelist     lvarchar(4096), 
  90. >         sql_statement     lvarchar(16000), 
  91. >         -- sql_statement     char(16000), 
  92. >         sql_stmtlen       int
  93. >         sql_stmthash      int8, 
  94. >         sql_pdq           smallint
  95. >         sql_num_hvars     smallint
  96. >         sql_dbspartnum    int 
  97. >         ); 
  98. >  
  99. >  
  100. >      CREATE INDEX mon_syssqltrace_idx1 on 
  101. >                                 mon_syssqltrace(ID, task_id, orig_sql_id); 
  102. >      CREATE INDEX mon_syssqltrace_idx2 on 
  103. >                                 mon_syssqltrace(sql_stmtlen,sql_stmttype); 
  104. >      CREATE INDEX mon_syssqltrace_idx3 on mon_syssqltrace(cur_date); 
  105. >  
  106. >      CREATE INDEX mon_syssqltrace_iter_idx1 on 
  107. >                                 mon_syssqltrace_iter(ID, task_id, orig_sql_id); 
  108. >      CREATE INDEX mon_syssqltrace_iter_idx2 on mon_syssqltrace_iter(cur_date); 
  109. >  
  110. >      CREATE INDEX mon_syssqltrace_hvar_idx1 on 
  111. >                                 mon_syssqltrace_hvar(ID, task_id, orig_sql_id); 
  112. >      CREATE INDEX mon_syssqltrace_hvar_idx2 on mon_syssqltrace_hvar(cur_date); 
  113. > ! 
此文章由 flyinweb 于 2011-01-30 09:50:43 编辑

本日志由 flyinweb 于 2011-01-30 09:31:34 发表,目前已经被浏览 1618 次,评论 0 次;

作者添加了以下标签: SCHAPI206mon_syssqltrace

引用通告:http://www.517sou.net/Article/573/Trackback.ashx

评论订阅:http://www.517sou.net/Article/573/Feeds.ashx

评论列表

    暂时没有评论
(必填)
(必填,不会被公开)