【Oracle】 Oracle使用cold backup克隆数据库
2022-06-18 14:39 abce 阅读(103) 评论(0) 编辑 收藏 举报冷备克隆数据库,需要关闭源库。一般用于没有开启归档的测试库。
1 2 3 | 源库:srcdb 目标库:trgdb |
1.将控制信息备份到trace文件(源端执行)
1 | alter database backup controlfile to trace as '/export/home/oracle/ctrl_bkokp.sql' ; |
2.记录下数据文件的位置(源端执行)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SQL> select file_name from dba_data_files; FILE_NAME --------------------------------------------------------------- /u03/oracle/oradata/SRCDB/system01.dbf /u03/oracle/oradata/SRCDB/sysaux01.dbf /u03/oracle/oradata/SRCDB/undotbs01.dbf /u03/oracle/oradata/SRCDB/users01.dbf /u03/oracle/oradata/SRCDB/CTLDATA_01.dbf /u03/oracle/oradata/SRCDB/CTLIDX_01.dbf /u03/oracle/oradata/SRCDB/catalog01.dbf /u03/oracle/oradata/SRCDB/catalog_idx01.dbf /u03/oracle/oradata/SRCDB/GGATE_01.dbf SQL> select file_name from dba_temp_files; FILE_NAME -------------------------------------------------------------- /u03/oracle/oradata/SRCDB/temp01.dbf /u03/oracle/oradata/SRCDB/catalog_temp01.dbf |
3.关闭源库
1 | SHUTDOWN IMMEDIATE; |
4.将数据文件和临时文件拷贝到目标库
1 | scp /u03/oracle/oradata/SRCDB/*dbf oracle@targret-host.dbclass.com:/u03/oracle/oradata/TRGDB/ |
5.目标库准备参数文件
从源库拷贝过来,改一下即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | cat initTRGDB.ora *.audit_file_dest= '/u01/app/oracle/admin/TRGDB/adump' *.audit_trail= 'D *.compatible=' 12.1.0.2.0 ' *.control_files=' /u03/oracle/oradata/TRGDB/control01.ctl ',' /u03/oracle/oradata/TRGDB/control02.ctl ' *.db_block_size=8192 *.db_domain=' ' *.db_name=' TRGDB ' *.diagnostic_dest=' /u01/app/oracle/ '*.event=' ' *.open_cursors=300 *.pga_aggregate_target=524288000 *.processes=1000 *.remote_login_passwordfile=' EXCLUSIVE ' *.sec_case_sensitive_logon=FALSE *.sessions=1536 *.sga_max_size=7373586432 *.sga_target=7373586432 *.undo_tablespace=' UNDOTBS1' |
6.将目标库启动到nomount状态
1 | export ORACLE_SID=TRGDB<br><br>startup nomount pfile=initTRGDB.ora |
7.目标库重建控制文件
使用步骤1创建的trace信息,重建控制文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | SQL> CREATE CONTROLFILE SET DATABASE "SRCDB" RESETLOGS FORCE LOGGING ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 2336 LOGFILE GROUP 1 '/u01/oracle/oradata/TRGDB/redo01.log' SIZE 50M BLOCKSIZE 512, GROUP 2 '/u01/oracle/oradata/TRGDB/redo02.log' SIZE 50M BLOCKSIZE 512, GROUP 3 '/u01/oracle/oradata/TRGDB/redo03.log' SIZE 50M BLOCKSIZE 512 -- STANDBY LOGFILE DATAFILE '/u01/oracle/oradata/TRGDB/system01.dbf' , '/u01/oracle/oradata/TRGDB/CTLDATA_01.dbf' , '/u01/oracle/oradata/TRGDB/sysaux01.dbf' , '/u01/oracle/oradata/TRGDB/undotbs01.dbf' , '/u01/oracle/oradata/TRGDB/CTLIDX_01.dbf' , '/u01/oracle/oradata/TRGDB/users01.dbf' , '/u01/oracle/oradata/TRGDB/catalog01.dbf' , '/u01/oracle/oradata/TRGDB/catalog_idx01.dbf' , '/u01/oracle/oradata/TRGDB/GGATE_01.dbf' CHARACTER SET AL32UTF8 ; / controlfile created; |
这里使用了set database,因为克隆的是个新库。
1 | CREATE CONTROLFILE SET DATABASE “SRCDB” RESETLOGS FORCE LOGGING ARCHIVELOG |
如果想和源库一样,使用reuse database命令。
8.以resetlog模式打开数据库
1 | ALTER DATABASE OPEN RESETLOGS; |
9.添加temp文件
1 2 3 4 5 6 | ALTER TABLESPACE TEMP ADD TEMPFILE '/u03/oracle/oradata/TRGDB/temp01.dbf' SIZE 11529M REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M; ALTER TABLESPACE CATALOG_TEMP ADD TEMPFILE '/u03/oracle/oradata/TRGDB/catalog_temp01.dbf' SIZE 524288000 REUSE AUTOEXTEND OFF ; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)