知识大全 在Oracle中实现数据库的复制

Posted 数据库

篇首语:知识是果树,知识的应用就是果树上结的果实。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在Oracle中实现数据库的复制相关的知识,希望对你有一定的参考价值。

在Oracle中实现数据库的复制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在Internet上运作数据库经常会有这样的需求 把遍布全国各城市相似的数据库应用统一起来 一个节点的数据改变不仅体现在本地 还反映到远端 复制技术给用户提供了一种快速访问共享数据的办法   一 实现数据库复制的前提条件    数据库支持高级复制功能   您可以用system身份登录数据库 查看v$option视图 如果其中Advanced replication为TRUE 则支持高级复制功能 否则不支持    数据库初始化参数要求   ① db_domain =   指明数据库的域名(默认的是WORLD) 这里可以用您公司的域名   ② global_names = true   它要求数据库链接(database link)和被连接的数据库名称一致   现在全局数据库名 db_name+ +db_domain   ③ 有跟数据库job执行有关的参数   job_queue_processes =   job_queue_interval =   distributed_transactions =   open_links =    第一行定义SNP进程的启动个数为n 系统缺省值为 正常定义范围为 ~ 根据任务的多少 可以配置不同的数值    第二行定义系统每隔N秒唤醒该进程一次 系统缺省值为 秒 正常范围为 ~ 秒 事实上 该进程执行完当前任务后 就进入睡眠状态 睡眠一段时间后 由系统的总控负责将其唤醒    如果修改了以上这几个参数 需要重新启动数据库以使参数生效   二 实现数据库同步复制的步骤   假设在Internet上我们有两个数据库 一个叫深圳(shenzhen) 一个叫北京(beijing)   具体配置见下表       确认两台数据库之间可以互相访问 在tnsnames ora里设置数据库连接字符串   ① 例如 深圳这边的数据库连接字符串是以下的格式   beijing =   (DESCRIPTION =   (ADDRESS_LIST =   (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))   )   (CONNECT_DATA =   (SERVICE_NAME = beijing)   )   )   运行$tnsping beijing   出现以下提示符   Attempting to contact (ADDRESS=(PROTOCOL=TCP)(HOST= )(PORT= ))   OK(n毫秒)   表明深圳数据库可以访问北京数据库   ② 在北京那边也同样配置 确认$tnsping shenzhen 是通的    改数据库全局名称 建公共的数据库链接   ① 用system身份登录shenzhen数据库   SQL>alter database rename global_name to cn;   用system身份登录beijing数据库   SQL>alter database rename global_name to ;   ② 用system身份登录shenzhen数据库   SQL>create public database link using beijing ;   测试数据库全局名称和公共的数据库链接   SQL>select * from global_n cn;   返回结果为就对了   用system身份登录beijing数据库   SQL>create public database link cn using shenzhen ;   测试数据库全局名称和公共的数据库链接   SQL>select * from global_na cn;   返回结果为 cn就对了    建立管理数据库复制的用户repadmin 并赋权   ① 用system身份登录shenzhen数据库   SQL>create user repadmin identified by repadmin default tablespace users temporary tablespace temp;   SQL>execute dbms_defer_sys register_propagator( repadmin );   SQL>grant execute any procedure to repadmin;   SQL>execute dbms_repcat_admin grant_admin_any_repgroup( repadmin );   SQL>grant ment any table to repadmin;   SQL>grant lock any table to repadmin;   ② 同样用system身份登录beijing数据库 运行以上的命令 管理数据库复制的用户repadmin 并赋权   说明 repadmin用户名和密码可以根据用户的需求自由命名    在数据库复制的用户repadmin下创建私有的数据库链接   ① 用repadmin身份登录shenzhen数据库   SQL>create database link connect to repadmin identified by repadmin;   测试这个私有的数据库链接   SQL>select * from global_n cn;   返回结果为就对了   ② 用repadmin身份登录beijing数据库   SQL>create database link cn connect to repadmin identified by repadmin;   测试这个私有的数据库链接   SQL>select * from global_na cn;   返回结果为 cn就对了    创建或选择实现数据库复制的用户和对象 给用户赋权 数据库对象必须有主关键字   假设我们用ORACLE里举例用的scott用户 dept表   ① 用internal身份登录shenzhen数据库 创建scott用户并赋权   SQL>create user scott identified by tiger default tablespace users temporary tablespace temp;   SQL>grant connect resource to scott;   SQL>grant execute on sys dbms_defer to scott;   ② 用scott身份登录shenzhen数据库 创建表dept   SQL>create table dept   (deptno number( ) primary key dname varchar ( )   loc varchar ( ) );   ③ 如果数据库对象没有主关键字 可以运行以下SQL命令添加   SQL>alter table dept add (constraint dept_deptno_pk primary key (deptno));   ④ 在shenzhen数据库scott用户下创建主关键字的序列号 范围避免和beijing的冲突   SQL> create sequence dept_no increment by start with maxvalue cycle nocache;   (说明 maxvalue 可以根据应用程序及表结构主关键字定义的位数需要而定)   ⑤ 在shenzhen数据库scott用户下插入初始化数据   SQL>insert into dept values (dept_no nextval accounting new york );   SQL>insert into dept values (dept_no nextval research dallas );   SQL>mit;   ⑥ 在beijing数据库那边同样运行以上① ② ③   ⑦ 在beijing数据库scott用户下创建主关键字的序列号 范围避免和shenzhen的冲突   SQL> create sequence dept_no increment by start with maxvalue cycle nocache;   ⑧ 在beijing数据库scott用户下插入初始化数据   SQL>insert into dept values (dept_no nextval sales chicago );   SQL>insert into dept values (dept_no nextval operations boston );   SQL>mit;    创建要复制的组scott_mg 加入数据库对象 产生对象的复制支持   ① 用repadmin身份登录shenzhen数据库 创建主复制组scott_mg   SQL> execute dbms_repcat create_master_repgroup( scott_mg );   说明 scott_mg组名可以根据用户的需求自由命名   ② 在复制组scott_mg里加入数据库对象   SQL>execute 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 主复制组名   ③ 对数据库对象产生复制支持   SQL>execute dbms_repcat generate_replication_support( scott dept table );   (说明 产生支持scott用户下dept表复制的数据库触发器和程序包)   ④ 确认复制的组和对象已经加入数据库的数据字典   SQL>select gname master status from dba_repgroup;   SQL>select * from dba_repobject;    创建主复制节点   ① 用repadmin身份登录shenzhen数据库 创建主复制节点   SQL>execute dbms_repcat add_master_database   (gname=> scott_mg master=> use_existing_objects=>true copy_rows=>false propagation_mode => asynchronous );   参数说明   gname 主复制组名   master 加入主复制节点的另一个数据库   use_existing_object true表示用主复制节点已经存在的数据库对象   copy_rows false表示第一次开始复制时不用和主复制节点保持一致   propagation_mode 异步地执行   ② 确认复制的任务队列已经加入数据库的数据字典   SQL>select * from user_jobs;    使同步组的状态由停顿(quiesced )改为正常(normal)   ① 用repadmin身份登录shenzhen数据库 运行以下命令   SQL> execute dbms_repcat resume_master_activity( scott_mg false);   ② 确认同步组的状态为正常(normal)   SQL> select gname master status from dba_repgroup;   ③ 如果这个①命令不能使同步组的状态为正常(normal) 可能有一些停顿的复制 运行以下 cha138/Article/program/Oracle/201311/16816

相关参考

知识大全 Oracle数据库高级复制功能介绍

Oracle数据库高级复制功能介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle数

知识大全 Oracle数据库中高级复制的功能介绍

Oracle数据库中高级复制的功能介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  前言  日

知识大全 Oracle的同步复制研究

Oracle的同步复制研究  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库支持高级复制功能

知识大全 Oracle10Gstreams模式级复制

Oracle10Gstreams模式级复制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数据库

知识大全 使用impdp复制oracle的schema数据迁移

  测试环境:   源windowsoracle    目标windowsoracle   &nbs

知识大全 oracle数据库恢复

  没做backup把冷备份复制出来装好oracle  报controlfileversion不匹配oracle版本  试过很多办法都没用最后只好重建controlfile  CREATECONTRO

知识大全 oracle各后台进程介绍

  后台进程用来执行保证数据库运行所需的实际维护任务如某个后台进程维护缓冲区缓存根据需要将块写出到数据文件  另个进程负责在线重做日志文件写满时将它自己复制到一个归档目标  可以通过查询v$bgpro

知识大全 复制本地数据库中的一个表到远程数据库

  首先将要复制的表导入到远程数据假设本地表名为hw在数据库也有一个名为hw的结构相同的表已经有了条数据  导入成功后会新增一个表hw  运行以下语句会复制一个表hw  select*intohwfr

知识大全 怎样使两台服务器的oracle9i的数据同步

  高机复制就是物化视图  物化视图是包括一个查询结果的数据库对像它是远程数据的的本地副本或者用来生成基于数据表求和的汇总表物化视图存储基于远程表的数据也可以称为快照    物化视图可以查询表视图和其

知识大全 excel中复制一行数据,但是粘贴时需要在这行数据的每行插入四个空格,也就是隔四行粘贴一个数,怎么做呢

excel中复制一行数据,但是粘贴时需要在这行数据的每行插入四个空格,也就是隔四行粘贴一个数,怎么做呢假设数据在A列要粘贴到C列在C1中输入或复制粘贴下列公式之一=IF(MOD(ROW(A5),5)=