Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

Purpose of Database Duplication

A duplicate database is useful for a variety of purposes, most of which involve testing. You can perform the following tasks in a duplicate database:

  • Test backup and recovery procedures

  • Test an upgrade to a new release of Oracle Database

  • Test the effect of applications on database performance

  • Create a standby database

  • Generate reports

Techniques for Duplicating a Database

RMAN supports two basic types of duplication: active database duplication and backup-based duplication. RMAN can perform backup-based duplication with or without either of the following connections:

  • Target

  • Recovery catalog

A connection to both is required for active database duplication.

Figure 24-1 shows the decision tree for the two duplication techniques.


Active Database Duplication

In active database duplication, RMAN connects as TARGET to the source database instance and as AUXILIARY to the auxiliary instance. RMAN copies the live source database over the network to the auxiliary instance, thereby creating the duplicate database. No backups of the source database are required. Figure 24-2 illustrates active database duplication.



     Oracle 11gRMAN duplicate 能够通过Active database duplicateBackup-based duplicate两种方法实现。本案例使用的是Active database duplicate,对于Active database duplicate来说,在克隆数据库时不用对Source备份,这对于大数据特别是T级别的数据库来说长处很明显,复制前不须要进行备份,降低了备份和传送备份的时间,同一时候节省备份空间。



    克隆数据库通常是在不同的主机上来完毕,本案例是測试环境,所以在一台主机上完毕。

1、Source 库信息
[oracle@rh64 ~]$sqlplus '/as sysdba'
SQL*Plus: Release 11.2.0.3.0 Production on Thu Mar 24 16:30:48 2016
Copyright (c) 1982, 2011, Oracle.  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
16:30:48 SYS@ prod>select status from v$instance;
STATUS
------------
OPEN16:31:12 SYS@ prod>select name from v$datafile;
NAME
------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod/system01.dbf
/u01/app/oracle/oradata/prod/sysaux01.dbf
/u01/app/oracle/oradata/prod/undotbs01.dbf
/u01/app/oracle/oradata/prod/users01.dbf
/u01/app/oracle/oradata/prod/example01.dbf
/u01/app/oracle/oradata/prod/test1.dbf
6 rows selected.16:37:41 SYS@ prod>select member from v$logfile;
MEMBER
------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/prod/redo03.log
/u01/app/oracle/oradata/prod/redo02.log
/u01/app/oracle/oradata/prod/redo01.log16:38:43 SYS@ prod>show parameter name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string
db_name                              string      prod
db_unique_name                       string      prod
global_names                         boolean     FALSE
instance_name                        string      prod
lock_name_space                      string
log_file_name_convert                string
processor_group_name                 string
service_names                        string      prod
2、构建測试库:

1)測试库文件夹环境

[root@rh64 dsk3]# cd test1/
[root@rh64 test1]# ls
oradata  logs admin

2)生成測试库pfile
[oracle@rh64 dbs]$ cat inittest1.ora 
*.audit_file_dest='/dsk3/test1/admin/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/dsk3/test1/oradata/control01.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='test1'
*.diagnostic_dest='/u01/app/oracle'
*.memory_target=319430400
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.db_file_name_convert=('/u01/app/oracle/oradata/prod/','/dsk3/test1/oradata/')        。假设源库和目标库在同一台主机,须要配置文件存储路径转换參数
*.log_file_name_convert=('/u01/app/oracle/oradata/prod/','/dsk3/test1/logs/')
3)生成口令文件
[oracle@rh64 dbs]$ cp orapwprod orapwtest1

4)启动Auxiliary Instance到no mount
16:52:01 SYS@ test1>startup nomount;
ORACLE instance started.
Total System Global Area  521936896 bytes
Fixed Size                  2229944 bytes
Variable Size             314575176 bytes
Database Buffers          201326592 bytes
Redo Buffers                3805184 bytes16:52:13 SYS@ test1>show parameter name
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert                 string      /u01/app/oracle/oradata/prod/,/dsk3/test1/oradata/
db_name                                 string      test1
db_unique_name                    string      test1
global_names                         boolean     FALSE
instance_name                        string      test1
lock_name_space                   string
log_file_name_convert            string        /u01/app/oracle/oradata/prod/,/dsk3/test1/logs/
processor_group_name           string
service_names                        string      test1
三、配置网络Listener 和 tnsname
因为Auxiliary Instance仅仅能启动到no mount状态,所以须要在listener里配置Auxiliary Instance为静态注冊。以便RMAN进行连接。
1)配置监听器
[oracle@rh64 admin]$ cat listener.ora 
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rh64)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))ADR_BASE_LISTENER = /u01/app/oracle
# 静态注冊Auxiliary Instance:test1
SID_LIST_LISTENER =

  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = test1)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = test1)
    )
  )

2)配置tnsnames
[oracle@rh64 admin]$ cat tnsnames.ora 

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.PROD =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rh64)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = prod)))TEST1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = rh64)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = test1)))
3)查看listener信息
 [oracle@rh64 admin]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 24-MAR-2016 17:44:04
Copyright (c) 1991, 2011, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=rh64)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                24-MAR-2016 17:43:17
Uptime                    0 days 0 hr. 0 min. 46 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/rh64/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rh64.cuug.cn)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "prod" has 1 instance(s).Instance "prod", status READY, has 1 handler(s) for this service...
Service "prodXDB" has 1 instance(s).Instance "prod", status READY, has 1 handler(s) for this service...
Service "test1" has 1 instance(s).Instance "test1", status UNKNOWN, has 1 handler(s) for this service...           ;;Auxiliary Instance静态注冊后,状态为“UNKNOWN"
The command completed successfully
四、配置RMAN克隆
[oracle@rh64 admin]$ rman target sys/oracle@prod auxiliary sys/oracle@test1
Recovery Manager: Release 11.2.0.3.0 - Production on Thu Mar 24 17:07:38 2016
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.
connected to target database: PROD (DBID=305104131)
connected to auxiliary database: TEST1 (not mounted)

RMAN> duplicate database to test1 from active database nofilenamecheck;
Starting Duplicate Db at 24-MAR-16
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=20 device type=DISKcontents of Memory Script:
{sql clone "create spfile from memory";
}
executing Memory Script
sql statement: create spfile from memory
contents of Memory Script:
{shutdown clone immediate;startup clone nomount;
}
executing Memory Script
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area     321507328 bytes
Fixed Size                     2228024 bytes
Variable Size                230686920 bytes
Database Buffers              83886080 bytes
Redo Buffers                   4706304 bytes
contents of Memory Script:
{sql clone "alter system set  db_name = ''PROD'' comment=''Modified by RMAN duplicate'' scope=spfile";sql clone "alter system set  db_unique_name = ''TEST1'' comment=''Modified by RMAN duplicate'' scope=spfile";shutdown clone immediate;startup clone force nomountbackup as copy current controlfile auxiliary format  '/dsk3/test1/oradata/control01.ctl';alter clone database mount;
}
executing Memory Script
sql statement: alter system set  db_name =  ''PROD'' comment= ''Modified by RMAN duplicate'' scope=spfile
sql statement: alter system set  db_unique_name =  ''TEST1'' comment= ''Modified by RMAN duplicate'' scope=spfile
Oracle instance shut down
Oracle instance started
Total System Global Area     321507328 bytes
Fixed Size                     2228024 bytes
Variable Size                230686920 bytes
Database Buffers              83886080 bytes
Redo Buffers                   4706304 bytes
Starting backup at 24-MAR-16
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=34 device type=DISK
channel ORA_DISK_1: starting datafile copy
copying current control file
output file name=/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_prod.f tag=TAG20160324T175437 RECID=3 STAMP=907350882
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
Finished backup at 24-MAR-16
database mounted
contents of Memory Script:
{set newname for datafile  1 to "/dsk3/test1/data/system01.dbf";set newname for datafile  2 to "/dsk3/test1/data/sysaux01.dbf";set newname for datafile  3 to "/dsk3/test1/data/undotbs01.dbf";set newname for datafile  4 to "/dsk3/test1/data/users01.dbf";set newname for datafile  5 to "/dsk3/test1/data/example01.dbf";set newname for datafile  6 to "/dsk3/test1/data/test1.dbf";backup as copy reusedatafile  1 auxiliary format "/dsk3/test1/data/system01.dbf"   datafile 2 auxiliary format "/dsk3/test1/data/sysaux01.dbf"   datafile 3 auxiliary format "/dsk3/test1/data/undotbs01.dbf"   datafile 4 auxiliary format "/dsk3/test1/data/users01.dbf"   datafile 5 auxiliary format "/dsk3/test1/data/example01.dbf"   datafile 6 auxiliary format "/dsk3/test1/data/test1.dbf"   ;sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting backup at 24-MAR-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/prod/system01.dbf
output file name=/dsk3/test1/oradata/system01.dbf tag=TAG20160324T180122
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:45
channel ORA_DISK_1: starting datafile copy
input datafile file number=00002 name=/u01/app/oracle/oradata/prod/sysaux01.dbf
output file name=/dsk3/test1/oradata/sysaux01.dbf tag=TAG20160324T180122
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:01:35
channel ORA_DISK_1: starting datafile copy
input datafile file number=00005 name=/u01/app/oracle/oradata/prod/example01.dbf
output file name=/dsk3/test1/oradata/example01.dbf tag=TAG20160324T180122
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:55
channel ORA_DISK_1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/prod/undotbs01.dbf
output file name=/dsk3/test1/oradata/undotbs01.dbf tag=TAG20160324T180122
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/u01/app/oracle/oradata/prod/test1.dbf
output file name=/dsk3/test1/oradata/test1.dbf tag=TAG20160324T180122
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u01/app/oracle/oradata/prod/users01.dbf
output file name=/dsk3/test1/oradata/users01.dbf tag=TAG20160324T180122
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 24-MAR-16
sql statement: alter system archive log current
contents of Memory Script:
{backup as copy reusearchivelog like  "/dsk4/arch_prod/arch_1_32_893265808.log" auxiliary format "/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_32_893265808.dbf"   ;catalog clone archivelog  "/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_32_893265808.dbf";switch clone datafile all;
}
executing Memory Script
Starting backup at 24-MAR-16
using channel ORA_DISK_1
channel ORA_DISK_1: starting archived log copy
input archived log thread=1 sequence=32 RECID=26 STAMP=907351568
output file name=/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_32_893265808.dbf RECID=0 STAMP=0
channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01
Finished backup at 24-MAR-16
cataloged archived log
archived log file name=/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_32_893265808.dbf RECID=26 STAMP=907351572
datafile 1 switched to datafile copy
input datafile copy RECID=4 STAMP=907351573 file name=/dsk3/test1/oradata/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=5 STAMP=907351573 file name=/dsk3/test1/oradata/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=6 STAMP=907351574 file name=/dsk3/test1/oradata/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=7 STAMP=907351574 file name=/dsk3/test1/oradata/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=8 STAMP=907351574 file name=/dsk3/test1/oradata/example01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=9 STAMP=907351574 file name=/dsk3/test1/oradata/test1.dbf
contents of Memory Script:
{set until scn  1471172;recoverclone databasedelete archivelog;
}
executing Memory Script
executing command: SET until clause
Starting recover at 24-MAR-16
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: SID=18 device type=DISK
starting media recovery
archived log for thread 1 with sequence 32 is already on disk as file /u01/app/oracle/product/11.2.0/db_1/dbs/arch1_32_893265808.dbf
archived log file name=/u01/app/oracle/product/11.2.0/db_1/dbs/arch1_32_893265808.dbf thread=1 sequence=32
media recovery complete, elapsed time: 00:00:05
Finished recover at 24-MAR-16
Oracle instance started
Total System Global Area     321507328 bytes
Fixed Size                     2228024 bytes
Variable Size                234881224 bytes
Database Buffers              79691776 bytes
Redo Buffers                   4706304 bytes
contents of Memory Script:
{sql clone "alter system set  db_name = ''TEST1'' comment=''Reset to original value by RMAN'' scope=spfile";sql clone "alter system reset  db_unique_name scope=spfile";shutdown clone immediate;startup clone nomount;
}
executing Memory Script
sql statement: alter system set  db_name =  ''TEST1'' comment= ''Reset to original value by RMAN'' scope=spfile
sql statement: alter system reset  db_unique_name scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area     321507328 bytes
Fixed Size                     2228024 bytes
Variable Size                234881224 bytes
Database Buffers              79691776 bytes
Redo Buffers                   4706304 bytes
sql statement: CREATE CONTROLFILE REUSE SET DATABASE "TEST1" RESETLOGS ARCHIVELOG MAXLOGFILES     16MAXLOGMEMBERS      3MAXDATAFILES      100MAXINSTANCES     8MAXLOGHISTORY      292LOGFILEGROUP   1 ( '/dsk3/test1/logs/''redo01.log' ) SIZE 50 M  REUSE,GROUP   2 ( '/dsk3/test1/logs/''redo02.log' ) SIZE 50 M  REUSE,GROUP   3 ( '/dsk3/test1/logs/''redo03.log' ) SIZE 50 M  REUSEDATAFILE'/dsk3/test1/oradata/system01.dbf'CHARACTER SET ZHS16GBKcontents of Memory Script:
{set newname for tempfile  1 to "/dsk3/test1/oradata/temp01.dbf";switch clone tempfile all;catalog clone datafilecopy  "/dsk3/test1/oradata/sysaux01.dbf", "/dsk3/test1/oradata/undotbs01.dbf", "/dsk3/test1/oradata/users01.dbf", "/dsk3/test1/oradata/example01.dbf", "/dsk3/test1/oradata/test1.dbf";switch clone datafile all;
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /dsk3/test1/oradata/temp01.dbf in control file
cataloged datafile copy
datafile copy file name=/dsk3/test1/oradata/sysaux01.dbf RECID=1 STAMP=907351727
cataloged datafile copy
datafile copy file name=/dsk3/test1/oradata/undotbs01.dbf RECID=2 STAMP=907351728
cataloged datafile copy
datafile copy file name=/dsk3/test1/oradata/users01.dbf RECID=3 STAMP=907351728
cataloged datafile copy
datafile copy file name=/dsk3/test1/oradata/example01.dbf RECID=4 STAMP=907351728
cataloged datafile copy
datafile copy file name=/dsk3/test1/oradata/test1.dbf RECID=5 STAMP=907351729
datafile 2 switched to datafile copy
input datafile copy RECID=1 STAMP=907351727 file name=/dsk3/test1/oradata/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=2 STAMP=907351728 file name=/dsk3/test1/oradata/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=3 STAMP=907351728 file name=/dsk3/test1/oradata/users01.dbf
datafile 5 switched to datafile copy
input datafile copy RECID=4 STAMP=907351728 file name=/dsk3/test1/oradata/example01.dbf
datafile 6 switched to datafile copy
input datafile copy RECID=5 STAMP=907351729 file name=/dsk3/test1/oradata/test1.dbf
Reenabling controlfile options for auxiliary database
Executing: alter database enable block change tracking using file '/dsk4/backup/block.trc'
ORACLE error from auxiliary database: ORA-19751: could not create the change tracking file
ORA-19750: change tracking file: '/dsk4/backup/block.trc'
ORA-27038: created file already exists
Additional information: 1
Ignoring error, reattempt command after duplicate finishes
contents of Memory Script:
{Alter clone database open resetlogs;
}
executing Memory Script
database opened
Finished Duplicate Db at 24-MAR-16

五、验证克隆
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 options18:28:57 SYS@ test1>select status from v$instance;
STATUS
------------
OPEN18:29:06 SYS@ test1>select name from v$datafile;
NAME
------------------------------------------------------------------------------------------------------------------------
/dsk3/test1/oradata/system01.dbf
/dsk3/test1/oradata/sysaux01.dbf
/dsk3/test1/oradata/undotbs01.dbf
/dsk3/test1/oradata/users01.dbf
/dsk3/test1/oradata/example01.dbf
/dsk3/test1/oradata/test1.dbf
6 rows selected.18:29:13 SYS@ test1>select member from v$logfile;
MEMBER
------------------------------------------------------------------------------------------------------------------------
/dsk3/test1/logs/redo03.log
/dsk3/test1/logs/redo02.log
/dsk3/test1/logs/redo01.log18:30:19 SYS@ test1>show parameter controlNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /dsk3/test1/oradata/control01.ctl  <span style="font-family: 宋体, Arial; background-color: rgb(255, 255, 255);">       </span>

-------- 至此。数据库克隆成功 。                                     

转载于:https://www.cnblogs.com/lytwajue/p/7123206.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机录音ogg格式怎么转换mp3

Ogg这种音频格式刚出来的时候大家是非常热爱的&#xff0c;但是随着时代的发展&#xff0c;这种音频格式已经已经被取代了&#xff0c;现在呢走在音频格式前端的是MP3格式&#xff0c;这是大家都比较熟悉的&#xff0c;但是我们还是会经常下载到ogg这种格式的音频&#xff0c;就…

[机器学习] 推荐系统之协同过滤算法(转)

[机器学习]推荐系统之协同过滤算法 在现今的推荐技术和算法中&#xff0c;最被大家广泛认可和采用的就是基于协同过滤的推荐方法。本文将带你深入了解协同过滤的秘密。下面直接进入正题. 1. 什么是推荐算法 推荐算法最早在1992年就提出来了&#xff0c;但是火起来实际上是最近这…

BundleFusion代码框架讲解

背景&#xff1a;前面用了几篇文章来记录和总结了&#xff0c;我在研究bundlefusion过程中遇到的一些问题以及解决方法&#xff0c;本来想实现给bundlefusion输入先验轨迹&#xff0c;然后让其根据给定的轨迹进行重建&#xff0c;这样即便在环境比较恶劣的情况下&#xff0c;也…

BundlePhobia

1、BundlePhobia用于分析npm package的依赖、bundle后的大小、下载速度预估等等&#xff0c;帮助你在引用一个package之前了解引入该package的代价。 2、也可以将项目的package.json文件上传&#xff0c;BundlePhobia会帮你评估项目中所有包的大小和加载速度。

VFL演示样例

VFL演示样例 上篇文章向大家介绍了VFL的基本的语法点&#xff0c;假设对下面演示样例不熟的童鞋&#xff0c;能够前去參考。废话不多说。我们直接来看演示样例。演示样例一 将五个大小同样、颜色不同的view排成一行&#xff0c;view间的间隔为15px,第一个view的间隔与屏幕的左边…

ubuntu16.04 + ros-kinetic 配置cartographer

其实一直以来都感觉纯视觉SLAM很难落地产品&#xff0c;所以一直在找机会学习激光slam,之前也在深蓝学院上买了一个激光salm的课程&#xff0c;惭愧&#xff0c;至今也没开始学呢&#xff0c;年底之前&#xff0c;我想工作之余研究一下激光slam和ros&#xff0c;我感觉这两个东…

virtualbox中安装ubuntu

为什么80%的码农都做不了架构师&#xff1f;>>> virtualboxubuntu 安装virtualbox&#xff0c;当前版本是6.0.4下载ubuntu安装盘&#xff0c;建议lubuntu&#xff0c;链接是http://mirrors.ustc.edu.cn/ubuntu-cdimage/lubuntu/releases/18.04.2/release/lubuntu-1…

面向对象重写(override)与重载(overload)区别

一、重写&#xff08;override&#xff09; override是重写&#xff08;覆盖&#xff09;了一个方法&#xff0c;以实现不同的功能。一般是用于子类在继承父类时&#xff0c;重写&#xff08;重新实现&#xff09;父类中的方法。 重写&#xff08;覆盖&#xff09;的规则&#…

cartographer学习笔记--如何保存cartagrapher_ros建好的地图

今天开始跟着网友大佬学习cartographer. 1. 如何保存cartographer的地图数据 在运行cartographer过程中可以随时保存建好的地图&#xff0c;步骤如下&#xff1a; 首先是重新打开一个terminal, 如果你没有将你的cartographer_ros下的setup.bash文件写入到.bashrc中&#xff…

Java微信公众号开发(五)—— SVN版本控制工具

1 作用 两个疑问&#xff1a; 什么是版本控制&#xff1f;为什么要用版本控制工具&#xff1f;作用&#xff1a; 受保护受约束合作开发中&#xff0c;版本控制工具更重要的作用就是让开发者更好地协作&#xff0c;每个人的代码既能互相调用&#xff0c;来共同完成一个较大的功…

Linux之《荒岛余生》(二)CPU篇

为什么80%的码农都做不了架构师&#xff1f;>>> 温馨提示&#xff0c;动图已压缩&#xff0c;流量党放心查看。CPU方面内容不多&#xff0c;我们顺便学点命令。本篇是《荒岛余生》系列第二篇&#xff0c;垂直观测CPU。其余参见&#xff1a; Linux之《荒岛余生》&am…

Ubuntu16.04上安装kitti2bag

kitti2bag是一个可以将kitti数据集转换为bag文件的工具&#xff0c;可以直接通过pip进行安装。由于kitti2bag中使用到ros&#xff0c;所以安装时你使用的python版本应该是2.7的因为ros只有在Python2.7时才能正常工作。比如说我&#xff0c;我安装了conda&#xff0c;在conda中安…

UICollectionView 具体解说学习

UICollectionView 和UITableView非常像,是APPLE公司在iOS 6后推出的用于处理图片这类UITableView 布局困难的控件,和UITableView 一样,它也有自己的Datasource和delegate。以下具体说下像这种方式的效果. 首先来看看UICollectionView 的DataSource。protocol UICollectionView…

ServiceNow 中关于UI Action 在portal端的使用

在 portal端是可以使用Form和UI Action的&#xff0c;例如&#xff1a;var data.f $sp.getForm()&#xff1b;//需要添加上相应参数在开箱组件Form的Server script中就有如下代码&#xff1a;data.f $sp.getForm(data.table, data.sys_id, data.query, data.view);data.f对象中…

系统安全题目(二)

1、在 php mysql apache 架构的web服务中输入GET参数 index.php?a1&a2&a3 服务器端脚本 index.php 中$GET[a] 的值是&#xff1f;正确答案: C A 1B 2C 3D 1,2,3 2、以下哪些不是CSRF漏洞的防御方案&#xff1f;正确答案: D A 检测HTTPrefererB 使用随机tokenC 使用验…

ceres-solver学习笔记

前一段时间总有一个想法&#xff0c;那就是&#xff0c;我只直到视觉slam是远远不够的&#xff0c;激光slam仍然是一个比较稳妥的技术&#xff0c;好落地&#xff0c;应用广泛&#xff0c;我想着&#xff0c;如果我学会了会大大增加自己的核心竞争力&#xff0c;所以我抽时间开…

几款常见的视频格式转换器

在短视频占半壁江山的时候&#xff0c;关于体积、格式等成了困扰人们的因素&#xff0c;视频太大不利于传播&#xff0c;比如微信里就限制了传输的大小不得超过20M&#xff0c;所以其实说起来工作上QQ的性能远超微信。今天这里小编给大家总结几款常用的视频转换器&#xff0c;希…

egg(110,111,112)--egg之微信支付

微信支付前的准备工作 准备工作 准备工作&#xff1a;个体工商户、企业、政府及事业单位。需要获取内容 appid&#xff1a;应用 APPID&#xff08;必须配置&#xff0c;开户邮件中可查看&#xff09;MCHID&#xff1a;微信支付商户号&#xff08;必须配置&#xff0c;开户邮件中…

旋转三维平面与某一坐标平面平行

在上一篇文章&#xff08;https://blog.csdn.net/weixin_38636815/article/details/109495227&#xff09;中我写了如何使用ceres&#xff0c;根据一系列的点来拟合一个平面&#xff0c;很难保证ORB-SLAM输出的轨迹严格与某一个坐标平面平行&#xff0c;所以这篇文章我我将说一…

windows下配置opencv

我的windows下是使用的一个镜像安装的vs2015&#xff0c;然后在vs上编译工程需要使用opencv时&#xff0c;需要在工程中配置opencv 新建一个C工程&#xff0c;按照下面的步骤进行配置。 设置opencv的环境变量 “此电脑”右键点击“属性”-->选择“高级系统设置”-->选…