配置Oracle 11g datagurad redo日志cascade传输

简介:

目标:实现dataguard redo传输cascade,即dg1的redo日志先传输到dg2,然后再从dg2传输到dg3,从而减少dg1主库的网络带宽压力!通常使用于dg1和dg2在同一局域网内,dg2和dg3通过广域网相连的场合!

一:环境介绍
主库
IP地址:192.168.1.61/24
操作系统版本:rhel5.4 64bit
数据库版本:11.2.0.3 64bit
数据库sid名:dg
数据库名:dg
数据库db_unique_name:dg1


备库1  物理备库
IP地址:192.168.1.62/24
操作系统版本:rhel5.4 64bit
数据库版本:11.2.0.3 64bit
数据库sid名:dg
数据库名:dg
数据库db_unique_name:dg2


备库2  物理备库
IP地址:192.168.1.62/24
操作系统版本:rhel5.4 64bit
数据库版本:11.2.0.3 64bit
数据库sid名:dg
数据库名:dg
数据库db_unique_name:dg3

二:统一修改三台数据库服务器的listener.ora和tnsnames.ora文件如下,listener.ora文件里面的GLOBAL_DBNAME和HOST参数做相应的修改

[oracle@dg1 ~]$ cat $TNS_ADMIN/listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = dg1.yang.com)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db1)
      (SID_NAME = dg)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = dg1.yang.com)(PORT = 1521))
      )
    )
  )


[oracle@dg1 ~]$ grep -v '^#' $TNS_ADMIN/tnsnames.ora
dg1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.61)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg1.yang.com)
    )
  )

 

dg2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.62)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg2.yang.com)
    )
  )

dg3 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.63)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dg3.yang.com)
    )
  )

三:dg1和dg2数据库服务器构建active dataguard
3.1修改主库初始化参数,添加standby日志组

 
  1. [oracle@dg1 ~]$ sqlplus /nolog  
  2. SQL*Plus: Release 11.2.0.3.0 Production on Sat Apr 7 14:11:18 2012  
  3. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  4.  
  5. SQL> conn /as sysdba  
  6. Connected.  
  7.  
  8. SQL> !mkdir /u01/app/oracle/archivelog  
  9.  
  10. SQL> alter system set log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog'    
  11. valid_for=(all_logfiles,primary_role) db_unique_name=dg1;  
  12. System altered.  
  13.  
  14. SQL> archive log list;  
  15. Database log mode              Archive Mode  
  16. Automatic archival             Enabled  
  17. Archive destination            /u01/app/oracle/archivelog  
  18. Oldest online log sequence     3  
  19. Next log sequence to archive   5  
  20. Current log sequence           5  
  21.  
  22. SQL> select force_logging,db_unique_name from v$database;  
  23.  
  24. FOR DB_UNIQUE_NAME  
  25. --- ------------------------------  
  26. NO  dg  
  27.  
  28. SQL> alter database force logging;  
  29. Database altered.  
  30.  
  31. SQL> alter system set db_unique_name='dg1' scope=spfile;  
  32. System altered.  
  33.  
  34. SQL> select force_logging,db_unique_name from v$database;  
  35.  
  36. FOR DB_UNIQUE_NAME  
  37. --- ------------------------------  
  38. YES dg  
  39.  
  40. SQL>alter system set log_archive_config='DG_CONFIG=(dg1,dg2,dg3)';  
  41. System altered.  
  42.  
  43. SQL>alter system set log_archive_dest_2='SERVICE=dg2 valid_for=(online_logfile,primary_role) db_unique_name=dg2' scope=spfile;  
  44. System altered.  
  45.  
  46. SQL>alter system set log_archive_dest_3='SERVICE=dg3  valid_for=(standby_logfiles,standby_role) db_unique_name=dg3' scope=spfile;  
  47. System altered.  
  48.  
  49.  
  50. SQL> show parameter remote_login;  
  51.  
  52. NAME                                 TYPE        VALUE  
  53. ------------------------------------ ----------- ------------------------------  
  54. remote_login_passwordfile            string      EXCLUSIVE  
  55.  
  56. SQL> show parameter log_archive_format;  
  57.  
  58. NAME                                 TYPE        VALUE  
  59. ------------------------------------ ----------- ------------------------------  
  60. log_archive_format                   string      %t_%s_%r.dbf  
  61.  
  62. SQL> alter database add standby logfile group 4  '/u01/app/oracle/oradata/dg/standby01.log' size 50M;  
  63. Database altered.  
  64.  
  65. SQL> alter database add standby logfile group 5  '/u01/app/oracle/oradata/dg/standby02.log' size 50M;  
  66. Database altered.  
  67.  
  68. SQL> alter database add standby logfile group 6  '/u01/app/oracle/oradata/dg/standby03.log' size 50M;  
  69. Database altered.  
  70.  
  71. SQL> alter database add standby logfile group 7  '/u01/app/oracle/oradata/dg/standby04.log' size 50M;  
  72. Database altered.  
  73.  
  74. SQL> select member,groupfrom v$logfile order by 2;  
  75.  
  76. MEMBER                                       GROUP#  
  77. ---------------------------------------- ----------  
  78. /u01/app/oracle/oradata/dg/redo01.log             1  
  79. /u01/app/oracle/oradata/dg/redo02.log             2  
  80. /u01/app/oracle/oradata/dg/redo03.log             3  
  81. /u01/app/oracle/oradata/dg/standby01.log          4  
  82. /u01/app/oracle/oradata/dg/standby02.log          5  
  83. /u01/app/oracle/oradata/dg/standby03.log          6  
  84. /u01/app/oracle/oradata/dg/standby04.log          7  
  85. rows selected. 

一:环境介绍3. 3.2 由spfile生成pfile,重启主库,使先前修改的参数生效!修改参数文件,scp至dg2

 
  1. SQL> create pfile='/home/oracle/initdg.ora' from spfile;  
  2. File created.  
  3.  
  4. SQL> shutdown immediate  
  5. Database closed.  
  6. Database dismounted.  
  7. ORACLE instance shut down.  
  8.  
  9. SQL> startup  
  10. ORACLE instance started.  
  11.  
  12. Total System Global Area  417546240 bytes  
  13. Fixed Size                  2228944 bytes  
  14. Variable Size             281021744 bytes  
  15. Database Buffers          125829120 bytes  
  16. Redo Buffers                8466432 bytes  
  17. Database mounted.  
  18. Database opened.  
  19.  
  20. SQL> show parameter name;  
  21.  
  22. NAME                                 TYPE        VALUE  
  23. ------------------------------------ ----------- ------------------------------  
  24. db_file_name_convert                 string  
  25. db_name                              string      dg  
  26. db_unique_name                       string      dg1  
  27. global_names                         boolean     FALSE 
  28. instance_name                        string      dg  
  29. lock_name_space                      string  
  30. log_file_name_convert                string  
  31. processor_group_name                 string  
  32. service_names                        string      dg1.yang.com  
  33.  
  34. [oracle@dg1 ~]$ cat initdg.ora   
  35. dg.__db_cache_size=125829120  
  36. dg.__java_pool_size=4194304  
  37. dg.__large_pool_size=4194304  
  38. dg.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment  
  39. dg.__pga_aggregate_target=167772160  
  40. dg.__sga_target=251658240  
  41. dg.__shared_io_pool_size=0  
  42. dg.__shared_pool_size=104857600  
  43. dg.__streams_pool_size=0  
  44. *.audit_file_dest='/u01/app/oracle/admin/dg/adump' 
  45. *.audit_trail='db' 
  46. *.compatible='11.2.0.0.0' 
  47. *.control_files='/u01/app/oracle/oradata/dg/control01.ctl','/u01/app/oracle/fast_recovery_area/dg/control02.ctl' 
  48. *.db_block_size=8192  
  49. *.db_domain='yang.com' 
  50. *.db_name='dg' 
  51. *.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' 
  52. *.db_recovery_file_dest_size=4322230272  
  53. *.db_unique_name='dg2' 
  54. *.diagnostic_dest='/u01/app/oracle' 
  55. *.dispatchers='(PROTOCOL=TCP) (SERVICE=dgXDB)' 
  56. *.log_archive_config='DG_CONFIG=(dg1,dg2,dg3)' 
  57. *.log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog valid_for=(all_logfiles,primary_role) db_unique_name=dg2' 
  58. *.log_archive_dest_2='SERVICE=dg1  valid_for=(online_logfiles,primary_role) db_unique_name=dg1' 
  59. *.log_archive_dest_3='SERVICE=dg3  valid_for=(standby_logfiles,standby_role) db_unique_name=dg3' 
  60. *.log_archive_format='%t_%s_%r.dbf' 
  61. *.memory_target=419430400  
  62. *.open_cursors=300  
  63. *.processes=150  
  64. *.remote_login_passwordfile='EXCLUSIVE' 
  65. *.undo_tablespace='UNDOTBS1  
  66.  
  67. [oracle@dg1 ~]$ scp initdg.ora 192.168.1.62:/home/oracle/ 

3.3 在dg2上创建密码文件,由pfile生成spfile文件,启动数据库实例到nomount状态,通过rman进行duplicate操作,在11g中,duplicate数据库可以from active database,意味着不需要先在主库上进行rman备份,然后再将备份文件复制到备库上,在10g版本上需要这样操作,操作完成后将备库1置于active dataguard状态,即实时应用日志并只读的状态,adg也是11g dataguard非常大的一个飞跃(dg2只安装数据库软件,未建库)

 
  1. [oracle@dg2 ~]$ orapwd file=$ORACLE_HOME/dbs/orapwdg password=123456 entries=5  
  2. [oracle@dg2 ~]$ sqlplus /nolog  
  3. SQL*Plus: Release 11.2.0.3.0 Production on Sat Apr 7 15:40:33 2012  
  4. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  5.  
  6. SQL> conn /as sysdba  
  7. Connected to an idle instance.  
  8. SQL> create spfile from pfile='/home/oracle/initdg.ora';  
  9. File created.  
  10.  
  11. SQL> startup nomount  
  12. ORACLE instance started.  
  13.  
  14. Total System Global Area  417546240 bytes  
  15. Fixed Size                  2228944 bytes  
  16. Variable Size             281021744 bytes  
  17. Database Buffers          125829120 bytes  
  18. Redo Buffers                8466432 bytes  
  19.  
  20. [oracle@dg2 ~]$ rman target  sys/123456@dg1 auxiliary sys/123456@dg2  
  21. Recovery Manager: Release 11.2.0.3.0 - Production on Sat Apr 7 16:22:57 2012  
  22. Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.  
  23. connected to target database: DG (DBID=1693312161)  
  24. connected to auxiliary database: DG (not mounted)  
  25.  
  26. RMAN> list backup of database summary; //这个时候主库没有任何的物理备份  
  27. using target database control file instead of recovery catalog  
  28. specification does not match any backup in the repository  
  29.  
  30. RMAN> duplicate target database for standby nofilenamecheck from active database;  
  31.  
  32. ————————输出省略——————  
  33.  
  34. [oracle@dg2 ~]$ sqlplus /nolog  
  35. SQL*Plus: Release 11.2.0.3.0 Production on Sat Apr 7 16:30:11 2012  
  36. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  37.  
  38. SQL> conn /as sysdba   
  39. Connected.  
  40. SQL> select database_role,open_mode,name from v$database;  
  41.  
  42. DATABASE_ROLE    OPEN_MODE            NAME 
  43. ---------------- -------------------- ---------  
  44. PHYSICAL STANDBY MOUNTED              DG  
  45.  
  46. SQL> archive log list;  
  47. Database log mode              Archive Mode  
  48. Automatic archival             Enabled  
  49. Archive destination            /u01/app/oracle/archivelog  
  50. Oldest online log sequence     8  
  51. Next log sequence to archive   0  
  52. Current log sequence           10  
  53.  
  54. SQL> alter database open read only;  
  55. Database altered.  
  56.  
  57. SQL> alter database recover managed standby database using current logfile disconnect from session;  
  58. Database altered.  
  59.  
  60. SQL> select database_role,open_mode,name from v$database;  
  61.  
  62. DATABASE_ROLE    OPEN_MODE            NAME 
  63. ---------------- -------------------- ---------  
  64. PHYSICAL STANDBY READ ONLY WITH APPLY DG 

3.4测试主库上切换日志

 
  1. SQL> alter system switch logfile;  
  2. System altered.  
  3.  
  4. SQL> select message from v$dataguard_status;  
  5. MESSAGE  
  6. --------------------------------------------------------------------------------  
  7. LNS: Completed archiving log 3 thread 1 sequence 9  
  8. ARC0: Beginning to archive thread 1 sequence 9 (1049579-1050098)  
  9. ARC0: Completed archiving thread 1 sequence 9 (1049579-1050098)  
  10. LNS: Standby redo logfile selected for thread 1 sequence 10 for destination LOG_  
  11. ARCHIVE_DEST_2  
  12.  
  13. LNS: Beginning to archive log 1 thread 1 sequence 10  
  14. LNS: Completed archiving log 1 thread 1 sequence 10  
  15. ARC2: Beginning to archive thread 1 sequence 10 (1050098-1050271)  
  16. ARC2: Completed archiving thread 1 sequence 10 (1050098-1050271)  
  17. LNS: Beginning to archive log 2 thread 1 sequence 11  
  18.  
  19. 备库上查看日志应用情况  
  20. SQL> archive log list;  
  21. Database log mode              Archive Mode  
  22. Automatic archival             Enabled  
  23. Archive destination            /u01/app/oracle/archivelog  
  24. Oldest online log sequence     9  
  25. Next log sequence to archive   0  
  26. Current log sequence           11 

3.5 实际操作应用情况,发现需要主库上切换日志后,数据才会同步,也就是standby日志组未使用

 
  1. SQL> create table t1 as select * from dba_objects;  
  2. Table created.  
  3.  
  4. SQL> alter system switch logfile;   
  5. System altered.  
  6.  
  7. SQL> conn sys/123456@dg2 as sysdba  
  8. Connected.  
  9. SQL> select count(*) from t1;  
  10.  
  11.   COUNT(*)  
  12. ----------  
  13.      74510 

四:配置redo传输的cascade
4.1 将修改过的初始化文件传输到dg3上(dg3服务器上同样只安装数据库软件,不建库)

[oracle@dg2 ~]$ cat initdg.ora 
dg.__db_cache_size=125829120
dg.__java_pool_size=4194304
dg.__large_pool_size=4194304
dg.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
dg.__pga_aggregate_target=167772160
dg.__sga_target=251658240
dg.__shared_io_pool_size=0
dg.__shared_pool_size=104857600
dg.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/dg/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/dg/control01.ctl','/u01/app/oracle/fast_recovery_area/dg/control02.ctl'
*.db_block_size=8192
*.db_domain='yang.com'
*.db_name='dg'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.db_unique_name='dg3'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dgXDB)'
*.log_archive_config='DG_CONFIG=(dg1,dg2,dg3)'
*.log_archive_dest_1='LOCATION=/u01/app/oracle/archivelog valid_for=(all_logfiles,primary_role) db_unique_name=dg3'
*.standby_archive_dest=/u01/app/oracle/standbylog
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=419430400
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

4.2 通过pfile生成spfile,将数据库启动到nomount状态,然后进行duplicate

 
  1. [oracle@dg3 ~]$ sqlplus /nolog  
  2. SQL*Plus: Release 11.2.0.3.0 Production on Sat Apr 14 18:01:59 2012  
  3. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  4.  
  5. SQL> conn /as sysdba  
  6. Connected to an idle instance.  
  7. SQL> create spfile from pfile='/home/oracle/initdg.ora';  
  8. File created.  
  9.  
  10. SQL> startup nomount  
  11. ORACLE instance started.  
  12.  
  13. Total System Global Area  417546240 bytes  
  14. Fixed Size                  2228944 bytes  
  15. Variable Size             281021744 bytes  
  16. Database Buffers          125829120 bytes  
  17. Redo Buffers                8466432 bytes  
  18.  
  19. [oracle@dg3 ~]$ rman target  sys/123456@dg1 auxiliary sys/123456@dg3  
  20. Recovery Manager: Release 11.2.0.3.0 - Production on Sat Apr 14 18:02:59 2012  
  21. Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.  
  22.  
  23. connected to target database: DG (DBID=1693928392)  
  24. connected to auxiliary database: DG (not mounted)  
  25.  
  26. RMAN> duplicate target database for standby nofilenamecheck from active database;  
  27.  
  28. ————————输出省略—————— 

 4.3 将备库dg3置于只读且应用日志模式下

 
  1. [oracle@dg3 ~]$ sqlplus /nolog  
  2. SQL*Plus: Release 11.2.0.3.0 Production on Sat Apr 14 18:49:12 2012  
  3. Copyright (c) 1982, 2011, Oracle.  All rights reserved.  
  4.  
  5. SQL> conn /as sysdba  
  6. Connected.  
  7. SQL> alter database open read only;  
  8. Database altered.  
  9.  
  10. SQL> alter database recover managed standby database using current logfile disconnect from session;  
  11. Database altered.  
  12.  
  13. SQL> select open_mode,database_role,name from v$database;  
  14.  
  15. OPEN_MODE            DATABASE_ROLE    NAME 
  16. -------------------- ---------------- ---------  
  17. READ ONLY WITH APPLY PHYSICAL STANDBY DG 

五:测试

 
  1. SQL> conn /as sysdba  
  2. Connected.  
  3. SQL> select open_mode,database_role,name from v$database;  
  4.  
  5. OPEN_MODE            DATABASE_ROLE    NAME 
  6. -------------------- ---------------- ---------  
  7. READ WRITE           PRIMARY          DG  
  8.  
  9. SQL> truncate table t1;  
  10. Table truncated.  
  11.  
  12. SQL> conn sys/123456@dg2 as sysdba  
  13. Connected.  
  14. SQL> select count(*) from t1;  
  15.  
  16.   COUNT(*)  
  17. ----------  
  18.      74510  
  19.  
  20. SQL> conn sys/123456@dg3 as sysdba  
  21. Connected.  
  22. SQL> select count(*) from t1;  
  23.  
  24.   COUNT(*)  
  25. ----------  
  26.      74510  
  27.  
  28. SQL> conn /as sysdba  
  29. Connected.  
  30. SQL> alter system switch logfile; //主库上未切换日志前,数据不能同步  
  31. System altered.  
  32.  
  33. SQL> conn sys/123456@dg2 as sysdba  
  34. Connected.  
  35. SQL> select count(*) from t1;  
  36.  
  37.   COUNT(*)  
  38. ----------  
  39.          0  
  40.  
  41. SQL> conn sys/123456@dg3 as sysdba  //在dg3上可以看到明显的延迟情况  
  42. Connected.
  43. SQL> select count(*) from t1;  
  44.  
  45.   COUNT(*)  
  46. ----------  
  47.      74510  
  48.  
  49. SQL> select count(*) from t1;  
  50.  
  51.   COUNT(*)  
  52. ----------  
  53.          0  
  54.  
  55. SQL> select message from v$dataguard_status; //查看备库dg3的dataguard状态  
  56. MESSAGE  
  57. --------------------------------------------------------------------------------  
  58. Media Recovery Log /u01/app/oracle/standbylog/1_13_780597393.dbf  
  59. Media Recovery Waiting for thread 1 sequence 14  
  60. FAL[client]: Error fetching gap sequenceno FAL server specified  
  61. RFS[1]: Assigned to RFS process 2701  
  62. Media Recovery Log /u01/app/oracle/archivelog/1_14_780597393.dbf  
  63. Media Recovery Waiting for thread 1 sequence 15  
  64. FAL[client]: Error fetching gap sequenceno FAL server specified  
  65. 18 rows selected.  
  66.  
  67. SQL> alter system set fal_server='dg2';  
  68. System altered.  
  69.  
  70. SQL> alter system set fal_client='dg3';  
  71. System altered. 

总结:
1:在测试上,可以将主库的log_archive_dest_state_3参数设置为defer,然后切换日志,观察dg2,dg3的日志传输情况
2:在本文档中没有设置standby_file_management参数,因为不涉及新建数据文件的操作
3:在dg1和dg2上均未设置fal_server和fal_client参数,因为此处不考虑dg的角色切换问题,纯粹测试redo日志的cascade传输
4:本文档未能成功实现adg,猜想和几个归档日志路径配置的参数相关,后续将继续测试!

本文转自斩月博客51CTO博客,原文链接http://blog.51cto.com/ylw6006/835538如需转载请自行联系原作者


ylw6006

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
5月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
440 0
|
6月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1129 5
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
4520 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
12月前
|
SQL Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot使用slf4j进行日志记录—— application.yml 中对日志的配置
在 Spring Boot 项目中,`application.yml` 文件用于配置日志。通过 `logging.config` 指定日志配置文件(如 `logback.xml`),实现日志详细设置。`logging.level` 可定义包的日志输出级别,例如将 `com.itcodai.course03.dao` 包设为 `trace` 级别,便于开发时查看 SQL 操作。日志级别从高到低为 ERROR、WARN、INFO、DEBUG,生产环境建议调整为较高级别以减少日志量。本课程采用 yml 格式,因其层次清晰,但需注意格式要求。
1133 0
|
安全 BI 网络安全
EventLog Analyzer 如何满足等保合规要求?密码有效期、产品日志保留、配置备份三大核心问题全面解答
EventLog Analyzer(ELA)助力企业满足网络安全等级保护要求,支持配置自动/手动备份、日志180天留存及密码策略管理,提升合规性与安全运营效率。
216 0
|
9月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1069 4
|
8月前
|
JSON 安全 Go
Go语言项目工程化 —— 日志、配置、错误处理规范
本章详解Go语言项目工程化核心规范,涵盖日志、配置与错误处理三大关键领域。在日志方面,强调其在问题排查、性能优化和安全审计中的作用,推荐使用高性能结构化日志库zap,并介绍日志级别与结构化输出的最佳实践。配置管理部分讨论了配置分离的必要性,对比多种配置格式如JSON、YAML及环境变量,并提供viper库实现多环境配置的示例。错误处理部分阐述Go语言显式返回error的设计哲学,讲解标准处理方式、自定义错误类型、错误封装与堆栈追踪技巧,并提出按调用层级进行错误处理的建议。最后,总结各模块的工程化最佳实践,助力构建可维护、可观测且健壮的Go应用。
|
11月前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
318 22
|
12月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
数据库连接 测试技术 Windows
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题
【YashanDB知识库】windows配置ODBC跟踪日志, 使用日志定位问题

推荐镜像

更多