使用duplicate target database ... from active database复制数据库

source db:ora11
auxiliary db:dupdb

1.修改监听文件,静态注册监听

  1. SID_LIST_ORA11 =
  2. (SID_LIST =
  3. (SID_DESC =
  4. (GLOBAL_DBNAME = ora11)
  5. (ORACLE_HOME = /u11/app/oracle/product/11.2./dbhome_1)
  6. (SID_NAME =ora11)
  7. )
  8. (SID_DESC =
  9. (GLOBAL_DBNAME = dupdb)
  10. (ORACLE_HOME = /u11/app/oracle/product/11.2./dbhome_1)
  11. (SID_NAME =dupdb)
  12. )
  13. )

2.修改tnsnames.ora文件

  1. ORA11 =
  2. (DESCRIPTION =
  3. (ADDRESS_LIST =
  4. (ADDRESS = (PROTOCOL = TCP)(HOST = mytest)(PORT = ))
  5. )
  6. (CONNECT_DATA =
  7. (SERVER = DEDICATED)
  8. (SERVICE_NAME = ora11)
  9. )
  10. )
  11.  
  12. DUPDB =
  13. (DESCRIPTION =
  14. (ADDRESS_LIST =
  15. (ADDRESS = (PROTOCOL = TCP)(HOST = mytest)(PORT = ))
  16. )
  17. (CONNECT_DATA =
  18. (SERVER = DEDICATED)
  19. (SERVICE_NAME = dupdb)
  20. )
  21. )

3.为duplicate 数据库创建参数文件initdupdb.ora

  1. db_name=dupdb

4.创建口令文件

  1. $ orapwd password=<sys_pwd> file=orapwtest1 entries=

5.启动auxiliary 库

  1. $ sqlplus /nolog
  2.  
  3. SQL*Plus: Release 11.2.0.1. Production on Fri Jun ::
  4.  
  5. Copyright (c) , , Oracle. All rights reserved.
  6.  
  7. SQL> conn /as sysdba
  8. Connected to an idle instance.
  9. SQL> startup nomount pfile='/u11/app/oracle/product/11.2.0/dbhome_1/dbs/initdupdb.ora';
  10. ORACLE instance started.
  11.  
  12. Total System Global Area bytes
  13. Fixed Size bytes
  14. Variable Size bytes
  15. Database Buffers bytes
  16. Redo Buffers bytes
  17. SQL>

6.启动rman

  1. $ rman
  2.  
  3. Recovery Manager: Release 11.2.0.1. - Production on Fri Jun ::
  4.  
  5. Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
  6.  
  7. RMAN> connect target sys/oracle@ora11
  8.  
  9. connected to target database: ORA11 (DBID=)
  10.  
  11. RMAN> connect auxiliary /
  12.  
  13. connected to auxiliary database: DUPDB (not mounted)
  14.  
  15. RMAN>

7.执行duplicate target database ... from active database 命令开始duplicate操作

  1. RMAN> duplicate target database to dupdb from active database
  2. > spfile
  3. > parameter_value_convert='/u11/app/oracle/oradata/ora11','/u11/app/oracle/oradata/dupdb'
  4. > set
  5. > log_file_name_convert='/u11/app/oracle/oradata/ora11','/u11/app/oracle/oradata/dupdb'
  6. > db_file_name_convert='/u11/app/oracle/oradata/ora11','/u11/app/oracle/oradata/dupdb';
  7.  
  8. Starting Duplicate Db at -JUN- ::
  9. using target database control file instead of recovery catalog
  10. allocated channel: ORA_AUX_DISK_1
  11. channel ORA_AUX_DISK_1: SID= device type=DISK
  12.  
  13. contents of Memory Script:
  14. {
  15. backup as copy reuse
  16. targetfile '/u11/app/oracle/product/11.2.0/dbhome_1/dbs/spfileora11.ora' auxiliary format
  17. '/u11/app/oracle/product/11.2.0/dbhome_1/dbs/spfiledupdb.ora' ;
  18. sql clone "alter system set spfile= ''/u11/app/oracle/product/11.2.0/dbhome_1/dbs/spfiledupdb.ora''";
  19. }
  20. executing Memory Script
  21.  
  22. Starting backup at -JUN- ::
  23. allocated channel: ORA_DISK_1
  24. channel ORA_DISK_1: SID= device type=DISK
  25. Finished backup at -JUN- ::
  26.  
  27. sql statement: alter system set spfile= ''/u11/app/oracle/product/11.2./dbhome_1/dbs/spfiledupdb.ora''
  28.  
  29. contents of Memory Script:
  30. {
  31. sql clone "alter system set db_name =
  32. ''DUPDB'' comment=
  33. ''duplicate'' scope=spfile";
  34. sql clone "alter system set control_files =
  35. ''/u11/app/oracle/oradata/dupdb/control01.ctl'', ''/u11/app/oracle/oradata/dupdb/control02.ctl'' comment=
  36. '''' scope=spfile";
  37. sql clone "alter system set log_file_name_convert =
  38. ''/u11/app/oracle/oradata/ora11'', ''/u11/app/oracle/oradata/dupdb'' comment=
  39. '''' scope=spfile";
  40. shutdown clone immediate;
  41. startup clone nomount;
  42. }
  43. executing Memory Script
  44.  
  45. sql statement: alter system set db_name = ''DUPDB'' comment= ''duplicate'' scope=spfile
  46.  
  47. sql statement: alter system set control_files = ''/u11/app/oracle/oradata/dupdb/control01.ctl'', ''/u11/app/oracle/oradata/dupdb/control02.ctl'' comment= '''' scope=spfile
  48.  
  49. sql statement: alter system set log_file_name_convert = ''/u11/app/oracle/oradata/ora11'', ''/u11/app/oracle/oradata/dupdb'' comment= '''' scope=spfile
  50.  
  51. Oracle instance shut down
  52.  
  53. connected to auxiliary database (not started)
  54. Oracle instance started
  55.  
  56. Total System Global Area bytes
  57.  
  58. Fixed Size bytes
  59. Variable Size bytes
  60. Database Buffers bytes
  61. Redo Buffers bytes
  62.  
  63. contents of Memory Script:
  64. {
  65. sql clone "alter system set db_name =
  66. ''ORA11'' comment=
  67. ''Modified by RMAN duplicate'' scope=spfile";
  68. sql clone "alter system set db_unique_name =
  69. ''DUPDB'' comment=
  70. ''Modified by RMAN duplicate'' scope=spfile";
  71. shutdown clone immediate;
  72. startup clone force nomount
  73. backup as copy current controlfile auxiliary format '/u11/app/oracle/oradata/dupdb/control01.ctl';
  74. restore clone controlfile to '/u11/app/oracle/oradata/dupdb/control02.ctl' from
  75. '/u11/app/oracle/oradata/dupdb/control01.ctl';
  76. alter clone database mount;
  77. }
  78. executing Memory Script
  79.  
  80. sql statement: alter system set db_name = ''ORA11'' comment= ''Modified by RMAN duplicate'' scope=spfile
  81.  
  82. sql statement: alter system set db_unique_name = ''DUPDB'' comment= ''Modified by RMAN duplicate'' scope=spfile
  83.  
  84. Oracle instance shut down
  85.  
  86. Oracle instance started
  87.  
  88. Total System Global Area bytes
  89.  
  90. Fixed Size bytes
  91. Variable Size bytes
  92. Database Buffers bytes
  93. Redo Buffers bytes
  94.  
  95. Starting backup at -JUN- ::
  96. using channel ORA_DISK_1
  97. channel ORA_DISK_1: starting datafile copy
  98. copying current control file
  99. output file name=/u11/app/oracle/product/11.2./dbhome_1/dbs/snapcf_ora11.f tag=TAG20150626T141645 RECID= STAMP=
  100. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  101. Finished backup at -JUN- ::
  102.  
  103. Starting restore at -JUN- ::
  104. allocated channel: ORA_AUX_DISK_1
  105. channel ORA_AUX_DISK_1: SID= device type=DISK
  106.  
  107. channel ORA_AUX_DISK_1: copied control file copy
  108. Finished restore at -JUN- ::
  109.  
  110. database mounted
  111.  
  112. contents of Memory Script:
  113. {
  114. set newname for datafile to
  115. "/u11/app/oracle/oradata/dupdb/system01.dbf";
  116. set newname for datafile to
  117. "/u11/app/oracle/oradata/dupdb/sysaux01.dbf";
  118. set newname for datafile to
  119. "/u11/app/oracle/oradata/dupdb/yb01.dbf";
  120. set newname for datafile to
  121. "/u11/app/oracle/oradata/dupdb/users01.dbf";
  122. set newname for datafile to
  123. "/u11/app/oracle/oradata/dupdb/example01.dbf";
  124. set newname for datafile to
  125. "/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf";
  126. backup as copy reuse
  127. datafile auxiliary format
  128. "/u11/app/oracle/oradata/dupdb/system01.dbf" datafile
  129. auxiliary format
  130. "/u11/app/oracle/oradata/dupdb/sysaux01.dbf" datafile
  131. auxiliary format
  132. "/u11/app/oracle/oradata/dupdb/yb01.dbf" datafile
  133. auxiliary format
  134. "/u11/app/oracle/oradata/dupdb/users01.dbf" datafile
  135. auxiliary format
  136. "/u11/app/oracle/oradata/dupdb/example01.dbf" datafile
  137. auxiliary format
  138. "/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf" ;
  139. sql 'alter system archive log current';
  140. }
  141. executing Memory Script
  142.  
  143. executing command: SET NEWNAME
  144.  
  145. executing command: SET NEWNAME
  146.  
  147. executing command: SET NEWNAME
  148.  
  149. executing command: SET NEWNAME
  150.  
  151. executing command: SET NEWNAME
  152.  
  153. executing command: SET NEWNAME
  154.  
  155. Starting backup at -JUN- ::
  156. using channel ORA_DISK_1
  157. channel ORA_DISK_1: starting datafile copy
  158. input datafile file number= name=/u11/app/oracle/oradata/ora11/system01.dbf
  159. output file name=/u11/app/oracle/oradata/dupdb/system01.dbf tag=TAG20150626T141655
  160. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  161. channel ORA_DISK_1: starting datafile copy
  162. input datafile file number= name=/u11/app/oracle/oradata/ora11/sysaux01.dbf
  163. output file name=/u11/app/oracle/oradata/dupdb/sysaux01.dbf tag=TAG20150626T141655
  164. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  165. channel ORA_DISK_1: starting datafile copy
  166. input datafile file number= name=/u11/app/oracle/oradata/ora11/example01.dbf
  167. output file name=/u11/app/oracle/oradata/dupdb/example01.dbf tag=TAG20150626T141655
  168. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  169. channel ORA_DISK_1: starting datafile copy
  170. input datafile file number= name=/u11/app/oracle/oradata/ora11/UNDOTBS02.dbf
  171. output file name=/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf tag=TAG20150626T141655
  172. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  173. channel ORA_DISK_1: starting datafile copy
  174. input datafile file number= name=/u11/app/oracle/oradata/ora11/yb01.dbf
  175. output file name=/u11/app/oracle/oradata/dupdb/yb01.dbf tag=TAG20150626T141655
  176. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  177. channel ORA_DISK_1: starting datafile copy
  178. input datafile file number= name=/u11/app/oracle/oradata/ora11/users01.dbf
  179. output file name=/u11/app/oracle/oradata/dupdb/users01.dbf tag=TAG20150626T141655
  180. channel ORA_DISK_1: datafile copy complete, elapsed time: ::
  181. Finished backup at -JUN- ::
  182.  
  183. sql statement: alter system archive log current
  184.  
  185. contents of Memory Script:
  186. {
  187. backup as copy reuse
  188. archivelog like "/u11/app/oracle/fra/ORA11/archivelog/2015_06_26/o1_mf_1_98_brsvojfz_.arc" auxiliary format
  189. "/u11/app/oracle/fra/DUPDB/archivelog/2015_06_26/o1_mf_1_98_%u_.arc" ;
  190. catalog clone recovery area;
  191. switch clone datafile all;
  192. }
  193. executing Memory Script
  194.  
  195. Starting backup at -JUN- ::
  196. using channel ORA_DISK_1
  197. channel ORA_DISK_1: starting archived log copy
  198. input archived log thread= sequence= RECID= STAMP=
  199. output file name=/u11/app/oracle/fra/DUPDB/archivelog/2015_06_26/o1_mf_1_98_4mqafc9h_.arc RECID= STAMP=
  200. channel ORA_DISK_1: archived log copy complete, elapsed time: ::
  201. Finished backup at -JUN- ::
  202.  
  203. searching for all files in the recovery area
  204.  
  205. List of Files Unknown to the Database
  206. =====================================
  207. File Name: /u11/app/oracle/fra/DUPDB/archivelog/2015_06_26/o1_mf_1_98_4mqafc9h_.arc
  208. cataloging files...
  209. cataloging done
  210.  
  211. List of Cataloged Files
  212. =======================
  213. File Name: /u11/app/oracle/fra/DUPDB/archivelog/2015_06_26/o1_mf_1_98_4mqafc9h_.arc
  214.  
  215. datafile switched to datafile copy
  216. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/system01.dbf
  217. datafile switched to datafile copy
  218. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/sysaux01.dbf
  219. datafile switched to datafile copy
  220. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/yb01.dbf
  221. datafile switched to datafile copy
  222. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/users01.dbf
  223. datafile switched to datafile copy
  224. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/example01.dbf
  225. datafile switched to datafile copy
  226. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf
  227.  
  228. contents of Memory Script:
  229. {
  230. set until scn ;
  231. recover
  232. clone database
  233. delete archivelog
  234. ;
  235. }
  236. executing Memory Script
  237.  
  238. executing command: SET until clause
  239.  
  240. Starting recover at -JUN- ::
  241. using channel ORA_AUX_DISK_1
  242.  
  243. starting media recovery
  244.  
  245. archived log for thread with sequence is already on disk as file /u11/app/oracle/fra/DUPDB/archivelog/2015_06_26/o1_mf_1_98_4mqafc9h_.arc
  246. archived log file name=/u11/app/oracle/fra/DUPDB/archivelog/2015_06_26/o1_mf_1_98_4mqafc9h_.arc thread= sequence=
  247. media recovery complete, elapsed time: ::
  248. Finished recover at -JUN- ::
  249.  
  250. contents of Memory Script:
  251. {
  252. shutdown clone immediate;
  253. startup clone nomount;
  254. sql clone "alter system set db_name =
  255. ''DUPDB'' comment=
  256. ''Reset to original value by RMAN'' scope=spfile";
  257. sql clone "alter system reset db_unique_name scope=spfile";
  258. shutdown clone immediate;
  259. startup clone nomount;
  260. }
  261. executing Memory Script
  262.  
  263. database dismounted
  264. Oracle instance shut down
  265.  
  266. connected to auxiliary database (not started)
  267. Oracle instance started
  268.  
  269. Total System Global Area bytes
  270.  
  271. Fixed Size bytes
  272. Variable Size bytes
  273. Database Buffers bytes
  274. Redo Buffers bytes
  275.  
  276. sql statement: alter system set db_name = ''DUPDB'' comment= ''Reset to original value by RMAN'' scope=spfile
  277.  
  278. sql statement: alter system reset db_unique_name scope=spfile
  279.  
  280. Oracle instance shut down
  281.  
  282. connected to auxiliary database (not started)
  283. Oracle instance started
  284.  
  285. Total System Global Area bytes
  286.  
  287. Fixed Size bytes
  288. Variable Size bytes
  289. Database Buffers bytes
  290. Redo Buffers bytes
  291. sql statement: CREATE CONTROLFILE REUSE SET DATABASE "DUPDB" RESETLOGS ARCHIVELOG
  292. MAXLOGFILES
  293. MAXLOGMEMBERS
  294. MAXDATAFILES
  295. MAXINSTANCES
  296. MAXLOGHISTORY
  297. LOGFILE
  298. GROUP ( '/u11/app/oracle/oradata/dupdb/redo01.log', '/u11/app/oracle/oradata/dupdb/redo01b.log' ) SIZE M REUSE,
  299. GROUP ( '/u11/app/oracle/oradata/dupdb/redo02b.log', '/u11/app/oracle/oradata/dupdb/redo02.log' ) SIZE M REUSE,
  300. GROUP ( '/u11/app/oracle/oradata/dupdb/redo03b.log', '/u11/app/oracle/oradata/dupdb/redo03.log' ) SIZE M REUSE
  301. DATAFILE
  302. '/u11/app/oracle/oradata/dupdb/system01.dbf'
  303. CHARACTER SET AL32UTF8
  304.  
  305. contents of Memory Script:
  306. {
  307. set newname for tempfile to
  308. "/u11/app/oracle/oradata/dupdb/temp01.dbf";
  309. switch clone tempfile all;
  310. catalog clone datafilecopy "/u11/app/oracle/oradata/dupdb/sysaux01.dbf",
  311. "/u11/app/oracle/oradata/dupdb/yb01.dbf",
  312. "/u11/app/oracle/oradata/dupdb/users01.dbf",
  313. "/u11/app/oracle/oradata/dupdb/example01.dbf",
  314. "/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf";
  315. switch clone datafile all;
  316. }
  317. executing Memory Script
  318.  
  319. executing command: SET NEWNAME
  320.  
  321. renamed tempfile to /u11/app/oracle/oradata/dupdb/temp01.dbf in control file
  322.  
  323. cataloged datafile copy
  324. datafile copy file name=/u11/app/oracle/oradata/dupdb/sysaux01.dbf RECID= STAMP=
  325. cataloged datafile copy
  326. datafile copy file name=/u11/app/oracle/oradata/dupdb/yb01.dbf RECID= STAMP=
  327. cataloged datafile copy
  328. datafile copy file name=/u11/app/oracle/oradata/dupdb/users01.dbf RECID= STAMP=
  329. cataloged datafile copy
  330. datafile copy file name=/u11/app/oracle/oradata/dupdb/example01.dbf RECID= STAMP=
  331. cataloged datafile copy
  332. datafile copy file name=/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf RECID= STAMP=
  333.  
  334. datafile switched to datafile copy
  335. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/sysaux01.dbf
  336. datafile switched to datafile copy
  337. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/yb01.dbf
  338. datafile switched to datafile copy
  339. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/users01.dbf
  340. datafile switched to datafile copy
  341. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/example01.dbf
  342. datafile switched to datafile copy
  343. input datafile copy RECID= STAMP= file name=/u11/app/oracle/oradata/dupdb/UNDOTBS02.dbf
  344.  
  345. contents of Memory Script:
  346. {
  347. Alter clone database open resetlogs;
  348. }
  349. executing Memory Script
  350.  
  351. database opened
  352. Finished Duplicate Db at -JUN- ::
  353.  
  354. RMAN>

完成!

"active database duplication"过程完成的操作:
·数据文件从source库被copy到duplicate库
·重建控制文件;如果是standby库,控制文件会从source库拷贝到standby
·根据参数db_create_file_dest设置,重建temp文件
·重建online redo log
·根据需要,拷贝归档日志文件
·如果只是指定了spfile,会拷贝spfile文件
·standby库需要拷贝口令文件;如果只是duplicate库,看duplicate database命令是否指定
·快速闪回区不会被copy,闪回日志文件、口令文件和块改变跟踪文件不会被创建

使用duplicate target database ... from active database复制数据库的更多相关文章

  1. Oracle Database 12c Using duplicate standby database from active database Created Active DataGuard

    primary database db_name=zwc, db_unique_name=zwc standby database db_name=zwc, db_unique_name=standb ...

  2. RMAN duplicate from active database

    在Oracle 11G有二种方法实现duplicate: 1.Active database duplication 2.Backup-based duplication Active databas ...

  3. 使用RMAN DUPLICATE...FROM ACTIVE DATABASE创建物理standby database

    Applies to: Oracle Server - Enterprise Edition - Version 11.1.0.6 to 11.2.0.4 [Release 11.1 to 11.2] ...

  4. Duplicate 复制数据库 搭建Dataguard

    1 操作系统环境 此处隐藏具体信息 System IP-address db_name db_version Comment         Target DB         Auxiliary D ...

  5. Oracle 11gR2 使用RMAN Duplicate复制数据库

    Oracle 11gR2 使用RMAN Duplicate复制数据库     前言:     上周刚做完一个项目,用户要求RAC的数据库可以自己主动备份到另外一个单节点上,单节点可以正常拿起来就能用. ...

  6. Oracle DB 复制数据库

    • 列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库 使用副本数据库 • 使用副本数据库可执行以 ...

  7. oracle RMAN复制数据库

    列出创建副本数据库的目的 • 选择用于复制数据库的方法 • 使用RMAN 复制数据库 • 使用RMAN 备份复制数据库 • 基于正在运行的实例复制数据库   使用副本数据库 • 使用副本数据库可执行以 ...

  8. Creating Physical Standby Using RMAN DUPLICATE...FROM ACTIVE DATABASE执行结果

    > run { > allocate channel prmy1 type disk; > allocate channel prmy2 type disk; > alloca ...

  9. RMAN 'Duplicate From Active Database' Feature in Oracle11g (Doc ID 452868.1)

    RMAN 'Duplicate From Active Database' Feature in Oracle11g (Doc ID 452868.1) APPLIES TO: Oracle Data ...

随机推荐

  1. HTTP 笔记与总结(9)分块传输、持久链接 与 反向 ajax(comet / server push / 服务器推技术)

    反向 ajax 又叫 comet / server push / 服务器推技术 应用范围:网页聊天服务器,例如新浪微博在线聊天.google mail 网页聊天 原理:一般而言,HTTP 协议的特点是 ...

  2. PHP文件操作 之统计目录大小

    <?php //定义一个函数 统计目录大小函数 function dirSize($dirName) { //判断目录是否存在 if (!file_exists($dirName)) { die ...

  3. 20145317彭垚 java课程总结

    课程总结 每周读书笔记链接汇总 第一周http://www.cnblogs.com/5317p/p/5248481.html 第二周http://www.cnblogs.com/5317p/p/527 ...

  4. Programs vs. processes

    Computer Systems A Programmer's Perspective Second Edition This is a good place to pause and make su ...

  5. android studio 编程中用到的快捷键

    1.Ctrl+Alt+T可以把代码包在一块内,例如try/catch Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:0000000111 EndF ...

  6. Spring配置文件的读取

    1.配置文件的命名 Spring框架中的默认配置文件,建议命名为applicationContext.xml * 编写配置文件,默认位置有两个 ①src目录.②WEB-INF目录 2.Spring 配 ...

  7. ucenter小结

    经历了一天的折腾,大概搞清楚的ucenter接入应用的方法.总结如下: 一.下载安装ucenter.这个很简单. 二.然后就是接入应用. 1.先在你项目的根目录copy一份uc_client文件夹. ...

  8. 【转】Unity3D开发之Http协议网络通信

    之前unity3d项目要做跟服务器通信的模块,然后服务器那边的协议是基于http的Jsonrpc通信方式一开始,用C#的本身类HttpWebRequest来提交请求,很快就在电脑上面成功了,代码也很简 ...

  9. 【git】删除某个文件的所有历史记录,批量删除远程分支

    删除git某个文件的所有历史记录 git的目的就是版本控制,记录每一个版本的变动.然而有的时候我们往往希望从版本库中彻底删除某个文件,不再显示在历史记录中.例如不小心上传了一堆错误的文件,或者不小心上 ...

  10. 《黑客大曝光》实践部分——sql注入(7/8)

    SQL注入实践 由于<黑客大曝光>中涉及到形形色色的攻击方式,从软件到硬件,甚至还有物理锁的开锁教程,当中的很多教程很有趣,但是我没有相关的环境,实践起来不好操作,比如说,查点扫描我还可以 ...