oracle数据库复制,如何将一个oracle数据库复制成一个新的数据库
这篇文章给大家聊聊关于oracle数据库复制,以及如何将一个oracle数据库复制成一个新的数据库对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
怎样用最简单的方法复制或迁移Oracle数据库
在DBA的日常工作中,经常需要重装或在新机器上安装Oracle,但每次安装所浪费的时间、精力以及失败的挫折都在考验着DBA的承受能力,本文着重介绍了一个简单的复制和迁移Oracle数据库的方法,详细内容请参考下文。
复制迁移的步骤如下:
◆1、首先,复制原Oracle数据库的安装目录到新机器或系统中的安装目录,注意目录要一致,盘符也要一致。
◆2、假如Oracle的安装目录不在Program Files系统文件夹下,我们需要把原系统中的Program Files文件夹下的Oracle目录也复制到新系统的Program Files文件夹中去。
◆3、导出原系统中的Oracle注册表信息,主要注册信息如下:
A. HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE
B. HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services下有关Oracle的所有键,通常包括以下9个:
/OracleMTSRecoveryService
/OracleOraHome92Agent
/OracleOraHome92ClientCache
/OracleOraHome92HTTPServer
/OracleOraHome92PagingServer
/OracleOraHome92SNMPPeerEncapsulator
/OracleOraHome92SNMPPeerMasterAgent
/OracleOraHome92TNSListener
/OracleServiceORA8
◆4、注意:有多少个数据库,注册表服务键下的OracleServiceXXX就会有多个。其中最主要的有监听服务和数据库服务,即OracleOraHome92TNSListenerXXX和OracleServiceXXX。
◆5、将导出的所有注册表的信息在新的系统中导入(注册)。
◆6、设置系统环境变量,打开"我的电脑"的"属性"界面,在"高级"而点击"环境变量"进入设置,找到[Path]系统变量项目,点"编辑",在变量值的输入框的最后,加入";ORACLE的安装目录"。
◆7、最后我们需要进入 C:/Documents and Settings/All Users/Start Menu/Programs下把 Oracle- OraHome92和 Oracle Installation Products两个菜单文件夹也复制到新系统中,此时,就和新安装的一样了。重启系统后,成功完成。
如何复制一个Oracle数据库(11G)
详细的方法这里很难解答,需要你另外参考博客或是文档,不过我给你解释下原理。重点就是oracle软件和数据库数据是相分离的,这点你要有自信,所以数据不丢,搬移到另一台电脑完全可行。这里面那些文件是独立于oracle软件呢?
1、init.ora初始参数文件,也称为pfile、spfile,是数据库启动所必须的文件;
2、控制文件,ctl后缀结尾的,包含了数据库的表空间、数据文件路径等信息;
3、数据文件,dbf后缀结尾的,就是对应了控制文件里提到的实实在在的文件;
4、在线日志文件,log后缀结尾的,用来记录实时的log;
5、归档日志文件,arc后缀结尾的,用来备份在线日志文件;
6、密码文件,存储sysdba权限用户的密码,可使得sysdba权限用户远程登录;
根据你的情况,因为你需要:关闭数据库、不需要归档、密码文件可以后创建。
所以前三个文件你必须搞清楚,搞清楚了就ok了,将前三项copy到另一台安装好oracle的机子,根据实际环境,修改init里面的内容,然后就可以启动数据库了,不过会提示某些数据文件路径可能错误的问题,是由于新环境和就环境路径不一样,根据ctl控制文件找不到,所以需要有些命令来修改路径。也会有其他各式各样的问题,但是这是正常的!并不是说数据库坏掉了,是dba必须要会的工作。
希望给你个浅显的解答。
oracle怎样copy表结构相同的数据
1.不同用户之间的表数据复制
对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:
insert into B.new(select* from A.old);
如果需要加条件限制,比如复制当天的A.old数据
insert into B.new(select* from A.old where date=GMT);
蓝色斜线处为选择条件
2.同用户表之间的数据复制
用户B下有两个表:B.x和B.y,如果需要从表x转移数据到表y,使用用户B登陆sqlpus即可:
insert into目标表y select* from x where log_id>'3049'--复制数据
注意:要示目标表y必须事先创建好
如insert into bs_log2 select* from bs_log where log_id>'3049'
3.B.x中个别字段转移到B.y的相同字段
--如果两个表结构一样
insert into table_name_new select* from table_name_old
如果两个表结构不一样:
insert into y(字段1,字段2) select字段1,字段2 from x
4.只复制表结构加入了一个永远不可能成立的条件1=2,则此时表示的是只复制表结构,但是不复制表内容
create table用户名.表名 as select* from用户名.表名 where 1=2
如create table zdsy.bs_log2 as select* from zdsy.bs_log where 1=2
5完全复制表(包括创建表和复制表中的记录)
create table test as select* from bs_log--bs_log是被复制表
6将多个表数据插入一个表中
insert into目标表test(字段1。。。字段n)(select字段1.。。。。字段n) from表 union all select字段1.....字段n from表
7、创建用户budget_zlgc,权限和budget相同,(A、只复制所有表结构
B、复制所有表所有信息)
创建用户budget_zlgc,并导出budge用户数据
exp userid="\"sys/sys
as sysdba"\" file='/backup/expdb/oa0824.dmp'
log='/backup/expdb/oaex0825.log' owner=budget ignore=Y buffer=256000000
如何将一个oracle数据库复制成一个新的数据库
1、在数据库服务器的开始菜单中找到Datebase Configuration Assistant。
2、在创建画面第一步选择:创建新数据库,点击下一步。
3、根据需求选择自己的数据库类型(一般默认)后,跳转到全局数据库名这个画面时,重点来了:新建数据库名称不能和已经存在的任何一个数据库名称相同。
4、在管理帐户密码界面,可以与别的数据库管理帐户密码相同也可以不同,需注意的是,Oracle数据库默认是区分密码大小写的。
5、跳转到Oracle内存分配大小页面,这里建议将Oracle内存调整为物理主机内存的70%。
6、点击完成后,等待数据库创建完成。
7、数据库创建完成后,用sqlplus语句连接数据库,在同一服务器上建立多个Oracle数据库操作完成。
好了,文章到此结束,希望可以帮助到大家。