创建物理备用数据库(完美)

创建物理备用数据库(李)

2012413

11:29

 

 

 

 

1、备份主库(冷备)

 

2、将数据设置为强制logging

 

01:27:05 SQL> shutdown immediate;   

                                                                                                   

Database closed.

Database dismounted.

ORACLE instance shut down.

 

01:27:32 SQL> startup mount         

                                                                                                    

ORACLE instance started.

 

Total System Global Area  419430400 bytes

Fixed Size                  1219760 bytes

Variable Size              58721104 bytes

Database Buffers          356515840 bytes

Redo Buffers                2973696 bytes

Database mounted.

 

01:27:45 SQL> alter database force logging;                                                                                              

 

Database altered.

 

01:28:33 SQL> alter database open;                                                                                                       

 

Database altered.

 

3添加standby redo(最大保护、最大可用模式)日志组,日志组个数大于或等于online redo group

 

01:28:42 SQL> select * from v$log;                                                                                                       

 

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------

         1          1         40   10485760          2 YES INACTIVE                147064 13-NOV-11

         3          1         42   10485760          2 NO  CURRENT                 188701 13-NOV-11

         2          1         41   10485760          2 YES INACTIVE                167776 13-NOV-11

 

01:30:04 SQL> alter database add standby logfile       '/u01/app/oracle/oradata/oradb/stdredo04a.log' size 10m;                                                                  

 

Database altered.

 

01:31:13 SQL> alter database add standby logfile       '/u01/app/oracle/oradata/oradb/stdredo05a.log' size 10m;                                                                  

 

Database altered.

 

01:31:19 SQL> alter database add standby logfile       '/u01/app/oracle/oradata/oradb/stdredo06a.log' size 10m;                                                                  

 

Database altered.

 

01:31:25 SQL> alter database add standby logfile       '/u01/app/oracle/oradata/oradb/stdredo07a.log' size 10m;                                                                  

 

Database altered.

 

01:31:31 SQL> select * from v$log; 

 

 

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------

         1          1         40   10485760          2 YES INACTIVE                147064 13-NOV-11

         3          1         42   10485760          2 NO  CURRENT                 188701 13-NOV-11

         2          1         41   10485760          2 YES INACTIVE                167776 13-NOV-11

 

01:31:38 SQL> col member for a50                                                                                                        

01:31:43 SQL> select group#,member from v$logfile;                                                                                       

 

    GROUP# MEMBER

---------- --------------------------------------------------

         1 /u01/app/oracle/oradata/oradb/redo01a.log

         2 /u01/app/oracle/oradata/oradb/redo02a.log

         3 /u01/app/oracle/oradata/oradb/redo03a.log

         1 /disk1/oradata/oradb/redo01b.log

         2 /disk1/oradata/oradb/redo02b.log

         3 /disk1/oradata/oradb/redo03b.log

         4 /u01/app/oracle/oradata/oradb/stdredo04a.log

         5 /u01/app/oracle/oradata/oradb/stdredo05a.log

         6 /u01/app/oracle/oradata/oradb/stdredo06a.log

         7 /u01/app/oracle/oradata/oradb/stdredo07a.log

 

 

01:31:50 SQL> desc v$standby_log;                                                                                                        

 Name                                                              Null?    Type

 ----------------------------------------------------------------- -------- --------------------------------------------

 GROUP#                                                                     NUMBER

 DBID                                                                       VARCHAR2(40)

 THREAD#                                                                    NUMBER

 SEQUENCE#                                                                  NUMBER

 BYTES                                                                      NUMBER

 USED                                                                       NUMBER

 ARCHIVED                                                                   VARCHAR2(3)

 STATUS                                                                     VARCHAR2(10)

 FIRST_CHANGE#                                                              NUMBER

 FIRST_TIME                                                                 DATE

 LAST_CHANGE#                                                               NUMBER

 LAST_TIME                                                                  DATE

 

01:32:16 SQL> select  GROUP#,THREAD#,SEQUENCE# ,BYTES,STATUS  ,FIRST_CHANGE# from v$standby_log;                                         

 

    GROUP#    THREAD#  SEQUENCE#      BYTES STATUS     FIRST_CHANGE#

---------- ---------- ---------- ---------- ---------- -------------

         4          0          0   10485760 UNASSIGNED             0

         5          0          0   10485760 UNASSIGNED             0

         6          0          0   10485760 UNASSIGNED             0

         7          0          0   10485760 UNASSIGNED             0

 

 

 

4、将主库数据文件(数据库正常关闭) ,拷贝到备库数据文件所在的目录       

                                                                                             

01:33:07 SQL> shutdown immediate;                                                                                                        

Database closed.

Database dismounted.

ORACLE instance shut down.

01:33:36 SQL> !                                                                                                                         

[oracle@work dbs]$ cd

[oracle@work ~]$ cd /u01/app/oracle/oradata/

[oracle@work oradata]$ mkdir oradbdg

[oracle@work oradata]$ cp /u01/app/oracle/oradata/oradb/*.dbf   /u01/app/oracle/oradata/oradbdg

 

5、生成备库的控制文件(主库在mount下)

 

01:37:43 SQL> alter database create standby controlfile as '/u01/app/oracle/oradata/oradbdg/control01.ctl';                              

 

Database altered.

 

6、修改主库instance pfilespfile,添加备库的信息

 

01:38:34 SQL> show parameter spfile                                                                                                     

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      /u01/app/oracle/product/10.2.0

                                                 /db_1/dbs/spfileoradb.ora

 

01:39:28 SQL> create pfile from spfile;                                                                                                  

 

File created.

 

[oracle@work dbs]$ mkdir -p /disk1/oradata/oradbdg

 

[oracle@work dbs]$ vi   initoradb.ora

 

-----------initoradb.ora下添加以下信息

 

 

DB_UNIQUE_NAME=bjdb                             

LOG_ARCHIVE_CONFIG='DG_CONFIG=(bjdb,shdb)'

 

LOG_ARCHIVE_DEST_1=  'LOCATION=/disk1/arch/oradb       VALID_FOR=(ALL_LOGFILES,ALL_ROLES)        DB_UNIQUE_NAME=bjdb'     ;                                                                      

 

----------归档日志到本地的位置

 

LOG_ARCHIVE_DEST_2='SERVICE=shdb  LGWR ASYNC         VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)        DB_UNIQUE_NAME=shdb'  ;          

 

-------------归档日志到远程

 

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_MAX_PROCESSES=3

 

FAL_SERVER=shdb                                                   -------------对方unique_name

FAL_CLIENT=bjdb                          ;                             -------------本地 unique_name

DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/oradbdg','/u01/app/oracle/oradata/oradb'  ;

LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/oradbdg','/u01/app/oracle/oradata/oradb','/disk1/oradata/oradbdg','/disk1/oradata/oradb'                                                                              -------------redo 日志转换目录

STANDBY_FILE_MANAGEMENT=AUTO

 

7、将主库启动到nomount 状态,检查instance 初始化文件

 

01:52:26 SQL> conn /as sysdba                                                                                                            

Connected to an idle instance.

 

01:52:31 SQL> startup pfile=$ORACLE_HOME/dbs/initoradb.ora nomount          

                                                           

ORACLE instance started.

 

Total System Global Area  419430400 bytes

Fixed Size                  1219760 bytes

Variable Size              58721104 bytes

Database Buffers          356515840 bytes

Redo Buffers                2973696 bytes

 

01:52:54 SQL> show parameter arch                                                                                                        

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

archive_lag_target                   integer     0

log_archive_config                   string      DG_CONFIG=(bjdb,shdb)

log_archive_dest                     string

log_archive_dest_1                   string      LOCATION=/disk1/arch/oradb

                                                   VALID_FOR=(ALL_LOGFILES,ALL_

                                                 ROLES)

                                                   DB_UNIQUE_NAME=bjdb

log_archive_dest_10                  string

log_archive_dest_2                   string      SERVICE=shdb LGWR ASYNC

                                                   VALID_FOR=(ONLINE_LOGFILES,P

                                                 RIMARY_ROLE)

                                                   DB_UNIQUE_NAME=shdb

 

 

01:54:12 SQL> show parameter name                                                                                                        

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_file_name_convert                 string      /u01/app/oradata/oradbdg, /u01

                                                 /app/oracle/oradata/oradb

db_name                              string      oradb

db_unique_name                       string      bjdb

global_names                         boolean     FALSE

instance_name                        string      oradb

lock_name_space                      string

log_file_name_convert                string      /u01/app/oradata/oradbdg, /u01

                                                 /app/oracle/oradata/oradb, /di

                                                 sk1/oradata/oradbdg, /disk1/or

                                                 adata/oradb

service_names                        string      bjdb

 

 

01:54:19 SQL> alter database mount;                                                                                                      

 

Database altered.

 

8配置网络(listener tnsnames

 

[oracle@work admin]$ lsnrctl     status

 

LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 13-NOV-2011 01:56:07

 

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

 

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=work)(PORT=1521)))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production

Start Date                13-NOV-2011 01:55:39

Uptime                    0 days 0 hr. 0 min. 28 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora

Listener Log File         /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log

Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=work)(PORT=1521)))

  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))

Services Summary...

Service "bjdb" has 1 instance(s).

  Instance "oradb", status READY, has 1 handler(s) for this service...

Service "bjdb_XPT" has 1 instance(s).

  Instance "oradb", status READY, has 1 handler(s) for this service...

Service "plsextproc" has 1 instance(s).

  Instance "plsextproc", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

 

 

配置tnsnames.ora 添加如下信息

 

 

bjdb =

 (DESCRIPTION=

  (ADDRESS= (PROTOCOL=tcp)(HOST=192.168.8.240)(PORT=1521))

  (CONNECT_DATA=

     (SERVICE_NAME=bjdb)))

 

shdb =

 (DESCRIPTION=

  (ADDRESS= (PROTOCOL=tcp)(HOST=192.168.8.240)(PORT=1521))

  (CONNECT_DATA=

     (SERVICE_NAME=shdb)))

 

 

9、添加备库的口令文件(注意:sys用户的口令和主库一致)

 

 

[oracle@work admin]$ cd ../../dbs

[oracle@work dbs]$ orapwd file=orapworadbdg password=oracle entries=3

 

10、创建备库的初始化文件,通过主库的初始化文件生成

 

[oracle@work dbs]$ cp initoradb.ora initoradbdg.ora

 

然后配置initoradbdg.ora ,修改以下参数

 

*.control_files='/u01/app/oracle/oradata/oradbdg/control01.ctl'

DB_UNIQUE_NAME=shdb

LOG_ARCHIVE_CONFIG='DG_CONFIG=(bjdb,shdb)'

LOG_ARCHIVE_DEST_1=

 'LOCATION=/disk1/arch/oradbdg

  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)

  DB_UNIQUE_NAME=shdb'

 

LOG_ARCHIVE_DEST_2=

 'SERVICE=bjdb LGWR ASYNC

  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

  DB_UNIQUE_NAME=bjdb'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_MAX_PROCESSES=10

 

 

FAL_SERVER=bjdb

FAL_CLIENT=shdb

DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/oradb','/u01/app/oracle/oradata/oradbdg'

LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/oradb','/u01/app/oracle/oradata/oradbdg','/disk1/oradata/oradb','/disk1/oradata/oradbdg'

STANDBY_FILE_MANAGEMENT=AUTO

 

 

11、启动备库到nomount 状态

 

[oracle@work ~]$ export ORACLE_SID=oradbdg

[oracle@work ~]$ sqlplus '/as sysdba'

 

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Nov 13 02:03:58 2011

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

02:03:58 SQL>

02:03:58 SQL> startup nomount;                                                                                                           

ORACLE instance started.

 

Total System Global Area  419430400 bytes

Fixed Size                  1219760 bytes

Variable Size              58721104 bytes

Database Buffers          356515840 bytes

Redo Buffers                2973696 bytes

02:04:05 SQL> alter database mount;                                                                                                      

 

Database altered.

 

 

12、测试网络环境,保证主库和备库可以互访

 

02:04:51 SQL> show parameter name ;                                                                                                    

 

NAME                                                TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_file_name_convert                 string      /u01/app/oradata/oradb, /u01/app/oracle/oradata/oradbdg

                                              

db_name                                        string            oradb

db_unique_name                         string            shdb

global_names                             boolean         FALSE

instance_name                             string          oradbdg

lock_name_space                        string

log_file_name_convert              string        /u01/app/oradata/oradb,      /u01/app/oracle/oradata/oradbdg,

                                                                          /disk1/oradata/oradb,             /disk1/oradata/oradbdg

service_names                        string      shdb

 

 [oracle@work dbs]$ sqlplus sys/oracle@shdb as sysdba

 

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Nov 13 02:08:23 2011

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

 

02:08:23 SQL>

 

[oracle@work dbs]$ sqlplus sys/oracle@bjdb as sysdba

 

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Nov 13 02:08:29 2011

 

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

  

 

13、启动主库进行测试

 

02:09:19 SQL> alter database open;                                                                                                       

 

Database altered.

 

02:09:35 SQL> select * from v$log;                                                                                                       

 

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIM

---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ---------

         1          1         43   10485760          2 YES INACTIVE                191448 13-NOV-11

         3          1         45   10485760          2 NO  CURRENT                 191565 13-NOV-11

         2          1         44   10485760          2 YES INACTIVE                191450 13-NOV-11

 

02:09:50 SQL> select name from v$archived_log;                                                                                           

 

NAME

------------------------------------------------------------------------------------------------------------------------

/disk1/arch/oradb/arch_1_41_767058760.log

/disk1/arch/oradb/arch_1_42_767058760.log

/disk1/arch/oradb/arch_1_43_767058760.log

/disk1/arch/oradb/arch_1_44_767058760.log

 

---------主库信息

 

02:12:28 SQL> select name ,PROTECTION_MODE,GUARD_STATUS,SWITCHOVER_STATUS ,DB_UNIQUE_NAME,DATABASE_ROLE from v$database;                

 

NAME      PROTECTION_MODE      GUARD_S SWITCHOVER_STATUS    DB_UNIQUE_NAME                 DATABASE_ROLE

--------- -------------------- ------- -------------------- ------------------------------ ----------------

ORADB     MAXIMUM PERFORMANCE  NONE    TO STANDBY           bjdb                           PRIMARY

 

---------备库信息

 

02:10:41 SQL> select name ,PROTECTION_MODE,GUARD_STATUS,SWITCHOVER_STATUS ,DB_UNIQUE_NAME,DATABASE_ROLE from v$database;                

 

NAME      PROTECTION_MODE      GUARD_S SWITCHOVER_STATUS    DB_UNIQUE_NAME                 DATABASE_ROLE

--------- -------------------- ------- -------------------- ------------------------------ ----------------

ORADB     MAXIMUM PERFORMANCE  NONE    RECOVERY NEEDED      shdb                           PHYSICAL STANDBY

 

14、备库做recover,应用归档日志

 

 

 

 

 

 

 

 

 

 

 

 

 

 

创建时间:2022-03-31 21:04
浏览量:0