热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracledg10g到11g,Oracle10gDG数据文件迁移的实现

背景:某客户Oracle10g的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文

背景:某客户Oracle 10g 的DG由于空间不足,之前将部分数据文件迁移到其他目录,如今原目录扩容成功,要将之前迁移的数据文件再次迁移回来。

环境:Oracle 10.2.0.5 DG 单机

首先想到的是10gDG是在mount模式下应用的,在测试环境可以很容易的模拟下这个需求实现的过程:

1.查询当前DG的状态

2.停止DG应用

3.备份copy副本到新目录并切换

4.删除之前的目录并开启应用

1.查询当前DG的状态

查询当前DG的状态:

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select name, database_role, open_mode from gv$database;

NAME DATABASE_ROLE OPEN_MODE

--------- ---------------- ----------

JY PHYSICAL STANDBY MOUNTED

SQL> select recovery_mode from v$archive_dest_status;

RECOVERY_MODE

-----------------------

MANAGED REAL TIME APPLY

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

11 rows selected.

SQL> select * from v$dataguard_stats;

NAME VALUE UNIT TIME_COMPUTED

---------------------------------- ---------------------------------------------------------------- ------------------------------ ------------------------------

apply finish time +00 00:00:00.0 day(2) to second(1) interval 05-MAY-2018 10:04:20

apply lag +00 00:00:12 day(2) to second(0) interval 05-MAY-2018 10:04:20

estimated startup time 41 second 05-MAY-2018 10:04:20

standby has been open N 05-MAY-2018 10:04:20

transport lag +00 00:00:00 day(2) to second(0) interval 05-MAY-2018 10:04:20

可以看到DG处于正常应用状态。

2.停止DG应用

停止DG应用:

SQL> alter database recover managed standby database cancel;

Database altered.

3.备份copy副本到新目录并切换

3.1 确认需要迁移的数据文件

查看当前的数据文件,确认将9,10,11三个文件迁移回原来的目录:

SQL> select file#, name from v$datafile;

FILE# NAME

---------- -------------------------------------------------------

1 /oradata/jy/datafile/system.256.839673875

2 /oradata/jy/datafile/undotbs1.258.839673877

3 /oradata/jy/datafile/sysaux.257.839673877

4 /oradata/jy/datafile/users.259.839673877

5 /oradata/jy/datafile/example.267.839673961

6 /oradata/jy/datafile/undotbs2.268.839674103

7 /oradata/jy/datafile/dbs_d_school.276.840618437

8 /oradata/jy/datafile/dbs_cssf_gt.289.848228741

9 /datafile/dbs_data9.dbf

10 /datafile/dbs_data10.dbf

11 /datafile/dbs_data11.dbf

11 rows selected.

3.2 备份相关数据文件副本:

编写脚本:

vi copy_datafile.sh

echo "=======Begin at : `date`=======" >>/tmp/copy_datafile_`date +%Y%m%d`.log

rman target / <>/tmp/copy_datafile_&#96;date &#43;%Y%m%d&#96;.log

run {

allocate channel c1 device type disk;

allocate channel c2 device type disk;

allocate channel c3 device type disk;

backup as copy datafile 9 format &#39;/oradata/jy/datafile/dbs_data9.dbf&#39;;

backup as copy datafile 10 format &#39;/oradata/jy/datafile/dbs_data10.dbf&#39;;

backup as copy datafile 11 format &#39;/oradata/jy/datafile/dbs_data11.dbf&#39;;

release channel c1;

release channel c2;

release channel c3;

}

EOF

echo "&#61;&#61;&#61;&#61;&#61;&#61;&#61;End at : &#96;date&#96;&#61;&#61;&#61;&#61;&#61;&#61;&#61;" >>/tmp/copy_datafile_&#96;date &#43;%Y%m%d&#96;.log

后台执行脚本&#xff1a;nohup sh copy_datafile.sh &

记录的日志如下&#xff1a;

&#61;&#61;&#61;&#61;&#61;&#61;&#61;Begin at : Sat May 5 10:51:24 CST 2018&#61;&#61;&#61;&#61;&#61;&#61;&#61;

Recovery Manager: Release 10.2.0.5.0 - Production on Sat May 5 10:51:24 2018

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: JY (DBID&#61;857123342, not open)

RMAN> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13>

using target database control file instead of recovery catalog

allocated channel: c1

channel c1: sid&#61;152 devtype&#61;DISK

allocated channel: c2

channel c2: sid&#61;159 devtype&#61;DISK

allocated channel: c3

channel c3: sid&#61;144 devtype&#61;DISK

Starting backup at 05-MAY-18

channel c1: starting datafile copy

input datafile fno&#61;00009 name&#61;/datafile/dbs_data9.dbf

output filename&#61;/oradata/jy/datafile/dbs_data9.dbf tag&#61;TAG20180505T105125 recid&#61;22 stamp&#61;975322288

channel c1: datafile copy complete, elapsed time: 00:00:03

Finished backup at 05-MAY-18

Starting backup at 05-MAY-18

channel c1: starting datafile copy

input datafile fno&#61;00010 name&#61;/datafile/dbs_data10.dbf

output filename&#61;/oradata/jy/datafile/dbs_data10.dbf tag&#61;TAG20180505T105129 recid&#61;23 stamp&#61;975322292

channel c1: datafile copy complete, elapsed time: 00:00:07

Finished backup at 05-MAY-18

Starting backup at 05-MAY-18

channel c1: starting datafile copy

input datafile fno&#61;00011 name&#61;/datafile/dbs_data11.dbf

output filename&#61;/oradata/jy/datafile/dbs_data11.dbf tag&#61;TAG20180505T105136 recid&#61;24 stamp&#61;975322315

channel c1: datafile copy complete, elapsed time: 00:00:25

Finished backup at 05-MAY-18

released channel: c1

released channel: c2

released channel: c3

RMAN>

Recovery Manager complete.

&#61;&#61;&#61;&#61;&#61;&#61;&#61;End at : Sat May 5 10:52:02 CST 2018&#61;&#61;&#61;&#61;&#61;&#61;&#61;

3.3 切换数据文件到copy副本&#xff1a;

RMAN> list copy of database;

using target database control file instead of recovery catalog

List of Datafile Copies

Key File S Completion Time Ckp SCN Ckp Time Name

------- ---- - --------------- ---------- --------------- ----

10 9 A 05-MAY-18 35303533 05-MAY-18 /oradata/jy/datafile/dbs_data9.dbf

11 10 A 05-MAY-18 35303533 05-MAY-18 /oradata/jy/datafile/dbs_data10.dbf

12 11 A 05-MAY-18 35303533 05-MAY-18 /oradata/jy/datafile/dbs_data11.dbf

RMAN> switch datafile 9,10,11 to copy;

datafile 9 switched to datafile copy "/oradata/jy/datafile/dbs_data9.dbf"

datafile 10 switched to datafile copy "/oradata/jy/datafile/dbs_data10.dbf"

datafile 11 switched to datafile copy "/oradata/jy/datafile/dbs_data11.dbf"

4.删除之前的目录并开启应用

4.1 删除之前的文件&#xff1a;

RMAN> list copy of database;

List of Datafile Copies

Key File S Completion Time Ckp SCN Ckp Time Name

------- ---- - --------------- ---------- --------------- ----

13 9 A 05-MAY-18 35309314 05-MAY-18 /datafile/data9.dbf

14 10 A 05-MAY-18 35309314 05-MAY-18 /datafile/data10.dbf

15 11 A 05-MAY-18 35309314 05-MAY-18 /datafile/datafile11.dbf

RMAN> delete copy of datafile 9,10,11;

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid&#61;146 devtype&#61;DISK

List of Datafile Copies

Key File S Completion Time Ckp SCN Ckp Time Name

------- ---- - --------------- ---------- --------------- ----

13 9 A 05-MAY-18 35309314 05-MAY-18 /datafile/data9.dbf

14 10 A 05-MAY-18 35309314 05-MAY-18 /datafile/data10.dbf

15 11 A 05-MAY-18 35309314 05-MAY-18 /datafile/datafile11.dbf

Do you really want to delete the above objects (enter YES or NO)? yes

deleted datafile copy

datafile copy filename&#61;/datafile/data9.dbf recid&#61;13 stamp&#61;975320371

deleted datafile copy

datafile copy filename&#61;/datafile/data10.dbf recid&#61;14 stamp&#61;975320371

deleted datafile copy

datafile copy filename&#61;/datafile/datafile11.dbf recid&#61;15 stamp&#61;975320371

Deleted 3 objects

4.2 开启日志应用&#xff1a;

SQL> --recover_std_real

SQL> alter database recover managed standby database using current logfile disconnect from session;

Database altered.

SQL> set lines 1000

SQL> select * from v$dataguard_stats;

NAME VALUE UNIT TIME_COMPUTED

-------------------------------- ---------------------------------------------------------------- ------------------------------ ------------------------------

apply finish time &#43;00 00:00:00.0 day(2) to second(1) interval 05-MAY-2018 10:20:56

apply lag &#43;00 00:02:00 day(2) to second(0) interval 05-MAY-2018 10:20:56

estimated startup time 41 second 05-MAY-2018 10:20:56

standby has been open N 05-MAY-2018 10:20:56

transport lag &#43;00 00:00:00 day(2) to second(0) interval 05-MAY-2018 10:20:56

SQL> select recovery_mode from v$archive_dest_status;

RECOVERY_MODE

-----------------------

MANAGED REAL TIME APPLY

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

IDLE

11 rows selected.

至此&#xff0c;就完成了客户的需求&#xff0c;我们可以多思考一下&#xff0c;如果客户环境是11g的ADG环境呢&#xff1f;会有哪些不同呢&#xff1f;

以上就是本文的全部内容&#xff0c;希望对大家的学习有所帮助&#xff0c;也希望大家多多支持脚本之家。



推荐阅读
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • 本文介绍了在使用Laravel和sqlsrv连接到SQL Server 2016时,如何在插入查询中使用输出子句,并返回所需的值。同时讨论了使用CreatedOn字段返回最近创建的行的解决方法以及使用Eloquent模型创建后,值正确插入数据库但没有返回uniqueidentifier字段的问题。最后给出了一个示例代码。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
author-avatar
火影魂XJ_710
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有