由于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
至此新的数据库已经克隆好了。
版权声明:本文为博主原创文章,未经博主允许不得转载。
克隆
- 上一篇:晨读美文100
- 下一篇:Mysql NDB Cluster搭建测试