oracle数据库克隆总结
- 格式:doc
- 大小:46.00 KB
- 文档页数:8
Oracle12C新特性之PDB热克隆(本地克隆、远端异机克隆)说明:版本12.2.0.112c r1版本中 clone ⼀份PDB源库需要打开在read only只读模式 , 在12c r2版本中引⼊了local undo mode, 源PDB在read/write 读写模式也可以 clone 。
local undo mode 也是oracle推崇的模式。
说明: shared undo 与 Local undo 模式切换可以参考 /zhang123456456/article/details/71374528要求:1、 Archive Log Enabled2、 Local Undo Enabled3、 destination CDB must have a public database link to the source CDB,have sufficient privileges to use the database link.⼀、克隆本地pdb[oracle@12c ~]$ sqlplus / as sysdba-- 检查是否开启 local undoSQL>col PROPERTY_NAME for a25;col PROPERTY_VALUE for a25;select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED'; PROPERTY_NAME PROPERTY_VALUE------------------------- -------------------------LOCAL_UNDO_ENABLED TRUESQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NOSQL> show parameter pdb_file_name_convertNAME TYPE VALUE------------------------------------ ----------- ------------------------------pdb_file_name_convert string-- clone pdb 数量为⼀,注意这⾥ pdb_file_name_convert 参数⽣效级别设置的是 session ,如有需要,⾃⾏设置为全局SQL> alter session set pdb_file_name_convert='pdb01','pdb02';Session altered.SQL> create pluggable database pdb02 from pdb01;Pluggable database created.SQL> alter pluggable database pdb02 open;Pluggable database created.SQL> alter pluggable database pdb02 close immediate;Pluggable database altered.-- clone pdb 数量为多SQL> alter session set pdb_file_name_convert='pdb01','pdb02,pdb03';Session altered.SQL> create pluggable database pdb03 from pdb01;Pluggable database created.SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 MOUNTED5 PDB03 MOUNTEDSQL> alter pluggable database pdb02 open;Pluggable database altered.SQL> alter pluggable database pdb03 open;Pluggable database altered.SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 READ WRITE NO5 PDB03 READ WRITE NO⼆、克隆远程pdb--源端SQL> create user c##andy identified by andy container=all;User created.SQL> grant dba to c##andy container=all;Grant succeeded.-- ⽬标端cdb执⾏SQL> create database link clonePdb connect to c##andy identified by andy using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP) (HOST = 10.219.24.17)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = pdb01)))';Database link created.-- 源端SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO-- ⽬标端cdbSQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 READ WRITE NO5 PDB03 READ WRITE NOSQL> alter session set pdb_file_name_convert='pdb01','pdb04';Session altered.-- 通过 dblink 克隆源端的 pdbSQL> create pluggable database pdb04 from pdb01@clonePdb;Pluggable database created.SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 READ WRITE NO5 PDB03 READ WRITE NO6 PDB04 MOUNTEDSQL> alter pluggable database pdb04 open;alter pluggable database pdb04 open*ERROR at line 1:ORA-14694: database must in UPGRADE mode to begin MAX_STRING_SIZE migrationSQL> ho oerr ora 1469414694, 00000, "database must in UPGRADE mode to begin MAX_STRING_SIZE migration"// *Cause: An attempt was made to update the MAX_STRING_SIZE parameter// to EXTENDED when the database was not in UPGRADE mode.//* Action: Restart the database in UPGRADE mode, modify the parameter,// run the utl32k.sql script in $ORACLE_HOME/rdbms/admin, and// restart the database in normal mode.说明:这个报错的原因是⽬标端使⽤了12c的新特性extended data type ,源端没有使⽤这个新特性,从源端克隆过来的pdb需要扩展extended data type 新特性与⽬标端保持⼀致。
数据库之间的表格复制例:从wxfctjdb复制表格到本机orcl数据库ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))WXFC =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))方法1:创建dblink1、登录本机orcl数据库打开cmd,输入 sqlplus sys/Oracle123 as sysdba 回车方法2:copy from1、登录本机orcl数据库打开cmd,输入sqlplus sys/Oracle123 as sysdba 回车2、复制表格copy from wxfctjdb/wxfctjdb@wxfc to wxfctjdb/wxfctjdb@orcl create fwdjmxb using select * from fwdjmxbcopy from wxfctjdb/wxfctjdb@wxfc create fwdjmxb using select * from fwdjmxbinsert into thp_reginfo select * from view_reginfo 表结构一样,数据复制create table a as select * from b 创建表create view view_a as select * from b 创建视图3、bat法select table_name from user_tables 查询当前用户下所有表名创建一个.sql文件copy from decision/decision@acfc create HOUSE_NATURE using select * from HOUSE_NATURE;copy from decision/decision@acfc create HTBA_CONTRACTBLD using select * from HTBA_CONTRACTBLD; 创建一个.dat文件,引用 .sql文件,log为输出日志文件@echo offsqlplus acfc/acfc@orcl @E:\1.sql > log.txtexit。
oracle数据迁移方法Oracle数据迁移是将现有的Oracle数据库中的数据、表结构以及相关的约束条件等迁移到另一个Oracle数据库中的过程。
在实际的数据迁移中,存在以下几种常见的方法和工具:1.手动数据迁移:手动数据迁移是一种基本的迁移方法,它需要手工编写SQL语句完成数据迁移的操作。
这种方法适用于迁移的数据量较小的情况,迁移过程相对简单。
迁移操作可以分为以下几个步骤:-创建目标数据库-创建目标数据库的表结构,包括表、索引、约束等-导出源数据库中的数据-将导出的数据文件导入到目标数据库中手动数据迁移方法的优点是灵活性高,适用于各种复杂情况下的迁移操作。
但是由于需要手工编写SQL语句,容易出现错误,对于数据量较大的迁移任务来说,效率较低。
2. Oracle迁移工具:Oracle官方提供了多个数据迁移工具,如Oracle Data Pump和Oracle GoldenGate等。
- Oracle Data Pump是一个用于高效迁移数据和元数据的工具。
它支持全库导出和导入,可以将源数据库中的数据、表结构、存储过程等导出为二进制文件,然后通过网络或者直接复制文件的方式导入到目标数据库中。
Oracle Data Pump在迁移时可以进行数据过滤、表空间映射等操作,可以对数据进行压缩和加密等处理。
- Oracle GoldenGate是一个实时数据复制和数据同步工具,它可以在源数据库和目标数据库之间实时同步数据,保证两个数据库的数据一致性。
GoldenGate可以进行额外的数据转换和过滤操作,支持多种复杂的迁移场景,如异构数据库迁移、分布式迁移等。
3.第三方迁移工具:除了Oracle官方提供的工具,还有一些第三方的数据迁移工具,如TOAD、SQL Developer等。
这些工具提供了可视化的操作界面,可以简化迁移操作的过程,提高效率。
-TOAD是一款功能强大的数据库管理工具,具有数据导入导出、数据比较、数据同步等功能。
一、什么是Oracle Copy?Oracle Copy是一种数据备份和复制技术,它可以将数据库中的数据复制到其他存储介质中,以便在需要时进行恢复或迁移。
Oracle Copy 可以用于在同一数据库实例中创建备份,也可以用于将数据复制到其他数据库实例中。
它是Oracle数据库管理中常用的工具之一,可以帮助用户更好地保护数据库中的数据,确保数据的安全和可靠性。
二、Oracle Copy的使用场景1.备份数据使用Oracle Copy可以将数据库中的数据备份到磁盘、磁带或云存储中,以防止数据丢失或损坏。
备份数据可以用于恢复意外删除或损坏的数据,也可以用于数据库迁移或升级。
2. 数据迁移当需要将数据库中的数据迁移到其他数据库实例中时,Oracle Copy可以帮助用户将数据复制到目标数据库中,保证数据的一致性和完整性。
这对于数据库升级、迁移或合并非常有用。
3. 数据复制有时用户需要将数据库中的部分数据复制到其他位置进行分析或处理,Oracle Copy可以帮助用户实现数据的复制和传输,确保目标数据的完整性和准确性。
4. 灾难恢复在数据库遭受灾难性损失时,可以使用Oracle Copy进行数据库恢复,将备份数据恢复到原始状态,以减少损失并确保业务的连续性。
5. 测试和开发在测试和开发环境中,可以使用Oracle Copy复制生产环境中的数据,以便开发人员进行测试和开发工作,而不会影响生产环境中的数据。
三、Oracle Copy的使用方法1. 使用RMAN备份Oracle提供了强大的备份和恢复工具RMAN(Recovery Manager),可以通过RMAN进行数据库备份和复制。
用户可以通过RMAN创建全量备份、增量备份或归档日志备份,以及将备份数据复制到其他位置。
2. 使用expdp和impdp工具expdp和impdp是Oracle提供的数据导出和导入工具,可以通过这些工具将数据库中的数据导出到文件中,然后再将导出的数据文件导入到其他数据库中,实现数据的复制和迁移。
oracle主从复制原理Oracle主从复制简介•什么是Oracle主从复制?•主从复制的作用和优点•本文将深入解析Oracle主从复制的相关原理原理解析主从复制的基本概念•主从复制是一种常见的数据库复制技术,它通过将一个数据库的变更复制到其他数据库中,实现数据的同步和备份。
主从复制的流程1.主库产生的变更日志被捕捉2.变更日志被传送到从库3.从库根据变更日志进行数据更新,实现数据库的同步主从复制的角色•主库 (Master)•从库 (Slave)主从复制的工作原理1.主库记录日志 (Redo Log):将所有对数据库的变更操作记录到日志中2.从库请求日志 (Archiver):从库通过请求主库的日志,将日志传送到自己的环境中3.从库重放日志 (Recovery):从库通过重放主库的日志,将日志中的操作在自己的数据库进行执行主从复制的数据同步方式•基于物理的主从复制•基于逻辑的主从复制物理复制 vs 逻辑复制•物理复制:基于数据库的物理备份和日志传输,将改变转发到从库进行执行•逻辑复制:通过逻辑日志记录和重放,将改变在从库上进行重演主从复制的数据一致性•强一致性:在所有从库上重演的操作是按照主库上的顺序依次进行的•弱一致性:不同从库上重演的操作可能出现顺序不同的情况总结•主从复制是一种常见的数据库同步和备份技术,通过将主库的变更复制到从库实现数据的同步。
•主从复制可以基于物理备份和日志传输,也可以基于逻辑日志记录和重放。
•主从复制可以保证数据一致性,但在多从库的情况下,可能出现弱一致性的情况。
以上是对Oracle主从复制的相关原理的深入解析,通过这篇文章的阅读,相信读者对于Oracle主从复制会有更深入的了解。
在进行Oracle数据库迁移时,您可以使用SQL语句来执行数据迁移任务。
以下是一些常用的SQL语句示例:1. 导出数据:```sqlSELECT * FROM 表名INTO OUTFILE '文件路径'```该语句将从指定的表中检索所有数据,并将其导出到指定的文件中。
您需要将"表名"替换为要导出数据的实际表名,并将"文件路径"替换为要导出数据的实际文件路径。
2. 导入数据:```sqlLOAD DATA INFILE '文件路径' INTO TABLE 表名```该语句将从一个文件中加载数据,并将其导入到指定的表中。
您需要将"文件路径"替换为包含要导入数据的实际文件的路径,并将"表名"替换为要将数据导入的实际表名。
3. 创建表:```sqlCREATE TABLE 表名(列1 数据类型, 列2 数据类型, ...);```该语句用于在数据库中创建一个新的表。
您需要将"表名"替换为要创建的表的名称,并在括号内指定每个列的名称和数据类型。
4. 插入数据:```sqlINSERT INTO 表名(列1, 列2, ...) VALUES (值1, 值2, ...);```该语句用于向表中插入新的行数据。
您需要将"表名"替换为要插入数据的实际表名,并在括号内指定要插入的列的名称和对应的值。
5. 更新数据:```sqlUPDATE 表名SET 列= 新值WHERE 条件;```该语句用于更新表中满足指定条件的数据。
您需要将"表名"替换为要更新数据的实际表名,并在SET子句中指定要更新的列和对应的新值,同时在WHERE子句中指定满足条件的数据行。
这只是一些常用的SQL语句示例,实际的数据库迁移可能会涉及更复杂的操作。
根据您的具体需求和数据库结构,您可能需要编写更复杂的SQL语句来完成数据迁移任务。
oracle数据库迁移方案在进行Oracle数据库迁移时,需要考虑到诸多因素,包括数据的完整性、稳定性和安全性。
本文将介绍一种可行的Oracle数据库迁移方案,希望能够对大家有所帮助。
首先,进行数据库迁移前,需要对现有的数据库进行全面的备份。
这一步非常关键,可以保证在迁移过程中出现问题时,能够及时恢复数据,避免造成不必要的损失。
可以选择使用Oracle提供的备份工具,也可以使用第三方备份软件进行备份操作。
其次,确定目标数据库的环境和配置。
在进行数据库迁移时,目标数据库的环境和配置需要与原数据库保持一致,包括操作系统、数据库版本、存储设备等。
如果目标数据库与原数据库的环境有所不同,需要提前进行环境的调整和配置的优化。
接下来,选择合适的迁移工具。
Oracle提供了多种数据库迁移工具,包括Data Pump、Transportable Tablespaces等。
根据实际情况选择合适的迁移工具,并对迁移工具进行详细的配置和参数设置。
然后,进行数据迁移操作。
在进行数据迁移时,需要确保数据的完整性和一致性。
可以选择全量迁移或增量迁移的方式,根据实际情况选择合适的迁移策略。
在迁移过程中,需要对迁移的数据进行验证和测试,确保数据的准确性和完整性。
最后,进行数据库的验证和性能调优。
在完成数据迁移后,需要对目标数据库进行全面的验证和性能调优。
可以使用Oracle提供的性能调优工具,对数据库的性能进行优化和调整,确保数据库的稳定性和高效性。
综上所述,Oracle数据库迁移是一个复杂的过程,需要对各个环节进行详细的规划和操作。
通过本文介绍的迁移方案,希望能够帮助大家顺利完成数据库迁移操作,确保数据的安全和稳定。
祝大家在数据库迁移的过程中顺利完成,谢谢!。
oracle数据迁移方案在企业信息化建设中,数据迁移是非常重要的一项工作。
随着云计算、大数据等技术的发展,企业的数据量也越来越大,为了解决数据存储、备份、恢复等问题,企业需要将数据从一个系统或平台迁移到另一个系统或平台。
本文将介绍一种有效的oracle 数据迁移方案,以帮助企业高效地完成数据迁移工作。
一、方案设计1.1 数据库选型在进行数据迁移之前,需要选择合适的数据库。
目前市场上常见的数据库有Oracle、MySQL、SQL Server等。
本方案使用Oracle作为迁移目标数据库。
1.2 迁移方式数据迁移的方式有很多种,包括数据导出、数据备份恢复、在线数据迁移等。
针对不同的业务场景和数据类型,选择合适的迁移方式可以提高迁移效率和数据安全性。
本方案采用数据备份恢复的方式进行迁移。
1.3 数据备份在进行数据迁移之前,需要进行数据备份。
数据备份是保证数据安全性和完整性的重要手段。
对于oracle数据库,可以使用Oracle RMAN进行备份。
备份文件可以保存在本地磁盘或者网络磁盘中。
1.4 迁移工具选型迁移工具是完成迁移任务的重要工具。
选择合适的迁移工具可以提高迁移效率和数据质量。
本方案采用Oracle Data Pump工具进行数据迁移。
1.5 迁移模式Oracle Data Pump提供了两种迁移模式:全量迁移和增量迁移。
全量迁移将所有数据都导出到新的数据库中,适用于对整个数据库进行迁移。
增量迁移只导出源数据库发生变化的数据,适用于对数据库中部分数据进行迁移。
本方案采用增量迁移模式。
二、方案实施2.1 数据备份首先需要对源数据库进行数据备份。
通过Oracle RMAN制定备份计划,并执行备份任务。
备份文件可以保存在本地磁盘或者网络磁盘中。
备份过程中需要保证数据库和备份文件的一致性,否则可能导致备份文件损坏或者无法恢复。
2.2 迁移目标数据库在目标数据库上创建相应的表空间和用户,并授权用户读取备份文件。
oracle数据库转移教程Oracle数据库转移是指将一个数据库实例移动到另一个位置或环境中的过程。
这可能是因为服务器升级、数据库版本升级、数据中心迁移等原因。
本文将介绍Oracle数据库转移的详细步骤和注意事项。
1. 数据库备份在进行数据库转移之前,首先需要对数据库进行备份。
数据库备份的目的是防止数据丢失或损坏,在转移过程中可以作为恢复的依据。
2. 建立目标环境在目标环境中建立一个新的Oracle数据库实例。
这可以通过Oracle安装程序来实现。
确保目标环境中的数据库版本和原始数据库的版本相同或兼容。
3. 目标数据库配置在目标数据库中进行必要的配置,包括数据库字符集、数据库块大小、内存参数等。
这些参数应与原始数据库保持一致,以确保数据的一致性。
4. 数据文件复制将原始数据库的数据文件复制到目标数据库的合适位置。
数据文件通常位于ORACLE_HOME/dbs目录下。
可以使用操作系统的文件复制命令来完成此步骤。
5. 控制文件和参数文件将原始数据库的控制文件和参数文件复制到目标数据库。
控制文件通常位于ORACLE_HOME/dbs目录下,参数文件通常位于ORACLE_HOME/dbs目录或ORACLE_HOME/dbs/hostname目录下。
同样,可以使用操作系统的文件复制命令来完成此步骤。
6. 导出原始数据库使用Oracle的工具,如exp或expdp工具,对原始数据库进行数据导出。
导出工具将数据库中的数据导出为一个或多个文件。
确保将这些文件保存在安全位置,以便在需要时进行导入。
7. 导入目标数据库使用Oracle的工具,如imp或impdp工具,对目标数据库进行数据导入。
按照导入工具的指导,从第6步中的导出文件中导入数据。
导入工具将会创建表、索引、视图等数据库对象,并将数据填充到这些对象中。
8. 数据库链接和用户权限在目标数据库中,确保与原始数据库相同的数据库链接和用户权限。
这可以保证在转移后的系统中可以继续使用原来的应用程序。
详细讲解Oracle数据库的数据迁移方法Oracle数据库的数据迁移可以使用多种方法,包括传统的物理备份和恢复,逻辑备份和恢复,以及逻辑复制。
下面将详细介绍这些方法。
1. 物理备份和恢复(Physical Backup and Recovery):物理备份和恢复是最常用的数据迁移方法之一、它基于数据库的物理结构,通过将数据文件、控制文件和日志文件等直接复制到目标数据库来完成数据迁移。
具体步骤如下:(1)在源数据库上执行全量备份,包括数据文件、控制文件和日志文件。
(2)将备份文件传输到目标数据库主机。
(3)在目标数据库上恢复备份文件。
物理备份和恢复的优点是速度快,适用于大规模数据迁移,但缺点是需要额外的存储空间以及停机时间。
2. 逻辑备份和恢复(Logical Backup and Recovery):逻辑备份和恢复是另一种常用的数据迁移方法,它基于逻辑结构,通过导出和导入数据来完成数据迁移。
具体步骤如下:(1) 在源数据库上执行逻辑备份,例如使用expdp命令将数据导出为数据泵文件。
(2)将数据泵文件传输到目标数据库主机。
(3) 在目标数据库上执行逻辑恢复,例如使用impdp命令将数据导入。
逻辑备份和恢复的优点是可以选择性地备份和恢复数据,不需要额外的存储空间,但缺点是速度较慢,适用于小规模数据迁移。
3. 逻辑复制(Logical Replication):逻辑复制是一种将源数据库的数据变更应用到目标数据库的方法,它可以实时地将数据更新传输到目标数据库。
具体步骤如下:(1) 在源数据库上启用逻辑复制功能,例如使用Oracle GoldenGate或Oracle Streams。
(2)配置源数据库和目标数据库之间的连接。
(3)在目标数据库上创建复制进程,用于接收源数据库发送的数据变更。
(4)启动复制进程,开始数据复制。
逻辑复制的优点是实时性好,可以减少停机时间,但缺点是配置和管理复杂,需要考虑数据一致性和传输性能等问题。
oracle数据库克隆总结1.本例中原数据库名为TEST备份后数据库名为TESTBAK。
2.察看物理存储,内容包括:数据文件、连机日志文件、控制文件的存储位置及其名称信息a) COLUMN NAME FORMAT A40;b) SELECT FILE#,NAME,STATUS FROM V$DATAFILE;c) SELECT FILE#,NAME,STATUS FROM V$TEMPFILE;d) COLUMN MEMBER FORMAT A40;e) SELECT GROUP#,MEMBER,STATUS FROM V$LOGFILE;f) SELECT NAME,STATUS FROM V$CONTROLFILE;3.查询日志运行方式。
如要备份数据库不能停机,数据库必须处于ARCHIVELOG归档模式a) ARCHIVE LOG LIST;4.记录样本数据库初始化参数的详细设置a) CREATE PFILE=‟存放路径/inittest.ora‟ FROM SPFILE;5.生成样本控制文件的创建脚本,此时脚本记录在最后一个.trc文件中a) Alter database backup controlfile to trace;b) Show parameter user_dump_dest;6.关闭状态下的存储转移a) 可在操作系统下将上面查找到的文件备份到新位置。
或者是用sql脚本《物理备份数据库文件.sql》其中的CLONE_DIR和CP_SCRIPT要根据实际情况具体修改,运行前应确保目标目录已存在并具有访问权限。
(在linux系统下这里最好使用oracle用户进行备份否则还需要重新修改文件的权限)7.打开状态下的存储转移,在这种情况下重新运行克隆数据库的过程中需要数据库恢复操作(RECOVER DATABASE UNTILE CANCEL)a) ARCHIVE LOG LIST;b) SELECT TABLESPACE_NAME,FILE_NAME FROM DBA_DATA_FILES;c) ALTER TABLESPACE …tablespace_name‟ BEGIN BACKUP;d) HOST 操作系统命令拷贝表空间文件e) ALTER TABLESPACE …tablespace_name‟ END BACKUP;f) ALTER SYSTEM SWITCH LOGFILE;8.修改初始化“init文件名.ORA”文件中的内容:a) DB_DOMAIN=b) DB_NAME=c) CONTROL_FILES=(…‟)d) BACKGROUND_DUMP_DEST=e) USER_DUMP_DEST=f) CORE_DUMP_DEST=g) LOG_ARCHIVE_DEST=9.在linux系统下需要使用oracle用户操作,将ORACLE_SID=" "的值改为新克隆的数据的名称。
使用操作系统认证的方式连接数据库a) Sqlplus …/as sysdba‟10.在window系统下需要先建立实例,再以dba身份连接实例a) ORADIM –NEW –SID TESTDB –INTPWD 12345 –STARTMODE MANUALb) Set Oracle_Sid = (填写数据库服务ID)c) SQLPLUS /NOLOGd) CONNECT SYS/123456 AS SYSDBA;11.从保存的初始化参数文件创建新spfile初始化参数,并启动到NOMOUNT转状态a) CREATE SPFILE FROM PFILE=‟ 存放路径/inittest.ora‟;b) STARTUP NOMOUNT;c) 如果上一步提示“bad value '/home/oracle/admin/…/udump' for parameteruser_dump_dest.”说明此目录不存在需要手工创建或到admin目录下将原数据库中的目录复制一份12.创建新的控制文件,修改该.trc文件中控制文件创建脚本部分内容,并在sqlplus中运行脚本a) 删除元命令中的REUSE,在其位置添加SETb) 将原数据库名更改为新数据库名c) 将关键字NORESETLOGS更改为RESETLOGS,更改数据库名后此项必须设置d) 修改数据为鉴和日志文件字句中的存储位置包括存储路径和文件名e) 创建时可能会出现“控制文件已经存在的错误提示”,删除控制文件即可f) 如果出现“…./orapw”这个错误提示,可以使用orapw命令重新创建orapw文件即可,具体使用方法使用orapw help察看13.如果创建控制文件成功此时,数据库应处于mount状态,进行数据库恢复a) RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;b) 期间可能会出现提示需要用户提供重做日志文件的位置,需要当前日志文件,这是可多进行几次尝试。
14.打开数据库,并重置日志a) ALTER DATABASE OPEN RESETLOGS;15.此时临时数据文件仍处于脱机状态需要将他连机a) Select name,status from v$tempfile;b) Select tablespace_name,status,contents from dba_tablespaces;c) Alter tablesp ace “TEMP” add tempfile‟../temp01.ora‟ size 10M reuse;16.至此数据库克隆完成。
下面进行网络配置。
17.通过netmgr命令调出网络配置管理器a) Local->listeners->LISTENER->Database Services中填加新克隆的数据库b) 此时如果lsnrctl如果正在运行需要将他重起,否则下面测试的时候可能找不到相应的数据库c) Local->Service Naming中填加新克隆数据库,这里注意主机名最好添地址,测试的时候可能需要更改测试的用户名和口令,这个是原数据库的口令d) 保存配置并退出18.至此克隆全部完成【test_ora_5684.trc】/home/oracle/admin/test/udump/test_ora_5684.trcOracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionWith the Partitioning, OLAP and Oracle Data Mining optionsJServer Release 9.2.0.4.0 - ProductionORACLE_HOME = /home/oracle/OraHomelSystem name: LinuxNode name: testRelease: 2.4.21-20.ELVersion: #1 Wed Aug 18 20:58:25 EDT 2004Machine: i686Instance name: testRedo thread mounted by this instance: 1Oracle process number: 10Unix process pid: 5684, image: oracle@test (TNS V1-V3)*** SESSION ID:(7.3) 2007-07-30 21:08:35.264*** 2007-07-30 21:08:35.264# The following are current System-scope REDO Log Archival related# parameters and can be included in the database initialization file. ## LOG_ARCHIVE_DEST=''# LOG_ARCHIVE_DUPLEX_DEST=''## LOG_ARCHIVE_FORMAT=%t_%s.dbf# REMOTE_ARCHIVE_ENABLE=TRUE# LOG_ARCHIVE_MAX_PROCESSES=2# STANDBY_FILE_MANAGEMENT=MANUAL# STANDBY_ARCHIVE_DEST=?/dbs/arch# FAL_CLIENT=''# FAL_SERVER=''## LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/OraHomel/dbs/arch'# LOG_ARCHIVE_DEST_1='MANDATORY NOREOPEN NODELAY'# LOG_ARCHIVE_DEST_1='ARCH NOAFFIRM SYNC'# LOG_ARCHIVE_DEST_1='NOREGISTER NOALTERNATE NODEPENDENCY'# LOG_ARCHIVE_DEST_1='NOMAX_FAILURE NOQUOTA_SIZE NOQUOTA_USED'# LOG_ARCHIVE_DEST_STATE_1=ENABLE## Below are two sets of SQL statements, each of which creates a new# control file and uses it to open the database. The first set opens # the database with the NORESETLOGS option and should be used only if # the current versions of all online logs are available. The second# set opens the database with the RESETLOGS option and should be used # if online logs are unavailable.# The appropriate set of statements can be copied from the trace into # a script file, edited as necessary, and executed when there is a# need to re-create the control file.## Set #1. NORESETLOGS case## The following commands will create a new control file and use it# to open the database.# Data used by the recovery manager will be lost. Additional logs may # be required for media recovery of offline data files. Use this# only if the current version of all online logs are available. STARTUP NOMOUNTCREATE CONTROLFILE SET DATABASE "TESTBAK" RESETLOGS NOARCHIVELOG-- SET STANDBY TO MAXIMIZE PERFORMANCEMAXLOGFILES 5MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 1MAXLOGHISTORY 226LOGFILEGROUP 1 '/home/oracle/oradata/testbak/redo01.log' SIZE 100M,GROUP 2 '/home/oracle/oradata/testbak/redo02.log' SIZE 100M,GROUP 3 '/home/oracle/oradata/testbak/redo03.log' SIZE 100M-- STANDBY LOGFILEDATAFILE'/home/oracle/oradata/testbak/system01.dbf','/home/oracle/oradata/testbak/undotbs01.dbf','/home/oracle/oradata/testbak/drsys01.dbf','/home/oracle/oradata/testbak/indx01.dbf','/home/oracle/oradata/testbak/tools01.dbf','/home/oracle/oradata/testbak/users01.dbf','/home/oracle/oradata/testbak/xdb01.dbf','/home/oracle/oradata/testbak/TEST.dbf'CHARACTER SET ZHS16GBK;# Recovery is required if any of the datafiles are restored backups, # or if the last shutdown was not normal or immediate.RECOVER DATABASE# Database can now be opened normally.ALTER DATABASE OPEN;# Commands to add tempfiles to temporary tablespaces.# Online tempfiles have complete space information.# Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE'/home/oracle/oradata/test/temp01.dbf'SIZE 41943040 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M; # End of tempfile additions.## Set #2. RESETLOGS case## The following commands will create a new control file and use it# to open the database.# The contents of online logs will be lost and all backups will# be invalidated. Use this only if online logs are damaged.STARTUP NOMOUNTCREATE CONTROLFILE REUSE DATABASE "TEST" RESETLOGS NOARCHIVELOG-- SET STANDBY TO MAXIMIZE PERFORMANCEMAXLOGFILES 5MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 1MAXLOGHISTORY 226LOGFILEGROUP 1 '/home/oracle/oradata/test/redo01.log' SIZE 100M,GROUP 2 '/home/oracle/oradata/test/redo02.log' SIZE 100M,GROUP 3 '/home/oracle/oradata/test/redo03.log' SIZE 100M-- STANDBY LOGFILEDATAFILE'/home/oracle/oradata/test/system01.dbf','/home/oracle/oradata/test/undotbs01.dbf','/home/oracle/oradata/test/drsys01.dbf','/home/oracle/oradata/test/indx01.dbf','/home/oracle/oradata/test/tools01.dbf','/home/oracle/oradata/test/users01.dbf','/home/oracle/oradata/test/xdb01.dbf','/home/oracle/oradata/test/TEST.dbf'CHARACTER SET ZHS16GBK;# Recovery is required if any of the datafiles are restored backups, # or if the last shutdown was not normal or immediate.RECOVER DATABASE USING BACKUP CONTROLFILE# Database can now be opened zeroing the online logs.ALTER DATABASE OPEN RESETLOGS;# Commands to add tempfiles to temporary tablespaces.# Online tempfiles have complete space information.# Other tempfiles may require adjustment.ALTER TABLESPACE TEMP ADD TEMPFILE'/home/oracle/oradata/test/temp01.dbf'SIZE 41943040 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M; # End of tempfile additions.#【物理备份数据库文件.sql】SET FEEDBACK OFF HEADING OFF VERIFY OFF TRIMSPOOL OFFSET PAGESIZE 0 LINESIZE 200DEFINE CLONE_DIR='/home/oracle/oradata/testbak'DEFINE CP_SCRIPT='/home/oracle/oradata/CP_TEST.SQL'SPOOL &CP_SCRIPTSELECT 'HOST cp '||NAME||' &CLONE_DIR' FROM V$DATAFILE ORDER BY NAME; SELECT 'HOST cp '||NAME||' &CLONE_DIR' FROM V$TEMPFILE ORDER BY NAME; SELECT 'HOST cp '||MEMBER||' &CLONE_DIR' FROM V$LOGFILE ORDER BY MEMBER; SELECT 'HOST cp '||NAME||' &CLONE_DIR' FROM V$CONTROLFILE;SPOOL OFF;SHUTDOWN IMMEDIATE;@&CP_SCRIPTSTARTUP【inittest.ora】*.background_dump_dest='/home/oracle/admin/testbak/bdump'*.compatible='9.2.0.0.0'*.control_files='/home/oracle/oradata/testbak/control01.ctl','/home/o racle/oradata/testbak/control02.ctl','/home/oracle/oradata/testbak/co ntrol03.ctl'*.core_dump_dest='/home/oracle/admin/testbak/cdump'*.db_block_size=8192*.db_cache_size=25165824*.db_domain=''*.db_file_multiblock_read_count=16*.db_name='testbak'*.dispatchers='(PROTOCOL=TCP) (SERVICE=testbakXDB)'*.fast_start_mttr_target=300*.hash_join_enabled=TRUE*.instance_name='testbak'*.java_pool_size=83886080*.large_pool_size=8388608*.open_cursors=300*.pga_aggregate_target=25165824*.processes=150*.query_rewrite_enabled='FALSE'*.remote_login_passwordfile='EXCLUSIVE'*.shared_pool_size=83886080*.sort_area_size=524288*.star_transformation_enabled='FALSE'*.timed_statistics=TRUE*.undo_management='AUTO'*.undo_retention=10800*.undo_tablespace='UNDOTBS1'*.user_dump_dest='/home/oracle/admin/testbak/udump'。