说的不够具体,还要增加前提,比如生产库能不能停?如果采用exp/imp方式的话,在87机器上建库需要先建好表空间和用户的,不然导入会出错的。
最常规的方法的为:
1、87上装好数据库;
2、87上创建用户和表空间;
3、停止70数据库对外服务,在70导出数据;
4、在87上导入数据;
5、测试87上数据,和70进行比对。
6、比对结果一致,停70机器,87设置为70的ip。
crosscheck
archivelog
all
用RMAN的备份中(Veritas等
备份软件
由于
归档日志
的异常导致归档日志备份失败)是经常碰到的,解决方法也是非常解单,就是执行2条RMAN的命令:
1
进入rman
2
connect
target
/
3
crosscheck
archivelog
all;
4
delete
expired
archivelog
all;
===========================
这2条命令做什么事情,原理是什么。下面说明一下:
在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。
crosscheck
archivelog
all;的作用就是检查
控制文件
和实际物理文件的差别。
delete
expired
archivelog
all;就是同步控制文件的信息和实际物理文件的信息。
如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。
crosscheck
backupset
crosscheck
backupset
是检查备份集和实际的文件
1
备份集有两种状态A(
Available
,RMAN认为该项存在于备份介质上)X(Expired,备份存在于控制文件或恢复目录中,但
是并没有物理存在于备份介质上)
2
crosscheck
的目的是检查RMAN
的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件
存在,将维持Available。如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),
crosscheck将把状态重新从Expired标记回Available。
3
crosscheck
输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的
备份集片,并将其标记为Expired。当设置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为
availabel,要删除丢弃备份delete
obsolete
itpub一实例
我的一个Unix下
oracle数据库
在迁移当中一个归档文件丢失了,rman备份归档日志时提示
某个归档日志找不到,
请问如何在不停止oracle数据库情况下
截断归档日志,重新开始新的归档!
crosscheck
archivelog
all
delete
archivelog
all;
Oracle更改数据文件位置
方法一:offline表空间
1、offline表空间:alter tablespace tablespace_name offline;
2、复制数据文件到新的目录;
3、rename修改表空间,并修改控制文件;
4、online表空间;
1、offline表空间zerone
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> alter tablespace zerone offline;
表空间已更改。
2、复制数据文件到新的目录
复制数据文件C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF到C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF。
3、rename修改表空间数据文件为新的位置,并修改控制文件
SQL> alter tablespace zerone rename datafile 'c:\oracle\product\1020\oradata\zerone01dbf' to 'c:\oracle\product\1020\oradata\orcl\zerone01dbf';
表空间已更改。
4、online表空间
SQL> alter tablespace zerone online;
表空间已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE';
FILE_NAME TABLESPACE_NAME
------------------------------------------------------------------------------------------------
ZERONE C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF
方法二:SQL修改数据文件位置
1、关闭数据库;
2、复制数据文件到新的位置;
3、启动数据库到mount状态;
4、通过SQL修改数据文件位置;
5、打开数据库;
1、关闭数据库
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
2、复制数据文件到新的位置;
将数据文件C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\ZERONE01DBF复制到C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF。
3、启动数据库到mount状态;
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 96470372 bytes
Database Buffers 67108864 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
4、通过SQL修改数据文件位置;
SQL> alter database rename file 'c:\oracle\product\1020\oradata\orcl\zerone01dbf' to 'c:\oracle\product\1020\oradata\zerone01dbf';
数据库已更改。
5、打开数据库;
SQL> alter database open;
数据库已更改。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSTEM01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\UNDOTBS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\SYSAUX01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\USERS01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\EXAMPLE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF
C:\ORACLE\PRODUCT\1020\ORADATA\ORCL\RMANTSDBF
已选择7行。
SQL> select file_name,tablespace_name from dba_data_files where tablespace_name='ZERONE';
FILE_NAME TABLESPACE_NAME
-------------------------------------------------------------------------------------------------
ZERONE C:\ORACLE\PRODUCT\1020\ORADATA\ZERONE01DBF
下次提问的时候把问题描述清楚一点,不然得猜着回答(我只能猜你是做oralce的数据迁移)。 ORACLE数据库的迁移一般最常用的有两种: RMAN备份恢复和数据导出导入(包括expdp/impdp ,exp/imp)。 RMAN 一般都是同构平台的数据迁移(比如AIX 到AIX
1、如果两台服务器,存在的表结构什么的都一样,可以使用冷备份全库,把所有的数据文件、日志、归档日志等全拷贝过去(如果是linux系统,要使用oracle用户 *** 作,否则会产生文件权限问题)
2、RMAN的异机恢复
3、EXPDP/IMPDP 全库导出、全库导入(注意版本问题,低往高可以,反之不可以)!
1、如果两台服务器,存在的表结构什么的都一样,可以使用冷备份全库,把所有的数据文件、日志、归档日志等全拷贝过去(如果是linux系统,要使用oracle用户 *** 作,否则会产生文件权限问题)
2、RMAN的异机恢复
3、EXPDP/IMPDP 全库导出、全库导入(注意版本问题,低往高可以,反之不可以)
“oracle
11g进行数据库迁移”的意思不是很明确。如果是把一个数据库的
数据迁移
到另外一个数据库中时,与flash_recovery_area没什么关系。flash_recovery_area只是一个
闪回
区,作为一种短时间的备份恢复数据用的。
1 首先备份数据库实例spfile(ASM实例):
SQL>create pfile='/tmp/pfile' from spfile;
没使用spfile直接备份pfile即
2确定数据库实例前controlfile文件名:
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA/rac11g2/controlfile/current260815940667
+RECO/rac11g2/controlfile/current256815940675
3 停止使用控制文件数据库实例(ASM 要保持启)RAC需要停止所节点使用控制文件数据库实例
4 启数据库实例nomount于RAC系统需启任何实例比实例1注意连接数据库实例ASM实例般使用oracle用户登录sqlplus
su - oracle
sqlplus / as sysdba
SQL>startup nomount;
5 使用RMAN复制controlfile源文件'+RECO/rac11g2/controlfile/current256815940675'目标建立磁盘组'+DATA'
su - oracle
$ rman target /
RMAN> restore controlfile to '+DATA' from '+RECO/rac11g2/controlfile/current256815940675';
Starting restore at 06-JUN-13
using channel ORA_DISK_1
channel ORA_DISK_1: copied control file copy
Finished restore at 06-JUN-13
以上就是关于oracle数据库迁移如何保持前后用户名密码一致全部的内容,包括:oracle数据库迁移如何保持前后用户名密码一致、oracle 10g 使用rman删除过期的备份后crosscheck具体是实现了什么功能呢、如何将Oracle数据库数据文件迁移到其它目录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)