本机通过复制数据文件创建新的数据库

版权声明:未经博主允许不允许转载 https://blog.csdn.net/qianglei6077/article/details/90137418

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

1 环境

DG物理备库:192.168.1.156
SID:ZDS

新的环境:192.168.1.156
SID:orcl

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

2 准备工作

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

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

2.1 第一步:指定新的SID

orcl

2.2 第二步:TRACE控制文件

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

SQL> alter database backup controlfile to trace;

Database altered.

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,然后将对应的文件拷贝过去。如:

数据文件:

[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

日志文件:

[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

参数文件:

[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里用到的参数:

大概如下:注意红色部分

[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

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方式打开数据库

SQL> alter database open resetlogs;

Database altered.

2.10 第十步:验证

新的库:

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

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

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

猜你喜欢

转载自blog.csdn.net/qianglei6077/article/details/90137418