oracle 10 DG配置

 

最简单的一种情况

Ø  主库和备库的文件路径一致

Ø  主库和备库不需要进行切换

Ø  备库只安装了oracle软件,未安装oracle服务器

1.1主库的设置

1.       判断是否已经安装data guard

Select * from v$option where parameter = ‘Oracle Data Guard’;

2.       服务器配置

10.27.92.201主库 primary(db_name)  primary(db_unique_name)

10.27.92.202 副库 primary(db_name)  standby(db_unique_name)

数据文件的存放位置:C:\oracle\product\10.2.0\oradata\primary

3.       配置监听

listener.ora文件

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)

      (PROGRAM = extproc)

    )

  )

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

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

    )

       )

tnsnames.ora文件

PRIMARY =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = primary)

    )

  )

standby =

  (DESCRIPTION =

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = standby)

    )

  )

EXTPROC_CONNECTION_DATA =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

    )

    (CONNECT_DATA =

      (SID = PLSExtProc)

      (PRESENTATION = RO)

    )

       )

4.       主库设置force logging模式

Select force_logging from v$database;

Alter databse force logging;

5.       创建口令文件

Orapwd file=$ORACLE_HOME/dbs/orapwdbl password=oracle enties=5

主库的日志文件向备库同步的时候,需要进行身份验证。参数文件中有个参数与这个配置相关

6.       主库归档模式

Archive log list

Startup mount

Alter database archivelog;

Alter database open

7.       设置主库本地归档目录

Alter system set log_archive_dest_1=’location=C:\oracle\product\10.2.0\archivedlog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary’ scope = both;

Alter system set log_archive_dest_state_1 = enable scope = both;

alter system set LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC VALID_FOR=(

ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' scope=spfile;

Alter system set log_archive_dest_state_2 = enable scope = both;

Shutdown immediate

Startup

备注:在自动归档模式下,如果没有设置log_archive_dest,则oracle会选择一个默认目录作为归档目的地。log_archive_dest和log_archive_dest_n是互斥的,如果主库和备库互相切换就至少需要2个归档目的地(本地和远端

8.       测试本地归档

Alter system switch logfile;

9.       修改参数文件

Standby_file_management = auto

10.   生成pfile文件

Create pfile = ‘c:\primary_pfile’ from spfile;

11.   主库进行全库的冷备份,包括数据文件,控制文件,日志文件,参数文件,口令文件以及密码文件

12.   生成控制文件

Sql>startup mount

Sql>alter database create standby controlfile as ' C:\oracle\product\10.2.0\oradata\primary\standby_ctl01.ctl'

2.2备库的创建

1.       创建备库的主目录(这些目录在控制文件中存在)

Ø  C:\oracle\product\10.2.0\admin\primary\adump

Ø  C:\oracle\product\10.2.0\admin\primary\bdump

Ø  C:\oracle\product\10.2.0\admin\primary\cdump

Ø  C:\oracle\product\10.2.0\admin\primary\dpdump

Ø  C:\oracle\product\10.2.0\admin\primary\udump

Ø  C:\oracle\product\10.2.0\admin\primary\pfile

Ø  C:\oracle\product\10.2.0\flash_recovery_area

Ø  log_archive_dest_1参数值指定的文件目录,本示例中是C:\oracle\product\10.2.0\archivedlog

2.       拷贝主服务器的数据文件、日志文件、密码文件及刚生成pfile文件的文件到备用服务器相对应的目录

Pfiel保存路径为:C:\oracle\product\10.2.0\db_1\database,命名原则是init+db_unique_name+.ora

密码文件的保存路径和pfile的相同

3.       拷贝控制文件

将在主库创建的控制文件standby_ctl01.ctl拷贝到备库中,修改名称并复制2份,放到相应目录下。参考pfile中control_files的值。

4.       修改备库的pfile

Ø  control_files该参数如果和备用数据库的控制文件目录位置不同,则必须修改成备用数据库控制文件的目录位置;

Ø  如果bdump、cdump和udump目录和主库相比发生了变化,则background_dump_dest\core_dump_dest\user_dump_dest三个参数做相应的更改,否则不变;

Ø  加入standby_archive_dest='c:\oracle\archivelog\'; ---该参数记录了主数据库向备用数据库传递归档日志的位置;这里的日志文件应该叫做standby log fie,然后备库的进程将其归档,称为archived log file

Ø  修改standby_file_management=AUTO; ---AUTO用来自动管理归档文件,manual--手工管理,改成auto主库上表空间、数据文件的增加或者删除可以在从库上自动同步。但是当值设为auto,不能进行alter database rename file ... to ... 的操作

Ø  保持db_name不变,但是添加一个值db_unique_name=standby

物理备库的db_name必须和主库的db_name相同

5.       创建备用库的数据库实例

c:\>oradim -new -sid standby -srvc oracleServiceORCL -startmode manual -pfile C:\oracle\product\10.2.0\db_1\database\initstandby.ora;

6.       创建备用库的listener服务

从主库拷贝tnsnames.ora、listener.ora文件,并修改拷贝来的listener.ora文件,只需要修改里面的HOST地址,指向备库10.27.92.202即可

7.       备用和主库都检测listener能否正常启动;

lsnrctl start;

LSNRCTL>STATUS;

如果状态正常则ok;

8.       备用和主库都检测tnsnames配置情况;

c:\>tnsping primary;

c:\>tnsping standby;

如果都正常的话说明主、备数据库之间的通讯就没有问题

9.       启动standby数据库;

c:\>sqlplus /nolog

sql>conn / as sysdba

sql>create spfile from pfile=’ C:\oracle\product\10.2.0\db_1\database\initstandby.ora’

sql>startup nomount

或者指定pfile

sql>startup nomount pfile='C:\oracle\product\10.2.0\db_1\database\initstandby.ora'

sql>alter database mount standby database;

--设置备库处于应用归档状态

如果在连接时抛出异常:ORA-12560: TNS 协议适配器错误的问题,尝试下面的解决办法:打开注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1添加环境变量ORACLE_SID设置为XXXX,XXXX就是你的database SID

sql>alter database recover managed standby database disconnect from session;

10.   回到主库服务器,对主库进行操作;

---继主库create standby controlfile之后的操作

sql>alter database open;

执行若干数据库操作

sql>alter system switch logfile;

sql>alter system switch logfile;

多切换几次

11.   转回备用库

sql>alter database recover managed standby database cancel;

sql>alter database open read only

你可能感兴趣的:(oracle,数据库,database,System,logging,archive)