拷贝oracle文件夹下,windows下用拷贝数据文件的方法复制数据库

被复制的oraclesid是ora901,原来数据文件的目录是d:\oracle\oradata\ora901\ 数据文件的新位置是c:\oracle\oradata\ora901

第一步:确定实例名,确定数据文件的目录位置,准备初始化文件 init(sid).ora 并复制到 $oracle_home\database 目录中

copy init.ora c:\oracle\ora90\database\initora901.ora

注意:init.ora 中的 control file的定位要与实际拷贝的control file的文件位置相同

第二步:注册oracle服务

set ORACLE_SID=ora901

C:\oracle\ora90\bin\oradim -new  -sid ora901 -startmode m  -pfile c:\oracle\ora90\database\initora901.ora

C:\oracle\ora90\bin\oradim -edit  -sid ora901 -startmode a

在注册表中建立ORACLE 注册ORACLE实例名

HK_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0 增加一个可扩充的字符串值的键 ORACLE_SID 键值是 SID

第三步:建立实例的相关目录(根据INIT.ORA文件设立)

c:\oracle\admin\ora901\udump

c:\oracle\admin\ora901\bdump

c:\oracle\admin\ora901\cdump

第四步:拷贝data file到$oracle_base\oradata\sid\目录中

copy * c:\oracle\oradata\ora901\

第五步:启动oracle实例,更新全部的数据文件位置,实际上是更改control file中的记录的数据文件的位置

c:\> sqlplus /nolog

sql>connect / as sysdba

sql>startup mount

sql>执行以下的更改数据文件位置的命令

alter database rename file 'd:\oracle\oradata\ora901\INDX01.DBF' to 'c:\oracle\oradata\ora901\INDX01.DBF';

alter database rename file 'd:\oracle\oradata\ora901\SYSTEM01.DBF' to 'c:\oracle\oradata\ora901\SYSTEM01.DBF';

alter database rename file 'd:\oracle\oradata\ora901\TEMP01.DBF' to 'c:\oracle\oradata\ora901\TEMP01.DBF';

alter database rename file 'd:\oracle\oradata\ora901\TOOLS01.DBF' to 'c:\oracle\oradata\ora901\TOOLS01.DBF';

alter database rename file 'd:\oracle\oradata\ora901\UNDOTBS01.DBF' to 'c:\oracle\oradata\ora901\UNDOTBS01.DBF';

alter database rename file 'd:\oracle\oradata\ora901\USERS001.DBF' to 'c:\oracle\oradata\ora901\USERS001.DBF';

alter database rename file 'd:\oracle\oradata\ora901\LOG1A.ORA' to 'c:\oracle\oradata\ora901\LOG1A.ORA';

alter database rename file 'd:\oracle\oradata\ora901\LOG1B.ORA' to 'c:\oracle\oradata\ora901\LOG1B.ORA';

alter database rename file 'd:\oracle\oradata\ora901\LOG2A.ORA' to 'c:\oracle\oradata\ora901\LOG2A.ORA';

alter database rename file 'd:\oracle\oradata\ora901\LOG2B.ORA' to 'c:\oracle\oradata\ora901\LOG2B.ORA';

alter database rename file 'd:\oracle\oradata\ora901\LOG3A.ORA' to 'c:\oracle\oradata\ora901\LOG3A.ORA';

alter database rename file 'd:\oracle\oradata\ora901\LOG3B.ORA' to 'c:\oracle\oradata\ora901\LOG3B.ORA';

第六步:打开数据库

sql>alter database open;

第七步:配置listener.ora文件,加入该实例sid

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

)

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = C:\oracle\ora90)

(PROGRAM = extproc)

)

(SID_DESC =

(GLOBAL_DBNAME = ora901)

(ORACLE_HOME = C:\oracle\ora90)

(SID_NAME = ora901)

)

)

第八步:配置tnsnames.ora文件,增加该本地命名

ora901 =

(DESCRIPTION =

(ADDRESS_LIST =

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

)

(CONNECT_DATA =

(SID = ora901)

(SERVER = DEDICATED)

)

)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
复制,顾名思义就是将数据库中的数据拷贝到不同物理地点的数据库中。 在很多生产环境中,经常遇到一些大量得数据,这些数据只用作查询统计功能。例如:历史告警,历史性能标,历史事件,等等。这种数据的特点是:只读不写,数据量相当大,一旦查询大结果集的数据时,对数据库的IO,内存缓存占用相当大,会严重影响同一个数据库的其他会话的操作,表现为整个数据库反应迟缓,业务功能不可用。采用复制技术后,将这些大型数据复制到另外一个数据库中,对这些大数据的查询统计操作放在另外的一台数据库服务器上进行,即使受影响,也只是影响局部的查询统计功能,其他正常的业务处理不受影响。 但是,使用复制技术的话,意味着一个系统中,至少存在两个数据库(集群的数据库也当成一个数据库),对应的应用程序也需要建立多个数据库连接,能够根据业务需要,访问不同的数据库ORACLE数据库自身提供有复制功能,只需要进行配置即可实现。 ORACLE提供有三种复制技术: 高级复制(Advanced Replication) 流复制(Streams Replication) 备库(Dataguard) 备库的方式,就是数据库数据库的备份方式,主要是解决容灾的,不讨论此话题。 流复制主要是利用ORACLE的归档日志,进行增量备份来实现的,不仅可以配置只复制某些表,还可以配置仅复制某些表上的ddl或dml。可以复制到表,用户,数据库级别。 高级复制主要是基于触发器的原理来触发数据同步的,因此,高级复制无法实现用户,数据库级别的对象复制,只能做些表、索引和存储过程的复制。 如果出于容灾整个数据库的考虑,高级复制相当复杂,而且并不一定能做好,流复制的配置相对简单。流复制是后来产生的复制技术,是基于日志挖掘技术实现的,对数据库的影响较低。但在稳定性方面较差,实时性没有高级复制强(因为高级复制是基于触发器的)。如果系统意外的话,流复制的恢复将会需要较长时间,特别是意外时间越长,恢复时间成倍增长。 下面使用相同的环境,分别对两种复制功能进行配置介绍,并进行性能压力测试比较。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值