[20190517]rman tape compressed.txt

--//前一段测试rman选择压缩备份时,如果备份单个数据文件小于64M-3*8K时,先建立大小64M文件,最后会回收到自己的备份大小.
--//链接:[20190509]rman备份的疑问5.txt
--//测试也说明开始建立的文件时稀疏文件,自己有1个奇怪的想法,如果使用磁带方式,磁带是流式设备,oracle的rman会如何处理这
--//些细节呢?不管结果如何,还是通过测试说明问题。

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING         VERSION    BANNER
------------------- ---------- ----------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

CREATE TABLESPACE T01 DATAFILE '/mnt/ramdisk/book/t01.dbf' SIZE 40M AUTOEXTEND OFF LOGGING ONLINE EXTENT MANAGEMENT
LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT MANUAL;

ALTER DATABASE DATAFILE '/mnt/ramdisk/book/t01.dbf' RESIZE 65512K;

create table t01 tablespace  t01 as select rownum id ,lpad('A',32,'A') name from dual connect by level<=7e5;

2.测试:
--//说明我没有磁带,不过oracle提供模式磁带库的方式(实际上现在许多知名的备份软件实际上使用虚拟磁带库)。
CONFIGURE CHANNEL DEVICE TYPE SBT PARMS  'SBT_LIBRARY=oracle.disksbt,ENV=(BACKUP_DIR=/u01/backup)';
CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE ;
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CHANNEL 1 DEVICE TYPE DISK RATE 5M;

--//执行如下:
RMAN> CONFIGURE CHANNEL DEVICE TYPE SBT PARMS  'SBT_LIBRARY=oracle.disksbt,ENV=(BACKUP_DIR=/u01/backup)';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=oracle.disksbt,ENV=(BACKUP_DIR=/u01/backup)';
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE ;

old RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
new RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP OFF;

old RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
new RMAN configuration parameters are successfully stored

RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK RATE 1M;

new RMAN configuration parameters:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK RATE 1 M;
new RMAN configuration parameters are successfully stored

--//还原脚本:
--//CONFIGURE CHANNEL DEVICE TYPE SBT_TAPE clear;
--//CONFIGURE DEFAULT DEVICE TYPE TO DISK;

--//建立测试脚本:
$ cat ts.sh
#! /bin/bash
file=$1
>| /tmp/xx_${file}
>| /tmp/yy_${file}
strace -ftt -x -o /tmp/tt_${file}.txt rman target / <<< "backup as compressed backupset datafile "$file" format \"/u01/backup/T_"${file}"_%U\" ;" &
seq 30 | xargs -I{} echo "ls -l /u01/backup/T_${file}_*;sleep 0.5" | bash 2>/dev/null| ts.awk >> /tmp/xx_${file} 2>/dev/null &
seq 30 | xargs -I{} echo "stat -c '%s %b %B' /u01/backup/T_${file}_*;sleep 0.5" | bash  2>/dev/null | ts.awk >> /tmp/yy_${file} 2>/dev/null &
wait

$ . ts.sh 9

Recovery Manager: Release 11.2.0.4.0 - Production on Wed May 22 08:46:31 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

connected to target database: BOOK (DBID=1337401710)

RMAN>
Starting backup at 2019-05-22 08:46:34
using target database control file instead of recovery catalog
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=59 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: WARNING: Oracle Test Disk API
channel ORA_SBT_TAPE_1: starting compressed full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00009 name=/mnt/ramdisk/book/t01.dbf
channel ORA_SBT_TAPE_1: starting piece 1 at 2019-05-22 08:46:36
channel ORA_SBT_TAPE_1: finished piece 1 at 2019-05-22 08:46:37
piece handle=/u01/backup/T_9_2tu25tnc_1_1 tag=TAG20190522T084635 comment=API Version 2.0,MMS Version 8.1.3.0
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2019-05-22 08:46:37

RMAN>

Recovery Manager complete.
[1]   Done                    strace -ftt -x -o /tmp/tt_${file}.txt rman target / <<< "backup as compressed backupset datafile "$file" format \"/u01/backup/T_"${file}"_%U\" ;"
[2]-  Done                    seq 30 | xargs -I{} echo "ls -l /u01/backup/T_${file}_*;sleep 0.5" | bash 2> /dev/null | ts.awk >> /tmp/xx_${file} 2> /dev/null
[3]+  Done                    seq 30 | xargs -I{} echo "stat -c '%s %b %B' /u01/backup/T_${file}_*;sleep 0.5" | bash 2> /dev/null | ts.awk >> /tmp/yy_${file} 2> /dev/null

$ ls -l  Oracle_Disk_SBT_Catalog T_9_2tu25tnc_1_1
-rw-r--r-- 1 oracle oinstall    3360 2019-05-22 08:46:36 Oracle_Disk_SBT_Catalog
-rw-r--r-- 1 oracle oinstall 8388624 2019-05-22 08:46:36 T_9_2tu25tnc_1_1

$ cat /tmp/xx_9
[2019-05-22 08:46:36] -rw-r--r-- 1 oracle oinstall 4194320 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:37] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:37] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:38] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:38] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:39] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:39] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:40] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:40] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:41] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:41] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:42] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:42] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:43] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:43] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:44] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:44] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:45] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:45] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1
[2019-05-22 08:46:46] -rw-r--r-- 1 oracle oinstall 8388624 May 22 08:46 /u01/backup/T_9_2tu25tnc_1_1

$ cat /tmp/yy_9
[2019-05-22 08:46:36] 4194320 8208 512
[2019-05-22 08:46:37] 8388624 16416 512
[2019-05-22 08:46:37] 8388624 16416 512
[2019-05-22 08:46:38] 8388624 16416 512
[2019-05-22 08:46:38] 8388624 16416 512
[2019-05-22 08:46:39] 8388624 16416 512
[2019-05-22 08:46:39] 8388624 16416 512
[2019-05-22 08:46:40] 8388624 16416 512
[2019-05-22 08:46:40] 8388624 16416 512
[2019-05-22 08:46:41] 8388624 16416 512
[2019-05-22 08:46:41] 8388624 16416 512
[2019-05-22 08:46:42] 8388624 16416 512
[2019-05-22 08:46:42] 8388624 16416 512
[2019-05-22 08:46:43] 8388624 16416 512
[2019-05-22 08:46:43] 8388624 16416 512
[2019-05-22 08:46:44] 8388624 16416 512
[2019-05-22 08:46:44] 8388624 16416 512
[2019-05-22 08:46:45] 8388624 16416 512
[2019-05-22 08:46:45] 8388624 16416 512
[2019-05-22 08:46:46] 8388624 16416 512
--//4194320/1024/1024 = 4.0000152587890625
0.0000152587890625*1024*1024  = 16
--//你可以发现备份文件集并没有建立稀疏文件.而且一开始就建立大小大于4M+16字节的文件.
--//8388624/1024/1024 = 8.00001525878906250000,最后大小是压缩的.

$ strings T_9_2tu25tnc_1_1 | grep AAAAAAAAAAAAAAAAAAAAAAAA|wc
  64579  109753 2336114

--//有点奇怪的是仅仅看到AAAAAAAAAAAAAAAAAAAAAAAA是64579,应该至少7E5.
--//700000-64579  = 635421有这么多AAAAA涉及压缩.

SCOTT@book> select sum(bytes)/1024/1024 from dba_extents where file_id=9;
SUM(BYTES)/1024/1024
--------------------
                  33

--//33M.这么讲实际上还是存在可以实现压缩的.

$ strings -t d T_9_2tu25tnc_1_1 | grep AAAAAAAAAAAAAAAAAAAAAAAA| tail
4193914  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4193955  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4193996  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194037  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194078  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194119  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194160  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194201  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194242  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA,
4194283  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

--//最后1个AAAAA出现的位置在4194283,4194283/1024/1024 = 3.99997997283935546875,前面4M之内.
--//也就是可以大致推断前面4M是不压缩的,后面才压缩.不然建立的备份文件不会是8M.

3.重新测试:
$ cat dx.sql
drop tablespace t&1 including contents and datafiles;
CREATE TABLESPACE T&1 DATAFILE '/mnt/ramdisk/book/T&1..dbf' SIZE 40M AUTOEXTEND OFF LOGGING ONLINE EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;
create table t&1 tablespace t&1 as select rownum id ,to_char(rownum,'FM000000')||lpad('&&2',26,'&&2') name from dual connect by level<=7e5;

SCOTT@book> @ dx.sql 01 B
old   1: drop tablespace t&1 including contents and datafiles
new   1: drop tablespace t01 including contents and datafiles

Tablespace dropped.

old   1: CREATE TABLESPACE T&1 DATAFILE '/mnt/ramdisk/book/T&1..dbf' SIZE 40M AUTOEXTEND OFF LOGGING ONLINE EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON
new   1: CREATE TABLESPACE T01 DATAFILE '/mnt/ramdisk/book/T01.dbf' SIZE 40M AUTOEXTEND OFF LOGGING ONLINE EXTENT MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON

Tablespace created.

old   1: create table t&1 tablespace t&1 as select rownum id ,to_char(rownum,'FM000000')||lpad('&&2',26,'&&2') name from dual connect by level<=6e5
new   1: create table t01 tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('B',26,'B') name from dual connect by level<=6e5

Table created.

--//删除前面的备份重复测试.
--//RMAN> delete backupset ;

$ . ts.sh 9
Recovery Manager: Release 11.2.0.4.0 - Production on Wed May 22 09:07:27 2019
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: BOOK (DBID=1337401710)
RMAN>
Starting backup at 2019-05-22 09:07:30
using target database control file instead of recovery catalog
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=114 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: WARNING: Oracle Test Disk API
channel ORA_SBT_TAPE_1: starting compressed full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00009 name=/mnt/ramdisk/book/T01.dbf
channel ORA_SBT_TAPE_1: starting piece 1 at 2019-05-22 09:07:32
channel ORA_SBT_TAPE_1: finished piece 1 at 2019-05-22 09:07:33
piece handle=/u01/backup/T_9_2uu25uuk_1_1 tag=TAG20190522T090732 comment=API Version 2.0,MMS Version 8.1.3.0
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2019-05-22 09:07:33

RMAN>

Recovery Manager complete.
[1]   Done                    strace -ftt -x -o /tmp/tt_${file}.txt rman target / <<< "backup as compressed backupset datafile "$file" format \"/u01/backup/T_"${file}"_%U\" ;"
[2]-  Done                    seq 30 | xargs -I{} echo "ls -l /u01/backup/T_${file}_*;sleep 0.5" | bash 2> /dev/null | ts.awk >> /tmp/xx_${file} 2> /dev/null
[3]+  Done                    seq 30 | xargs -I{} echo "stat -c '%s %b %B' /u01/backup/T_${file}_*;sleep 0.5" | bash 2> /dev/null | ts.awk >> /tmp/yy_${file} 2> /dev/null

SELECT set_count
        ,device_type
        ,TYPE
        ,filename
        ,buffer_size
        ,buffer_count
        ,open_time
        ,close_time
    FROM v$backup_async_io
   where set_count=94
ORDER BY set_count
        ,TYPE
        ,open_time
        ,close_time;

SET_COUNT DEVICE_TYPE       TYPE      FILENAME                       BUFFER_SIZE BUFFER_COUNT OPEN_TIME           CLOSE_TIME
---------- ----------------- --------- ------------------------------ ----------- ------------ ------------------- -------------------
        94 DISK              AGGREGATE                                          0            0 2019-05-22 09:07:32 2019-05-22 09:07:32
        94 DISK              INPUT     /mnt/ramdisk/book/T01.dbf          1048576           16 2019-05-22 09:07:32 2019-05-22 09:07:32

$ head -2 /tmp/xx_9  /tmp/yy_9
==> /tmp/xx_9 <==
[2019-05-22 09:07:32] -rw-r--r-- 1 oracle oinstall 4194320 May 22 09:07 /u01/backup/T_9_2uu25uuk_1_1
[2019-05-22 09:07:32] -rw-r--r-- 1 oracle oinstall 8388624 May 22 09:07 /u01/backup/T_9_2uu25uuk_1_1

--//(8388624-4194320)/1024/1024 = 4

==> /tmp/yy_9 <==
[2019-05-22 09:07:32] 4194320 8208 512
[2019-05-22 09:07:32] 8388624 16416 512

$ strings -t d T_9_2uu25uuk_1_1 | grep BBBBBBBBBBBBB| tail
4193913 % 062236BBBBBBBBBBBBBBBBBBBBBBBBBB,
4193954 $ 062235BBBBBBBBBBBBBBBBBBBBBBBBBB,
4193995 # 062234BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194036 o 062233BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194077 ! 062232BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194118   062231BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194160  062230BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194201  062229BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194242  062228BBBBBBBBBBBBBBBBBBBBBBBBBB,
4194283  062227BBBBBBBBBBBBBBBBBBBBBBBBBB

SCOTT@book> select rowid,t01.* from t01 where id=062227;
ROWID                      ID NAME
------------------ ---------- ----------------------------------------
ACgY2MAAJAAAAH/AAA      62227 062227BBBBBBBBBBBBBBBBBBBBBBBBBB

SCOTT@book> @ rowid ACgY2MAAJAAAAH/AAA
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
  42044812          9        511          0  0x24001FF           9,511                alter system dump datafile 9 block 511 ;

--//在dba=9,511位置.511*8192 = 4186112 ,行号=0,数据从块底部开始插入.所以tail看到的最后1行是行号0.

$ ls -l T_9_2uu25uuk_1_1
-rw-r--r-- 1 oracle oinstall 8388624 2019-05-22 09:07:32 T_9_2uu25uuk_1_1

--//可以看出使用磁盘模拟还是可以压缩的,仅仅前面4M不压缩(注我仅仅测试备份集包含单个文件的情况)为什么一些虚拟带库不支持压缩呢?
--//另外视乎虚拟带库的文件建立按照4M大小建立的.
--//看来应该建议他们测试看看,是否支持压缩方式.

[20190517]rman tape compressed.txt的更多相关文章

  1. [20171130]关于rman备份疑问.txt

    [20171130]关于rman备份疑问.txt --//前面测试太乱,重新做一些rman as copy相关测试. 1.环境:SCOTT@book> @ &r/ver1PORT_STR ...

  2. [20171206]rman与truncate2.txt

    [20171206]rman与truncate2.txt --//上午测试发现truncate的表在做rman备份时还要做8个extents的备份.--//不知道自己的猜测是否正确,选择一个使用UNI ...

  3. [20171206]rman与truncate.txt

    [20171206]rman与truncate.txt --//昨天下班在回家的路上,突然想起以前遇到的问题,就是truncate表后,rman做备份时会备份多少truncate表的信息,--//当时 ...

  4. [20171031]rman xxx Failure.txt

    [20171031]rman xxx Failure.txt --//简单测试 List Failure, Advise Failure and Repair Failure命令在11g下,也许以后工 ...

  5. 【RMAN】使用RMAN的 Compressed Backupsets备份压缩技术 (转载)

    1.Oracle参考文档中关于RMAN备份压缩的描述1)关于如何通过调整RMAN参数启用取消备份压缩功能http://download.oracle.com/docs/cd/B19306_01/bac ...

  6. oracle数据库rman备份计划及恢复

    1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog. 2.rman备份脚本: a.RMAN 0级备份 ...

  7. 转 rman 恢复报错

    ###sample 1   原因是新库起了FRA 区,FRA 区的旧文件属于之前的归档日志文件产生,这样会导致无法识别的问题. 解决办法,清空FRA或者恢复时候不启用FRA. RMAN RESTORE ...

  8. 官方文档 恢复备份指南二 Getting Started with RMAN

    本章对RMAN进行基本的熟悉和了解   1.Overview of the RMAN Environment    RMAN运行时需要的最小环境:      target database       ...

  9. RMAN详细教程(二):备份、检查、维护、恢复

    RMAN详细教程(一):基本命令代码 一.创建增量备份 增量备份级别为0-4,但为方便备份管理,oracle建议只限于0级和1级. 1.差异增量备份(differential incremental ...

随机推荐

  1. PHP stat 文件系统函数

    定义和用法 stat - 给出文件的信息 版本支持 PHP4 PHP5 PHP7 支持 支持 支持 语法 stat ( string $filename ) 获取由 filename 指定的文件的统计 ...

  2. 松软科技web课堂:SQLServer之SUM() 函数

    SUM() 函数 SUM 函数返回数值列的总数(总额). SQL SUM() 语法 SELECT SUM(column_name) FROM table_name SQL SUM() 实例 我们拥有下 ...

  3. 【前端知识体系-NodeJS相关】对NodeJS模块机制的理解

    1. CommonJS模块规范 1.1 模块引用 var math = require('math'); 1.2 模块定义 [!NOTE] 上下文提供exports对象用于导出当前模块的方法和变量,并 ...

  4. Windows下Linux虚拟机的配置以及Win10 linux子系统开启

    本文所用资料下载地址为: 链接:链接:https://pan.baidu.com/s/1iiI2ebAnomKrBpvSg05w2A 提取码:7giz 复制这段内容后打开百度网盘手机App,操作更方便 ...

  5. mssql sqlserver 如何编写case when 多条件呢?

    摘要: 下文讲述case when中多条件的编写方法,如下所示: 实验环境:sql server 2008 R2  case when 多条件编写方法  case when多条件编写语法: case ...

  6. docker in docker 的启动方式

    --privileged  -v /var/run/docker.sock:/var/run/docker.sock  -v $(which docker):/bin/docker 启动容器时添加上面 ...

  7. TICK技术栈(四)Grafana安装及使用

    1.什么是Grafana? Grafana是一款采用go语言和Angular框架编写的开源的可视化工具,主要用于大规模指标数据的可视化展示,提供包括折线图,饼图,仪表盘等多种监控数据可视化UI,是网络 ...

  8. HTTPS混合内容解析

    什么是HTTPS混合内容 我们可能会有这样的经验,当我们通过HTTPS访问一个网站的时候,突然有提示:“本页面包含有不安全的内容”.这个时候会询问是否显示“不安全的内容”,这个时候,就是遇到了有混合内 ...

  9. SpringCloud学习笔记(二、SpringCloud Config)

    目录: 配置中心简介 SpringCloud Config服务端 SpringCloud Config客户端 动态配置属性bean 一些补充(源码分析):Spring事件监听.健康检查health() ...

  10. 数位DP入门详解+题目推荐

    \(update:2019-9-6\) 博客里某些东西没有解释清楚,完善了对应的解释 在开始之前,我们先来看一道题--题目链接 题目要求,相邻两位的差大于等于2,那么我们先来构造一个试一试. 比如说\ ...