重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3194|回复: 0
打印 上一主题 下一主题

[Oracle] 传输数据库(linux_to_windows)

[复制链接]
跳转到指定楼层
楼主
发表于 2020-11-6 14:42:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
--设置环境变量ORACLE_SID
C:\Users\Administrator>set ORACLE_SID=orcl
--创建实例
C:\Users\Administrator>oradim -new -sid orcl -startmode m
输入 Oracle 服务用户的口令:
实例已创建。
--创建Oracle口令文件
C:\Users\Administrator>orapwd file=$ORACLE_HOME\database\pwdorcl.ora
password=oracle
2.利用源数据库的spfile文件来为目标数据库创建spfile文件
SQL> create pfile='$ORACLE_HOME/dbs/initorcl.ora' from spfile;
File created.
将上面生成的initorcl.ora文件复制到目标平台
D:\app\oracle\product\11.2.0\dbhome_1\database目录下并将其内容修改成如下
所示
*.audit_file_dest='D:\app\oracle\admin\orcl\adump'
*.cluster_database=false
*.compatible='11.2.0'
*.control_files='D:\ORACLE\ORADATA\orcl\CONTROLFILE\control01.ctl'
*.db_block_size=8192
*.db_create_file_dest='D:\oracle\oradata\'
*.db_name='orcl'
*.diagnostic_dest='D:\oracle\'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
*.enable_pluggable_database=true
*.open_cursors=300
*.pga_aggregate_target=1g
*.processes=200
*.remote_login_passwordfile='exclusive'
*.sga_max_size=2147483648
*.sga_target=2147483648
*.undo_retention=8640
*.undo_tablespace='UNDOTBS1'
3.在目标平台上启动实例orcl
C:\Users\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on 星期一 11月 1 14:23:54 2020
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
已连接到空闲例程。
SQL> startup nomount
ORACLE
例程已经启动。
Total System Global Area 2147483648 bytes
Fixed Size                  8920984 bytes
Variable Size            1392509032 bytes
Database Buffers          738197504 bytes
Redo Buffers                7856128 bytes
创建spfile参数文件并重启实例到nomount状态
SQL> create spfile from
pfile='D:\oracle\product\11.2.0\dbhome_1\database\initorcl.ora';
文件已创建。
SQL> shutdown immediate
ORA-01507: ??????
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 2147483648 bytes
Fixed Size                  8920984 bytes
Variable Size            1392509032 bytes
Database Buffers          738197504 bytes
Redo Buffers                7856128 bytes
SQL> show parameter spfile
NAME                                 TYPE                           VALUE
------------------------------------ ----------------------         ---------------------------------------
--------------------
spfile                               string                        
D:\ORACLE\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEorcl.ORA
测试tns连接实例ORCL是否能够成功
C:\Users\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.4.0 Production on 星期一 11月 2 15:23:54 2020
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
SQL> conn / as sysdba
已连接。
4.使用有sysdba权限的用户通过SQL*Plus连接到源数据库,并查询
v$transportable_platform来查询目标平台的名字,
因为传输整个数据库源平台与目标平台的字节序应该相同。
[oracle@ORCLtest1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Aug 2 15:06:37 2020
Copyright (c) 1982, 2016, Oracle.  All rights reserved.
Connected to:Oracle Database 12c Enterprise Edition Release 11.2.0.4.0 -
64bit Production
SQL> set long 200
SQL> set linesize 200
PLATFORM_NAME                            ENDIAN_FORMAT
---------------------------------------- --------------
HP-UX (64-bit)                           Big
AIX-Based Systems (64-bit)               Big
IBM Power Based Linux                    Big
Solaris[tm] OE (64-bit)                  Big
HP-UX IA (64-bit)                        Big
Apple Mac OS                             Big
Solaris[tm] OE (32-bit)                  Big
IBM zSeries Based Linux                  Big
Solaris Operating System (x86)           Little
HP IA Open VMS                           Little
Solaris Operating System (x86-64)        Little
PLATFORM_NAME                            ENDIAN_FORMAT
---------------------------------------- --------------
Microsoft Windows x86 64-bit             Little
Linux x86 64-bit                         Little
Microsoft Windows IA (64-bit)            Little
Apple Mac OS (x86-64)                    Little
Linux IA (64-bit)                        Little
HP Tru64 UNIX                            Little
Linux IA (32-bit)                        Little
Microsoft Windows IA (32-bit)            Little
HP Open VMS                              Little
20 rows selected.
我这里源平台为Linux x86 64-bit,目标平台为Microsoft Windows IA (64-bit),两个
平台的字节序都是Little
5.给RMAN备份输出文件选择命名方法
使用backup命令的format子句来为备份输出文件选择输出方法。
比如使用format子句来为备份输出文件指定存储目录/ora_backup/tdb并且为每个
文件生成以transport_为前缀的唯一文件名。
FORMAT '/ora_backup/tdb/transport_%U'
6.启动RMAN连接到源数据库并将重启源数据库并以只读方式打开。
$ rman target /
RMAN> shutdown immediate
RMAN> startup mount
RMAN> alter database open read only;
7.在backup命令中使用for transport或to platform子句来备份源数据库。
下面的例子对整个数据库创建跨平台传输备份。
跨平台数据库备份被存储在/tmp 目录中。
RMAN> backup as compressed backupset
2>      to platform ='Microsoft Windows x86 64-bit'
3>      format '/tmp/trans_%U' database ;
Starting backup at 02-AUG-20
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=8 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005
name=/u01/app/oracle/oradata/orcl/example.266.1032447363
channel ORA_DISK_1: starting piece 1 at 02-AUG-20
channel ORA_DISK_1: finished piece 1 at 02-AUG-20
piece handle=/tmp/trans_c2us7fhf_1_1 tag=TAG20200328T115943
comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001
name=/u01/app/oracle/oradata/orcl/system.258.1032447273
channel ORA_DISK_1: starting piece 1 at 02-AUG-20
channel ORA_DISK_1: finished piece 1 at 02-AUG-20
piece handle=/tmp/trans_c3us7fhi_1_1 tag=TAG20200328T115943
comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00003
name=/u01/app/oracle/oradata/orcl/sysaux.257.1032447237
channel ORA_DISK_1: starting piece 1 at 02-AUG-20
channel ORA_DISK_1: finished piece 1 at 02-AUG-20
piece handle=/tmp/trans_c4us7fhp_1_1 tag=TAG20200328T115943
comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00002 name=/home/oracle/tsp_test01.dbf
input datafile file number=00004
name=/u01/app/oracle/oradata/orcl/undotbs1.260.1032447319
input datafile file number=00006
name=/u01/app/oracle/oradata/orcl/users.259.1032447317
input datafile file number=00007
name=/u01/app/oracle/oradata/orcl/tsp_fda.269.1035737415
input datafile file number=00008
name=/u01/app/oracle/oradata/orcl/tsp_sztech.270.1036233829
channel ORA_DISK_1: starting piece 1 at 02-AUG-20
channel ORA_DISK_1: finished piece 1 at 02-AUG-20
piece handle=/tmp/trans_c5us7fhs_1_1 tag=TAG20200328T115943
comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 02-AUG-20
[oracle@dbserver tmp]$ ls -ltr trans_c*
-rw-r----- 1 oracle asmadmin  29171712 Aug 02 14:49 trans_c2us7fhf_1_1
-rw-r----- 1 oracle asmadmin 280363008 Aug 02 14:49 trans_c3us7fhi_1_1
-rw-r----- 1 oracle asmadmin 154673152 Aug 02 14:49 trans_c4us7fhp_1_1
-rw-r----- 1 oracle asmadmin  15663104 Aug 02 14:49 trans_c5us7fhs_1_1
备份源数据库的控制文件到跨踪文件中用于在目标平台为目标数据库重新创建控
制文件
SQL> alter session set tracefile_identifier='create';
Session altered.
SQL> alter database backup controlfile to trace resetlogs;
Database altered.
8.将在源平台上使用rman backup命令生成的备份集与备份的控制文件传输到目
标平台的D:\oracle\oradata\orcl 目录中
9.使用rman连接到目标数据库并确保目标数据库(单实例CDB)处于nomount状态
C:\Users\Administrator>rman target sys/abcd@ORCL
恢复管理器: Release 11.2.0.4.0 - Production on 星期一 11月 2 15:43:54 2020
Copyright (c) 1982, 2017, Oracle and/or its affiliates.  All rights reserved.
已连接到目标数据库: ORCL (未装载)
10.使用有foreign database子句的restore命令来还原从源平台传输过来的备份集
RMAN> restore foreign database to new
2>         from backupset 'd:\oracle\oradata\orcl\trans_c2us7fhf_1_1'
                     backupset 'd:\oracle\oradata\orcl\trans_c3us7fhi_1_1'
                     backupset 'd:\oracle\oradata\orcl\trans_c4us7fhp_1_1'
                     backupset 'd:\oracle\oradata\orcl\trans_c5us7fhs_1_1';
启动 restore 于 02-11月 -20
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 正在还原备份片段中的所有外部文件
通道 ORA_DISK_1: 正在读取备份片段
d:\oracle\oradata\orcl\trans_c2us7fhf_1_1
通道 ORA_DISK_1: 正在将外部文件 5 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_EXAMPLE_H7XMZ54X_.DBF
通道 ORA_DISK_1: 外部片段句柄=d:\oracle\oradata\orcl\trans_c2us7fhf_1_1
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:16
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 正在还原备份片段中的所有外部文件
通道 ORA_DISK_1: 正在读取备份片段
d:\oracle\oradata\orcl\trans_c3us7fhi_1_1
通道 ORA_DISK_1: 正在将外部文件 1 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_H7XMZO5X_.DBF
通道 ORA_DISK_1: 外部片段句柄=d:\oracle\oradata\orcl\trans_c3us7fhi_1_1
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:16
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 正在还原备份片段中的所有外部文件
通道 ORA_DISK_1: 正在读取备份片段
d:\oracle\oradata\orcl\trans_c4us7fhp_1_1
通道 ORA_DISK_1: 正在将外部文件 3 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_SYSAUX_H7XN057R_.DBF
通道 ORA_DISK_1: 外部片段句柄=d:\oracle\oradata\orcl\trans_c4us7fhp_1_1
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:21:23
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 正在还原备份片段中的所有外部文件
通道 ORA_DISK_1: 正在读取备份片段
d:\oracle\oradata\orcl\trans_c5us7fhs_1_1
通道 ORA_DISK_1: 正在将外部文件 4 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_UNDOTBS1_H7XO88RB_.DBF
通道 ORA_DISK_1: 正在将外部文件 6 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_USERS_H7XO88RM_.DBF
通道 ORA_DISK_1: 正在将外部文件 7 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_TSP_FDA_H7XO88RQ_.DBF
通道 ORA_DISK_1: 正在将外部文件 2 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_TSP_TEST_H7XO88RT_.DBF
通道 ORA_DISK_1: 正在将外部文件 8 还原到
D:\ORACLE\ORADATA\ORCL\DATAFILE\O1_MF_TSP_SZTE_H7XO88RX_.DBF
通道 ORA_DISK_1: 外部片段句柄=d:\oracle\oradata\orcl\trans_c5us7fhs_1_1
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:00:04
完成 restore 于 02-11月 -20
把这些文件改一下名字:
D:\oracle\oradata\orcl\ORCL\DATAFILE>dir
驱动器 D 中的卷是 新加卷
卷的序列号是 7038-25DA
D:\oracle\oradata\orcl\ORCL\DATAFILE 的目录
2020/11/02  14:00    <DIR>          .
2020/11/02  14:00    <DIR>          ..
2020/11/02  14:17     1,304,174,592 example01.dbf
2020/11/02  14:18       849,354,752 sysaux01.dbf
2020/11/02  14:18       849,354,752 system01.dbf
2020/11/02  14:49        20,979,712 tsp_fda01.dbf
2020/11/02  14:49        10,493,952 tsp_sztech01.dbf
2020/11/02  14:49        10,493,952 tsp_test01.dbf
2020/11/02  14:49       162,537,472 undotbs1.dbf
2020/11/02  14:49       119,283,712 users01.dbf
               8 个文件  3,326,672,896 字节
               2 个目录 70,361,075,712 可用字节
11.在目标平台上使用备份的控制文件来为目标数据库创建控制文件,将备分的控
制文件记录的源数据文件修改成还原后的数据文件名,其创建语句如下
SQL>
CREATE CONTROLFILE REUSE SET DATABASE "ORCL"
RESETLOGS  ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 SIZE 50M BLOCKSIZE 512,
  GROUP 2 SIZE 50M BLOCKSIZE 512,
  GROUP 3 SIZE 50M BLOCKSIZE 512
DATAFILE
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\system01.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\tsp_test01.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\sysaux01.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\undotbs1.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\example01.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\users01.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\tsp_fda01.dbf',
  'D:\ORACLE\ORADATA\ORCL\DATAFILE\tsp_sztech01.dbf'
CHARACTER SET AL32UTF8

  ;控制文件已创建。
SQL>  select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:\ORACLE\ORADATA\ORCL\DATAFILE\SYSTEM01.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\TSP_TEST01.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\SYSAUX01.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\UNDOTBS1.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\EXAMPLE01.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\USERS01.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\TSP_FDA01.DBF
D:\ORACLE\ORADATA\ORCL\DATAFILE\TSP_SZTECH01.DBF
已选择 8 行。
12.以open resetlogs选项打开数据库
SQL> alter database open resetlogs;
数据库已更改。
13.给CDB数据库增加临进表空间数据文件
SQL> alter tablespace temp add tempfile
'D:\ORACLE\ORADATA\ORCL\DATAFILE\temp01.dbf'     size 100M  reuse
autoextend on;
表空间已更改。
到此使用备份集跨平台传输整个数据库就完成了。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-26 16:44 , Processed in 0.090769 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表