Oracle脚本分享:db_auto_add_logfile

这篇具有很好参考价值的文章主要介绍了Oracle脚本分享:db_auto_add_logfile。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Oracle数据库中,有时候需要根据实际情况调整redo log的大小,增加redo log的日志组的数量,或者增加日志组成员,以及redo log的size大小不合适时,需要调整redo log的大小(删除redo log,重新添加redo log),一般情况下,都是手工写脚本,如果多台数据库实例,就必须写很多脚本,那么可不可以用一个脚本自动生成相关脚本,自动解决这些问题。这个就是脚本db_auto_add_logfile.sql出现的原因,有了这个脚本,你在维护redo log时就轻松方便很多。当然,这个脚本也许有不足或不完善的地方。另外,此脚本只适用于Linux或Unix平台,不适用于Windows平台,另外,脚本需要在SQL*Plus下调用执行。

/*************************************************************************************************
--ScriptName          :           db_auto_add_logfile.sql
--Author              :           潇湘隐者  
--CreateDate          :           2022-04-15
--Description         :           用于在创建数据库后,添加日志文件组,需要指定增加redolog组个数
                                  指定日志文件大小,会自动把日志文件不同于指定大小的日志组删除。
                                  
**************************************************************************************************
--Parameters          :                                   参数说明
**************************************************************************************************
    &redo_log_size        redo log的大小(单位为M)
    &redo_group_number    增加redo log的组数量
    &redo_log_new_path    redo组成员从一组变成2组,如果已经存在两组成员,忽略其值。
**************************************************************************************************
注意事项:
         脚本经过大量测试,但是不能保证所有场景&环境都没有问题,请先测试验证
**************************************************************************************************
   Modified Date    Modified User     Version                Modified Reason
**************************************************************************************************
    2022-04-15      潇湘隐者           V1.0     新建脚本,脚本参考了"认真就输"的db_add_logfile.sql脚本
    2022-05-02      潇湘隐者           V1.1     修改脚本,增加查看redo log详细信息,修改i_logfile_size
                                                单位,增加更多的条件判断。
    2022-05-19      潇湘隐者           V1.2     添加redo文件时,数字格式化0x,例如redo3.log格式为redo03.log
    2022-06-03      潇湘隐者           V1.3     如果redo log的组成员为2个(多路复用),增加两个redolog
    2023-10-20      潇湘隐者           V1.4     增加参数&redo_log_new_path,用来控制redo log组成员增加情况
    2023-11-06      潇湘隐者           V1.5     非归档模式,执行脚本alter system archive log current报错问题解决
**************************************************************************************************/

pro
pro **************************************************************************************************
pro
pro   check the redo log group information:  
pro
pro **************************************************************************************************
SET LINESIZE 200
SET PAGESIZE 1000 HEADING ON VERIFY OFF SERVEROUTPUT ON
col 'first_change#' for 99999999999999
COL "GROUP#" FOR 999999
COL "THREAD#" FOR 9999999
COL "FIRST_CHANGE#" FOR 99999999999999
COL MEMBERS FOR 999999
COL FIRST_TIME FOR A20
COL STATUS FOR A8
SELECT  GROUP#        
       ,THREAD#       
       ,SEQUENCE#     
       ,BYTES/1024/1024  AS LOG_SIZE_MB        
       ,MEMBERS       
       ,ARCHIVED      
       ,STATUS        
       ,FIRST_CHANGE
       ,TO_CHAR(FIRST_TIME,'YYYY-MM-DD HH24:MI:SS'AS  FIRST_TIME  
FROM V$LOG;

pro **************************************************************************************************
pro
pro Note:The redo log file size information detail:
pro
pro **************************************************************************************************
--查看redo文件信息以及相关属性
SET LINESIZE 850;
SET PAGESIZE 200;
COL "GROUP#" FOR 999999
COL "THREAD#" FOR 9999999
COL STATUS FOR A12
COL MEMBER FOR A48
COL STATUS FOR A8
SELECT A.GROUP#
     , A.THREAD#
     , A.SEQUENCE#
     , B.MEMBER
     , A.BLOCKSIZE
     , A.STATUS
     , A.BYTES/1024/1024 AS SIZE_MB
     , A.ARCHIVED
FROM V$LOG A, V$LOGFILE B
WHERE A.GROUP#=B.GROUP#
ORDER BY A.GROUP#;

pro
pro **************************************************************************************************
pro The parameter description are as follows:
pro
pro Note:
pro     redo_log_size:The redo log size unit is mb.
pro     redo_group_number:The number of redo group log need to added.
pro     redo_log_new_path: the default value is nullif you want to add member for redolog,please set value for it.
pro
pro
pro this script drop redo log group didn''drop the phyical file ,please delete these files manually.
pro **************************************************************************************************
pro
pro
pro Press any key to continue ...
pause

set lines 200
set pages 1000 heading on verify off serveroutput on
DECLARE
   path_type           VARCHAR2 (200);
   log_path_name       VARCHAR2 (200);
   i_group_current     NUMBER;
   i_logfile_size      NUMBER;
   i_group_number      NUMBER;
-- i_max_group_number  NUMBER;
   i_log_number        NUMBER;
   i_sql               VARCHAR2 (1000);
   i_sql_arch          VARCHAR2 (200) := 'alter system archive log current';
   i_sql_swith         VARCHAR2 (200) := '
alter system switch logfile';
   i_group_status      VARCHAR2 (200);
   i_curr_log_size     NUMBER;  
   i_log_path_sql      VARCHAR2 (600) :='';
   i_group_members     NUMBER;
   i_redo_log_new_path VARCHAR(100) :='';
   i_log_mode          VARCHAR2(16) :='
ARCHIVELOG';

   CURSOR cur_log_path IS
    SELECT DISTINCT
            CASE
                WHEN REGEXP_REPLACE (MEMBER, '
[^\+]', '') = '+'
                THEN
                    SUBSTR (x.MEMBER,
                            1,
                            REGEXP_INSTR (x.MEMBER,
                                            '
[/]',
                                            1,
                                            1)
                            - 1)
                ELSE
                    SUBSTR (x.MEMBER,
                            1,
                            REGEXP_INSTR (x.MEMBER,
                                        '
[/]',
                                        1,
                                        REGEXP_COUNT (x.MEMBER, '
[/]')))
            END AS log_path_name
        FROM v$logfile x ; 
        
BEGIN


   i_logfile_size      :='
&redo_log_size';   --parameter setting
   i_group_number      :='
&redo_group_number'; --parameter setting
   i_redo_log_new_path :=TRIM('
&redo_log_new_path'); --parameter setting
   
   
   DBMS_OUTPUT.put_line('
The sql script will be executed:');
   SELECT MAX(BYTES/1024/1024) INTO  i_curr_log_size
   FROM V$LOG;
   
   --允许调整redo log size大小(如果减小当前redo log size,只是给与提示)
   IF i_curr_log_size < i_logfile_size
   THEN
      DBMS_OUTPUT.put_line('
The parameter redo_log_size less than current redo log size:' || TO_CHAR(i_curr_log_size));
   END IF;
   
   SELECT MAX(MEMBERS) INTO i_group_members
   FROM V$LOG;
   
   IF i_group_members >=2 AND LENGTH(i_redo_log_new_path) >=1
   THEN
      DBMS_OUTPUT.put_line('
############################################');
      DBMS_OUTPUT.put_line('The redolog group alread has two members!');
      DBMS_OUTPUT.put_line('############################################');
      DBMS_OUTPUT.put_line('it''s over now, pleaes check the parameter!');
      
      RETURN;
      
   END IF;

   SELECT CASE
             WHEN REGEXP_REPLACE (MEMBER, '
[^\+]', '') = '+'
             THEN
                '
ASM'
             WHEN SUBSTR (x.MEMBER,
                          1,
                            REGEXP_INSTR (x.MEMBER,
                                          '
[/]',
                                          1,
                                          2)
                          - 1) = '
/dev'
             THEN
                '
/dev'
             ELSE
                '
FS'
          END
             AS path_type
     INTO path_type
     FROM v$logfile x
    WHERE ROWNUM = 1;

    


   FOR c_thread IN (SELECT DISTINCT thread# FROM v$log)
   LOOP
      --改成从日志组1开始,是为了解决redo log组删除的
      i_group_current :=1;

      WHILE i_group_number > 0
      LOOP
         --判断日志组是否存在
         SELECT COUNT (*)
            INTO i_log_number
          FROM v$log
          WHERE thread# = c_thread.thread# AND GROUP# = i_group_current;
          
         --如果redo log group存在就结束后续操作,进入下一个循环
         IF i_log_number >= 1 
         THEN
            i_group_current := i_group_current+1;
            CONTINUE;
         END IF;
         
         
         IF path_type = '
ASM'
         THEN
            OPEN  cur_log_path;
            
            LOOP 
                FETCH cur_log_path INTO log_path_name;
                
                EXIT WHEN cur_log_path%notfound;
                
                i_log_path_sql := i_log_path_sql ||CHR(39) || log_path_name || CHR(39)||'
,';
                
                
            END LOOP;
            
            CLOSE cur_log_path;
            
            IF LENGTH(i_redo_log_new_path) >=1
            THEN
                i_log_path_sql := i_log_path_sql ||CHR(39) || i_redo_log_new_path || CHR(39)||'
,';
            END IF;
            
            SELECT  SUBSTR(i_log_path_sql,1,LENGTH(i_log_path_sql)-1) INTO i_log_path_sql FROM DUAL;
            
            --DBMS_OUTPUT.put_line (i_log_path_sql);
            
             
            i_sql :=
                '
alter database add  logfile thread '
            || c_thread.thread#
            || '
 '
            || '
GROUP '
            || TO_CHAR(i_group_current)
            || '
 ('
            || log_path_name
            || '
 )'
            || '
 size '
            || i_logfile_size ||'
M';
         ELSIF path_type = '
FS'
         THEN
             OPEN  cur_log_path;
             
             LOOP 
                FETCH cur_log_path INTO log_path_name;
                
                EXIT WHEN cur_log_path%notfound;
                
                i_log_path_sql := i_log_path_sql ||CHR(39) || log_path_name || '
redo'|| LPAD(i_group_current,2,'0') || '.log' || CHR(39)||',';
                
                
             END LOOP;
             
             CLOSE cur_log_path;
             
            IF LENGTH(i_redo_log_new_path) >=1
            THEN
                i_log_path_sql := i_log_path_sql ||CHR(39) || i_redo_log_new_path || '
redo'|| LPAD(i_group_current,2,'0') || '.log' || CHR(39)||',';
            END IF;
             
            SELECT  SUBSTR(i_log_path_sql,1,LENGTH(i_log_path_sql)-1) INTO i_log_path_sql FROM DUAL;
             
             --DBMS_OUTPUT.put_line (i_log_path_sql);
             
             i_sql :=
                      '
alter database add  logfile thread '
                   || c_thread.thread#
                   || '
 '
                   || '
GROUP '
                   || TO_CHAR(i_group_current)
                   || '
 ('
                   || i_log_path_sql
                   || '
 )'
                   || '
 size '
                   || i_logfile_size ||'
REUSE';
         END IF;

         
         EXECUTE IMMEDIATE i_sql;
         DBMS_OUTPUT.put_line(i_sql);

         i_group_current := i_group_current + 1;
         i_group_number := i_group_number - 1;
         i_log_path_sql :='';  --清空变量的值
      END LOOP;

      FOR i_delete_group
         IN (SELECT group#
               FROM v$log
              WHERE thread# = c_thread.thread# AND bytes != i_logfile_size *1024*1024)
      LOOP
         SELECT status
           INTO i_group_status
           FROM v$log
          WHERE group# = i_delete_group.group#;

         SELECT LOG_MODE INTO i_log_mode FROM V$DATABASE;
         IF i_log_mode ='
ARCHIVELOG' THEN
            WHILE i_group_status IN ('
ACTIVE', 'CURRENT')
            LOOP
                EXECUTE IMMEDIATE i_sql_arch;
                DBMS_OUTPUT.put_line (i_sql_arch);
                
                SELECT status
                INTO i_group_status
                FROM v$log
                WHERE group# = i_delete_group.group#;
            END LOOP;
         ELSE
            IF  i_group_status ='
CURRENT' THEN
                EXECUTE IMMEDIATE i_sql_swith;
                DBMS_OUTPUT.put_line (i_sql_swith);
                
                SELECT status
                INTO i_group_status
                FROM v$log
                WHERE group# = i_delete_group.group#;
            END IF;
                
                
            WHILE i_group_status IN ('
ACTIVE')
            LOOP    
                EXECUTE IMMEDIATE '
alter system checkpoint';
                DBMS_OUTPUT.put_line('
alter system checkpoint');

                DBMS_LOCK.SLEEP(2);
                DBMS_OUTPUT.put_line('
DBMS_LOCK.SLEEP(2)...');
                
                SELECT status
                INTO i_group_status
                FROM v$log
                WHERE group# = i_delete_group.group#;
            END LOOP;
         END IF;

         i_sql :=
            '
alter database drop logfile group ' || i_delete_group.group#;
        
         EXECUTE IMMEDIATE i_sql;
         --print the sql
         DBMS_OUTPUT.put_line (i_sql);
         
      END LOOP;
   END LOOP;
END;
/

pro **************************************************************************************************
pro
pro Note:The redo log information:
pro
pro **************************************************************************************************

SET LINESIZE 850;
COL "GROUP#" FOR 999999
COL "THREAD#" FOR 9999999
COL "FIRST_CHANGE#" FOR 99999999999999
COL MEMBERS FOR 999999
COL FIRST_TIME FOR A20
COL STATUS FOR A8
SELECT  GROUP#        
       ,THREAD#       
       ,SEQUENCE#     
       ,BYTES/1024/1024  AS LOG_SIZE_MB        
       ,MEMBERS       
       ,ARCHIVED      
       ,STATUS        
       ,FIRST_CHANGE# 
       ,TO_CHAR(FIRST_TIME,'
YYYY-MM-DD HH24:MI:SS') AS  FIRST_TIME  
FROM V$LOG;

pro **************************************************************************************************
pro
pro Note:The redo log file size information detail:
pro
pro **************************************************************************************************
--查看redo文件信息以及相关属性
SET LINESIZE 850;
SET PAGESIZE 200;
COL "GROUP#" FOR 999999
COL "THREAD#" FOR 9999999
COL STATUS FOR A12
COL MEMBER FOR A48
COL STATUS FOR A8
SELECT A.GROUP#
     , A.THREAD#
     , A.SEQUENCE#
     , B.MEMBER
     , A.BLOCKSIZE
     , A.STATUS
     , A.BYTES/1024/1024 AS SIZE_MB
     , A.ARCHIVED
FROM V$LOG A, V$LOGFILE B
WHERE A.GROUP#=B.GROUP#
ORDER BY A.GROUP#;

下面介绍几个例子,我需要再增加6组redo log,如下所示:

SQL> @db_auto_add_logfile.sql

**************************************************************************************************

check the redo log group information:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# LOG_SIZE_MB MEMBERS ARC STATUS     FIRST_CHANGE# FIRST_TIME
------- -------- ---------- ----------- ------- --- -------- --------------- --------------------
      1        1         22         200       1 NO  INACTIVE         3149180 2023-11-05 10:06:53
      2        1         23         200       1 NO  CURRENT          3231372 2023-11-06 02:00:48
      3        1         21         200       1 NO  INACTIVE         3076367 2023-11-04 21:00:50

**************************************************************************************************

Note:The redo log file size information detail:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# MEMBER                                            BLOCKSIZE STATUS      SIZE_MB ARC
------- -------- ---------- ------------------------------------------------ ---------- -------- ---------- ---
      1        1         22 /iisdb/data/redo01.log                                  512 INACTIVE        200 NO
      2        1         23 /iisdb/data/redo02.log                                  512 CURRENT         200 NO
      3        1         21 /iisdb/data/redo03.log                                  512 INACTIVE        200 NO


**************************************************************************************************
The parameter description are as follows:

Note:
redo_log_size:The redo log size unit is mb.
redo_group_number:The number of redo group log need to added.
redo_log_new_path: the default value is nullif you want to add member for redolog,please set value for it.


this script drop redo log group didn''drop the phyical file ,please delete these files manually.
**************************************************************************************************


Press any key to continue ...

Enter value for redo_log_size: 200
Enter value for redo_group_number: 6
Enter value for redo_log_new_path: 
alter database add  logfile thread 1 GROUP 4 ('/iisdb/data/redo04.log' ) size 200REUSE
alter database add  logfile thread 1 GROUP 5 ('/iisdb/data/redo05.log' ) size 200REUSE
alter database add  logfile thread 1 GROUP 6 ('/iisdb/data/redo06.log' ) size 200REUSE
alter database add  logfile thread 1 GROUP 7 ('/iisdb/data/redo07.log' ) size 200REUSE
alter database add  logfile thread 1 GROUP 8 ('/iisdb/data/redo08.log' ) size 200REUSE
alter database add  logfile thread 1 GROUP 9 ('/iisdb/data/redo09.log' ) size 200REUSE

PL/SQL procedure successfully completed.

**************************************************************************************************

Note:The redo log information:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# LOG_SIZE_MB MEMBERS ARC STATUS     FIRST_CHANGE# FIRST_TIME
------- -------- ---------- ----------- ------- --- -------- --------------- --------------------
      1        1         22         200       1 NO  INACTIVE         3149180 2023-11-05 10:06:53
      2        1         23         200       1 NO  CURRENT          3231372 2023-11-06 02:00:48
      3        1         21         200       1 NO  INACTIVE         3076367 2023-11-04 21:00:50
      4        1          0         200       1 YES UNUSED                 0
      5        1          0         200       1 YES UNUSED                 0
      6        1          0         200       1 YES UNUSED                 0
      7        1          0         200       1 YES UNUSED                 0
      8        1          0         200       1 YES UNUSED                 0
      9        1          0         200       1 YES UNUSED                 0

9 rows selected.

**************************************************************************************************

Note:The redo log file size information detail:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# MEMBER                                            BLOCKSIZE STATUS      SIZE_MB ARC
------- -------- ---------- ------------------------------------------------ ---------- -------- ---------- ---
      1        1         22 /iisdb/data/redo01.log                                  512 INACTIVE        200 NO
      2        1         23 /iisdb/data/redo02.log                                  512 CURRENT         200 NO
      3        1         21 /iisdb/data/redo03.log                                  512 INACTIVE        200 NO
      4        1          0 /iisdb/data/redo04.log                                  512 UNUSED          200 YES
      5        1          0 /iisdb/data/redo05.log                                  512 UNUSED          200 YES
      6        1          0 /iisdb/data/redo06.log                                  512 UNUSED          200 YES
      7        1          0 /iisdb/data/redo07.log                                  512 UNUSED          200 YES
      8        1          0 /iisdb/data/redo08.log                                  512 UNUSED          200 YES
      9        1          0 /iisdb/data/redo09.log                                  512 UNUSED          200 YES

9 rows selected.

SQL

假设redo log的size不合适,需要调整为128M大小,redo log组调整为6组文章来源地址https://www.toymoban.com/news/detail-745893.html

SQL> @db_auto_add_logfile.sql

**************************************************************************************************

check the redo log group information:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# LOG_SIZE_MB MEMBERS ARC STATUS     FIRST_CHANGE# FIRST_TIME
------- -------- ---------- ----------- ------- --- -------- --------------- --------------------
      1        1         36         200       1 NO  CURRENT          3307341 2023-11-06 15:10:14
      2        1          0         200       1 YES UNUSED                 0
      3        1          0         200       1 YES UNUSED                 0
      4        1          0         200       1 YES UNUSED                 0
      5        1          0         200       1 YES UNUSED                 0
      6        1          0         200       1 YES UNUSED                 0

6 rows selected.

**************************************************************************************************

Note:The redo log file size information detail:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# MEMBER                                            BLOCKSIZE STATUS      SIZE_MB ARC
------- -------- ---------- ------------------------------------------------ ---------- -------- ---------- ---
      1        1         36 /iisdb/data/redo01.log                                  512 CURRENT         200 NO
      2        1          0 /iisdb/data/redo02.log                                  512 UNUSED          200 YES
      3        1          0 /iisdb/data/redo03.log                                  512 UNUSED          200 YES
      4        1          0 /iisdb/data/redo04.log                                  512 UNUSED          200 YES
      5        1          0 /iisdb/data/redo05.log                                  512 UNUSED          200 YES
      6        1          0 /iisdb/data/redo06.log                                  512 UNUSED          200 YES

6 rows selected.


**************************************************************************************************
The parameter description are as follows:

Note:
redo_log_size:The redo log size unit is mb.
redo_group_number:The number of redo group log need to added.
redo_log_new_path: the default value is nullif you want to add member for redolog,please set value for it.


this script drop redo log group didn''drop the phyical file ,please delete these files manually.
**************************************************************************************************


Press any key to continue ...

Enter value for redo_log_size: 128
Enter value for redo_group_number: 6
Enter value for redo_log_new_path: 
alter database add  logfile thread 1 GROUP 7 ('/iisdb/data/redo07.log' ) size 128REUSE
alter database add  logfile thread 1 GROUP 8 ('/iisdb/data/redo08.log' ) size 128REUSE
alter database add  logfile thread 1 GROUP 9 ('/iisdb/data/redo09.log' ) size 128REUSE
alter database add  logfile thread 1 GROUP 10 ('/iisdb/data/redo10.log' ) size 128REUSE
alter database add  logfile thread 1 GROUP 11 ('/iisdb/data/redo11.log' ) size 128REUSE
alter database add  logfile thread 1 GROUP 12 ('/iisdb/data/redo12.log' ) size 128REUSE
alter system switch logfile
alter system checkpoint
DBMS_LOCK.SLEEP(2)...
alter database drop logfile group 1
alter system switch logfile
alter system checkpoint
DBMS_LOCK.SLEEP(2)...
alter database drop logfile group 2
alter system switch logfile
alter system checkpoint
DBMS_LOCK.SLEEP(2)...
alter database drop logfile group 3
alter system switch logfile
alter system checkpoint
DBMS_LOCK.SLEEP(2)...
alter database drop logfile group 4
alter system switch logfile
alter system checkpoint
DBMS_LOCK.SLEEP(2)...
alter database drop logfile group 5
alter system switch logfile
alter system checkpoint
DBMS_LOCK.SLEEP(2)...
alter database drop logfile group 6

PL/SQL procedure successfully completed.

**************************************************************************************************

Note:The redo log information:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# LOG_SIZE_MB MEMBERS ARC STATUS     FIRST_CHANGE# FIRST_TIME
------- -------- ---------- ----------- ------- --- -------- --------------- --------------------
      7        1         42         128       1 NO  CURRENT          3307569 2023-11-06 15:11:24
      8        1          0         128       1 YES UNUSED                 0
      9        1          0         128       1 YES UNUSED                 0
     10        1          0         128       1 YES UNUSED                 0
     11        1          0         128       1 YES UNUSED                 0
     12        1          0         128       1 YES UNUSED                 0

6 rows selected.

**************************************************************************************************

Note:The redo log file size information detail:

**************************************************************************************************

 GROUP#  THREAD#  SEQUENCE# MEMBER                                            BLOCKSIZE STATUS      SIZE_MB ARC
------- -------- ---------- ------------------------------------------------ ---------- -------- ---------- ---
      7        1         42 /iisdb/data/redo07.log                                  512 CURRENT         128 NO
      8        1          0 /iisdb/data/redo08.log                                  512 UNUSED          128 YES
      9        1          0 /iisdb/data/redo09.log                                  512 UNUSED          128 YES
     10        1          0 /iisdb/data/redo10.log                                  512 UNUSED          128 YES
     11        1          0 /iisdb/data/redo11.log                                  512 UNUSED          128 YES
     12        1          0 /iisdb/data/redo12.log                                  512 UNUSED          128 YES

6 rows selected.

SQL>

到了这里,关于Oracle脚本分享:db_auto_add_logfile的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle 数据库全表扫描的4种优化方法(DB)

    全表扫描的工作是扫描高水位一下所有的数据块。 这里就有一个问题,什么是高水位线。高水位的标志存在表头。 该数据块以后都是崭新未格式化的数据块,高水位的目的有二。它是全表扫描的 终点,并行插入的起点! 优化全表扫描的办法有四,核心就是降低高水位! 一

    2024年04月18日
    浏览(38)
  • Oracle DB 安全性 : TDE HSM TCPS Wallet Imperva

    • 配置口令文件以使用区分大小写的口令 • 对表空间进行加密 • 配置对网络服务的细粒度访问  TCPS 安全口令支持 Oracle Database 11g中的口令: • 区分大小写 • 包含更多的字符 • 使用更安全的散列算法 • 在散列算法中使用salt  用户名仍是Oracle 标识符(最多30 个字符,不

    2024年02月13日
    浏览(30)
  • 按分隔符分割字符串(DB2/mysql/hive/Oracle)

    1、DB2 --substr+locate/instr DB2没有自己按分隔符分割字符串的函数,只能结合使用 或者在DB2里还可以自己写一个split分割字符串的函数 附:instr函数用法--用来查找指定字符在字符串中出现的位置 DB2中的locate 函数可实现同样的功能,用法同 instr ,只是源字符串和目标字符串的位

    2024年02月13日
    浏览(44)
  • auto.js自动化手机脚本初始配置

    软件选择: auto.js 8.0pro版本(对比4.0版本有阉割,微信支付宝不能点)有两种模式: 客户端模式 服务器模式 auto.js 4.0版本有一种模式: 客户端模式 设备和电脑连接: 手机: **服务器模式:**手机和电脑在同一局域网下相互连接。(手机电脑同wifi远程连接,稳定) **客户端

    2024年02月12日
    浏览(29)
  • Auto.js安卓脚本自动化app的代码语句大全

    (一)常用 (二)点击 (三)按住随机滑动 (四)控制台 (五)用线程自动开启截图权限 (六)读写权限 (一)位置 (二)判断点击 (二)输出当前页面所有文本 1、text函数 2、bounds函数

    2024年02月15日
    浏览(28)
  • 用auto.js写了一个抖音点赞、关注的脚本

    最近一直在找工作,有天就遇到一个要求使用auto.js写一些自动化控件的公司(我严重怀疑它其实就想白嫖。。。),于是就有了这个小demo... 因为没用过抖音,也不懂auto.js,所以看了一些教学视频,所以写成这个样子了。。。(有点烂,就单纯记录一下自己的学习过程,au

    2024年02月13日
    浏览(29)
  • Auto-DataProcessing:一组让制作数据集变轻松的脚本

    最近跟同学参加了个比赛,我负责Object-Detection的技术实现,需要从网上扒大量的数据(主办方每种识别物就给了一张demo🤣),发现数据准备是一个真的是一个非常重要但又耗时耗力的过程。对我来说,给我一类待识别的标签,我一般会用以下的环节来获取数据: 从Google等网站

    2024年04月15日
    浏览(17)
  • 【unity细节】—(Can‘t add script)脚本文件无法拖拽到对象的问题

    👨‍💻个人主页 :@元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 :unity细节和bug 存在脚本文件报错情况没有解决,才会出现该提示框 将报错的脚本文件依次解决即可 ⭐【2023unity游戏制作-mango的冒险】-开始画面API制作 ⭐【unity游戏

    2024年02月06日
    浏览(29)
  • 按键精灵、auto.js等一些移动端脚本 如何连接云服务器的数据库, 进行读写操作

    一、技术背景         按键手机版和auto.js,只支持连接本地数据库sqllite,该数据库只存在本地 其他设备无法读写,就像本地的txt一样。         而很多脚本作者的需求是:多个脚本,甚至在全国不同城市的脚本也能读取和写入同一批数据,比如云端统一配置、集中上传

    2024年02月16日
    浏览(40)
  • 关于Unity在Xlua调用Lua脚本函数时报错This type must add to CSharpCallLua 解决办法

    使用委托来获取xlua中的function是不行的 报错脚本示范 即使全部接口打好标签并且在编辑器中把兼容等级改为4.X 打包出去还是会出问题 建议在lua脚本中建立一个空的table 再把方法塞进去 比如 然后在c#端 就可以正常运作这个方法了

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包