ORACLE 12C 冷备份方式的数据迁移(rename方式)

之前写了一篇通过修改控制文件来修改路径不一的问题,现在使用方法二通过rename来修改路径不一的问题

实验对象:两台linux单机的oracle 12C 数据库(大版本和小版本都一致),数据迁移采取冷备份的方式。

迁移步骤

首先关闭监听,和kill掉连接的应用
ps -ef | grep LOCAL=NO | awk ‘{print ($2)}‘ | xargs kill -9

创建pfile
create pfile=‘/tmp/inittest.ora1012‘ from spfile;
 
 
查看数据文件,日志文件的路径,日志文件路径

SQL> set line 200
SQL> col FILE_NAME for a80

SQL>  select TABLESPACE_NAME,file_name from  dba_data_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------------------------------------
SYSTEM                         /u01/app/oracle/oradata/test/system01.dbf
SYSAUX                         /u01/app/oracle/oradata/test/sysaux01.dbf
UNDOTBS1                       /u01/app/oracle/oradata/test/undotbs01.dbf
USERS                          /u01/app/oracle/oradata/test/users01.dbf
QWERTY                         /u01/app/oracle/oradata/test/qwerty.dbf
TESTBIG                        /u01/app/oracle/oradata/test/testbig.dbf
DATA                           /u01/app/oracle/oradata/test/data_01.dbf

SQL> select TABLESPACE_NAME,file_name from  dba_temp_files;

TABLESPACE_NAME                FILE_NAME
------------------------------ --------------------------------------------------------------------------------
TEMP                           /u01/app/oracle/oradata/test/temp01.dbf
TEMP_ASYNC                     /u01/app/oracle/oradata/test/temp_async_01.dbf

SQL> set line 200
SQL>  col MEMBER for a80
SQL> select GROUP#,MEMBER from v$logfile;

GROUP# MEMBER
---------- --------------------------------------------------------------------------------
         1 /u01/app/oracle/oradata/test/redo01.log
         2 /u01/app/oracle/oradata/test/redo02.log
         3 /u01/app/oracle/oradata/test/redo03.log

SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      /u01/app/oracle/oradata/test/c
                                                 ontrol01.ctl, /u01/app/oracle/
                                                 fast_recovery_area/test/contro
                                                 l02.ctl

关闭数据库后,拷贝参数文件,数据文件,日志文件,控制文件。
shutdown immediate

将所有需要的文件拷到本地,以便更好的传输。
cp ......

拷贝文件到目标服务器上。
scp ...

在目标服务器上修改pfile的信息。

源库
[[email protected] dbs]$ vi inittest.ora
test.__data_transfer_cache_size=0
test.__db_cache_size=339738624
test.__java_pool_size=4194304
test.__large_pool_size=8388608
test.__oracle_base=‘/u01/app/oracle‘#ORACLE_BASE set from environment
test.__pga_aggregate_target=293601280
test.__sga_target=545259520
test.__shared_io_pool_size=16777216
test.__shared_pool_size=167772160
test.__streams_pool_size=0
*.audit_file_dest=‘/u01/app/oracle/admin/test/adump‘
*.audit_trail=‘db‘
*.compatible=‘12.1.0.2.0‘
*.control_files=‘/u01/app/oracle/oradata/test/control01.ctl‘
*.db_block_size=8192
*.db_domain=‘‘
*.db_name=‘test‘
*.db_recovery_file_dest=‘/u01/app/oracle/fast_recovery_area‘
*.db_recovery_file_dest_size=4815m
*.diagnostic_dest=‘/u01/app/oracle‘
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=testXDB)‘
*.log_archive_format=‘%t_%s_%r.dbf‘
*.memory_target=800m
*.open_cursors=300
*.processes=300
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.undo_tablespace=‘UNDOTBS1‘

以下操作在目标数据库上操作

修改了控制文件的路径
*.control_files=‘/u01/app/oracle/oradata/test/controlfile/control01.ctl‘

修改数据文件的路径
alter database rename file ‘/u01/app/oracle/oradata/test/system01.dbf‘  to ‘/u01/app/oracle/oradata/test/datafile/system01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/sysaux01.dbf‘  to ‘/u01/app/oracle/oradata/test/datafile/sysaux01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/undotbs01.dbf‘ to ‘/u01/app/oracle/oradata/test/datafile/undotbs01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/users01.dbf‘   to ‘/u01/app/oracle/oradata/test/datafile/users01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/qwerty.dbf‘    to ‘/u01/app/oracle/oradata/test/datafile/qwerty.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/testbig.dbf‘   to ‘/u01/app/oracle/oradata/test/datafile/testbig.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/data_01.dbf‘   to ‘/u01/app/oracle/oradata/test/datafile/data_01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/temp_async_01.dbf‘ to  ‘/u01/app/oracle/oradata/test/datafile/temp_async_01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/temp01.dbf‘ to  ‘/u01/app/oracle/oradata/test/datafile/temp01.dbf‘;
alter database rename file ‘/u01/app/oracle/oradata/test/temp02.dbf‘ to  ‘/u01/app/oracle/oradata/test/datafile/temp02.dbf‘;

修改日志文件的路径
alter database rename file ‘/u01/app/oracle/oradata/test/redo01.log‘ to ‘/u01/app/oracle/oradata/test/onlinelog/redo01.log‘;
alter database rename file ‘/u01/app/oracle/oradata/test/redo02.log‘ to ‘/u01/app/oracle/oradata/test/onlinelog/redo02.log‘;
alter database rename file ‘/u01/app/oracle/oradata/test/redo03.log‘ to ‘/u01/app/oracle/oradata/test/onlinelog/redo03.log‘;

alter database open;

至此,完成数据的迁移。

时间: 2024-10-15 00:20:57

ORACLE 12C 冷备份方式的数据迁移(rename方式)的相关文章

关于Oracle与SQL Server中数据迁移的办法

最近遇到一个需求,需要把Oracle中一部分表的数据迁移到SQL Server数据库中.但是这些表的结构是有些差异的. 方法一,使用SQL Develper的数据导出工具,导出SQL insert语句,然后再手动修改其中的一些细节,最后在放到SQL Server中执行.因为前后的表结构是有差异的,我需要一条一条语句的去删掉一些字段,然后再删掉一些值,几条或者几十条数据还行,这40万条数据,太多了,这个方法行不通. 方法二,使用C#代码.我用C#写了一个Data Migration的控制台小程序,

ORACLE 12C 冷备份方式的数据迁移

实验对象:两台linux单机的oracle 12C 数据库(大版本和小版本都一致),数据迁移采取冷备份的方式.目标机器的路径跟源库不一致,需要重建controlfile. 迁移步骤 首先关闭监听,和kill掉连接的应用ps -ef | grep LOCAL=NO | awk '{print ($2)}' | xargs kill -9 创建pfilecreate pfile='/tmp/inittest.ora1012' from spfile;  查看数据文件,日志文件的路径,日志文件路径 S

生产环境下,oracle不同用户间的数据迁移。第二部分

任务名称:生产环境下schema ELON数据迁移至schema TIAN######################################## 测试二:测试参数remap_tablespace 导出schema ELON的全部数据:[[email protected] ~]$expdp system/xxxxxx SCHEMAS=ELON directory=EXPDP_DIR dumpfile =ELON_`date +"%Y%m%d%H%M%S"`.dmp logfil

生产环境下,oracle不同用户间的数据迁移。第三部分

任务名称:生产环境下schema ELON数据迁移至schema TIAN########################################前期准备:1:确认ELON用户下的对象状态select owner,constraint_name,constraint_type,table_name,status,validated from dba_constraints where owner='ELON'owner constraint_name constraint_type ta

Oracle 12c 新特性之 数据库内归档(In-Database Archiving)

Oracle Database 12c中引入了 In-Database Archiving的新特性, 该特性允许用户通过对表上的数据行标记为inactive不活跃的,以归档数据. 这些inactive的数据行可以通过压缩进一部优化,且对应用来说默认不可见.该特性可以对现有代码做最少改动的情况下,实现了这种"标记删除"的功能和需求. 12c之前:有些应用有"标记删除"的概念,即不是删除数据,而是数据依然保留在表中,只是对应用不可见而已.这种需求通常通过如下方法实现:1

oracle 12c中导入dmp数据文件步骤

oracle版本为12c的导入步骤:1.新建用户:CREATE USER c##zj_szda IDENTIFIED BY zjdaszda DEFAULT TABLESPACE USERS QUOTA 50M ON USERS; 2.授予dba权限给zj_szdagrant dba to zj_szda 3.导入szda.dmp文件$imp c##zj_szda/zjdaszda fromuser=zj_szda touser=c##zj_szda file=f:/szda.dmp 注:1.c

C# POST方式提交数据,接收方式,使用Request.Form[""]或Request[""]来获取

/// <summary> /// 调用接口 /// </summary> /// <param name="url"></param> /// <param name="dic">提交的参数</param> /// <returns></returns> public string Post(string url , Dictionary<string, stri

关于数据迁移的方法、步骤和心得

在项目中经常会遇到系统完全更换后的历史数据迁移问题,以示对客户历史工作的尊重,何况很多数据仍有保留的必要. 那怎么做历史数据迁移呢? 系统分析: 1.分析原有的业务系统 精确到大致的系统功能模块.大致的处理流程即可 2.分析现有的业务系统 精确到大致的系统功能模块.大致的处理流程即可 3.分析两者自己的区别和差异 大致分析一下两个业务系统之间的区别,有助于确定工作量和工作进度 4.分析用户对旧有数据的需求 分析对旧有数据的需求,才不至于盲目的全部性的进行迁移 5.分析用户对旧有数据的处理规则 旧

CodeFirst数据迁移

1.DBContext的代码如下: 1 public class Context:DbContext 2 { 3 public Context() 4 : base("name=ConnStr") 5 { 6 7 } 8 9 public DbSet<Menu> Menus { get; set; } 10 } 2.Menu类如下: 1 [Table("Menu")] 2 public class Menu 3 { 4 [Key,DatabaseGene