实现Oracle数据库复制数据库 电脑资料_第1页
实现Oracle数据库复制数据库 电脑资料_第2页
实现Oracle数据库复制数据库 电脑资料_第3页
实现Oracle数据库复制数据库 电脑资料_第4页
实现Oracle数据库复制数据库 电脑资料_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实现Oracle数据库复制数据库 电脑资料 我们经常希望把各地的数据入库后进行统一的应用, 我们经常希望把各地的数据入库后进行统一的应用。现在可以用复制技术来解决这个问题。但实现数据库复制也是要有一些条件的。 首先,数据库要具备高级复制功能(用system身份数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持)。 如果具备高级复制功能,数据库要进行一些参数初始化。 db_domain = test. 指明数据库的域名(默认的是WORLD),这里可以用您公司的域名;global_names = true 它要求数据库链接(database link)和被连接的数据库名称一致,现在全局数据库名:db_name+”.”+db_domain ; 跟数据库job执行有关的参数: job_queue_processes = 1; job_queue_interval = 60; distributed_transactions = 10; open_links = 4 第一行定义SNP进程的启动个数为n。系统缺省值为0,正常定义范围为036,根据任务的多少,可以配置不同的数值。第二行定义系统每隔N秒唤醒该进程一次。系统缺省值为60秒,正常范围为13600秒。事实上,该进程执行完当前任务后,就进入睡眠状态,睡眠一段时间后,由系统的总控负责将其唤醒。如果修改了以上这几个参数,需要重新启动数据库以使参数生效。 做完了初步的准备,我们来实现数据库同步复制。 假设在Inte.上有两个数据库:一个叫中国(China),一个叫日本(Japan)。 具体配置如下: 数据库名:China、Japan 数据库域名 test. 数据库sid号 China、Japan Listener端口号 1521 服务器ip地址 10.1.0.100 10.1.0.200 确认两个数据库之间可以互相访问,在tnsnames.ora里设置数据库连接字符串。 中国这边的数据库连接字符串是以下的格式: Japan = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.200)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = Japan) ) ) 运行$tnsping Japan,出现以下提示符: Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.200)(PORT=1521) OK(n毫秒) 表明中国数据库可以访问日本数据库。在日本那边也同样配置,确认$tnsping China 是通的。 改数据库全局名称,建公共的数据库链接。 用system身份China数据库 SQLalter database rename global_name to China.test.; 用system身份Japan数据库: SQLalter database rename global_name to Japan.test.; 用system身份China数据库。 SQLcreate public database link Japan.test. using Japan; 测试数据库全局名称和公共的数据库链接。 SQLselect * from global_nameJapan.test.; 返回结果为Japan.test.就对了。 用system身份Japan数据库: SQLcreate public database link China.test. using China; 测试数据库全局名称和公共的数据库链接。 SQLselect * from global_nameChina.test.; 返回结果为China.test.就对了。 建立管理数据库复制的用户repadmin,并赋权, 用system身份China数据库: SQLcreate user repadmin identified by repadmin default tablespace users temporary tablespace temp; SQLexecute dbms_defer_sys.register_propagator(repadmin); SQLgrantexecute any procedure to repadmin; SQLexecute dbms_repcat_admin.grant_admin_any_repgroup(repadmin); SQLgrant ment any table to repadmin; SQLgrant lock any table to repadmin; 同样用system身份Japan数据库,运行以上的命令,管理数据库复制的用户repadmin,并赋权。 在数据库复制的用户repadmin下创建私有的数据库链接。 用repadmin身份China数据库。 SQLcreate database link Japan.test. connect to repadmin identified 在Japan数据库那边同样运行以上,。 在Japan数据库scott用户下创建主关键字的序列号,范围避免和China的冲突。 SQL create sequence dept_no increment by 1 start with 45 maxvalue 99 cycle nocache; 在Japan数据库scott用户下插入初始化数据。 SQLinsert into dept values (dept_no.nextval,sales,chicago); SQLinsert into dept values (dept_no.nextval,operations,boston); SQLmit; 创建要复制的组scott_mg,加入数据库对象,产生对象的复制支持。 用repadmin身份China数据库,创建主复制组scott_mg: SQL execute dbms_repcat.create_master_repgroup(scott_mg); 在复制组scott_mg里加入数据库对象: SQLexecute dbms_repcat.create_master_repobject(sname=scott,oname=dept, type=table,use_existing_object=true,gname=scott_mg); 参数说明: sname 实现数据库复制的用户名称; oname 实现数据库复制的数据库对象名称; type 实现数据库复制的数据库对象类别; use_existing_object true表示用主复制节点已经存在的数据库对象; gname 主复制组名; 对数据库对象产生复制支持: SQLexecute dbms_repcat.generate_replication_support(scott,dept,table); 确认复制的组和对象已经加入数据库的数据字典: SQLselect gname, master, status from dba_repgroup; SQLselect * from dba_repobject; 创建主复制节点: 用repadmin身份China数据库,创建主复制节点: SQLexecute dbms_repcat.add_master_database (gname=scott_mg,master=Japan.test., use_existing_objects=true, copy_rows=false, propagation_mode = asynchronous); 参数说明: gname 主复制组名; master 加入主复制节点的另一个数据库; use_existing_object true表示用主复制节点已经存在的数据库对象;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论