签到成功

知道了

CNDBA社区CNDBA社区

通过复制数据文件创建新的数据库(同一台机器)

2017-12-15 21:28 1829 0 原创 Oracle 11G
作者: Expect-乐

由于DG备库是只读模式,由于业务需要。临时需要将备库弄成读写模式进行一些测试等等。如果将备库改成读写模式,在改回去会有些麻烦。而且可能会影响主库。所以可以通过复制备库的数据文件进行快速的重新建一个数据库用来测试。俗称‘克隆’

环境

DG物理备库:192.168.1.156

SID:ZDS

新的环境:192.168.1.156

SIDorcl

数据库软件共用,所不同就是数据文件,日志文件,控制文件和参数文件。

准备工作

这里需要说明一下,必须使用原来的oracle用户。所以环境变量这块,只能使用的时候临时配置ORACLE_SID

主要原因是:新的数据库也是使用之前的oracle软件,而之前的权限都是oracle用户的。

2.1   第一步:指定新的SID

orcl

2.2   第二步:TRACE控制文件

用于后面创建新的数据库控制文件

SQL> alter database backup controlfile to trace;

Database altered.

http://www.cndba.cn/Expect-le/article/2483

2.3   第三步:关闭备库

SQL> shutdown immediate

Database closed.
Database dismounted.
ORACLE instance shut down.

2.4   第四步:拷贝所需文件(创建文件夹)

包括数据文件,日志文件,参数文件

2.4.1  查看当前数据库的数据文件信息

数据文件:

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ZDS/system01.dbf
/u01/app/oracle/oradata/ZDS/sysaux01.dbf
/u01/app/oracle/oradata/ZDS/undotbs01.dbf
/u01/app/oracle/oradata/ZDS/users01.dbf
/u01/app/oracle/oradata/ZDS/tmp.dbf

日志文件:这里包括里standby日志文件,拷贝的时候不需要。这在创建控制文件的时候也有体现。

SQL> select MEMBER from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_3_ct1hwcon_.log
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_2_ct1hwckk_.log
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_1_ct1hwcfj_.log
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_5_ct1hwd2p_.log
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_4_ct1hwcxw_.log
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_6_ct1hwd70_.log
/u01/app/oracle/fast_recovery_area/ZDS_S/onlinelog/o1_mf_7_ct1hwdc9_.log

7 rows selected.

参数文件:

SQL> show parameter pfile
NAME	     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
spfile	     string	 /u01/app/oracle/product/11.2.0 .4/db_1/dbs/spfileZDS.ora

2.4.2  新建文件夹,拷贝文件

注意红色部分,创建新的文件夹orcl,然后将对应的文件拷贝过去。如:

 

数据文件:http://www.cndba.cn/Expect-le/article/2483

[root@dg-s oradata]# ll

total 8

drwxr-xr-x  2 oracle oinstall 4096 Apr 28 01:27 orcl    --新建的

drwxrwxr-x. 2 oracle oinstall 4096 Sep 19  2016 ZDS

[root@dg-s oradata]# pwd

/u01/app/oracle/oradata

日志文件:http://www.cndba.cn/Expect-le/article/2483

[root@dg-s fast_recovery_area]# ll
total 12
drwxr-xr-x  5 oracle oinstall 4096 Apr 28 01:11 orcl   --新建的
drwxrwxr-x. 2 oracle oinstall 4096 Mar  3  2016 ZDS
drwxrwxr-x. 5 oracle oinstall 4096 Sep  5  2016 ZDS_S

[root@dg-s fast_recovery_area]# pwd
/u01/app/oracle/fast_recovery_area

参数文件:

http://www.cndba.cn/Expect-le/article/2483

[root@dg-s u01]# cp app/oracle/product/11.2.0.4/db_1/dbs/initZDS.ora app/oracle/product/11.2.0.4_1/dbs/initorcl.ora

注意:权限问题

2.5   第五步:开启原来的备库(不是必须)

SQL> startup

ORACLE instance started.

Total System Global Area  709836800 bytes
Fixed Size	    2256632 bytes
Variable Size	  486539528 bytes
Database Buffers	  218103808 bytes
Redo Buffers	    2936832 bytes
Database mounted.
Database opened.

2.6   第六步:编辑参数文件

去掉一些DG里用到的参数:

大概如下:注意红色部分

http://www.cndba.cn/Expect-le/article/2483


[root@dg-s fast_recovery_area]# cat /u01/app/oracle/product/11.2.0.4/db_1/dbs/initorcl.ora

orcl.__db_cache_size=276824064

orcl.__java_pool_size=4194304

orcl.__large_pool_size=8388608

orcl.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment

orcl.__pga_aggregate_target=306184192

orcl.__sga_target=406847488

orcl.__shared_io_pool_size=0

orcl.__shared_pool_size=109051904

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/app/oracle/admin/ZDS/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl'#Restore Controlfile

*.db_block_size=8192

*.db_domain=''

*.db_name='orcl'

*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'

*.db_recovery_file_dest_size=4385144832

*.db_unique_name='orcl'

*.diagnostic_dest='/u01/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=ZDSXDB)'

*.local_listener='LISTENER_ZDS'

*.log_archive_dest_state_1='enable'

*.log_archive_dest_state_2='enable'

*.memory_target=710934528

*.open_cursors=300

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.standby_file_management='auto'

*.undo_tablespace='UNDOTBS1'

2.7   第七步:用新的pfile文件启动新库到nomount阶段

SQL> startup nomount

ORACLE instance started.

Total System Global Area  709836800 bytes
Fixed Size	    2256632 bytes
Variable Size	  486539528 bytes
Database Buffers	  218103808 bytes
Redo Buffers	    2936832 bytes

http://www.cndba.cn/Expect-le/article/2483
http://www.cndba.cn/Expect-le/article/2483

2.8   第八步:创建新的控制文件

内容大概如下:

CREATE CONTROLFILE set DATABASE "orcl" RESETLOGS NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 '/u01/app/oracle/fast_recovery_area/orcl/onlinelog/o1_mf_1_ct1hwcfj_.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 2 '/u01/app/oracle/fast_recovery_area/orcl/onlinelog/o1_mf_2_ct1hwckk_.log'  SIZE 50M BLOCKSIZE 512,
  GROUP 3 '/u01/app/oracle/fast_recovery_area/orcl/onlinelog/o1_mf_3_ct1hwcon_.log'  SIZE 50M BLOCKSIZE 512
DATAFILE
  '/u01/app/oracle/oradata/orcl/system01.dbf',
  '/u01/app/oracle/oradata/orcl/sysaux01.dbf',
  '/u01/app/oracle/oradata/orcl/undotbs01.dbf',
  '/u01/app/oracle/oradata/orcl/users01.dbf',
  '/u01/app/oracle/oradata/orcl/tmp.dbf'
CHARACTER SET WE8MSWIN1252;

2.9   第九步:resetlogs方式打开数据库

http://www.cndba.cn/Expect-le/article/2483http://www.cndba.cn/Expect-le/article/2483

SQL> alter database open resetlogs;

Database altered.

2.10   第十步:验证

新的库:

可以看到orcl,打开状态是read  write

http://www.cndba.cn/Expect-le/article/2483

SQL> select name,open_mode from v$database;

NAME	  OPEN_MODE
--------- -------------------
ORCL READ WRITE

 

SQL> select file#,status,name from v$datafile;

     FILE# STATUS  NAME
---------- ------- ------------------------------------------------------------
 1 SYSTEM  /u01/app/oracle/oradata/orcl/system01.dbf
 2 ONLINE  /u01/app/oracle/oradata/orcl/sysaux01.dbf
 3 ONLINE  /u01/app/oracle/oradata/orcl/undotbs01.dbf
 4 ONLINE  /u01/app/oracle/oradata/orcl/users01.dbf
 5 ONLINE  /u01/app/oracle/oradata/orcl/tmp.dbf

原来的库:

SQL> select name,open_mode from v$database;

NAME	  OPEN_MODE
--------- --------------------
ZDS READ ONLY

SQL> select file#,status,name from v$datafile;

     FILE# STATUS  NAME
---------- ------- ----------------------------------------------------------------------
 1 SYSTEM  /u01/app/oracle/oradata/ZDS/system01.dbf
 2 ONLINE  /u01/app/oracle/oradata/ZDS/sysaux01.dbf
 3 ONLINE  /u01/app/oracle/oradata/ZDS/undotbs01.dbf
 4 ONLINE  /u01/app/oracle/oradata/ZDS/users01.dbf
 5 ONLINE  /u01/app/oracle/oradata/ZDS/tmp.dbf

至此新的数据库已经克隆好了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

克隆

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
Expect-乐

Expect-乐

关注

Without the continuous bitter cold, there can be no fragrant plum blossom

  • 336
    原创
  • 6
    翻译
  • 100
    转载
  • 41
    评论
  • 访问:1372726次
  • 积分:1957
  • 等级:核心会员
  • 排名:第3名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ