暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle 复制数据库

oracleEDU 2017-10-05
1349

Oracle 11g的RMAN duplicate 可以通过Active database duplicate和Backup-based duplicate两种方法实现。本案例使用的是Active database duplicate,对于Active database duplicate来说,在克隆数据库时不用对Source备份,这对于大数据特别是T级别的数据库来说优点非常明显,复制前不需要进行备份,减少了备份和传送备份的时间,同时节省备份空间。

复制的数据库有很多用途,其中大部分涉及测试。可以在一个复制的数据库执行以下任务:

测试备份和恢复过程

◇ 测试升级到一个新的Oracle数据库版本

◇ 测试数据库性能的应用效果

创建备用数据库

◇ 生成报告

案例

做测试库

因为测试,使用同机环境:

orcl 数据库  --> 复制到  orclb 数据库

源库:orcl  ASM存储

目标库:orclb  文件系统

Source库信息
1

SQL> select status from v$instance;

STATUS

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

OPEN

SQL> select name from v$datafile;

NAME

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

+DATA/orcl/datafile/system.256.853076377

+DATA/orcl/datafile/sysaux.257.853076377

+DATA/orcl/datafile/undotbs1.258.853076379

+DATA/orcl/datafile/users.259.853076379

+DATA/orcl/datafile/ogg_tbs.266.853085725

+DATA/orcl/datafile/django.268.853115789

+DATA/orcl/datafile/undo01.281.951036261

+DATA/orcl/datafile/sts.282.951044749

8 rows selected.

SQL> select member from v$logfile;

MEMBER

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

+DATA/orcl/onlinelog/group_3.263.853076511

+FRA/orcl/onlinelog/group_3.259.853076513

+DATA/orcl/onlinelog/group_2.262.853076503

+FRA/orcl/onlinelog/group_2.258.853076509

+DATA/orcl/onlinelog/group_1.261.853076497

+FRA/orcl/onlinelog/group_1.257.853076499

6 rows selected.

SQL> show parameter name;

NAME     TYPE VALUE

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

db_file_name_convert     string

db_name     string orcl

db_unique_name     string orcl

global_names     boolean FALSE

instance_name     string orcl

lock_name_space     string

log_file_name_convert     string

service_names     string orcl.example.com

SQL> archive log list

Database log mode       Archive Mode

Automatic archival       Enabled

Archive destination       USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     23

Next log sequence to archive   25

Current log sequence       25

建立密码文件
2

cd $ORACLE_HOME/dbs

orapwd file=$ORACLE_HOME/dbs/orapworclb password=oracle

为辅助库建立网络连接(orclb)
3

给orclb实例建立监听 (静态注册),监听注册服务名ORCLB

su - grid

netmgr    #(最好用图形做,减少出错几率)

目标数据库做静态注册

 SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = orclb)

      (ORACLE_HOME = u01/app/oracle/product/11.2.0/dbhome_1)

      (SID_NAME = orclb)

    )

  )

lsnrctl  reload

lsnrctl status

Service "orclb" has 1 instance(s).

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

配置tnsnames.ora

su - oracle 

ORCLB =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orclb)

    )

  )

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl.example.com)

    )

测试:

tnsping orclb

建立新数据库的初始化参数文件
4

确保参数文件中的目录一定先存在的

规划是:把所有的数据文件日志文件控制文件全部保存到/u01/app/oracle/orclb

mkdir u01/app/oracle/orclb  (把所有的数据多存储在文件系统上)

mkdir -p u01/app/oracle/admin/orclb/adump

mkdir  -p u01/app/oracle/admin/orclb/flash_recovery_area

保证参数文件中出现的目录一定是存在的。

借助orcl实例的spfile --> 生成orclb的pfile:

export ORACLE_SID=orcl

sqlplus  / as sysdba

create pfile='/u01/app/oracle/initorclb.ora' from spfile ;

编辑pfile文件:

vi u01/app/oracle/initorclb.ora 

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

*.audit_sys_operations=TRUE

*.audit_trail='DB_EXTENDED'

*.compatible='11.2.0.0.0'

*.control_files='+DATA/orcl/controlfile/current.260.853076495','+FRA/orcl/controlfile/current.256.853076495'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain='example.com'

*.db_name='orclb'

*.db_recovery_file_dest='+FRA'

*.db_recovery_file_dest_size=21411921920

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

*.dispatchers=''

*.local_listener=''

*.max_dispatchers=0

*.max_shared_servers=0

*.memory_target=536870912

*.open_cursors=300

*.parallel_force_local=TRUE

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.resource_limit=TRUE

*.resource_manager_plan='DEVELOPERS'

*.shared_server_sessions=140

*.shared_servers=0

*.undo_tablespace='UNDO01'

源数据库文件:

+DATA/orcl/datafile  --> /u01/app/oracle/orclb

源数据库日志文件:

+DATA/orcl/onlinelog --> /u01/app/oracle/orclb

+FRA/orcl/onlinelog --> /u01/app/oracle/orclb

修改参数文件,增加如下两条:

DB_FILE_NAME_CONVERT='+DATA/orcl/datafile','/u01/app/oracle/orclb'

LOG_FILE_NAME_CONVERT='+DATA/orcl/onlinelog','/u01/app/oracle/orclb','+FRA/orcl/onlinelog','/u01/app/oracle/orclb'

用参数文件启动到mount
5

export ORACLE_SID=orclb

sqlplus as sysdba

startup nomount pfile='/u01/app/oracle/initorclb.ora'

断开会话 不能有连接(复制的时候是不允许任何会话连接复制数据库,否则就失败)

exit

mount或者open源数据库
6

源数据库处于mount或者open状态。

确保备份和归档日志文件可用
7

建议alter system switch logfile ;

分配通道复制数据库
8

确保没有任何会话连接orclb

$ rman target sys/oracle@orcl auxiliary sys/oracle@orclb

Recovery Manager: Release 11.2.0.1.0 - Production on Fri Aug 4 10:49:00 2017

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1380857230)

connected to auxiliary database: ORCL (not mounted)

输入命令:

RMAN> DUPLICATE TARGET DATABASE to orclb;

或者

RMAN> duplicate database to orclb from active database nofilenamecheck;

生成spfile
9

删除参数:DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT

shutdown immediate;

vi initorclb.ora

删除参数:DB_FILE_NAME_CONVERT LOG_FILE_NAME_CONVERT)

create spfile from pfile='/u01/app/oracle/initorclb.ora';

启动:

startup

SQL> select status from v$instance;

STATUS

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

OPEN

测试是否成功
10

$ export ORACLE_SID=orclb

$ sqlplus  / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sun Apr 21 11:31:09 2013

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



Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> select count(*) from scott.emp;


  COUNT(*)

----------

        14



最后修改时间:2021-04-28 20:13:13
文章转载自oracleEDU,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论