侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

基于Oracle闪回详解(必看篇)

数据库  /  管理员 发布于 6年前   196

Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回功能,Oracle11g有所完善,为大家快速的恢复数据,查询历史数据提供了很大的便捷方法。

本文主要对Oracle常用闪回使用做些详细介绍,其中对于不常用的事务和版本闪回,这里就不做介绍

一、Oracle闪回概述

闪回级别 闪回场景 闪回技术 对象依赖   影响数据
数据库 表截断、逻辑错误、其他多表意外事件 闪回DATABASE 闪回日志、undo 是
DROP 删除表 闪回DROP 回收站(recyclebin) 是
表 更新、删除、插入记录 闪回TABLE 还原数据,undo 是
查询 当前数据和历史数据对比 闪回QUERY 还原数据,undo 否
版本查询 比较行版本 闪回Version Query 还原数据,undo 否
事务查询 比较 闪回Transaction Query 还原数据,undo 否
归档 DDL、DML 闪回Archive 归档日志 是

二、Oracle闪回使用详解

1、闪回开启

(1)开启闪回必要条件

a.开启归档日志

SQL> archive log list;Database log mode Archive ModeAutomatic archival EnabledArchive destination /home/U01/app/oracle/oradata/testdb/archOldest online log sequence 844Next log sequence to archive 846Current log sequence 846##如未开启,在mount状态执行alter database archivelog;

b.设置合理的闪回区

db_recovery_file_dest:指定闪回恢复区的位置

db_recovery_file_dest_size:指定闪回恢复区的可用空间大小

db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟(1天),实际取决于闪回区大小

(2)检查是否开启闪回

SQL> select flashback_on from v$database;FLASHBACK_ON------------------NO

(3)开启闪回

a.开启归档

mount状态:alter database archivelog;

b.设置闪回区

SQL> alter system set db_recovery_file_dest='/home/U01/app/oracle/fast_recovery_area' scope=both;System altered.SQL> alter system set db_recovery_file_dest_size=60G scope=both;System altered.SQL> alter system set db_flashback_retention_target=4320 scope=both;System altered. 

c.开启flashback (10g在mount开启)

SQL> alter database flashback on;Database altered.

(4)确定闪回开启

SQL> select flashback_on from v$database;FLASHBACK_ON------------------YES 

(5)关闭闪回

SQL> alter database flashback off;Database altered.

2、闪回使用

(1)闪回查询

闪回查询主要是根据Undo表空间数据进行多版本查询,针对v$和x$动态性能视图无效,但对DBA_、ALL_、USER_是有效的

a.闪回查询

允许用户查询过去某个时间点的数据,用以重构由于意外删除或更改的数据,数据不会变化。

SQL> select * from scott.dept;DEPTNO DNAME LOC---------- -------------- -------------ACCOUNTING NEW YORKRESEARCH DALLASSALES CHICAGOOPERATIONS BOSTONSQL> delete from scott.dept where deptno=40;row deleted.SQL> commit;Commit complete.SQL> select * from scott.dept as of timestamp sysdate-10/1440;DEPTNO DNAME LOC---------- -------------- -------------ACCOUNTING NEW YORKRESEARCH DALLASSALES CHICAGOOPERATIONS BOSTONSQL> select * from scott.dept as of timestamp to_timestamp('2017-12-14 16:20:00','yyyy-mm-dd hh24:mi:ss');DEPTNO DNAME LOC---------- -------------- -------------ACCOUNTING NEW YORKRESEARCH DALLASSALES CHICAGOOPERATIONS BOSTONSQL> select * from scott.dept as of scn 16801523;DEPTNO DNAME LOC---------- -------------- -------------ACCOUNTING NEW YORKRESEARCH DALLASSALES CHICAGOOPERATIONS BOSTON

b.闪回版本查询

用于查询行级数据库随时间变化的方法

c.闪回事务查询

用于提供查看事务级别数据库变化的方法

(2)闪回表(update/insert/delete)

闪回表就是对表的数据做回退,回退到之前的某个时间点,其利用的是undo的历史数据,与undo_retention设置有关,默认是14400分钟(1天)

同样,sys用户表空间不支持闪回表,要想表闪回,需要允许表启动行迁移(row movement)

闪回表示例:

SQL> flashback table scott.dept to timestamp to_timestamp('2017-12-14 16:20:00','yyyy-mm-dd hh24:mi:ss');flashback table scott.dept to timestamp to_timestamp('2017-12-14 16:20:00','yyyy-mm-dd hh24:mi:ss')ERROR at line 1:ORA-08189: cannot flashback the table because row movement is not enabledSQL> select row_movement from dba_tables where table_name='DEPT' and owner='SCOTT';ROW_MOVE--------DISABLEDSQL> alter table scott.dept enable row movement;Table altered.SQL> flashback table scott.dept to timestamp to_timestamp('2017-12-14 16:20:00','yyyy-mm-dd hh24:mi:ss');Flashback complete.SQL> select * from scott.dept;DEPTNO DNAME LOC---------- -------------- -------------ACCOUNTING NEW YORKRESEARCH DALLASSALES CHICAGOOPERATIONS BOSTON  SQL> alter table scott.dept disable row movement;Table altered.

(3)闪回DROP(drop table)

当一个表被drop掉,表会被放入recyclebin回收站,可通过回收站做表的闪回。表上的索引、约束等同样会被恢复

不支持sys/system用户表空间对象,可通过alter system set recyclebin=off;关闭回收站功能

闪回DROP示例:

SQL> select * from t ;ID NAME---------- ---------------------------------------24SQL> drop table t;Table dropped.SQL> show recyclebin;ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME---------------- ------------------------------ ------------ -------------------T BIN$YEh2QcvZdJLgUxyAgQpnVQ==$0 TABLE 2017-12-14:15:02:06SQL> flashback table t to before drop;Flashback complete.SQL> select * from t;ID NAME---------- -------------------------------------24

备注:即使不开始flashback,只要开启了recyclebin,那么就可以闪回DROP表。

但如果连续覆盖,就需要指定恢复的表名,如果已经存在表,则需要恢复重命名。

SQL> show recyclebin;ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME---------------- ------------------------------ ------------ -------------------T BIN$YEh2QcvddJLgUxyAgQpnVQ==$0 TABLE 2017-12-14:15:07:54T BIN$YEh2QcvcdJLgUxyAgQpnVQ==$0 TABLE 2017-12-14:15:07:27SQL> flashback table "BIN$YEh2QcvcdJLgUxyAgQpnVQ==$0" to before drop ;Flashback complete.SQL> show recyclebin;ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME---------------- ------------------------------ ------------ -------------------T BIN$YEh2QcvddJLgUxyAgQpnVQ==$0 TABLE 2017-12-14:15:07:54SQL> flashback table t to before drop rename to tt;Flashback complete.

(4)闪回数据库(truncate/多表数据变更)

数据库闪回必须在mounted状态下进行,基于快照的可以再open下进行闪回库

闪回数据库主要是将数据库还原值过去的某个时间点或SCN,用于数据库出现逻辑错误时,需要open database resetlogs

a.全库闪回

数据库闪回示例

SQL> select * from scott.EMP;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------SMITH CLERK 7902 1980-12-17 00:00:00 800 20ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30JONES MANAGER 7839 1981-04-02 00:00:00 2975 20MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20KING PRESIDENT 1981-11-17 00:00:00 5000 10TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20JAMES CLERK 7698 1981-12-03 00:00:00 950 30FORD ANALYST 7566 1981-12-03 00:00:00 3000 20MILLER CLERK 7782 1982-01-23 00:00:00 1300 10rows selected.SQL> truncate table scott.EMP;Table truncated.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 9.4067E+10 bytesFixed Size 2263936 bytesVariable Size 9395242112 bytesDatabase Buffers 8.4557E+10 bytesRedo Buffers 112766976 bytesDatabase mounted.SQL> flashback database to timestamp to_timestamp('2017-12-14 14:12:46','yyyy-mm-dd HH24:MI:SS');Flashback complete.SQL> alter database open resetlogs;Database altered.SQL> select * from scott.emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------SMITH CLERK 7902 1980-12-17 00:00:00 800 20ALLEN SALESMAN 7698 1981-02-20 00:00:00 1600 300 30WARD SALESMAN 7698 1981-02-22 00:00:00 1250 500 30JONES MANAGER 7839 1981-04-02 00:00:00 2975 20MARTIN SALESMAN 7698 1981-09-28 00:00:00 1250 1400 30BLAKE MANAGER 7839 1981-05-01 00:00:00 2850 30CLARK MANAGER 7839 1981-06-09 00:00:00 2450 10SCOTT ANALYST 7566 1987-04-19 00:00:00 3000 20KING PRESIDENT 1981-11-17 00:00:00 5000 10TURNER SALESMAN 7698 1981-09-08 00:00:00 1500 0 30ADAMS CLERK 7788 1987-05-23 00:00:00 1100 20JAMES CLERK 7698 1981-12-03 00:00:00 950 30FORD ANALYST 7566 1981-12-03 00:00:00 3000 20MILLER CLERK 7782 1982-01-23 00:00:00 1300 10rows selected.

b.快照闪回

针对主库和备库都可以创建闪回快照点,然后恢复到指定的快照点,但主库一旦恢复到快照点,备库的同步则需要重新同步

SQL> select * from scott.dept;  DEPTNO DNAME     LOC      ADDR---------- -------------- ------------- ------------------------------ACCOUNTING   NEW YORKRESEARCH    DALLASSALES     CHICAGO    SQL> create restore point before_201712151111 guarantee flashback database;Restore point created.SQL> create table scott.t as select * from scott.dept;Table created.SQL> truncate table scott.t;Table truncated.SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 9.4067E+10 bytesFixed Size         2263936 bytesVariable Size      9663677568 bytesDatabase Buffers     8.4289E+10 bytesRedo Buffers       112766976 bytesDatabase mounted.SQL> flashback database to restore point before_201712151111;Flashback complete.SQL> alter database open resetlogs;Database altered.此时主库scott.t已不存在:SQL> select * from scott.t;select * from scott.t          *ERROR at line 1:ORA-00942: table or view does not exist此时从库的scott.依旧存在,主备同步终止解决方案:在主库创建快照时间点,从库自动停止应用日志,等主库闪回后,重新应用日志即可。如果已经做了上述操作,从库可以选择重建ALTER DATABASE REGISTER LOGFILE '/xx/xx/archive.dbf';

c.闪回snapshot standby

此功能在11GR2非常实用,可自动创建闪回点、开启闪回日志,可完成线上数据测试后,然后做数据库闪回恢复主备关系

select scn, STORAGE_SIZE ,to_char(time,'yyyy-mm-dd hh24:mi:ss') time,NAME from v$restore_point;select database_role,open_mode,db_unique_name,flashback_on from v$database;SQL> set line 200;SQL> set pagesize 2000;SQL> select database_role,open_mode,db_unique_name,flashback_on from v$database;DATABASE_ROLE  OPEN_MODE      DB_UNIQUE_NAME         FLASHBACK_ON---------------- -------------------- ------------------------------ ------------------PHYSICAL STANDBY READ ONLY      testdbmsNOSQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY; Database altered.SQL> select database_role,open_mode,db_unique_name,flashback_on from v$database;DATABASE_ROLE  OPEN_MODE      DB_UNIQUE_NAME         FLASHBACK_ON---------------- -------------------- ------------------------------ ------------------SNAPSHOT STANDBY MOUNTED       testdbmsRESTORE POINT ONLYSQL> alter database open;Database altered.SQL> select open_mode from v$database;OPEN_MODE--------------------READ WRITE此时备库操作:SQL> select * from scott.emp;   EMPNO ENAME   JOB       MGR HIREDATE          SAL    COMM   DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------SMITH   CLERK      7902 1980-12-17 00:00:00    800          20ALLEN   SALESMAN    7698 1981-02-20 00:00:00    1600    300     30WARD    SALESMAN    7698 1981-02-22 00:00:00    1250    500     30JONES   MANAGER     7839 1981-04-02 00:00:00    2975          20MARTIN   SALESMAN    7698 1981-09-28 00:00:00    1250    1400     30BLAKE   MANAGER     7839 1981-05-01 00:00:00    2850          30CLARK   MANAGER     7839 1981-06-09 00:00:00    2450          10SCOTT   ANALYST     7566 1987-04-19 00:00:00    3000          20KING    PRESIDENT      1981-11-17 00:00:00    5000          10TURNER   SALESMAN    7698 1981-09-08 00:00:00    1500     0     30ADAMS   CLERK      7788 1987-05-23 00:00:00    1100          20JAMES   CLERK      7698 1981-12-03 00:00:00    950          30FORD    ANALYST     7566 1981-12-03 00:00:00    3000          20MILLER   CLERK      7782 1982-01-23 00:00:00    1300          10rows selected.SQL> truncate table scott.emp;Table truncated.主库操作:SQL> create table scott.t as select * from scott.dept;Table created.SQL> select * from scott.t;  DEPTNO DNAME     LOC      ADDR---------- -------------- ------------- ------------------------------ACCOUNTING   NEW YORKRESEARCH    DALLASSALES     CHICAGO备库恢复到物理standbySQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startup mount;ORACLE instance started.Total System Global Area 9.4067E+10 bytesFixed Size         2263936 bytesVariable Size      9663677568 bytesDatabase Buffers     8.4289E+10 bytesRedo Buffers       112766976 bytesDatabase mounted.SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY; Database altered.SQL> shutdown immediate;ORA-01507: database not mountedORACLE instance shut down.SQL> startup ;ORACLE instance started.Total System Global Area 9.4067E+10 bytesFixed Size         2263936 bytesVariable Size      9663677568 bytesDatabase Buffers     8.4289E+10 bytesRedo Buffers       112766976 bytesDatabase mounted.Database opened.##此时备库的数据已经恢复到转变snapshot standby时间点SQL> select database_role,open_mode,db_unique_name,flashback_on from v$database;DATABASE_ROLE  OPEN_MODE      DB_UNIQUE_NAME         FLASHBACK_ON---------------- -------------------- ------------------------------ ------------------PHYSICAL STANDBY READ ONLY      testdbmsNOSQL> select * from scott.emp;   EMPNO ENAME   JOB       MGR HIREDATE          SAL    COMM   DEPTNO---------- ---------- --------- ---------- ------------------- ---------- ---------- ----------SMITH   CLERK      7902 1980-12-17 00:00:00    800          20ALLEN   SALESMAN    7698 1981-02-20 00:00:00    1600    300     30WARD    SALESMAN    7698 1981-02-22 00:00:00    1250    500     30JONES   MANAGER     7839 1981-04-02 00:00:00    2975          20MARTIN   SALESMAN    7698 1981-09-28 00:00:00    1250    1400     30BLAKE   MANAGER     7839 1981-05-01 00:00:00    2850          30CLARK   MANAGER     7839 1981-06-09 00:00:00    2450          10SCOTT   ANALYST     7566 1987-04-19 00:00:00    3000          20KING    PRESIDENT      1981-11-17 00:00:00    5000          10TURNER   SALESMAN    7698 1981-09-08 00:00:00    1500     0     30ADAMS   CLERK      7788 1987-05-23 00:00:00    1100          20JAMES   CLERK      7698 1981-12-03 00:00:00    950          30FORD    ANALYST     7566 1981-12-03 00:00:00    3000          20MILLER   CLERK      7782 1982-01-23 00:00:00    1300          10rows selected.SQL> alter database recover managed standby database using current logfile disconnect;Database altered.SQL> select * from scott.t;  DEPTNO DNAME     LOC      ADDR---------- -------------- ------------- ------------------------------ACCOUNTING   NEW YORKRESEARCH    DALLASSALES     CHICAGO    SQL> select database_role,open_mode,db_unique_name,flashback_on from v$database;DATABASE_ROLE  OPEN_MODE      DB_UNIQUE_NAME         FLASHBACK_ON---------------- -------------------- ------------------------------ ------------------PHYSICAL STANDBY READ ONLY WITH APPLY testdbmsNO

(5)闪回归档(增加、修改、重命名、删除表的列、truncate表、修改表的约束、以及修改分区表的分区规范)

3、闪回注意事项

(1)数据库闪回需要在mounted下进行,并且open时需要使用resetlogs

(2)闪回DROP只能用于非系统表空间和本地管理的表空间,外键约束无法恢复,对方覆盖、重命名需注意

(3)表DROP,对应的物化视图会被彻底删除,物化视图不会存放在recyclebin里

(4)闪回表,如果在做过dml,然后进行了表结构修改、truncate等DDL操作,新增/删除结构无法做闪回

(5)闪回归档,必须在assm管理tablespace和undo auto管理下进行

(6)注意闪回区管理,防止磁盘爆满,闪回区空间不足等

(7)主库做库的闪回,会影响备库,需要重新同步

(8)snapshot standby 不支持最高保护模式

三、备注

1、相关数据字典

V$FLASHBACK_DATABASE_LOG ##查看数据库可闪回的时间点/SCN等信息 V$flashback_database_stat ##查看闪回日志空间记录信息

2、常用查询语句

(1)查看数据库状态

SQL> select NAME,OPEN_MODE ,DATABASE_ROLE,CURRENT_SCN,FLASHBACK_ON from v$database;NAME OPEN_MODE DATABASE_ROLE CURRENT_SCN FLASHBACK_ON------------- -------------------- ---------------- ----------- ------------------TESTDB READ WRITE PRIMARY 16812246 YES

(2)获取当前数据库的系统时间和SCN

SQL> select to_char(systimestamp,'yyyy-mm-dd HH24:MI:SS') as sysdt , dbms_flashback.get_system_change_number scn from dual;SYSDT SCN------------------- ----------2017-12-14 14:28:33 16813234

(3)查看数据库可恢复的时间点

SQL> select * from V$FLASHBACK_DATABASE_LOG;OLDEST_FLASHBACK_SCN OLDEST_FLASHBACK_TI RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE-------------------- ------------------- ---------------- -------------- ------------------------16801523 2017-12-14 11:35:05 4320 104857600 244113408

(4)查看闪回日志空间情况

SQL> select * from V$flashback_database_stat;BEGIN_TIME END_TIME FLASHBACK_DATA DB_DATA REDO_DATA ESTIMATED_FLASHBACK_SIZE------------------- ------------------- -------------- ---------- ---------- ------------------------2017-12-14 14:34:53 2017-12-14 14:56:43 1703936 9977856 1487872 0  

(5)SCN和timestamp装换关系查询

select scn,to_char(time_dp,'yyyy-mm-dd hh24:mi:ss')from sys.smon_scn_time;

(6)查看闪回restore_point

select scn, STORAGE_SIZE ,to_char(time,'yyyy-mm-dd hh24:mi:ss') time,NAME from v$restore_point;

(7)闪回语句

a.闪回数据库

FLASHBACK DATABASE TO TIMESTAMP to_timestamp('2017-12-14 14:28:33','yyyy-mm-dd HH24:MI:SS');;flashback database to scn 16813234;

b.闪回DROP

其中table_name可以是删除表名称,也可以是别名

flashback table table_name to before drop;flashback table table_name to before drop rename to table_name_new;

c.闪回表

flashback table table_name to scn scn_number;flashback table table_name to timestamp to_timestamp('2017-12-14 14:28:33','yyyy-mm-dd hh24:mi:ss');

d.闪回查询

select * from table_name as of timestamp to_timestamp('2017-12-14 14:28:33','yyyy-mm-dd hh24:mi:ss');select * from scott.dept as of scn 16801523;

e.闪回快照

create restore point before_201712151111 guarantee flashback database;flashback database to restore point before_201712151111;

(7)闪回空间爆满问题处理

请参照 基于ORA-19815闪回空间爆满问题的处理方法

以上这篇基于Oracle闪回详解(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


  • 上一条:
    基于Oracle多库查询方法(分享)
    下一条:
    详解oracle分页查询的基础原理
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 分库分表的目的、优缺点及具体实现方式介绍(0个评论)
    • DevDB - 在 VS 代码中直接访问数据库(0个评论)
    • 在ubuntu系统中实现mysql数据存储目录迁移流程步骤(0个评论)
    • 在mysql中使用存储过程批量新增测试数据流程步骤(0个评论)
    • php+mysql数据库批量根据条件快速更新、连表更新sql实现(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2017-06
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-05
    • 2018-10
    • 2018-11
    • 2020-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2021-02
    • 2021-04
    • 2021-07
    • 2021-08
    • 2021-11
    • 2021-12
    • 2022-02
    • 2022-03
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-07
    • 2023-08
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-03
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客