oracle数据库迁移如何保持前后用户名密码一致

oracle数据库迁移如何保持前后用户名密码一致,第1张

说的不够具体,还要增加前提,比如生产库能不能停?如果采用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数据库数据文件迁移到其它目录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9536551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存