在两机器间克隆数据库的两种方法数据库教程

时间:2024年04月16日

/

来源:e族青年

/

编辑:本站小编

收藏本文

下载本文

以下是小编整理的在两机器间克隆数据库的两种方法数据库教程,本文共5篇,欢迎阅读分享,希望对您有所帮助。本文原稿由网友“e族青年”提供。

篇1:在两机器间克隆数据库的两种方法数据库教程

数据|数据库

关于克隆数据库的方法,最近一直在研究,偶尔在cnoug上闲逛,发现了两篇帖子不错,现作为以后工作中的参考:

方法一:

如何使用RMAN在两机器间克隆数据库

原文摘自:www.cnoug.org

关键字:目标、目录、克隆、日志、

目标数据库和克隆数据库分别在两台机器,其环境都一样:

WINDOWS SERVER SP4、IE6.1, ORACLE9205

在本文中,使用的是目标数据库上的RMAN,目录数据库在第3台机器上,

操作步骤:

1、连接目标数据库,对目标数据库做全库备份

D:\\ORACLE\\BIN>rman

恢复管理器: 版本9.2.0.5.0 - Production

Copyright (c) 1995, , Oracle Corporation. All rights reserved.

RMAN>connect catalog rman/rman@187

连接到恢复目录数据库

RMAN>connect target /

连接到目标数据库: ENCORE (DBID=3146513770)

RMAN>run

2>{allocate channel d1 type disk maxpiecesize = 500m;

3>backup full database

4>format 'E:\\rmanbak\\db_%d_%s_%p_%t';

5>release channel d1;

6>}

分配的通道: d1

通道 d1: sid=16 devtype=DISK

启动 backup 于 -06-28 21:03:31

通道 d1: 正在启动 full 数据文件备份集

通道 d1: 正在指定备份集中的数据文件

在备份集中包含当前的 SPFILE

备份集中包括当前控制文件

输入数据文件 fno=00001 name=D:\\ORACLE\\ORADATA\\ENCORE YSTEM01.DBF

输入数据文件 fno=00002 name=D:\\ORACLE\\ORADATA\\ENCORE\\UNDOTBS01.DBF

输入数据文件 fno=00005 name=D:\\ORACLE\\ORADATA\\ENCORE\\EXAMPLE01.DBF

输入数据文件 fno=00008 name=D:\\ORACLE\\ORADATA\\ENCORE\\TOOLS01.DBF

输入数据文件 fno=00010 name=D:\\ORACLE\\ORADATA\\ENCORE\\XDB01.DBF

输入数据文件 fno=00006 name=D:\\ORACLE\\ORADATA\\ENCORE\\INDX01.DBF

输入数据文件 fno=00009 name=D:\\ORACLE\\ORADATA\\ENCORE\\USERS01.DBF

输入数据文件 fno=00003 name=D:\\ORACLE\\ORADATA\\ENCORE\\CWMLITE01.DBF

输入数据文件 fno=00004 name=D:\\ORACLE\\ORADATA\\ENCORE\\DRSYS01.DBF

输入数据文件 fno=00007 name=D:\\ORACLE\\ORADATA\\ENCORE\\ODM01.DBF

通道 d1: 正在启动段 1 于 2004-06-28 21:03:37

通道 d1: 已完成段 1 于 2004-06-28 21:05:02

段 handle=E:\\RMANBAK\\DB_ENCORE_1_1_530053412 comment=NONE

通道 d1: 正在启动段 2 于 2004-06-28 21:05:02

通道 d1: 已完成段 2 于 2004-06-28 21:06:07

段 handle=E:\\RMANBAK\\DB_ENCORE_1_2_530053412 comment=NONE

通道 d1: 备份集已完成, 经过时间:00:02:35

完成 backup 于 2004-06-28 21:06:07

释放的通道: d1

RMAN>

2、备份目标数据库的参数文件

SQL>create pfile from spfile;

文件已创建

SQL>

3、--将目标数据库的参数文件(第2步创建)拷贝到克隆机器上,修改相应的参数(主要是实例名和

数据库名,和bdump、udump、cdump 等后台进程的跟踪文件存放的路径,本文中,克隆数据库

的实例名为 CLONE,数据库名为 CLONE_DB),然后在克隆机器上创建实例

D:\\oracle\\bin>oradim -new -sid clone -PFILE D:\\ORACLE\\database\\INITCLONE.ORA -INTPWD SYS1

D:\\oracle\\bin>

4、--修改克隆数据库的 ,增加对克隆数据库的监听(第3段)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = D:\\ORACLE)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = ORACLE)

(ORACLE_HOME = D:\\ORACLE)

(SID_NAME = ORACLE92)

)

(SID_DESC =

(GLOBAL_DBNAME = clone_db)

(ORACLE_HOME = D:\\ORACLE)

(SID_NAME = clone)

)

)

5、修改RMAN机器上的TNSNAMES.ORA文件,增加此连接串,保证RMAN使用此连接串能够连接到

克隆数据库的实例

CLONE =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.194)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = CLONE_DB)

)

)

5、将目标数据库的备份集拷贝到克隆数据库机器的同一位置,并启动克隆数据库(nomount 状态)

6、由于第1步骤中没有备份日志,在使用

RMAN>run

2>{allocate auxiliary channel d1 type disk;

3>set newname for datafile 1 to 'F:\\CLONE\\data YSTEM01.DBF';

脚本克隆数据库时,出现 NO BACKUP COPY 之类的错误,

之后补充备份目标数据库的日志,

RMAN>run

2>{allocate channel d1 type disk maxpiecesize = 500m;

3>backup archivelog all

4>format 'E:\\rmanbak\\log_%d_%s_%p_%t';

5>release channel d1;

6>}

分配的通道: d1

通道 d1: sid=11 devtype=DISK

启动 backup 于 2004-06-28 21:42:18

当前日志已存档

通道 d1: 正在启动存档日志备份集

通道 d1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =107 记录 ID=107 时间戳=528371132

输入存档日志线程 =1 序列 =108 记录 ID=108 时间戳=530053839

输入存档日志线程 =1 序列 =109 记录 ID=109 时间戳=530054855

输入存档日志线程 =1 序列 =110 记录 ID=110 时间戳=530055437

输入存档日志线程 =1 序列 =111 记录 ID=111 时间戳=530055540

输入存档日志线程 =1 序列 =112 记录 ID=112 时间戳=530055739

通道 d1: 正在启动段 1 于 2004-06-28 21:42:23

通道 d1: 已完成段 1 于 2004-06-28 21:42:26

段 handle=E:\\RMANBAK\\LOG_ENCORE_2_1_530055742 comment=NONE

通道 d1: 备份集已完成, 经过时间:00:00:04

完成 backup 于 2004-06-28 21:42:26

释放的通道: d1

7、将日志备份集拷贝到克隆机器的同一目录后,回到RMAN处,连接辅助(克隆)数据库,

执行脚本,剩下的RMAN自己会做

RMAN>connect auxiliary sys/sys1@clone

已连接到备用数据库: CLONE_DB (未安装)

RMAN>run

2>{allocate auxiliary channel d1 type disk;

3>set newname for datafile 1 to 'F:\\CLONE\\data YSTEM01.DBF';

4>set newname for datafile 2 to 'F:\\CLONE\\data\\UNDOTBS01.DBF';

5>set newname for datafile 3 to 'F:\\CLONE\\data\\CWMLITE01.DBF';

6>set newname for datafile 4 to 'F:\\CLONE\\data\\DRSYS01.DBF';

7>set newname for datafile 5 to 'F:\\CLONE\\data\\EXAMPLE01.DBF';

8>set newname for datafile 6 to 'F:\\CLONE\\data\\INDX01.DBF';

9>set newname for datafile 7 to 'F:\\CLONE\\data\\ODM01.DBF';

10>set newname for datafile 8 to 'F:\\CLONE\\data\\TOOLS01.DBF';

11>set newname for datafile 9 to 'F:\\CLONE\\data\\USERS01.DBF';

12>set newname for datafile 10 to 'F:\\CLONE\\data\\XDB01.DBF';

13>DUPLICATE TARGET DATABASE TO CLONE_DB

14>LOGFILE

15>GROUP 1 ('F:\\clone\\data\\REDO01.DBF') SIZE 10M,

16>GROUP 2 ('F:\\clone\\data\\REDO02.DBF') SIZE 10M,

17>GROUP 3 ('F:\\clone\\data\\REDO03.DBF') SIZE 10M;

18>}

分配的通道: d1

通道 d1: sid=8 devtype=DISK

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 Duplicate Db 于 2004-06-28 21:43:51

正在打印存储的脚本: Memory Script

{

set until scn 261688166;

set newname for datafile 1 to

“F:\\CLONE\\DATA YSTEM01.DBF”;

set newname for datafile 2 to

“F:\\CLONE\\DATA\\UNDOTBS01.DBF”;

set newname for datafile 3 to

“F:\\CLONE\\DATA\\CWMLITE01.DBF”;

set newname for datafile 4 to

“F:\\CLONE\\DATA\\DRSYS01.DBF”;

set newname for datafile 5 to

“F:\\CLONE\\DATA\\EXAMPLE01.DBF”;

set newname for datafile 6 to

“F:\\CLONE\\DATA\\INDX01.DBF”;

set newname for datafile 7 to

“F:\\CLONE\\DATA\\ODM01.DBF”;

set newname for datafile 8 to

“F:\\CLONE\\DATA\\TOOLS01.DBF”;

set newname for datafile 9 to

“F:\\CLONE\\DATA\\USERS01.DBF”;

set newname for datafile 10 to

“F:\\CLONE\\DATA\\XDB01.DBF”;

restore

check readonly

clone database

;

}

正在执行脚本: Memory Script

正在执行命令: SET until clause

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

正在执行命令: SET NEWNAME

启动 restore 于 2004-06-28 21:43:54

通道 d1: 正在开始恢复数据文件备份集

通道 d1: 正在指定从备份集恢复的数据文件

正将数据文件00001恢复到F:\\CLONE\\DATA YSTEM01.DBF

正将数据文件00002恢复到F:\\CLONE\\DATA\\UNDOTBS01.DBF

正将数据文件00003恢复到F:\\CLONE\\DATA\\CWMLITE01.DBF

正将数据文件00004恢复到F:\\CLONE\\DATA\\DRSYS01.DBF

正将数据文件00005恢复到F:\\CLONE\\DATA\\EXAMPLE01.DBF

正将数据文件00006恢复到F:\\CLONE\\DATA\\INDX01.DBF

正将数据文件00007恢复到F:\\CLONE\\DATA\\ODM01.DBF

正将数据文件00008恢复到F:\\CLONE\\DATA\\TOOLS01.DBF

正将数据文件00009恢复到F:\\CLONE\\DATA\\USERS01.DBF

正将数据文件00010恢复到F:\\CLONE\\DATA\\XDB01.DBF

通道 d1: 已恢复备份段 1

段 handle=E:\\RMANBAK\\DB_ENCORE_1_1_530053412 tag=TAG20040628T210331 params=NULL

通道 d1: 已恢复备份段 2

段 handle=E:\\RMANBAK\\DB_ENCORE_1_2_530053412 tag=TAG20040628T210331 params=NULL

通道 d1: 恢复完成

完成 restore 于 2004-06-28 21:46:35

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE “CLONE_DB” RESETLOGS ARCHIVELOG

MAXLOGFILES 50

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP 1 ( 'F:\\clone\\data\\REDO01.DBF' ) SIZE 10485760 ,

GROUP 2 ( 'F:\\clone\\data\\REDO02.DBF' ) SIZE 10485760 ,

GROUP 3 ( 'F:\\clone\\data\\REDO03.DBF' ) SIZE 10485760

DATAFILE

'F:\\CLONE\\DATA YSTEM01.DBF'

CHARACTER SET ZHS16GBK

正在打印存储的脚本: Memory Script

{

switch clone datafile all;

}

正在执行脚本: Memory Script

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=530056505 文件名=F:\\CLONE\\DATA\\UNDOTBS01.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=530056505 文件名=F:\\CLONE\\DATA\\CWMLITE01.DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=530056505 文件名=F:\\CLONE\\DATA\\DRSYS01.DBF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=530056505 文件名=F:\\CLONE\\DATA\\EXAMPLE01.DBF

数据文件 6 已转换成数据文件副本

输入数据文件副本 recid=5 stamp=530056505 文件名=F:\\CLONE\\DATA\\INDX01.DBF

数据文件 7 已转换成数据文件副本

输入数据文件副本 recid=6 stamp=530056505 文件名=F:\\CLONE\\DATA\\ODM01.DBF

数据文件 8 已转换成数据文件副本

输入数据文件副本 recid=7 stamp=530056505 文件名=F:\\CLONE\\DATA\\TOOLS01.DBF

数据文件 9 已转换成数据文件副本

输入数据文件副本 recid=8 stamp=530056505 文件名=F:\\CLONE\\DATA\\USERS01.DBF

数据文件 10 已转换成数据文件副本

输入数据文件副本 recid=9 stamp=530056505 文件名=F:\\CLONE\\DATA\\XDB01.DBF

正在打印存储的脚本: Memory Script

{

set until scn 261688166;

recover

clone database

delete archivelog

;

}

正在执行脚本: Memory Script

正在执行命令: SET until clause

启动 recover 于 2004-06-28 21:46:37

正在开始介质的恢复

通道 d1: 正在启动到默认目标的存档日志恢复

通道 d1: 正在恢复存档日志

存档日志线程 =1 序列=108

通道 d1: 正在恢复存档日志

存档日志线程 =1 序列=109

通道 d1: 正在恢复存档日志

存档日志线程 =1 序列=110

通道 d1: 正在恢复存档日志

存档日志线程 =1 序列=111

通道 d1: 正在恢复存档日志

存档日志线程 =1 序列=112

通道 d1: 已恢复备份段 1

段 handle=E:\\RMANBAK\\LOG_ENCORE_2_1_530055742 tag=TAG20040628T214221 params=NULL

通道 d1: 恢复完成

存档日志文件名 =F:\\CLONE\\LOG\\ARC00108.001 线程 =1 序列 =108

通道 clone_default: 正在删除存档日志

存档日志文件名 =F:\\CLONE\\LOG\\ARC00108.001 记录 ID=3 时间戳 =530056510

存档日志文件名 =F:\\CLONE\\LOG\\ARC00109.001 线程 =1 序列 =109

通道 clone_default: 正在删除存档日志

存档日志文件名 =F:\\CLONE\\LOG\\ARC00109.001 记录 ID=4 时间戳 =530056510

存档日志文件名 =F:\\CLONE\\LOG\\ARC00110.001 线程 =1 序列 =110

通道 clone_default: 正在删除存档日志

存档日志文件名 =F:\\CLONE\\LOG\\ARC00110.001 记录 ID=5 时间戳 =530056510

存档日志文件名 =F:\\CLONE\\LOG\\ARC00111.001 线程 =1 序列 =111

通道 clone_default: 正在删除存档日志

存档日志文件名 =F:\\CLONE\\LOG\\ARC00111.001 记录 ID=2 时间戳 =530056510

存档日志文件名 =F:\\CLONE\\LOG\\ARC00112.001 线程 =1 序列 =112

通道 clone_default: 正在删除存档日志

存档日志文件名 =F:\\CLONE\\LOG\\ARC00112.001 记录 ID=1 时间戳 =530056510

完成介质的恢复

完成 recover 于 2004-06-28 21:46:47

正在打印存储的脚本: Memory Script

{

shutdown clone;

startup clone nomount ;

}

正在执行脚本: Memory Script

数据库已卸载

Oracle 例程已关闭

已连接到备用数据库 (未启动)

Oracle 例程已启动

系统全局区域总计 319889436 字节

Fixed Size 454684 字节

Variable Size 109051904 字节

Database Buffers 209715200 字节

Redo Buffers 667648 字节

sql 语句: CREATE CONTROLFILE REUSE SET DATABASE “CLONE_DB” RESETLOGS ARCHIVELOG

MAXLOGFILES 50

MAXLOGMEMBERS 5

MAXDATAFILES 100

MAXINSTANCES 1

MAXLOGHISTORY 226

LOGFILE

GROUP 1 ( 'F:\\clone\\data\\REDO01.DBF' ) SIZE 10485760 ,

GROUP 2 ( 'F:\\clone\\data\\REDO02.DBF' ) SIZE 10485760 ,

GROUP 3 ( 'F:\\clone\\data\\REDO03.DBF' ) SIZE 10485760

DATAFILE

'F:\\CLONE\\DATA YSTEM01.DBF'

CHARACTER SET ZHS16GBK

正在打印存储的脚本: Memory Script

{

catalog clone datafilecopy “F:\\CLONE\\DATA\\UNDOTBS01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\CWMLITE01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\DRSYS01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\EXAMPLE01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\INDX01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\ODM01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\TOOLS01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\USERS01.DBF”;

catalog clone datafilecopy “F:\\CLONE\\DATA\\XDB01.DBF”;

switch clone datafile all;

}

正在执行脚本: Memory Script

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\UNDOTBS01.DBF recid=1 stamp=530056530

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\CWMLITE01.DBF recid=2 stamp=530056530

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\DRSYS01.DBF recid=3 stamp=530056531

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\EXAMPLE01.DBF recid=4 stamp=530056531

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\INDX01.DBF recid=5 stamp=530056531

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\ODM01.DBF recid=6 stamp=530056531

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\TOOLS01.DBF recid=7 stamp=530056532

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\USERS01.DBF recid=8 stamp=530056532

已将数据文件副本列入目录

数据文件副本 filename=F:\\CLONE\\DATA\\XDB01.DBF recid=9 stamp=530056532

数据文件 2 已转换成数据文件副本

输入数据文件副本 recid=1 stamp=530056530 文件名=F:\\CLONE\\DATA\\UNDOTBS01.DBF

数据文件 3 已转换成数据文件副本

输入数据文件副本 recid=2 stamp=530056530 文件名=F:\\CLONE\\DATA\\CWMLITE01.DBF

数据文件 4 已转换成数据文件副本

输入数据文件副本 recid=3 stamp=530056531 文件名=F:\\CLONE\\DATA\\DRSYS01.DBF

数据文件 5 已转换成数据文件副本

输入数据文件副本 recid=4 stamp=530056531 文件名=F:\\CLONE\\DATA\\EXAMPLE01.DBF

数据文件 6 已转换成数据文件副本

输入数据文件副本 recid=5 stamp=530056531 文件名=F:\\CLONE\\DATA\\INDX01.DBF

数据文件 7 已转换成数据文件副本

输入数据文件副本 recid=6 stamp=530056531 文件名=F:\\CLONE\\DATA\\ODM01.DBF

数据文件 8 已转换成数据文件副本

输入数据文件副本 recid=7 stamp=530056532 文件名=F:\\CLONE\\DATA\\TOOLS01.DBF

数据文件 9 已转换成数据文件副本

输入数据文件副本 recid=8 stamp=530056532 文件名=F:\\CLONE\\DATA\\USERS01.DBF

数据文件 10 已转换成数据文件副本

输入数据文件副本 recid=9 stamp=530056532 文件名=F:\\CLONE\\DATA\\XDB01.DBF

正在打印存储的脚本: Memory Script

{

Alter clone database open resetlogs;

}

正在执行脚本: Memory Script

数据库已打开

RMAN>

--执行此步骤需要注意:避免连接克隆数据库,否则,RMAN将无法正常关闭克隆数据库

(shutdown clone),剩下的步骤无法继续执行,

在两机器间克隆数据库的两种方法数据库教程

8、测试克隆数据库

D:\\oracle\\bin>sqlplus

SQL*Plus: Release 9.2.0.5.0 - Production on Mon Jun 28 22:01:46 2004

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Enter user-name: sys/sys1@clone as sysdba

Connected to:

Oracle9i Enterprise Edition Release 9.2.0.5.0 - Production

With the Partitioning, Oracle Label Security, OLAP and Oracle Data Mining options

JServer Release 9.2.0.5.0 - Production

SQL>select status from v$instance;

STATUS

------------

OPEN

SQL>archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination F:\\CLONE\\log

Oldest online log sequence 0

Next log sequence to archive 1

Current log sequence 1

SQL>

总结:在两台机器间用RMAN克隆数据库,个人认为,有两点需要注意:

1、在对目标数据库做全库备份时,要注意同时备份日志,缺少此步骤,RMAN在克隆时将报NO BACKUP COPY 之类的错误.

2、要将目标数据库备份的备份集拷贝到克隆机器的同一个目录(同备份目标数据库时备份集存放的目录)下,否则,RMAN将报:找不到XXXX备份集.

DBCA是一款可以配置、管理和建立数据库的工具。在初始数据库安装过程中,如果你选择“建立一个数据库选项(Create A Database option)”,这一工具就会启动并运行。你可以建立一个基于模板的数据库,也可以从先前的范例中导入一个新的模板。

很多管理人员并不知道,只要在命令行中键入dbca这可以进入到DBCA环境。一旦这一工具启动,你可以建立一个新的数据库,配置数据库的INIT.ORA选项,删除一个现有的数据库,或者管理数据库模板。这些数据库模板与安装时生成的模板类似(比如General Purpose, Data Warehouse,以及Transaction Processing)。

在安装过程中,出现一个警示对话框以询问是否需要保存你的模板。你可以点击No,或者可以在安装时就人工定义你的数据库。DBCA工具能够检查数据库设置并生成一个基于当前操作系统的模板,甚至可以有选择性地输出当前数据。这一特性就使得它成为将一个数据库转移到另一机器或者将一个数据库嵌入到其它有价值产品的优秀工具。

DBCA工具将模板存储在一个以.dbc扩展名的文件。一个.dbc文件包含init.ora参数、位置数据文件、日志文件、以及数据库中以XML格式的控制文件的列表。如果你选择包含你的数据库数据,这一工具也会生成一个扩展名为.dbj的文件,即一个包含你的数据文件的图像的ZIP压缩文件。有些用户会想到建立所有这些设置的一个备份,以避免在一个新机器上重新建立一个数据库的必要。

方法二:

使用DBCA克隆一个数据库

有很多变量允许DBCA为Oracle软件将文件安装到合适的路径,比如{ORACLE_BASE}以及{DB_NAME}。由于这些只是简单的XML,可以使用一个diff函数快速查看这些模板之间的差别。例如,General Purpose 和 Data Warehouse数据库模板之间的差别是在于Oracle 9i 9.2.0.0的Data Warehouse模板:

TEMP tablespace小于1M.

init.ora参数包括:

star_transformation_enabled被激活。

pga_aggregate_target比较在。

query_rewrite_enabled被激活。

db_file_multiblock_read_count为双倍。

sort_area_size为双倍。

hash_area_size没有被设置。

db_cache_size比较小。

对于Transaction Processing模板,差别在于:

Oracle OLAP选项没有被激活。

init.ora参数包括:

db_block_size为一半。

undo_retention比较小。

pga_aggregate_target比较小。

db_file_multiblock_read_count为一半。

hash_join_enabled被关闭。

db_cache_size比较大。

无需建立一个CWMLITE tablespace(因为OLAP选项已经被关闭)。

EXAMPLE 和 SYSTEM tablespaces比较小。

TEMP tablespace为双倍大小。

当你使用DBCA工具从数据库中输出数据时,DBCA将生成一个以.dfj扩展名的文件,即一个包含每一数据文件的源图像的ZIP压缩文件。这就意味着这些数据在转移过程中保证了安全性。然而,这些文件并没有很好被EXP和IMP文档化和支持。同样,这些图像绝大多数直接写入到磁盘,而不是类似于IMP的通过SQL写入。

篇2:为导入文件加上时间戳标记的两种方法数据库教程

问:如何给导入文件加上时间戳标记?

答:请参考下文中介绍的两种方法:

1.在DOS下从系统获得时间戳

利用Dos命令取得时间戳:

C:\\>echo %date%

-12-31 星期一

C:\\>echo %date:~0,10%

2007-12-31

然后使用导出(exp)工具引用该时间戳就很容易了:

exp userid=eygle/eygle file=d:\\eygle%date:~0,

10%.dmp log=d:\\eygle%date:~0,10%.log

2.使用SQL脚本从数据库获得时间戳

注释:在NT下该命令的执行结果可能与Windows2000和WindowsXp上不同,没有NT的环境可以试验(此时只需“”把date引用起来就可以了,如: “%date%”),

我们也可以使用如下的SQL方式获得时间戳.

首先编写一个doexp.sql脚本:

column today new_val dt

select to_char( sysdate, 'ddmmyyyy' ) today from dual;

host exp userid=eygle/eygle tables=emp

file=exp_prod_&dt..exp log=exp_prod_&dt..log

exit

然后再编写一个start.bat批处理脚本调用doexp.sql脚本:

echo off

set oracle_sid=eygle

sqlplus eygle/eygle @doexp

执行结果如下:

E:\\Is\\IsTrain\\Exp2>dir

驱动器 E 中的卷是 SWAPDK

卷的序列号是 F8BA-FCAC

E:\\Is\\IsTrain\\Exp2 的目录

2007-12-07 15:14

.

2007-12-07 15:14

..

2007-08-26 15:18 170 doexp.sql

2007-12-07 15:12 4,096 exp_prod_0710.exp

2007-12-07 15:12 335 exp_prod_07102003.log

2007-08-26 15:18 4,096 exp_prod_26082003.exp

2007-08-26 15:18 312 exp_prod_26082003.log

2007-12-07 15:42 4,096 exp_prod_30082003.exp

2007-08-30 17:09 335 exp_prod_30082003.log

2007-12-07 15:14 1,660 sqlnet.log

2007-12-07 15:12 60 start.bat

9 个文件 15,160 字节

2 个目录 674,652,160 可用字节

篇3:判断窗体是否打开的两种方法数据库教程

判断窗体是否打开的两种方法

Function IsLoaded(strName As String, Optional intObjectType As Integer =

acForm)

IsLoaded = (SysCmd(acSysCmdGetObjectState, intObjectType, strName) 0)

End Function

函数二

Function IsFormLoaded(strFrmName As String) As Boolean

Const conFormDesign = 0

Dim intX As Integer

IsFormLoaded= False

For intX = 0 To Forms.Count - 1

If Forms(intX).FormName = strFrmName Then

If Forms(intX).CurrentView conFormDesign Then

IsFormLoaded= True

Exit Function ' Quit function once form. has been found.

End If

End If

Next

End Function

篇4:windows下在一台机器上安装两个MYSQL数据库的方法

-07-07mysql查询字符串替换语句小结(数据库字符串替换)

-04-04MySQL查询优化:用子查询代替非主键连接查询实例介绍

2013-06-06深入char、varchar、text和nchar、nvarchar、ntext的区别详解

-12-12MySQL服务器进程CPU占用100%的解决方法

-02-02mysql查询语句通过limit来限制查询的行数

2010-06-06MySQL 随机查询数据与随机更新数据实现代码

2012-12-12mysqli预处理编译的深入理解

-07-07mysql 字符集的系统变量说明

2012-12-12MySQL大表中重复字段的高效率查询方法

2009-06-06asp.net 将图片上传到mysql数据库的方法

篇5:windows下在一台机器上安装两个MYSQL数据库的方法

最近更 新

深入mysql慢查询设置的详解

mytop 使用介绍 mysql实时监控工具

mysql #1062 CDuplicate entry ''1'' fo

mysql格式化小数保留小数点后两位(小数点

mysql odbc字符集设置(中文显示乱码)

MySQL文本文件导入及批处理模式应用说明

MySql的事务使用与示例详解

有关mysql的一些小技巧

mysql存储过程事务管理简析

批量清除128组节点db上面过期的binlog释放

热 点 排 行

mysql安装图解 mysql图文安装教程

超详细mysql left join,right jo

Can''t connect to MySQL server

Mysql命令行导入sql数据

MYSQL 数据库导入导出命令

Mysql字符串截取函数SUBSTRING的

MySQL数据库备份与恢复方法

MySQL server has gone away 问题

windows下mysql忘记root密码的解

MySQL日期数据类型、时间类型使用

远程管理sqlserver的注册方法数据库教程

Oracle 9i 约束条件数据库教程

全检索的应用数据库教程

PL/SQL Developer数据库教程

右外连接数据库教程

下载在两机器间克隆数据库的两种方法数据库教程(精选5篇)
在两机器间克隆数据库的两种方法数据库教程.doc
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
点击下载本文文档