一、简介

完全可传输导出导入(Full Transportable Export & Import)可以认为是TTS的一个升级版,如下所示:

官网:

https://docs.oracle.com/en/database/oracle/oracle-database/21/upgrd/transporting-upgrading-database-full-transportable-export-import.html#GUID-E5765990-0A20-4AAC-8AFC-1930B929A172

1.1、使用场景

完全可传输导出/导入功能可以让数据库迁移更快、更容易,比exp更有效,可用于多种情形:

版本升级至新发行版Oracle DB:可以使用完全可传输导出/导入功能将数据库从11.2.0.3或更高版本升级至Oracle Database 12c。要执行上述升级操作,请安装Oracle Database 12c并创建一个空数据库。接着,使用完全可传输导出/导入功能将11.2.0.3数据库移动到Oracle Database 12c数据库。

将数据库移动到新计算机系统:可以使用完全可传输导出/导入功能将数据库从一个计算机系统移动到另一个计算机系统。您可能想要将数据库移动到新计算机系统以升级硬件,或将数据库移动到其他平台上。

将非CDB移动到非CDB或CDB:移动到CDB后,移动的数据库将成为与CDB关联的PDB。完全可传输导出/导入功能可以高效地将11.2.0.3或更高版本的数据库移动到Oracle Database 12c数据库。

1.2、限制条件

执行完全可传输导出时有以下限制:

•如果要导出的数据库包含加密表空间或具有加密列(透明数据加密(TDE)列或SecureFile LOB列)的表,则还必须提供ENCRYPTION_PASSWORD参数。

•如果源数据库中含有加密表空间,则源数据库和目标数据库必须位于具有相同字节排列顺序(endianness)的平台上。

•如果源平台和目标平台的字节排列顺序(endianness)不同,则必须转换要移动的数据,使其格式与目标平台的格式相同。使用DBMS_FILE_TRANSFER程序包或RMAN CONVERT命令。

•完全可传输导出无法重新启动。

•具有存储且已选定要导出的所有对象中的所有存储段,必须完全位于不可移动的管理表空间(SYSTEM/SYSAUX)中或完全位于用户定义的可移动表空间中。单个对象的存储不能跨越这两种表空间。

•使用完全可传输导出通过网络移动数据库时,含有LONG或LONG RAW列且位于管理表空间(例如SYSTEM或SYSAUX)中的表不受支持。

•使用完全可传输导出通过网络移动数据库时,如果审计线索信息本身存储在用户定义的表空间中,则无法为存储在管理表空间(例如SYSTEM和SYSAUX)中的表启用审计。

•如果源数据库和目标数据库都运行Oracle Database 12c发行版1(12.1),则必须至少将Oracle数据泵VERSION参数设置为12.0或将COMPATIBLE数据库初始化参数设置为12.0或更高版本,才能执行完全可传输导出。

•从11.2.0.3源数据库开始才支持完全可传输导出。完全可传输导出功能用于11.2.0.3或更高版本的数据库,完全可传输导入功能用于Oracle 12c数据库。

执行完全可传输导入时有以下要求:

•如果您使用的是网络链接,则在NETWORK_LINK参数中指定的数据库必须为Oracle Database 11g发行版2(11.2.0.3)或更高版本,且Oracle数据泵VERSION参数必须至少设置为12。(在非网络导入中,会从转储文件隐式确定VERSION=12。)

•如果源平台和目标平台的endian格式不同,则必须转换要移动的数据,使其格式与目标平台的格式相同。可使用DBMS_FILE_TRANSFER程序包或RMAN CONVERT命令转换数据。

•如果源平台和目标平台的endian格式不同,则在网络模式或转储文件模式下不支持对加密表空间进行完全可传输导入。

•使用完全可传输导入功能通过网络移动数据库时,含有LONG或LONG RAW列且位于管理表空间(例如SYSTEM或SYSAUX)中的表不受支持。

•使用完全可传输导入功能通过网络移动数据库时,如果审计线索信息本身存储在用户定义的表空间中,则无法为存储在管理表空间(例如SYSTEM和SYSAUX)中的表启用审计。

• 目标库字符集需要和源库保持一致。

二、完全可传输操作步骤

要执行完全可传输操作,请执行下列步骤:

1.在导出之前,将数据库中的所有用户定义的表空间置于只读状态,排除SYSTEM、SYSAUX、TEMP和Undo表空间。

2.以具有DATAPUMP_EXP_FULL_DATABASE角色的用户身份调用Oracle数据泵导出实用程序,并指定完全可传输导出选项:FULL=Y、TRANSPORTABLE=ALWAYS。LOGFILE参数很重要,因为它将包含导入操作需要移动的数据文件的列表。要在11.2.0.3数据库上执行该操作,请使用VERSION参数。只有Oracle Database 12c数据库才支持完全可传输导入。

3.将导出的转储文件拷贝到目标端。

4.将相关只读表空间的数据文件拷贝到目标端。

5.(可选)转换文件的字节序。如果要将数据库移动到与源平台不同的平台中,则请确定源平台和目标平台是否都支持跨平台数据库移动。如果两个平台的endian格式相同,则不必进行转换。否则,必须使用DBMS_FILE_TRANSFER或RMAN CONVERT命令转换源平台或目标平台中数据库内的每个表空间。

6.将源表空间置于读写状态。

7.以具有DATAPUMP_IMP_FULL_DATABASE角色的用户身份调用Oracle数据泵导入实用程序,并指定完全可传输导入选项:FULL=Y、TRANSPORT_DATAFILES。

三、案例演示

需求:将11.2.0.3中的表空间ts_lhr、users、example,迁移到12.1.0.2的CDB数据库的lhrpdb1中作为一个PDB存在。

3.1、环境

源库 目标库
版本 11.2.0.3 12.1.0.2
ORACLE_SID LHR11G lhrcdb1
用户表空间 ts_lhr、users、example ts_lhr、users、example
平台 Linux x86 64-bit Linux x86 64-bit
字节序 Little Little
IP地址 172.17.0.3 172.17.0.15
字符集 AMERICAN_CHINA.AL32UTF8 AMERICAN_CHINA.AL32UTF8
-- 查询平台和字节序
SELECT d.PLATFORM_NAME, ENDIAN_FORMAT
FROM V$TRANSPORTABLE_PLATFORM tp, V$DATABASE d
WHERE tp.PLATFORM_NAME = d.PLATFORM_NAME; -- 查询字符集
select userenv('language') from dual;

3.2、源库操作

3.2.1、将需要传输的用户表空间设置为RO状态

将除'SYSTEM','SYSAUX','UNDOTBS1','TEMP'之外的表空间都设置为read only模式:

select 'ALTER TABLESPACE '||name||' READ ONLY;' exec_sql
from v$tablespace
where NAME not in ('SYSTEM','SYSAUX','UNDOTBS1','TEMP'); select tablespace_name,status from dba_tablespaces;

执行过程:

SYS@LHR11G> create table lhr.test tablespace ts_lhr as select * from dba_tables;

Table created.

SYS@LHR11G> select count(*) from  lhr.test;

  COUNT(*)
----------
2835 SYS@LHR11G> select 'ALTER TABLESPACE '||name||' READ ONLY;' exec_sql
2 from v$tablespace
3 where NAME not in ('SYSTEM','SYSAUX','UNDOTBS1','TEMP'); EXEC_SQL
--------------------------------------------------------------------------------------------------------------------
ALTER TABLESPACE USERS READ ONLY;
ALTER TABLESPACE EXAMPLE READ ONLY;
ALTER TABLESPACE TS_LHR READ ONLY; SYS@LHR11G> ALTER TABLESPACE USERS READ ONLY; Tablespace altered. SYS@LHR11G> ALTER TABLESPACE EXAMPLE READ ONLY; Tablespace altered. SYS@LHR11G> ALTER TABLESPACE TS_LHR READ ONLY; Tablespace altered. SYS@LHR11G> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS
------------------------------------------------------------ ------------------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
USERS READ ONLY
EXAMPLE READ ONLY
TS_LHR READ ONLY 7 rows selected. SYS@LHR11G> select DIRECTORY_PATH from dba_directories where DIRECTORY_NAME='DATA_PUMP_DIR'; DIRECTORY_PATH
---------------------------------------
/u01/app/oracle/admin/LHR11G/dpdump/

3.2.2、使用Data Pump导出工具执行full transportable export操作

-- 在执行导出时必须指定transportable=always,它用来判断是否使用传输选项。full参数用来指定将导出整个数据库
expdp system/lhr dumpfile=expdp_lhr_`date +%Y%m%d`.dmp directory=DATA_PUMP_DIR \
transportable=always full=y EXCLUDE=STATISTICS PARALLEL=4 version=12 logfile=expdp_lhr_`date +%Y%m%d`.log -- 或者可以将不需要的内容排除掉
cat > /tmp/exclude_schema.par <<"EOF"
transportable=always
full=y
PARALLEL=4
version=12
EXCLUDE=STATISTICS,SCHEMA:"in ('MDSYS','DBSNMP','SCOTT','WMSYS','SH','HR','BI','OE','IX','SYSMAN','XDB','OUTLN','MGMT_VIEW','FLOWS_FILES','ORDSYS','EXFSYS','APPQOSSYS','APEX_030200','OWBSYS_AUDIT','ORDDATA','CTXSYS','ANONYMOUS','ORDPLUGINS','OWBSYS','SI_INFORMTN_SCHEMA','OLAPSYS','ORACLE_OCM','XS$NULL','PM','MDDATA','DIP','APEX_PUBLIC_USER','SPATIAL_CSW_ADMIN_USR','SPATIAL_WFS_ADMIN_USR')"
EOF expdp system/lhr dumpfile=expdp_lhr_`date +%Y%m%d`.dmp directory=DATA_PUMP_DIR \
parfile=/tmp/exclude_schema.par logfile=expdp_lhr_`date +%Y%m%d`.log

执行过程:


[oracle@lhrora11203 ~]$ expdp system/lhr dumpfile=expdp_lhr.dmp directory=DATA_PUMP_DIR transportable=always EXCLUDE=STATISTICS full=y version=12 logfile=expdp_lhr.log Export: Release 11.2.0.3.0 - Production on Thu Apr 8 10:03:26 2021 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYSTEM"."SYS_EXPORT_FULL_02": system/******** dumpfile=expdp_lhr.dmp directory=DATA_PUMP_DIR transportable=always full=y version=12 logfile=expdp_lhr.log
Estimate in progress using BLOCKS method...
Processing object type DATABASE_EXPORT/PLUGTS_FULL/FULL/PLUGTS_TABLESPACE
Processing object type DATABASE_EXPORT/PLUGTS_FULL/PLUGTS_BLK
Processing object type DATABASE_EXPORT/EARLY_OPTIONS/TABLE_DATA
Processing object type DATABASE_EXPORT/EARLY_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA
Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/TABLE_DATA
Processing object type DATABASE_EXPORT/NORMAL_OPTIONS/VIEWS_AS_TABLES/TABLE_DATA
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 90.06 MB
Processing object type DATABASE_EXPORT/PRE_SYSTEM_IMPCALLOUT/MARKER
Processing object type DATABASE_EXPORT/PRE_INSTANCE_IMPCALLOUT/MARKER
Processing object type DATABASE_EXPORT/TABLESPACE
。。。。。。。。。。。。
. . exported "XDB"."XDB$H_INDEX" 1.177 MB 306 rows
. . exported "XDB"."XDB$H_LINK" 811.9 KB 7666 rows
. . exported "XDB"."XDB$ACL" 13.64 KB 11 rows
。。。。。。。。。。。。
. . exported "SYSTEM"."REPCAT$_TEMPLATE_TARGETS" 0 KB 0 rows
. . exported "SYSTEM"."REPCAT$_USER_AUTHORIZATIONS" 0 KB 0 rows
. . exported "SYSTEM"."REPCAT$_USER_PARM_VALUES" 0 KB 0 rows
. . exported "SYSTEM"."SQLPLUS_PRODUCT_PROFILE" 0 KB 0 rows
Master table "SYSTEM"."SYS_EXPORT_FULL_02" successfully loaded/unloaded
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_FULL_02 is:
/u01/app/oracle/admin/LHR11G/dpdump/expdp_lhr.dmp
******************************************************************************
Datafiles required for transportable tablespace EXAMPLE:
/u01/app/oracle/oradata/LHR11G/example01.dbf
Datafiles required for transportable tablespace TS_LHR:
/u01/app/oracle/oradata/LHR11G/ts_lhr01.dbf
Datafiles required for transportable tablespace USERS:
/u01/app/oracle/oradata/LHR11G/users01.dbf
Job "SYSTEM"."SYS_EXPORT_FULL_02" successfully completed at 10:14:13

3.2.3、将dmp文件和数据文件传输到目的端

将文件/u01/app/oracle/admin/LHR11G/dpdump/expdp_lhr.dmp、/u01/app/oracle/oradata/LHR11G/example01.dbf、/u01/app/oracle/oradata/LHR11G/ts_lhr01.dbf、/u01/app/oracle/oradata/LHR11G/users01.dbf传输到目的端:

scp expdp_lhr_20210408.* oracle@172.17.0.15:/u01/app/tts/
scp /u01/app/oracle/oradata/LHR11G/example01.dbf oracle@172.17.0.15:/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/
scp /u01/app/oracle/oradata/LHR11G/ts_lhr01.dbf oracle@172.17.0.15:/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/
scp /u01/app/oracle/oradata/LHR11G/users01.dbf oracle@172.17.0.15:/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/

另外,拷贝数据文件也可以使用dbms_file_transfer包,如下:

-- 源库执行
create database link dbl_lhrpdb1
connect to system identified by "lhr"
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.0.15)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = lhrpdb1)))'; -- 源库执行
create or replace directory TTS_DATAFILE_SOURCE as '/u01/app/oracle/oradata/LHR11G/';
grant all on directory TTS_DATAFILE_SOURCE to public; -- 目标库执行
create or replace directory TTS_DATAFILE_DES as '/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/';
grant all on directory TTS_DATAFILE_DES to public; -- 源库执行,拷贝文件到目标库
exec dbms_file_transfer.put_file(source_directory_object =>'TTS_DATAFILE_SOURCE',source_file_name => 'example01.dbf',destination_directory_object => 'TTS_DATAFILE_DES',destination_file_name => 'example01.dbf',destination_database => 'dbl_lhrpdb1');
exec dbms_file_transfer.put_file(source_directory_object =>'TTS_DATAFILE_SOURCE',source_file_name => 'ts_lhr01.dbf',destination_directory_object => 'TTS_DATAFILE_DES',destination_file_name => 'ts_lhr01.dbf',destination_database => 'dbl_lhrpdb1');
exec dbms_file_transfer.put_file(source_directory_object =>'TTS_DATAFILE_SOURCE',source_file_name => 'users01.dbf',destination_directory_object => 'TTS_DATAFILE_DES',destination_file_name => 'users01.dbf',destination_database => 'dbl_lhrpdb1');

3.2.4、将源数据库中的所有用户表空间设置为读写模式

select 'ALTER TABLESPACE '||name||' READ WRITE;' exec_sql
from v$tablespace
where NAME not in ('SYSTEM','SYSAUX','UNDOTBS1','TEMP'); select tablespace_name,status from dba_tablespaces;

3.3、目标库操作

3.3.1、转换字节序(可选)

若原平台和目标平台的字节序不一样,则还需要进行字节序的转换;若一样,则不需要执行转换。在rman中执行:

CONVERT DATAFILE
'/u01/app/tts/example01.dbf',
'/u01/app/tts/ts_lhr01.dbf',
'/u01/app/tts/users01.dbf'
TO PLATFORM="Linux x86 64-bit"
FROM PLATFORM="Linux x86 64-bit"
DB_FILE_NAME_CONVERT='/u01/app/tts/', '/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/'
PARALLELISM=4;

3.3.2、开始导入

-- 创建目录
create or replace directory tts_dump as '/u01/app/tts/';
grant all on directory tts_dump to public;
select DIRECTORY_PATH from dba_directories where DIRECTORY_NAME='TTS_DUMP'; -- 导入
impdp system/lhr@localhost/LHRPDB1 dumpfile=expdp_lhr_20210408.dmp directory=tts_dump \
transport_datafiles='/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/example01.dbf', \
'/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/ts_lhr01.dbf', \
'/u01/app/oracle/oradata/lhrcdb1/lhrpdb1/users01.dbf' \
logfile=import_lhr.log

3.3.3、检查状态

sqlplus  system/lhr@localhost/LHRPDB1
col TABLESPACE_NAME format a20
col FILE_NAME format a100
select tablespace_name,file_name from dba_data_files;
select tablespace_name,status from dba_tablespaces;

执行过程:

SYSTEM@localhost/LHRPDB1> col TABLESPACE_NAME format a20
SYSTEM@localhost/LHRPDB1> col FILE_NAME format a100
SYSTEM@localhost/LHRPDB1> select tablespace_name,file_name from dba_data_files; TABLESPACE_NAME FILE_NAME
-------------------- ----------------------------------------------------------------------------------------------------
SYSTEM /u01/app/oracle/oradata/lhrcdb1/lhrpdb1/system01.dbf
SYSAUX /u01/app/oracle/oradata/lhrcdb1/lhrpdb1/sysaux01.dbf
USERS /u01/app/oracle/oradata/lhrcdb1/lhrpdb1/users01.dbf
EXAMPLE /u01/app/oracle/oradata/lhrcdb1/lhrpdb1/example01.dbf
TS_LHR /u01/app/oracle/oradata/lhrcdb1/lhrpdb1/ts_lhr01.dbf SYSTEM@localhost/LHRPDB1> select tablespace_name,status from dba_tablespaces; TABLESPACE_NAME STATUS
-------------------- ------------------
SYSTEM ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE
TS_LHR ONLINE 6 rows selected. SYSTEM@localhost/LHRPDB1> select count(*) from lhr.test; COUNT(*)
----------
2835

四、总结

1、完全可传输导出导入(Full Transportable Export & Import)可以认为是TTS的一个升级版,步骤基本和TTS一致

2、完全可传输导出导入的停机时间主要花费在将源库的数据文件拷贝到目标库的过程,所以,正式迁移时可以考虑临时增大带宽

3、字节序的转换建议在目标端执行

4、生产库完成迁移后,建议在目标库对整库收集统计信息

5、导入到PDB的时候,需要注意连接串的写法,确保连接到的是PDB

About Me


● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文原始发表于个人微 信公众号(DB宝)上

● QQ群号: 230161599 、618766405,微信群私聊

● 个人QQ号(646634621),微 信号(db_bao),注明添加缘由

● 版权所有,欢迎分享本文,转载请保留出处

【DB宝50】Oracle异构平台迁移之完全可传输导出导入(Full Transportable Export & Import)的更多相关文章

  1. ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法

    ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法 (2010-05-28 12:54:34) http://blog.sina.com.cn/s/blog_67d41beb0100ixn ...

  2. 【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法

    一.expdp/impdp和exp/imp 客户端工具 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 服务端工具 2.expdp和impdp是服务端的工具程序,他们 ...

  3. oracle数据泵实现不同用户之间的导出导入

    来源于:http://www.cnblogs.com/kevinsun/archive/2007/02/03/638803.aspx http://blog.sina.com.cn/s/blog_68 ...

  4. oracle导出/导入 expdp/impdp

    Oracle使用EXPDP和IMPDP数据泵进行导出导入的方法(常用方法) 使用expdp和impdp时应该注重的事项: 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用 ...

  5. 异构平台同步(Mysql到Oracle)

    Oracle GoldenGate学习之--异构平台同步(MySQL到Oracle) 如图所示:源端采用Mysql库,目标端采用Oracle库 一.OGG安装配置(源端) 1.OGG下载 https: ...

  6. Oracle GoldenGate 异构平台同步(Mysql到Oracle)

    一.OGG安装配置(源端) 1.OGG下载 http://www.oracle.com/technetwork/cn/middleware/goldengate/downloads/index.htm ...

  7. Windows C盘格式化或者同平台迁移oracle数据库

    我们知道如果是Linux 同平台迁移oracle数据库.只要是安全关闭了数据库,在新机器上创建用户组,配置了环境变量,将数据库安装目录拷贝到对应的目录就好用了. 一直在寻求Windows平台上这类的解 ...

  8. 【DB宝49】Oracle如何设置DB、监听和EM开机启动

    目录 一.Windows系统 二.Linux系统 方法1:配置/etc/rc.d/rc.local文件(推荐) 方法2:配置service服务 三.Oracle 18c版本 四.总结 一.Window ...

  9. 【DB宝48】JumpServer:多云环境下更好用的堡垒机

    目录 一.JumpServer简介 1.1.页面展示 1.2.特色优势 1.3.功能列表 1.4.架构图 1.5.端口说明 1.6.产品组件 二.安装JumpServer 2.1.一键自动部署 2.2 ...

随机推荐

  1. Linux常用操作命令之文件权限(二)

    一.基本概念 Linux/Unix是多用户系统:root是超级用户,拥有最高权限,其他用户及权限由root管理.文件/目录的权限有三种,可读read(r)可写write(w)可执行excute(x). ...

  2. AI数学基础之:概率和上帝视角

    目录 简介 蒙题霍尔问题 上帝视角解决概率问题 上帝视角的好处 简介 天要下雨,娘要嫁人.虽然我们不能控制未来的走向,但是可以一定程度上预测为来事情发生的可能性.而这种可能性就叫做概率.什么是概率呢? ...

  3. javamelody简单介绍

    JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java  CPU使用情况,用户Session数量,JDBC连接数,和http请求.sql请求. ...

  4. 「NOIP模拟赛」Round 3

    Tag 计数+LIS, 二分+ST表, 计数+记搜 A. 改造二叉树 Description 题面 Solution 如果目标序列非严格递增,或者说目标序列是不下降的,那么答案就是 \(n\) 减去最 ...

  5. AmazonS3 使用AWS SDK for Java实现跨源资源共享 (CORS)

    CORS 配置 创建 CORS 配置并对存储桶设置该配置 通过添加规则来检索并修改配置 向存储桶添加修改过的配置 删除配置 import com.amazonaws.AmazonServiceExce ...

  6. 2019HDU多校第七场 HDU6656 Kejin Player H 【期望递归】

    一.题目 Kejin Player H 二.分析 因为在当前等级$i$,如果升级失败可能会退回到原来的某一等级$x$,相当于就是失败的期望就是$E + (Sum[i-1] - Sum[x-1]) + ...

  7. python stats画正态分布、指数分布、对数正态分布的QQ图

    stats.probplot(grade, dist=stats.norm, plot=plt) #正态分布 # stats.probplot(grade, dist=stats.expon, plo ...

  8. 1.认识numpy的数组

    认识ndarray --ndarray:用于存储单一数据类型的多维数组 ndarray基础属性的认识 import numpy as np #将numpy简写为np方便调用 1.通过以下实例来认识ar ...

  9. 攻防世界 reverse leaked-license-64

    mark一下,以后分析 原文:http://sibears.ru/labs/ASIS-CTF-Quals-2016-Leaked_License/ [ASIS CTF Quals 2016] - 泄露 ...

  10. Git - 使用命令和P4Merge进行diff

    P4Merge P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具). 下载地址: https://www.perforce.com/downloads/visual-me ...