Oracle数据文件迁移
oracle数据迁移从10g到11g
传输数据库——从linux64位oracle10.2.0.5到windows64位11.2.0.11.实验之前先做全备份运行/u01下的脚本rman_full.shexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME/OPatchexport NLS_LANG=AMERICAN_AMERICA.zhs16gbkexport ORACLE_SID=fsdbrman target / log /tmp/rman_full.log append<<EOFrun{allocate channel c1 type disk;allocate channel c2 type disk;backup filesperset 2 database format '/u01/rmanbackup/full_%d_%T_%s_%p';sql 'alter system archive log current';sql 'alter system archive log current';sql 'alter system archive log current';backup archivelog all format '/u01/rmanbackup/arch_%d_%T_%s_%p' delete input; backup current controlfile format '/u01/rmanbackup/ctl_%d_%T_%s_%p';}EOFrman target / log /tmp/rman_delete.log append<<EOFallocate channel for maintenance type disk;crosscheck backup;crosscheck archivelog all;delete noprompt obsolete;EOF2.查看可传输平台,必须要是big对big,little对little源端linux平台,查看linux位数select * from v$database目标windows平台SQL> col PLATFORM_NAME for a40SQL> select platform_name,endian_format from v$transportable_platform order by 2,1;3. 一致性关闭数据库SQL>shutdown immediate;将数据库打开到只读模式SQL>startup mountSQL>alter database opne read only4. 调用dbms_tdb.check_db函数该函数确定数据库是否已经准备好进行传输。
Oracle_表空间(数据文件)迁移
--表空间(数据文件)的迁移--【在线的操作方法-移动表空间的数据文件的路径(更改表空间数据文件的路径)】1.首先确定数据文件的状态要为OFFLINESQL> select tablespace_name,status,contents from dba_tablespaces;2.将该表空间修改为OFFLINE 【以users表空间为例】SQL> alter tablespace USERS offline;SQL> select tablespace_name,status,contents from dba_tablespaces; --查看表空间状态确定修改成功3.移动数据文件到新的路径[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/itpux01.dbf/oracle/oradata/itpuxdb/itpux02.dbf;4.重新命名该表空间的新路径和名称(告诉数据库)SQL> alter tablespace users rename datafile'/oracle/oradata/itpuxdb/itpux01.dbf'to '/oracle/oradata/itpuxdb/itpux001.dbf';5.修改表空间的状态为ONLINE状态SQL> alter tablespace users online;---------------------------------------------------------------------------------------【离线的操作方法-移动数据文件-到其它目录】1.关闭数据库启动到模式下SQL> shutdown immediate;SQL> startup mount;2. 移动数据文件[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/itpux01.dbf/oracle/oradata/itpuxdb/itpux02.dbf3. 重新命名(这里写更改数据库因为数据库没有起来就没有表空间)SQL> alter database rename file'/oracle/oradata/itpuxdb/itpux01.dbf'to'/oracle/oradata/itpuxdb/itpux001.dbf'4. 打开数据库SQL> alter database open5. 检查状态SQL> select * from dba_data_files where tablespace_name='ITPUX01';----------------------------------------------------------------------------------1.copy数据文件到其它目录【因为根目录撑爆,在数据库挂掉的情况下】2.启动startup mount;3.在mount模式下执行这两条命令alter database rename file'/oracle/app/oracle/oradata/ywxt1/undotbs01.dbf'to'/oradata/undotbs01.dbf';alter database rename file'/oracle/app/oracle/oradata/ywxt1/temp01.dbf'to'/oradata/temp01.dbf';4.启动数据库startup---------------------------------------------------------------------------------------把表和索引迁移其它的表空间1.查询该对象存放在哪个表空间select segment_name,tablespace_name,extents,blocks from dba_segments whereowner='SCUSER'2.查询该对象是索引,还是表select object_id,object_name,object_type,status,created from dba_objects whereowner='SCUSER'3.查询索引或者表存放在哪个表空间select index_name,table_name,tablespace_name,status from dba_indexes whereowner='SCUSER'4.移动表到另一个表空间alter table scuser.table01 move tablespace scdata025.查询该表是否移动到该表空间select segment_name,tablespace_name,extents,blocks from dba_segments whereowner='SCUSER'6.检查表是否有效(状态为 VALID 是有效)select object_id,object_name,object_type,status,created from dba_objects whereowner='SCUSER'7.重建索引并且将索引移动到另一个表空间alter index scuser.idx_table01_id rebuild tablespace scdata028.查询索引对应的表空间select index_name,table_name,tablespace_name,status from dba_indexes whereowner='SCUSER'9.如果表空间里面表有大字段?alter table USER.RESUME move lob(INTRO) store as(tablespace USER);。
Oracle数据库迁移的几种方式
Oracle数据库迁移的⼏种⽅式⾯试:⼀、exp/imp逻辑备份与恢复:⼆、Storage存储迁移:将数据⽂件、控制⽂件、⽇志⽂件、spfile挂到新机器上,然后在新机器上启动数据库。
三、利⽤data guard迁移:四、⽤rman做迁移:我们常常需要对数据进⾏迁移,迁移到更性能配置更⾼级的主机OS上、迁移到远程的机房、迁移到不同的平台下,以下介绍ORACLE的⼏种数据库迁移⽅案: ⼀、exp/imp逻辑备份与恢复: 它是最常⽤最简单的⽅法,⼀般是基于应⽤的owner级做导出导⼊。
操作⽅法为:在新库建⽴好owner和表空间,停⽼库的应⽤,在⽼库执⾏:$ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,导⼊dmp⽂件到新库,在新库执⾏如下命令:$ imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y. 优缺点:优点是可以跨平台使⽤;缺点是停机时间长,停机时间为从exp到⽹络传输到新库,再加上imp的时间。
⼆、Storage存储迁移: 这种情况下,数据⽂件、控制⽂件、⽇志⽂件、spfile都在存储上(⼀般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。
操作⽅法:将⽼库的pfile(因为⾥⾯有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码⽂件传到新库的对应位置。
将存储切⾄新机,或者⽤⽂件拷贝或dd的⽅式复制数据⽂件,启动数据库。
优缺点:优点是该迁移⽅式⾮常简单,主要的⼯作是主机⼯程师的⼯作,dba只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新⽼库都是同⼀平台,是相同的数据库版本。
三、利⽤data guard迁移: ⽤dg我们不仅可以⽤来做容灾,物理的dg我们还可以作为迁移的⽅式。
oracle数据迁移sql语句
在进行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数据库迁移的方案,包括迁移的准备工作、迁移工具的选择、数据的备份和恢复、测试和验证以及最终的迁移步骤。
1.迁移的准备工作:a.了解源数据库的技术规格、版本和架构,确定目标数据库的技术规格和版本要求。
b.确定迁移的目标和目标环境的可用性和稳定性。
c.评估迁移过程中可能出现的风险和问题,并准备应对措施。
d.编制详细的迁移计划和时间表。
2.迁移工具的选择:a.选择适合的迁移工具,根据实际情况选择在线迁移工具或离线迁移工具。
b. 如果迁移数据量大,可以选择使用Oracle Data Pump工具进行数据迁移。
c. 如果需要进行数据转换,可以选择使用Oracle SQL Developer工具进行数据迁移。
3.数据备份和恢复:a.在迁移之前,对源数据库进行备份,以防迁移过程中出现数据丢失或损坏的情况。
b.在迁移过程中,定期进行数据恢复测试,确保备份的完整性和可用性。
c.在迁移完成后,对目标数据库进行数据恢复测试,验证数据是否完整和正确。
4.测试和验证:a.在目标环境中创建一个与源数据库相似的测试环境,进行迁移过程的测试和验证。
b.在测试环境中进行功能和性能测试,确保迁移后的数据库能够正常运行和满足需求。
c.在迁移过程中,根据测试结果做出必要的调整和改进。
5.最终迁移步骤:a.在迁移之前,关闭源数据库,确保所有的数据都已经写入磁盘。
b.将源数据库的数据文件、日志文件和控制文件复制到目标环境中,并创建与源数据库相同的目录结构和权限。
c.在目标环境中,根据源数据库的配置文件创建新的数据库实例。
d.在目标环境中启动数据库实例,并将数据文件和日志文件导入到目标数据库。
e.在目标数据库中配置和测试用户连接,确保数据库能够正常运行。
两种方法将oracle数据库中的一张表的数据导入到另外一个oracle数据库中
两种⽅法将oracle数据库中的⼀张表的数据导⼊到另外⼀个oracle数据库中oracle数据库实现⼀张表的数据导⼊到另外⼀个数据库的表中的⽅法有很多,在这介绍两个。
第⼀种,把oracle查询的数据导出为sql⽂件,执⾏sql⽂件⾥的insert语句,如下:
第⼀步,导出sql⽂件:
第⼆步:⽤PL/Sql Developer 连接另外⼀个oracle数据库,打开这个sql⽂件,全选所有insert语句,执⾏所有插⼊sql语句即可:
这种⽅法试⽤于插⼊⼤多数的数据库,⽆论是oracle数据库还是sql server数据库都可执⾏这个sql⽂件(全是insert语句)。
缺点是:当数据量⼤的时候,oracle数据库执⾏这些insert语句,效率会很低。
于是,接下来介绍第⼆种导⼊数据的⽅法,即:导出/导⼊CSV⽂件。
第⼀步,在Pl/Sql Developer查询窗⼝查询数据,导出成CSV⽂件:
导出的csv⽂件如下图:
第⼆步,把这个csv⽂件⾥的数据导⼊到另外⼀个数据库⾥,⽤PL/Sql Developer 连接另外⼀个oracle数据库,
菜单-⼯具-⽂本导⼊器:
第三步,点击“⽂本导⼊器”窗⼝⾥,点击导⼊按钮:
第四步,选择导⼊CSV⽂件:
导⼊后,界⾯如下:
第五步,选择“到Oracle的数据”选项卡,点击下拉框选择“所有者”,点击下拉框选择要导⼊的表,选择“覆盖重复”,点击“导⼊”按钮:
导⼊成功⼊下图:
点击“关闭“按钮,新建查询窗⼝,查询数据,验证导⼊是否成功:
总结:如果是oracle数据库,推荐使⽤第⼆种⽅法,⽐第⼀种⽅法的效率⾼很多。
oracle数据库转移教程
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数据迁移背景介绍由于机房服务器变更,需要将 Oracle 迁移到⼀台新服务器上去。
以下是环境说明:原服务器地址: 192.168.1.15新服务器地址: 192.168.1.18操作系统:都是 CentOS 6.5数据库版本:都是 11.2.0.1新服务器上安装和配置 Oracle192.168.1.18在新服务器(192.168.1.18)上安装了Oracle,为了保险,主机名、数据库实例名、安装⽬录都和原数据库保持⼀致。
具体安装⽅法可参考:查询需要拷贝的⽂件1. 192.168.1.152. 需要切换到 oracle ⽤户3. 使⽤ sqlplus 登录进 Oracle 数据库1sqlplus / as sysdba123 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28SQL> show parameter pfileNAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.oraSQL> show parameter controlNAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time integer 7control_files string /u01/app/oracle/oradata/orcl/control01.ctl, /u01/app/oracle/recovery_area/orcl/control02.ctl control_management_pack_access string DIAGNOSTIC+TUNINGSQL> select * from v$logfile;GROUP# STATUS TYPE MEMBER IS_RECOVERY_DEST_FILE---------- ------- ------- -------------------------------------------------------------------------------- ---------------------3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log NO2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log NO1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log NOSQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/orcl/system01.dbf/u01/app/oracle/oradata/orcl/sysaux01.dbf/u01/app/oracle/oradata/orcl/undotbs01.dbf/u01/app/oracle/oradata/orcl/users01.dbf/u01/app/oracle/oradata/orcl/users02.dbfSQL> select name from v$tempfile;NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/orcl/temp01.dbf根据以上查询结果,发现有以下⽂件需要拷贝:12 3 4 5 6 7 8 9 10/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora /u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/recovery_area/orcl/control02.ctl/u01/app/oracle/oradata/orcl/redo03.log/u01/app/oracle/oradata/orcl/redo02.log/u01/app/oracle/oradata/orcl/redo01.log/u01/app/oracle/oradata/orcl/system01.dbf/u01/app/oracle/oradata/orcl/sysaux01.dbf/u01/app/oracle/oradata/orcl/undotbs01.dbf/u01/app/oracle/oradata/orcl/users01.dbf/u01/app/oracle/oradata/orcl/users02.dbf10 11 12 13/u01/app/oracle/oradata/orcl/users02.dbf /u01/app/oracle/oradata/orcl/users03.dbf /u01/app/oracle/oradata/orcl/temp01.dbf停掉原数据库与新数据库192.168.1.15 和 192.168.1.18使⽤ root ⽤户1service oracle stop使⽤scp拷贝⽂件到新服务器192.168.1.15scp 命令可以把⽂件复制到远程 Linux 服务器,可以参考:12 3 4 5 6 7 8 9 10 11 12 13scp /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora oracle@192.168.1.18:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfileorcl.ora scp /u01/app/oracle/oradata/orcl/control01.ctl oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/control01.ctlscp /u01/app/oracle/recovery_area/orcl/control02.ctl oracle@192.168.1.18:/u01/app/oracle/recovery_area/orcl/control02.ctlscp /u01/app/oracle/oradata/orcl/redo03.log oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/redo03.logscp /u01/app/oracle/oradata/orcl/redo02.log oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/redo02.logscp /u01/app/oracle/oradata/orcl/redo01.log oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/redo01.logscp /u01/app/oracle/oradata/orcl/system01.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/system01.dbfscp /u01/app/oracle/oradata/orcl/sysaux01.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/sysaux01.dbfscp /u01/app/oracle/oradata/orcl/undotbs01.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/undotbs01.dbfscp /u01/app/oracle/oradata/orcl/users01.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/users01.dbfscp /u01/app/oracle/oradata/orcl/users02.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/users02.dbfscp /u01/app/oracle/oradata/orcl/users03.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/users03.dbfscp /u01/app/oracle/oradata/orcl/temp01.dbf oracle@192.168.1.18:/u01/app/oracle/oradata/orcl/temp01.dbf等待拷贝完成尝试启动新数据库1. 192.168.1.182. 使⽤ oracle ⽤户dba 登录进⾏启动数据库12 3 4 5 6 7 8 9 10 11 12 13[oracle@oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 17 09:26:11 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to an idle instance.SQL> startupORACLE instance started.Total System Global Area 6747725824 bytesFixed Size 2213976 bytesVariable Size 5100275624 bytesDatabase Buffers 1610612736 bytesRedo Buffers 34623488 bytesDatabase mounted.Database opened.注意最后⼀句,到这⾥就启动成功了。
oracle数据同步方法
oracle数据同步方法Oracle数据库同步是指将一个数据库的数据和变化同步到另一个数据库中,以保证数据的一致性和可用性。
Oracle提供了多种数据同步方法,包括物理备份和还原、逻辑备份和还原、数据泵导出和导入、基于日志的增量备份和还原、GoldenGate数据复制等。
下面将详细介绍这些方法。
1.物理备份和还原:物理备份是将数据库的数据文件、控制文件和日志文件复制到备份目录,还原则是将备份文件拷贝到目标数据库中恢复。
这种方法适用于大规模数据库,具有高效性和实时性,但需要占用大量的存储空间。
2.逻辑备份和还原:逻辑备份是将数据库中的逻辑对象(如表、视图、索引等)导出为可读的SQL语句,还原则是将导出的SQL语句在目标数据库中执行。
这种方法适用于小规模数据库,具有可读性和可移植性,但不适用于大规模数据库,因为导出和导入的过程较为耗时。
3. 数据泵导出和导入:数据泵是Oracle提供的一种高效的逻辑备份和还原方法,它通过使用数据库内部的数据泵工具,将数据库中的逻辑对象和数据导出为二进制文件,再通过导入工具将二进制文件恢复到目标数据库中。
数据泵导出和导入可以实现高效的数据同步和迁移,支持并发处理和并行执行,适用于大规模数据库。
4.基于日志的增量备份和还原:基于日志的增量备份是指将源数据库的日志文件传送给目标数据库,目标数据库通过解析和应用这些日志文件,实现源数据库和目标数据库之间的数据同步。
这种方法实时性较高,适用于大规模数据库的实时备份和恢复。
5. GoldenGate数据复制:GoldenGate是Oracle提供的一种高性能、实时数据复制解决方案。
它通过捕获源数据库的日志文件并将其传送到目标数据库,实现源数据库和目标数据库之间的数据同步和一致性保证。
GoldenGate具有较低的延迟、高可用性和强大的数据筛选和转换能力,适用于大规模和复杂的数据同步场景。
除了上述方法,Oracle还提供了一些辅助工具和技术来增强数据同步的效率和可靠性,如使用数据库链接进行数据复制、使用物化视图进行数据汇总和聚合、使用数据同步代理进行数据分发等。
详细讲解Oracle数据库的数据迁移方法
详细讲解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数据库迁移方案
oracle数据库迁移方案Oracle数据库迁移方案概述在企业中,由于各种原因,可能需要将Oracle数据库迁移到其他环境中,比如在服务器硬件升级、数据中心迁移或者云环境迁移等情况下。
数据库迁移是一个复杂的过程,需要仔细计划和准备,以确保数据的完整性和可用性。
本文将介绍Oracle数据库迁移的一般步骤和常见的迁移方法。
迁移步骤下面是Oracle数据库迁移的一般步骤:1. **规划和准备阶段**:- 定义迁移目标:确定将Oracle数据库迁移到哪个环境。
例如,迁移到新的物理服务器、虚拟化平台或云环境等。
- 收集信息:收集相关的数据库信息,包括数据库版本、大小、运行时间窗口、性能指标和依赖关系等。
- 制定迁移计划:根据收集到的信息,制定详细的迁移计划,包括时间表、资源需求、风险评估等。
2. **备份和恢复阶段**:- 备份数据库:在进行任何迁移操作之前,务必进行数据库的完整备份。
这是防止数据丢失的关键步骤。
- 恢复测试:针对备份的数据库进行恢复测试,以确保备份文件的可用性和正确性。
3. **迁移和验证阶段**:- 安装目标环境:根据迁移计划,在目标环境中安装和配置Oracle数据库软件。
- 迁移数据:将备份的数据库导入到目标环境中。
可以使用Oracle Data Pump工具或物理备份恢复来完成数据导入。
- 数据验证:在迁移完成后,进行数据验证,比较源数据库和目标数据库中的数据是否一致。
- 重新配置:在目标环境中重新配置和优化数据库,以适应新的硬件或环境。
4. **测试和优化阶段**:- 性能测试:在目标环境中进行性能测试,以确保迁移后的数据库可以满足业务需求。
- 优化和调整:根据性能测试的结果,对数据库进行优化和调整,以提高数据库的性能和可靠性。
5. **切换和验证阶段**:- 切换数据库:将应用程序切换到新的目标数据库。
这包括配置应用程序连接信息、测试应用程序的可用性等。
- 验证和测试:在切换完成后,进行验证和测试,确保应用程序能够正常访问和使用新的数据库。
xx生产系统oracle数据库迁移
XX生产系统oracle数据库迁移一、操作目的:利用nfs和rman的copy命令,将XX系统的oracle数据库迁移到另一台服务器上,将原来的裸设备上的数据文件转换成文件系统上的数据文件。
并成功启动数据库,确保应用服务器正常连接此数据库,应用运行正常,数据库运行正常。
二、操作环境:XX系统数据库服务器:HP 7420,这里我们暂且叫主机备机:HP 7420数据库:oracle 9i操作系统:HP-UX 11.23三、操作步骤1、在主机上用DP做全备。
2、用磁带机备份主机的操作系统,并把操作系统灌入备机。
3、配置主机和备机的网络连通,这里暂设主机IP:192.168.152.120,备机IP:192.168.152.130,。
在备机配置nfs服务并启动,这里我们暂且在备机上新建一个data目录(通过nfs共享出这个目录):# mkdir /data# chown –R oracle:dba /data4、在主机新建目录data(启动nfs客户端,然后把备机的共享目录挂载到本地的data目录下):# mkdir /data# chown –R oracle:dba /data# mount –t nfs –orw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 192.168.152.130:/data这里挂载一定要加参数,否则rman不认此挂载点。
5、通过rman和nfs把主机的数据文件从裸设备转换成文件系统并传输到备机上:①一致性关闭数据库,并启动到mount状态# su – oracle$ sqlplus “/as sysdba”SQL> shutdown immediateSQL> startup mountSQL> create pfile from spfile;②传输数据文件:SQL> quit$ rman target /Rman> run {copy datafile '/dev/vgzydb3/rlv_system' to '/data/rlv_system';copy datafile '/dev/vgzydb3/rlv_undo' to '/data/rlv_undo';copy datafile '/dev/vgzydb2/rlv_tools' to '/data/rlv_tools';copy datafile '/dev/vgzydb1/rlv_1g_d_001' to '/data/rlv_1g_d_001’;……}有多少数据文件就写多少数据文件,格式是copy datafile ‘裸设备’to ‘文件系统文件名’;③传输参数文件和重建控制文件、redo文件:在主机上:$ cp $ORACLE_HOME/dbs/init$ORACLE_SID.ora /data/在备机上:$ cp /data/init$ORACLE_SID.ora $ORACLE_HOME/dbs/把参数文件的控制文件路径改为/data目录下。
oracle数据文件迁移到ASM
3、将数据文件设置成offline状态
alter database datafile 10 offline;
(rman) switch datafile 10 to copy;
(rman) recover database datafile 10;
alter database datafile 10 online;
适用于:
Oracle Database - Enterprise Edition - Version 11.2.0.1 tபைடு நூலகம் 11.2.0.4 [Release 11.2]
Information in this document applies to any platform.
症状:
datafile被错误的添加到了文件系统中,应该是放在asm磁盘组中的。
Database altered.
5.确认正确的文件名和路径
SQL> select file_name, file_id, online_status from dba_data_files where file_id=6;
FILE_NAME FILE_ID ONLINE_STATUS
Database altered.
4. recover 该datafile ,并且onlime 该datafile
SQL> alter database recover datafile 6;
Database altered.
SQL> alter database datafile 6 online;
方法二,
使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2
oracle 数据库迁移 实例
一、介绍Oracle数据库是全球领先的企业级数据库管理系统,在各种企业级应用程序中得到广泛的应用。
随着企业业务的发展和需求的变化,有时候需要将Oracle数据库迁移到其他服务器或者云评台上,以满足新的业务需求。
本文将介绍Oracle数据库迁移的一般步骤和实际操作过程。
二、准备工作1. 确定迁移目标在进行数据库迁移之前,首先需要明确数据库迁移的目标。
是迁移到另一台物理服务器上,还是迁移到云评台上?迁移到哪个云评台?这些都需要在迁移之前明确。
2. 确认迁移环境在进行数据库迁移之前,确认迁移目标环境是否满足Oracle数据库的硬件和软件要求。
确保目标环境中有足够的存储空间、内存和CPU资源,并且安装了适当版本的Oracle数据库软件。
3. 数据库备份在进行数据库迁移之前,务必对当前的Oracle数据库进行备份。
备份数据可以作为迁移失败时的恢复手段,确保数据不会丢失。
4. 迁移计划制定数据库迁移的详细计划,包括迁移的时间、步骤、责任人等,以确保迁移过程顺利进行。
三、迁移过程1. 安装目标环境在确定好迁移目标环境之后,需要在目标环境中安装相应的操作系统和Oracle数据库软件。
确保安装的版本和配置与源环境一致。
2. 导出数据在进行数据库迁移之前,需要将源数据库中的数据导出。
可以使用Oracle提供的expdp命令进行数据导出,将数据导出到一个文件中。
3. 拷贝文件将数据导出的文件拷贝到目标环境中,确保文件的完整性和正确性。
4. 导入数据在目标环境中,使用Oracle提供的impdp命令将导出的数据文件导入到目标数据库中。
5. 更新配置在数据库迁移完成后,需要对目标数据库进行相应的配置更新,包括网络配置、监听配置、参数配置等,以确保数据库能够正常运行。
四、迁移后处理1. 测试在数据库迁移完成后,需要进行相应的测试,包括功能测试、性能测试、容灾测试等,以确保数据库迁移的成功。
2. 切换在测试通过之后,可以进行数据库切换,将迁移后的数据库投入使用,停用源数据库。
Oracle 10G 的数据迁移方案
第二种方法是使用数据泵,它对表空间是否为只读没有要求。当只需要移动指定的表而不是整个表空间时,这种方法很有用。
最后一种方法是拖出表空间,该方法把可移动表空间方法的所有步骤组合成一步操作。用这种方法复制数据非常简单,但要想调整每个具体步骤以便进行性能优化时,它为数据库管理员提供的灵活性太少。
这条命令使用数据泵导入工具将通过数据库链接srcdb(在以前的章节中已讨论过)检索到的数据加载到表中。但是,由于网络带宽通常是受到限制的,因此这种方法可能比使用导出/传输/导入周期方法要慢一些。
如果只需将特定的表或表集合进行转移,那么Lora可以在expdp命令中使用TABLES=子句来只下载特定的表或表集合。
拖出表空间
作为第三种选择,Lora建议使用Oracle数据库10g中的新工具,它简化了可移动表空间的移动方法,因此只涉及执行一个打包过程。在这种方法中,用户利用所提供的DBMS_STREAMS_TABLESPACE_ADM包从源系统中"拖?quot;表空间。这个包使用数据泵转移表空间并将数据文件转换成目标系统的格式。它还自动执行任何所需的字节顺序变换。
会议结束
针对Acme的数据仓库/数据集市体系结构,Lora提出了几种移动数据的可选方法。
第一种可选方法是使用可移动表空间,它能移动完整的表空间集合(不仅包括表,还包括索引、物化视图和其他对象)。通常它还是这三种方法中最快的一种。但是,它的一个主要缺点是对指定的表空间必须在复制文件时设置为只读。
conversion_extension => 'linux'
);
END;
该操作在后台完成了许多步骤:设置源表空间为只读;用数据泵导出工具进行一次表空间的元数据转储;用DBMS_FILE_TRANSFER包移动数据文件和转储的文件;把源表空间恢复到其最初的读写状态;使用数据泵导入工具将表空间插入到本地数据库中。由于源数据库运行在Linux上,而目标数据库运行在Solaris上,因此这一操作首先复制原始数据文件(Linux的文件格式),然后将它转换到目标平台上(Solaris)的文件格式。复制过程保持最初被转移的文件,而创建一个新文件用于转换。新文件与最初的文件同名,但具有CONVERSION_EXTENSION参数指定的linux扩展名。在目标数据库中创建的表空间为只读表空间。
oracle数据库迁移方案
Oracle数据库迁移方案1. 引言数据库迁移是指将一个数据库从一个平台或环境迁移到另一个平台或环境的过程。
在企业中,由于业务需求和技术需求的变化,数据库迁移已经成为一个常见的任务。
本文将介绍一种基于Oracle数据库的迁移方案。
2. 选择迁移工具Oracle官方提供了多种迁移工具,如Oracle Data Pump、RMAN(Recovery Manager)等。
根据迁移的具体要求和环境,选择合适的工具非常重要。
2.1 Oracle Data PumpOracle Data Pump是Oracle 10g及以上版本的一个数据导入导出工具。
它提供了快速、高效的数据迁移方式,并支持数据压缩、并行处理等功能。
如果迁移的数据量较大,可以考虑使用Oracle Data Pump。
2.2 RMANRMAN是Oracle的备份恢复管理工具,同时也可以用于数据库迁移。
RMAN提供了全面的备份和恢复解决方案,并支持将备份的数据库恢复到其他平台。
如果需要保证数据的一致性和完整性,可以选择使用RMAN进行迁移。
2.3 其他工具除了Oracle官方提供的工具,市场上还有一些第三方工具可供选择,如Quest SharePlex、Zevora Data Mover等。
这些工具提供了更多灵活的迁移方式和功能,可以根据具体情况选择使用。
3. 迁移前的准备工作在进行数据库迁移之前,需要进行一些准备工作,以确保迁移过程的顺利进行。
3.1 数据库分析首先需要对待迁移的源数据库进行全面的分析。
通过收集数据库的结构信息、性能指标、存储空间占用等数据,为后续的迁移工作提供依据。
3.2 网络规划如果迁移的目标环境与源环境位于不同的网络中,需要对网络进行规划和配置,以确保迁移过程中的数据传输和通信畅通无阻。
3.3 目标环境准备在迁移到目标环境之前,需要对目标环境进行搭建和配置。
包括安装数据库软件、创建数据库实例、配置参数等。
4. 数据迁移过程根据选择的迁移工具的不同,具体的迁移过程会有所差异。
Oracle10g的数据迁移方案
Oracle10g的数据迁移方案数据迁移是将数据从一个存储系统迁移到另一个存储系统的过程。
在Oracle10g中,有许多不同的数据迁移方案可供选择,每个方案都有其优势和适用场景。
以下是一些常见的Oracle10g数据迁移方案。
1. 导出/导入(exp/imp):这是Oracle10g中最常见的数据迁移方法之一、它通过使用exp将数据从源数据库导出到一个文件中,然后使用imp将数据从该文件中导入到目标数据库中。
这种方法适用于小型数据库或需要频繁迁移的数据库,但不适用于大型数据库或需要迁移大量数据的情况。
2. 数据泵(expdp/impdp):数据泵是Oracle10g中引入的新特性,它提供了更高效和更灵活的数据迁移方法。
数据泵使用expdp将数据从源数据库以二进制格式导出到一个文件中,然后使用impdp将数据以二进制格式从该文件中导入到目标数据库中。
相对于导出/导入,数据泵具有更快的速度和更小的导出/导入文件大小。
3. SQL Loader:SQL Loader是Oracle10g中的另一种数据迁移工具,它可以将大量数据从平面文件导入到数据库中。
它通过读取一个控制文件和一个或多个数据文件来工作。
控制文件指定要导入的数据的格式和目标表,而数据文件包含实际的数据。
SQL Loader适用于需要从外部系统或文件导入数据的场景。
4.数据库链接:如果源数据库和目标数据库位于不同的服务器上,可以使用数据库链接来实现数据迁移。
数据库链接允许在一个数据库中对另一个数据库进行查询和操作。
通过在目标数据库上创建一个链接对象,然后使用该链接对象在源数据库上执行查询和操作,可以将数据从源数据库迁移到目标数据库。
5. Oracle数据同步/复制:如果需要实时数据同步或定期数据复制,可以考虑使用Oracle的数据同步或复制工具。
Oracle提供了许多数据同步和复制解决方案,如Oracle Streams和Oracle GoldenGate。
oracle常用的数据库迁移方法
oracle常用的数据库迁移方法Oracle是一种常用的关系型数据库管理系统,为了满足不同需求,很多时候需要将数据库迁移到其他环境或系统中。
本文将介绍几种常用的Oracle数据库迁移方法。
一、数据泵导入导出数据泵是Oracle提供的一种高效的数据迁移工具,可以将表、视图、存储过程等数据库对象以及数据导出为二进制文件,再通过数据泵导入工具将数据导入到目标数据库中。
数据泵导出可以使用expdp命令,导出的文件可以包含完整的数据库对象和数据,也可以只导出指定的对象。
数据泵导入可以使用impdp命令,将导出的文件恢复到目标数据库中。
二、物理备份恢复物理备份恢复是一种将源数据库的物理文件备份并复制到目标数据库的方法。
这种方法适用于需要将整个数据库迁移到其他环境的情况。
在源数据库上执行备份命令,将数据库的物理文件备份到指定位置。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行恢复命令,将备份文件恢复到目标数据库中。
三、逻辑备份恢复逻辑备份恢复是一种将源数据库中的逻辑数据导出为可读的文本文件,再通过导入工具将数据导入到目标数据库中的方法。
在源数据库上执行逻辑备份命令,将数据导出为文本文件。
将备份文件复制到目标数据库服务器上。
在目标数据库上执行导入命令,将备份文件导入到目标数据库中。
四、数据库链接数据库链接是一种在不同数据库之间进行数据传输和共享的方法。
可以在目标数据库中创建一个链接,链接到源数据库,然后通过SQL语句将数据从源数据库传输到目标数据库。
在目标数据库中创建一个数据库链接,链接到源数据库。
通过SQL语句查询源数据库中的数据,并将数据插入到目标数据库中。
五、GoldenGate数据复制GoldenGate是Oracle提供的一种高性能数据复制工具,可以将源数据库的数据实时复制到目标数据库中。
这种方法适用于需要实时同步数据的场景。
在源数据库和目标数据库上分别安装和配置GoldenGate软件。
在源数据库上配置数据抽取进程,将数据抽取到中间文件。
ORACLE 数据库在不同计算机上的迁移(克隆数据库)
ORACLE 数据库在不同计算机上的迁移(克隆数据库)描述:一台联想台式机上安装了oracle11g,建立了自己的数据库,现在想在宿舍DELL笔记本电脑上克隆这个数据库。
1 在目标机器上安装数据库,密码一致数据库名字一致。
2 登陆sys as sysdba 这时数据库自动启动3 shutdown immediate 关闭数据库,startup nomount,这时系统释放掉控制文件和数据文件,就是在这时完成替换。
4 复制数据文件和redo文件到目标机相应目录下原先的文件全部删除(数据目录下)我的是在C:\app\Administrator\oradata\orcl\目录下5 重建控制文件,主要就是让数据库系统知道有哪些数据文件,文件路径(指定的文件都应该有存在,否则会报错,这就是4在前的原因)如果不重建,会报控制文件太旧的错误,所以重建控制文件时必须的;6set linesize 400;col file# for 99;col name for a100;col status for a20;select file#,name,status from v$datafile;///////SQL> set linesize 400;SQL> col file# for 99;SQL> col name for a100;SQL> col status for a20;SQL> select file#,name,status from v$datafile;FILE# NAME STATUS----- ---------------------------------------------------------------------------------------------------- -------------1 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF SYSTEM2 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF RECOVER3 D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF RECOVER4 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF RECOVER5 D:\APP\ADMINISTRATOR\ORADATA\ORCL\MILKWAY_TBS_01 RECOVER6 D:\APP\ADMINISTRATOR\ORADATA\ORCL\MILKWAY_TBS_02 RECOVER找到文件编号7 SQL> recover datafile 1;SQL> recover datafile 2;.....最好把所有的数据文件都恢复一边,不管提示是否为RECOVER状态8 alter database open;搞定9 cmd 命令窗口下最好来一下set ORACLE_SID=orcl; 大小写敏感shutdown normal ;好不容易搞定,第一次关闭用normal ,慢点值得,免得丢失10 sys as sysdba 如果发现是连接到空闲进程,用startup open即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
确定损坏的重做日志的位置及其状态:
1. 如果数据库处于可用状态:
select * from v$logfile;
svrmgrl>select * from v$log;
2. 如果数据库处于已经异常终止:
svrmlgr>startup mount;
svrmgrl>select * from v$logfile;
5. 用适当的方法进行数据库全备份。
采用带库备份的现场:
1. 以nomount方式打开数据库:
svrmgrl>startup nomount;
2. 通过相应的rman脚本进行数据库软恢复。
$rman cmdfile=hot_database_restore.rcv
3. 打开数据库:
svrmgrl>alter database open resetlogs;
filesystem
database must be open:
1.alter tablespace tbs read only;
2.alter tablespace tbs offline;
offline时拷贝一份原文件,并命名为新文件名
4.alter tablespace tbs rename datafile 'tbs_file_old.dbf' to 'tbs_file_new.dbf';
注意:
Trace文件的具体路径可以在执行完第3)步操作后查看$ORACLE_BASE/admin/bdump/alert_ORCL.ora文件来确定。
5. 用下面命令重新创建控制文件:
svrmgrl>shutdown abort;
svrmgrl>startup nomount;
svrmgrl>@createcontrol.sql;
非system表空间损坏:
1. 将损坏的表空间处于offline状态:
svrmgrl>alter tablespace ‘tablespace_name’ offline;
2. 从相应的备份结果集中恢复关于这个表空间最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。
Oracle系统紧急故障处理(数据文件、日志文件以及表空间损坏的处理)
Oracle物理结构故障的处理方法:
Oracle物理结构故障是指构成数据库的各个物理文件损坏而导致的各种数据库故障。这些故障可能是由于硬件故障造成的,也可能是人为误操作而引起。所以我们首先要判断问题的起因,如果是硬件故障则首先要解决硬件问题。在无硬件问题的前提下我们才能按照下面的处理方发来进一步处理。
很简单,三个步骤就行了
第一步:把表空间Offline,把表空间的数据文件移动到D盘指定的目录。
第二步:修改表空间文件路径alter database rename file '旧文件路径' to '新文件路径';
第三步:把表空间Online,这样就可以了。
以下是一些其它方面的参考:
数据文件重命名(filesystem and raw device)
损坏单个控制文件:
1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库:
svrmgrl>shutdown immediate;
2. 查看初始化文件$ORACLE_BASE/admin/pfile/initORCL.ora,确定所有控制文件的路径。
3. 用操作系统命令将其它正确的控制文件覆盖错误的控制文件。
3. 恢复表空间:
svrmgrl>alter database recover tablespace ‘tablespace_name’;
4. 使表空间online:
svrmgrl>alter tablespace ‘tablespace_name’ online;
5. 用适当的方法进行数据库全备份.
5.alter tablespace tbs online;
6.alter tablespace tbs read write;
7.alter database recover datafile 'tbs_file_new.dbf';
raw device
database must be mounted but not open:
控制文件损坏:
控制文件记录了关于oracle的重要配置信息,如数据库名、字符集名字、各个数据文件、日志文件的位置等等信息。控制文件的损坏,会导致数据库异常关闭。一旦缺少控制文件,数据库也无法启动,这是一种比较严重的错误。
可以通过查询数据库的日志文件来定位损坏了的控制文件。日志文件位于$ORACLE_BASE/admin/bdump/alert_ORCL.ora.
svrmgrl>select * from v$log;
其中,logfile的状态为 INVALID表示这组日志文件出现已经损坏;log状态为Inactive:表示重做日志文件处于非激活状态;Active: 表示重做日志文件处于激活状态;Current:表示是重做日志为当前正在使用的日志文件。
3. 用下面的命令来创建产生数据库控制文件的脚本:
svrmgrl>startup mount;
svrmgrl>alter database backup controlfile to trace noresetlogs;
4. 修改第三步产生的trace文件,将其中关于创建控制文件的一部分语句拷贝出来并做些修改,使得它能够体现最新的数据库结构。假设产生的sql文件名字为 createcontrol.sql.
6. 用适当的方法进行数据库全备份。
重做日志文件损坏:
数据库的所有增、删、改都会记录入重做日志。如果当前激活的重做日志文件损坏,会导致数据库异常关闭。非激活的重做日志最终也会因为日志切换变为激活的重做日志,所以损坏的非激活的重做日志最终也会导致数据库的异常终止。在ipas/mSwitch中每组重做日志只有一个成员,所以在下面的分析中只考虑重做日志组损坏的情况,而不考虑单个重做日志成员损坏的情况。
损坏的日志文件处于激活状态且为非当前日志:
1. 清除相应的日志组:
svrmgrl>alter database clear unarchived logfile group group_number;
损坏的日志文件为当前活动日志文件:
用命令清除相应的日志组:
svrmgrl>alter database clear unarchived logfile group group_number;
3. 恢复system表空间:
svrmgrl>alter database recover datafile ‘datafile_name’;
4. 打开数据库:
svrmgrl>alter database open;
5. 用适当的方法进行数据库全备份。
表空间损坏:
若非system表空间已经损坏,则数据库仍然可以处于打开状态可以进行操作,只是损坏的表空间不能访问。这样在数据库打开状态下可以单独对损坏的表空间进行恢复。若是system表空间损坏则数据库系统会异常终止。这时数据库只能以Mount方式打开,然后再对表空间进行恢复。可以通过查看数据库日志文件来判断当前损坏的表空间是否是system表空间.
损坏的日志文件处于非激活状态:
1. 删除相应的日志组:
svrmgrl>alter database drop logfile group group_number;
2. 重新创建相应的日志组:
svrmgrl>alter database add log file group group_number (’log_file_descritpion’,…) size log_file_size;
system表空间损坏:
1. 以mount方式启动数据库
svrmgrl>startup mount;
2. 从相应的备份结果集中恢复system表空间最近的备份。对于没有采用带库备份的点可以直接从磁带上恢复;对于用带库备份的点用相应的rman脚本来恢复。
3. 恢复system表空间:
svrmgrl>alter database recover tablespace system;
1.为新的数据文件创建裸设备链接文件
2.starup mount;
3.alter database rename file 'tbs_file_old' to 'tbs_file_new';
4.alter database recover datafile 'tbs_file_new';
5.alter database open;
4. 用下面的命令重新启动数据库
svrmgrl>startup;
5. 用适当的方法进行数据库全备份。
损坏所有的控制文件:
1. 确保数据库已经关闭,如果没有用下面的命令来关闭数据库:
svrmgrl>shutdown immediate;
2. 从相应的备份结果集中恢复最近的控制文件。对于没有采用带库备份的点可以直接从磁带上将最近的控制文件备份恢复到相应目录;对于采用带库备份的点用相应的 rman脚本来恢复最近的控制文件。
svrmgrl>alter database datafile ‘datafile_name’ online;