本机克隆oracle实例
旧实例: ora12c
新实例: ora12c2
===========================================
-- 新实例新建参数文件,新实例名,旧db_name
ora12c2.__data_transfer_cache_size=0
ora12c2.__db_cache_size=637534208
ora12c2.__java_pool_size=16777216
ora12c2.__large_pool_size=33554432
ora12c2.__oracle_base='/opt/oracle'#ORACLE_BASE set from environment
ora12c2.__pga_aggregate_target=671088640
ora12c2.__sga_target=973078528
ora12c2.__shared_io_pool_size=50331648
ora12c2.__shared_pool_size=218103808
ora12c2.__streams_pool_size=0
*.audit_file_dest='/opt/oracle/admin/ora12c2/adump'
*.audit_trail='db'
*.compatible='12.1.0.2.0'
*.control_files='/opt/oracle/oradata/ora12c2/control01.ctl','/opt/oracle/fast_recovery_area/ora12c2/control02.ctl'
*.db_block_size=8192
*.db_name='ora12c'
*.db_recovery_file_dest='/opt/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4560m
*.diagnostic_dest='/opt/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ora12c2XDB)'
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
--记录原实例文件位置
select name from v$datafile;
select MEMBER from v$logfile;
select FILE_NAME from dba_temp_files;
--拷贝文件
cp /opt/oracle/oradata/ora12c/system01.dbf /opt/oracle/oradata/ora12c2/system01.dbf
cp /opt/oracle/oradata/ora12c/sysaux01.dbf /opt/oracle/oradata/ora12c2/sysaux01.dbf
cp /opt/oracle/oradata/ora12c/undotbs01.dbf /opt/oracle/oradata/ora12c2/undotbs01.dbf
cp /opt/oracle/oradata/ora12c/users01.dbf /opt/oracle/oradata/ora12c2/users01.dbf
cp /opt/oracle/oradata/ora12c/temp01.dbf /opt/oracle/oradata/ora12c2/temp01.dbf
....
--准备创建控制文件命令
alter database backup controlfile to trace as '/tmp/control_rebuild.trc';
新实例启动到nomount状态,创建控制文件,注意修改路径到新文件所在地方,db_name不变.
STARTUP NOMOUNT
CREATE CONTROLFILE set DATABASE "ora12c" RESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '/opt/oracle/oradata/ora12c2/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/opt/oracle/oradata/ora12c2/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/opt/oracle/oradata/ora12c2/redo03.log' SIZE 50M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'/opt/oracle/oradata/ora12c2/system01.dbf',
'/opt/oracle/oradata/ora12c2/sysaux01.dbf',
'/opt/oracle/oradata/ora12c2/undotbs01.dbf',
'/opt/oracle/oradata/ora12c2/users01.dbf'
CHARACTER SET WE8MSWIN1252
;
新实例创建密码文件
orapwd file='$ORACLE_HOME/dbs/orapwora12c2' password=Angel123 entries=5 force=y;
启动实例到mount 状态
修改db_name
nid target=sys/Angel123@ORA12C dbname=ora12c2
也可以这样,直接读环境变量
nid target= / dbname=ora12c2
修改完成后数据库会停掉,修改参数文件里db_name为新名字后起库
startup mount;
alter database open resetlogs;
切换环境变量,启动旧实例
---2个实例都正常启动了
[oracle@localhost ~]$ ps -ef | grep pmon
oracle 17147 1 0 21:47 ? 00:00:00 ora_pmon_ora12c2
oracle 17386 1 0 21:51 ? 00:00:00 ora_pmon_ora12c
oracle 18174 17310 0 22:10 pts/2 00:00:00 grep --color=auto pmon
[oracle@localhost ~]$
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义