oracle 19c 克隆数据库到本地,感受丝般顺滑

我有个库,请在本地复制出一个新的。

安排

19c 单机 linux 本机已经有一个实例 apex,新实例名就叫 orcl 吧,数据要一样
本机IP : 192.168.1.2
ORACLE_HOME : /u01/app/oracle/product/19.0.0/dbhome_1

前提:

源主机和目标主机相同。
源数据库和复制数据库都使用 Oracle Managed Files (OMF) 管理数据库文件。
重复的数据库文件使用与源数据库不同的目录结构。
源数据库在ARCHIVELOG模式下运行并且在复制过程中可用。
源数据库 apex 和复制数据库的服务名称是 orcl. 源数据库使用服务器参数文件 (spfile)。

步骤:

为重复数据库创建目录
为辅助实例创建初始化参数文件
为辅助实例创建密码文件
在源数据库和辅助实例之间建立 Oracle Net 连接
启动辅助实例,开始克隆

开始


#因为在同一台机器要先设置静态侦听,否则 rman 无法连接辅助实例
export ORACLE_SID=orcl

cat >> $ORACLE_HOME/network/admin/listener.ora <<eof
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = $ORACLE_SID)
      (ORACLE_HOME = $ORACLE_HOME)
      (SID_NAME = $ORACLE_SID)
    )
  )
eof

lsnrctl reload
lsnrctl stat

export DUPDIR=/u01/app/oracle/oradata/$ORACLE_SID
mkdir -p $DUPDIR
cat > $ORACLE_HOME/dbs/init$ORACLE_SID.ora<<eof
DB_NAME=$ORACLE_SID
CONTROL_FILES='$DUPDIR/control01.ctl'
DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/APEX','$DUPDIR'
LOG_FILE_NAME_CONVERT='/u01/app/oracle/oradata/APEX','$DUPDIR'
eof

cp $ORACLE_HOME/dbs/orapwapex $ORACLE_HOME/dbs/orapworcl

sqlplus / as sysdba <<eof
startup nomount pfile='$ORACLE_HOME/dbs/init$ORACLE_SID.ora';
exit
eof

#本来打算简化为 startup nomount,但是有可能dbs目录下有旧的spfile文件;本来想加个force,考虑到本机操作,还是小心些,万一连错实例呢。

rman TARGET sys/[email protected]:1521/apex auxiliary sys/[email protected]:1521/orcl
DUPLICATE DATABASE to orcl FROM ACTIVE DATABASE;

结束

你可能感兴趣的:(数据库,oracle,服务器)