ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle9204(9i)_linux_logical db构建指南

oracle9204(9i)_linux_logical db构建指南

原创 Linux操作系统 作者:wisdomone1 时间:2010-02-04 21:37:54 0 删除 编辑

与10g dg最大区别:你要一步步,如红军涉二万五千里长片一般,配置9i logical dg,而非可由physical db conversion

1,前提:
       primary
              archive mode
              force logging
              log_parallelism配置为1
               enable supplemental  logging
    
--查是否开启   

SELECT SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI FROM V$DATABASE;

--如无,开启
   
 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY, UNIQUE INDEX) COLUMNS;


2,简略描述下相关logical standby db creation processes
--就是切下日志,让上面supplemental logging生效,日志不能共存于:no and yes
ALTER SYSTEM ARCHIVE LOG CURRENT;

--在主库添加一个专用于logical standby db的表空间,为什么呢?一般用于管理它们的信息全存储在system表空间,呵,为了减负;所以。

CREATE TABLESPACE logmnrts DATAFILE '/disk1/oracle/dbs/logmnrts.dbf'
2> SIZE 25M AUTOEXTEND ON MAXSIZE UNLIMITED;
SQL> EXECUTE DBMS_LOGMNR_D.SET_TABLESPACE('logmnrts');


---shutdown immediate 主库,cp or scp 所有v$datafile内容

---把主库startup mount,生产出一个用于logical standby db的控制文件

SQL> ALTER DATABASE BACKUP CONTROLFILE TO
2> '/disk1/oracle/oradata/payroll/standby/payroll3.ctl';

---为了防止在构建logical dg,有不法分子对主库进行ddl and dml

ALTER SYSTEM ENABLE RESTRICTED SESSION;

---open 主库,且生成用于logical db的dictionary
SQL> ALTER DATABASE OPEN;
SQL> EXECUTE DBMS_LOGSTDBY.BUILD;


--归档当前主库日志,且查询最新的归档日志,这个信息,要用于在权建的备库上注册及应用哟,很重要的
SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;
SQL> SELECT NAME FROM V$ARCHIVED_LOG
2> WHERE (SEQUENCE#=(SELECT MAX(SEQUENCE#) FROM V$ARCHIVED_LOG
3> WHERE DICTIONARY_BEGIN = 'YES' AND STANDBY_DEST= 'NO'));

--根据主库,生成备库的pfile
需要注意几个参数,其他无异
instance_name--不同于主库的sid
lock_name_space --同上
standby_archive_dest --这目录,就是主库rfs过来的归档存储地哟


---startup mount pfile --mount备库
--如备库数据文件及日志文件所在与主库有所不同,运行如下脚本
SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/system01.dbf'
2> TO '/disk1/oracle/oradata/payroll/standby/system01.dbf';

SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/undotbs01.dbf'
2> TO '/disk1/oracle/oradata/payroll/standby/undotbs01.dbf'

SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/cwmlite01.dbf'
2> TO '/disk1/oracle/oradata/payroll/standby/cwmlite01.dbf'
.

SQL> ALTER DATABASE RENAME FILE '/disk1/oracle/oradata/payroll/redo01.log'
2> TO '/disk1/oracle/oradata/payroll/standby/redo01.log';



---为了防止有淘气小孩,破坏备库内容
SQL> ALTER DATABASE GUARD ALL;
SQL> ALTER DATABASE OPEN RESETLOGS;

--逻辑备库的db_name要用dbnewid修改下,在未重启备库前,重新生成密码文件及pfile中的db_name

shutdown immeidate
startup mount pfilr
nid TARGET=SYS/password@PAYROLL3 DBNAME=PAYROLL3 --

orapwd --生成备库新的密码文件

vi pfile --备库的哟,改db_name与nid的信息一致

--这下以上db_name修改好了,关闭备库,启动备库到mount
shutdown immediate
sqlplus '/as sysdba'
create spfile from pfile='备库pfile' ---发现原来实例在未到nomount也可以根据pfile生成spfile

--open resetlogs备库
alter database open resetlogs;


---为备库删除已存在或添加新的临时文件
select * from v$tempfile;

如有,删除
ALTER DATABASE TEMPFILE 'tempfilename' DROP;


添加临时文件
  1. SQL> SELECT TABLESPACE_NAME FROM DBA_TABLESPACES WHERE 
    2> CONTENTS ='TEMPORARY';

    TABLESPACE_NAME
    --------------------------------
    TEMP

  2. Add a new temporary file, for example:
    SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 
    2> '/disk1/oracle/oradata/payroll/standby/temp01.dbf'
    3> SIZE 40M REUSE;


---注册以上相关步在主库,archive log current查询到(已scp到备库)相关归档文件
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE 
2> '/disk1/oracle/oradata/payroll/standby/arc0004.001';


--开启备库sql apply
ALTER DATABASE START LOGICAL STANDBY APPLY INITIAL;--注意用了initial,因为首次开启,以后就可以不用这个选项了

可以采用如下
SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;
SQL> ALTER DATABASE START LOGICAL STANDBY APPLY;



















来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-626852/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12689910