RMAN异机恢复(RAC 11G -Single 12C NonCDB -PDB-CDB)
测试平台信息
环境 参数
数据库版本 源端 11.2.0.4 目标端 12.2.0.1
是否集群 源端 RAC 目标端 Single
操作系统 源端 CentOS 7.3 目标端 Redhat 6.9
DB_NAME 源端 YUNQU 目标端 YUNQU
环境说明:不管是源端还是目标端都有两个库存在,所以在备份或者恢复的时候需要注意
根据ORACLE的升级指南11.2.0.3及以上的版本可以直升12CR2
说明
(1)RMAN 异机恢复的时候,db_name必须相同。 如果说要想改成其他的实例名,可以在恢复成功后,用nid命令修改。 实例名的信息会记录到控制文件里,所以如果在恢复的时候,如果实例名不一致,恢复的时候会报错。
(2)如果恢复的路径和源库不一致,就需要在restore时用set 命令指定新位置。 并且使用switch datafile all将信息更新的到控制文件。
在做duplicate的时候,RMAN 会自动根据pfile中的log_file_name_convert和db_file_name_convert来进行set 的转换。 手工restore时,只能只只能使用set 命令。
(3)异机恢复对相同目录和不同目录都做了说明
(4)最后可用nid工具修改DBID以及DB_NAME
一、源库准备
1、运行预升级工具
该preupgrade.jar预升级工具位于目标端12CR2 $ORACLE_HOME/rdbms/admin目录下,拷贝至对应源端目录中(12CR1是preupgrade.sql脚本)
目标端:
oracle@12cDG:/u01/oracle/12.2.0/rdbms/admin>ls preupgrade*
preupgrade.jar preupgrade_messages.properties preupgrade_package.sql
oracle@12cDG:/u01/oracle/12.2.0/rdbms/admin>scp preupgrade.jar 172.41.176.102:/u01/oracle/11.2.0/rdbms/admin/
oracle@172.41.176.102's password:
preupgrade.jar 100% 535KB 534.9KB/s 00:00
源端:
1、产生预升级相关文件,搜集升级信息
oracle@rac2:/u01/oracle/11.2.0/rdbms/admin>source ~/.bash_yunqu
oracle@rac2:/u01/oracle/11.2.0/rdbms/admin>echo $ORACLE_SID
yunqu2
oracle@rac2>$ORACLE_HOME/jdk/bin/java -jar $ORACLE_HOME/rdbms/admin/preupgrade.jar FILE DIR /u01/UPGRADE
Preupgrade generated files:
/u01/UPGRADE/preupgrade.log
/u01/UPGRADE/preupgrade_fixups.sql
/u01/UPGRADE/postupgrade_fixups.sql
oracle@rac2:/u01/oracle/11.2.0/rdbms/admin>
2、停止EM
若未启用EM就可以忽略,否则会像下面输出一样(当前未启用EM)
oracle@rac2:/u01/oracle/11.2.0/rdbms/admin>export ORACLE_UNQNAME=yunqu
oracle@rac2:/u01/oracle/11.2.0/rdbms/admin>emctl stop dbconsole
OC4J Configuration issue. /u01/oracle/11.2.0/oc4j/j2ee/OC4J_DBConsole_rac2_yunqu not found.
3、运行preupgrade_fixups.sql
oracle@rac2:/u01/UPGRADE>ls
dbms_registry_basic.sql oracle preupgrade_driver.sql preupgrade.log preupgrade_package.sql
dbms_registry_extended.sql postupgrade_fixups.sql preupgrade_fixups.sql preupgrade_messages.properties upgrade
oracle@rac2:/u01/UPGRADE>echo $ORACLE_SID
yunqu2
oracle@rac2:/u01/UPGRADE>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Apr 3 11:02:08 2018
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> @preupgrade_fixups.sql
Executing Oracle PRE-Upgrade Fixup Script
Auto-Generated by: Oracle Preupgrade Script
Version: 12.2.0.1.0 Build: 1
Generated on: 2018-04-03 10:55:20
For Source Database: YUNQU
Source Database Version: 11.2.0.4.0
For Upgrade to Version: 12.2.0.1.0
Fixup
Check Name Status Further DBA Action
---------- ------ ------------------
em_present Failed Manual fixup recommended.
amd_exists Failed Manual fixup recommended.
dictionary_stats Passed None
trgowner_no_admndbtrg Failed Manual fixup recommended.
apex_upgrade_msg Failed Manual fixup recommended.
min_archive_dest_size Failed Manual fixup recommended.
PL/SQL procedure successfully completed.
根据收集的升级信息提示,手动修复解决方法(生产环境就不要轻易移除组件,以防出现问题)
3.1、移除EM console,从12CR2 $ORACLE_HOME/rdbms/admin/emremove.sql
3.2、移除OLAP 组件,从11G $ORACLE_HOME/olap/admin/catnoamd.sql
这里只是建议手动修复并无ERROR错误,若生产环境还是不敢随意动生产,所以这里我忽略上面警告建议修复信息...(若采用上面方法修复后,可再次运行上面检查脚本,查看)
4、设置进程PROCESSES以及清理回收站
SQL> alter system set processes=500 scope=spfile;
System altered.
SQL> purge dba_recyclebin;
DBA Recyclebin purged.
5、收集下数据字典统计信息
SQL> EXECUTE dbms_stats.gather_dictionary_stats;
PL/SQL procedure successfully completed.
二、源端备份
1、验证查看RMAN策略是否开启备份优化、并行以及控制文件自动备份
rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Tue Apr 3 11:27:54 2018
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: YUNQU (DBID=2130573682)
RMAN> show all;
CONFIGURE BACKUP OPTIMIZATION OFF; # defaultt
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
开启
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters:
CONFIGURE BACKUP OPTIMIZATION ON;
new RMAN configuration parameters are successfully stored
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/controlfile/%F';
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/backup/controlfile/%F';
new RMAN configuration parameters are successfully stored
2、查询DBID
SQL> select name,dbid from v$database;
NAME DBID
--------- ----------
YUNQU 2130573682
3、源端备份DB(差异增量)
RMAN备份脚本,参考:
http://www.cndba.cn/Marvinn/article/2701
RMAN两周循环脚本,参考:
www.cndba.cn/Marvinn/article/2700
测试..手动执行一下各个0、1、2级脚本
4、创建测试数据并备份
SQL> conn marvin/marvin;
Connected.
SQL>
SQL> create table marvin(id number,name varchar2(20))
2 partition by range(id)
3 (
4 partition p1 values less than (250000),
5 partition p2 values less than (500000),
6 partition p3 values less than (750000),
7 partition p4 values less than (maxvalue)
8 );
Table created.
SQL> declare
2 i number;
3 begin
4 for i in 1..1000000 loop
5 insert into marvin values(i,'ss');
6 end loop;
7 commit;
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select count(*) from marvin partition (p1);
COUNT(*)
----------
249999
###0级备
rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Mar 30 14:24:21 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1492741289)
RMAN> @backup_level0.rcv
###插入数据,2级备
SQL> declare
2 i number;
3 begin
4 for i in 10000..100000 loop
5 insert into marvin values(i,'dd');
6 end loop;
7 commit;
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select count(*) from marvin partition (p1);
COUNT(*)
----------
340000
rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Mar 30 14:29:13 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1492741289)
RMAN> @backup_level2.rcv
###再次2级备
SQL> declare
2 i number;
3 begin
4 for i in 500000..600000 loop
5 insert into marvin values(i,'kk');
6 end loop;
7 commit;
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select count(*) from marvin partition (p2);
COUNT(*)
----------
250000
rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Mar 30 14:32:50 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1492741289)
RMAN> @backup_level2.rcv
###创建表,1级备份
SQL> create table marvinn (id number primary key,name varchar2(20));
Table created.
SQL> declare
2 i number;
3 begin
4 for i in 1..1000000 loop
5 insert into marvinn values(i,'ss');
6 end loop;
7 commit;
8 end;
9 /
PL/SQL procedure successfully completed.
SQL> select count(*) from marvinn;
COUNT(*)
----------
1000000
rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Mar 30 14:37:57 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1492741289)
RMAN> @backup_level1.rcv
###归档备份删除30天前的归档
rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Fri Mar 30 14:43:16 2018
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORCL (DBID=1492741289)
RMAN> @backup_arch.rcv
查看备份信息
oracle@rac2:/u01/backup>ls
arch_YUNQU_20180403_73_1 arch_YUNQU_20180403_76_1 fulldb_level2_YUNQU_20180403_65_1 fulldb_YUNQU_20180403_59_2 scripts
arch_YUNQU_20180403_74_1 controlfile fulldb_level2_YUNQU_20180403_67_1 fulldb_YUNQU_20180403_59_3
arch_YUNQU_20180403_74_2 fulldb_level1_YUNQU_20180403_70_1 fulldb_level2_YUNQU_20180403_68_1 fulldb_YUNQU_20180403_60_1
arch_YUNQU_20180403_75_1 fulldb_level1_YUNQU_20180403_71_1 fulldbsp_YUNQU_20180403_62_1 fulldb_YUNQU_20180403_60_2
arch_YUNQU_20180403_75_2 fulldb_level2_YUNQU_20180403_64_1 fulldb_YUNQU_20180403_59_1 fulldb_YUNQU_20180403_61_1
三、目标端执行
3.1、创建口令文件
oracle@12cDG:/u01/oracle/12.2.0/rdbms/admin>orapwd file=?/dbs/orapwyunqu password=marvin_123
oracle@12cDG:/u01/oracle/12.2.0/dbs>ll orapwyunqu
-rw-r----- 1 oracle oinstall 6144 Apr 3 11:49 orapwyunq
3.2、创建备份存放目录
oracle@12cDG:/data>mkdir backup_11g
oracle@12cDG:/data>ls
arch backup_11g oradata
源端传送SCP到目标端
oracle@rac2:/u01/backup>mv scripts/ ../
oracle@rac2:/u01/backup>scp -r * 172.41.176.117:/data/backup_11g
验证目标端是否存在
oracle@12cDG:/data/backup_11g>ls
arch_YUNQU_20180403_73_1 arch_YUNQU_20180403_76_1 fulldb_level2_YUNQU_20180403_65_1 fulldb_YUNQU_20180403_59_2
arch_YUNQU_20180403_74_1 controlfile fulldb_level2_YUNQU_20180403_67_1 fulldb_YUNQU_20180403_59_3
arch_YUNQU_20180403_74_2 fulldb_level1_YUNQU_20180403_70_1 fulldb_level2_YUNQU_20180403_68_1 fulldb_YUNQU_20180403_60_1
arch_YUNQU_20180403_75_1 fulldb_level1_YUNQU_20180403_71_1 fulldbsp_YUNQU_20180403_62_1 fulldb_YUNQU_20180403_60_2
arch_YUNQU_20180403_75_2 fulldb_level2_YUNQU_20180403_64_1 fulldb_YUNQU_20180403_59_1 fulldb_YUNQU_20180403_61_1
3.3、创建初始化参数
考虑到当前环境下中已经存在一个CDB数据库,然而非12C版本恢复12C的版本是Non-CDB,使用CDB,需将其转换PDB插入到CDB中
源端是RAC 目标端是单实例
1、设置ORACLE_SID
oracle@12cDG:/data/backup_11g>export ORACLE_SID=yunqu
oracle@12cDG:/data/backup_11g>
当前方式使用默认init.ora起库到nomount状态,再尝试restore spfile to pfile,再用pfile起库
(另外一种手工源库建pfile,传送过来再起库到Nomount,不演示,参考链接:http://www.cndba.cn/Marvinn/article/2705)
2、恢复SPFILE到PFILE
oracle@12cDG:/data/backup_11g>rman target / nocatalog
Recovery Manager: Release 12.2.0.1.0 - Production on Tue Apr 3 13:54:34 2018
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
connected to target database (not started)
RMAN> set DBID=2130573682 ##设置源库的DBID
executing command: SET DBID
RMAN> startup nomount;
startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/oracle/12.2.0/dbs/inityunqu.ora'
starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started
Total System Global Area 1073741824 bytes
Fixed Size 8628936 bytes
Variable Size 281019704 bytes
Database Buffers 780140544 bytes
Redo Buffers 3952640 bytes
RMAN查找spfile参数文件失败,因为它还没有被还原,然而,实例将会使用虚拟参数文件来进行启动
从源数据库的自动备份文件中还原spfile参数文件
(因为源数据库启用了控制文件自动备份,所以spfile参数文件会被包含在自动备份文件中。为了还原非缺省格式的自动备份,需要执行set controlfile autobackup format命令来指定格式)
或者
(若备份命令中有指定备份控制文件(backup current controlfile),可直接从备份片中恢复)
自动备份中恢复
RMAN> run
{
set controlfile autobackup format for device type disk to '/data/backup_11g/controlfile/%F';
restore spfile to pfile '/u01/oracle/12.2.0/dbs/inityunqu.ora' from autobackup;
shutdown abort;
}
executing command: SET CONTROLFILE AUTOBACKUP FORMAT
Starting restore at 2018-04-03 14:06:36
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=35 device type=DISK
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20180403
channel ORA_DISK_1: AUTOBACKUP found: /data/backup_11g/controlfile/c-2130573682-20180403-04
channel ORA_DISK_1: restoring spfile from AUTOBACKUP /data/backup_11g/controlfile/c-2130573682-20180403-04
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 2018-04-03 14:06:38
Oracle instance shut down
...................................................................
或者从指定备份片中恢复
RMAN> run
{
restore spfile to pfile '/u01/oracle/12.2.0/dbs/inityunqu.ora' from 'fulldbsp_YUNQU_20180403_62_1';
shutdown abort;
}
......................................................................
3.4、编辑修改inityunqu.ora参数文件
由于环境是单实例的,所欲需要修改保留成单个参数
yunqu.__db_cache_size=687865856
yunqu.__java_pool_size=16777216
yunqu.__large_pool_size=33554432
yunqu.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment
yunqu.__pga_aggregate_target=419430400
yunqu.__sga_target=1258291200
yunqu.__shared_io_pool_size=0
yunqu.__shared_pool_size=503316480
yunqu.__streams_pool_size=0
创建adump目录,可置机任意指定
*.audit_file_dest='/u01/oracle/admin/yunqu/adump'
【
创建命令
oracle@12cDG:/u01/oracle/12.2.0/dbs>mkdir -p /u01/oracle/admin/yunqu/adump
】
注释或去掉集群参数
#*.cluster_database=true
#*.remote_listener='rac-scan:1521'
指定还原恢复控制文件所在存放路径
*.control_files='/u01/oracle/12.2.0/dbs/controlyunqu.ctl','/u01/oracle/admin/yunqu/control02.ctl'
修改数据库文件所创建路径(之前是RAC,现在是单实例本地文件系统)
*.db_create_file_dest='+DATA'
修改为
*.db_create_file_dest='/data/oradata/yunqu'
【
创建命令
oracle@12cDG:/data/oradata>mkdir -p /data/oradata/yunqu
】
参数
yunqu2.instance_number=2
yunqu1.instance_number=1
yunqu2.thread=2
yunqu1.thread=1
yunqu1.undo_tablespace='UNDOTBS1'
yunqu2.undo_tablespace='UNDOTBS2'
更改为
yunqu.instance_number=1
yunqu.thread=1
yunqu.undo_tablespace='UNDOTBS1'
归档路径参数
*.log_archive_dest_1='location=+data/yunqu/arch'
更改为
*.log_archive_dest_1='location=/data/yunqu_arch'
【
创建命令
oracle@12cDG:/data>mkdir -p /data/yunqu_arch
】
版本兼容性参数这里,暂时不更改,最后来修改
*.compatible='11.2.0.4.0'
其他参数不变动,重新利用该参数起库到Nomount状态
3.5、恢复控制文件
使用编辑后的pfile参数文件来启动实例到nomount状态
RMAN> startup force nomount pfile='/u01/oracle/12.2.0/dbs/inityunqu.ora'
Oracle instance started
Total System Global Area 1258291200 bytes
Fixed Size 8620224 bytes
Variable Size 503318336 bytes
Database Buffers 738197504 bytes
Redo Buffers 8155136 bytes
从控制文件自动备份文件中还原控制文件并将目标数据库启动到mount状态,
为了还原非缺省格式的自动备份,需要执行set controlfile autobackup format命令来指定格式
RMAN> run
2> {
3> set controlfile autobackup format for device type disk to '/data/backup_11g/controlfile/%F';
4> restore controlfile from autobackup;
5> alter database mount;
6> }
executing command: SET CONTROLFILE AUTOBACKUP FORMAT
Starting restore at 2018-04-03 14:27:59
using channel ORA_DISK_1
channel ORA_DISK_1: looking for AUTOBACKUP on day: 20180403
channel ORA_DISK_1: AUTOBACKUP found: /data/backup_11g/controlfile/c-2130573682-20180403-04
channel ORA_DISK_1: restoring control file from AUTOBACKUP /data/backup_11g/controlfile/c-2130573682-20180403-04
channel ORA_DISK_1: control file restore from AUTOBACKUP complete
output file name=/u01/oracle/12.2.0/dbs/controlyunqu.ctl
output file name=/u01/oracle/admin/yunqu/control02.ctl
Finished restore at 2018-04-03 14:28:00
Statement processed
released channel: ORA_DISK_1
注意:restore 控制文件的时候,控制文件恢复的位置,是我们在pfile中的control_files参数控制的
3.6、恢复数据文件
Catalog 恢复目录
RMAN> catalog start with '/data/backup_11g';
还原与恢复数据库
如果数据文件要被还原到目标主机上的目录与源数据库所在的目录不相同,那么必须使用set newname命令来对还原的数据文件指定新的目录路径。如果联机重做日志将创建在与源数据库不相同的目录中,那么必须使用alter database rename file命令来为每个联机重做日志指定新的目录路径,在这里使用set newname for database命令来为所有被还原的数据文件指定新目录,新的联机重做日志文件使用alter database rename file命令来指定
查询脚本(
自行指定对比数据文件名以及联机重做日志组名
1、指定数据文件的
set linesize 999;
SQL> select 'set newname for datafile '|| file# ||' to '|| ''''||'/data/oradata/yunqu/datafile/Configure_datafile_Name' ||'''' as sql from v$datafile;
2、指定联机重做日志文件
set linesize 999;
SQL> select 'alter database rename file '||''''||member||''''||' to ' || ''''||'/data/oradata/yunqu/onlinelog/Configure_Redo_Name'||'''' AS SQL from gv$logfile;
)
RMAN>RUN
{
set newname for database to '/data/oradata/yunqu/datafile/%U';
alter database rename file '+DATA/yunqu/onlinelog/group_2.482.971950133' to '/data/oradata/yunqu/onlinelog/redo01.log';
alter database rename file '+DATA/yunqu/onlinelog/group_1.478.971950133' to '/data/oradata/yunqu/onlinelog/redo02.log';
alter database rename file '+DATA/yunqu/onlinelog/group_3.472.971950265' to '/data/oradata/yunqu/onlinelog/redo03.log';
alter database rename file '+DATA/yunqu/onlinelog/group_4.464.971950265' to '/data/oradata/yunqu/onlinelog/redo04.log';
set until scn 2669318;
restore database;
switch datafile all;
recover database;
}
executing command: SET NEWNAME
Statement processed
Statement processed
Statement processed
Statement processed
Starting restore at 2018-04-03 15:01:25
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=29 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00002 to /data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSAUX_FNO-2
channel ORA_DISK_1: restoring datafile 00003 to /data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS1_FNO-3
channel ORA_DISK_1: restoring datafile 00005 to /data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS2_FNO-5
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_YUNQU_20180403_60_1
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_YUNQU_20180403_60_1
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_YUNQU_20180403_60_1 tag=LEVEL_0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_YUNQU_20180403_60_2
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_YUNQU_20180403_60_2
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_YUNQU_20180403_60_2 tag=LEVEL_0
channel ORA_DISK_1: restored backup piece 2
channel ORA_DISK_1: restore complete, elapsed time: 00:00:28
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSTEM_FNO-1
channel ORA_DISK_1: restoring datafile 00004 to /data/oradata/yunqu/datafile/data_D-YUNQU_TS-USERS_FNO-4
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_YUNQU_20180403_59_1
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_YUNQU_20180403_59_1
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_YUNQU_20180403_59_1 tag=LEVEL_0
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_YUNQU_20180403_59_2
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_YUNQU_20180403_59_2
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_YUNQU_20180403_59_2 tag=LEVEL_0
channel ORA_DISK_1: restored backup piece 2
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_YUNQU_20180403_59_3
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_YUNQU_20180403_59_3
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_YUNQU_20180403_59_3 tag=LEVEL_0
channel ORA_DISK_1: restored backup piece 3
channel ORA_DISK_1: restore complete, elapsed time: 00:00:57
Finished restore at 2018-04-03 15:02:52
datafile 1 switched to datafile copy
input datafile copy RECID=6 STAMP=972486172 file name=/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSTEM_FNO-1
datafile 2 switched to datafile copy
input datafile copy RECID=7 STAMP=972486172 file name=/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSAUX_FNO-2
datafile 3 switched to datafile copy
input datafile copy RECID=8 STAMP=972486172 file name=/data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS1_FNO-3
datafile 4 switched to datafile copy
input datafile copy RECID=9 STAMP=972486172 file name=/data/oradata/yunqu/datafile/data_D-YUNQU_TS-USERS_FNO-4
datafile 5 switched to datafile copy
input datafile copy RECID=10 STAMP=972486172 file name=/data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS2_FNO-5
Starting recover at 2018-04-03 15:02:52
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: /data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSTEM_FNO-1
destination for restore of datafile 00003: /data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS1_FNO-3
destination for restore of datafile 00004: /data/oradata/yunqu/datafile/data_D-YUNQU_TS-USERS_FNO-4
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_level1_YUNQU_20180403_70_1
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_level1_YUNQU_20180403_70_1
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_level1_YUNQU_20180403_70_1 tag=LEVEL_1DIFF
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00002: /data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSAUX_FNO-2
destination for restore of datafile 00005: /data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS2_FNO-5
channel ORA_DISK_1: reading from backup piece /u01/backup/fulldb_level1_YUNQU_20180403_71_1
channel ORA_DISK_1: errors found reading piece handle=/u01/backup/fulldb_level1_YUNQU_20180403_71_1
channel ORA_DISK_1: failover to piece handle=/data/backup_11g/fulldb_level1_YUNQU_20180403_71_1 tag=LEVEL_1DIFF
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:15
starting media recovery
channel ORA_DISK_1: starting archived log restore to default destination
channel ORA_DISK_1: restoring archived log
archived log thread=2 sequence=48
channel ORA_DISK_1: reading from backup piece /u01/backup/arch_YUNQU_20180403_76_1
channel ORA_DISK_1: ORA-19870: error while restoring backup piece /data/backup_11g/arch_YUNQU_20180403_76_1
ORA-19504: failed to create file "+DATA/yunqu/arch/2_48_971950133.dbf"
ORA-29701: unable to connect to Cluster Synchronization Service
failover to previous backup
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 04/03/2018 15:03:13
RMAN-20506: no backup of archived log found
RMAN-06053: unable to perform media recovery because of missing log
RMAN-06025: no backup of archived log for thread 2 with sequence 48 and starting SCN of 2669318 found to restore
之后会报一个错误:
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 23 and starting SCN of 567388
这里是提醒恢复到一个未知的scn号。在alter database mount之后,通过set until scn 或者set until time 命令设置恢复到的scn号或时间。就可以避免这个错误
set until scn 2669318;
源库查询(first_change# 即scn号)找到并目标端设置成当时备份归档日志时最后未归档的前一个scn号即可避免这个错误
Select name, sequence#, first_change# FROM v$archived_log;
3.7、使用resetlogs与upgrade打开数据库
RMAN> alter database open resetlogs upgrade;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 04/03/2018 15:21:06
ORA-16038: log 3 sequence# 1 cannot be archived
ORA-00254: error in archive control string ''
ORA-00312: online log 3 thread 2: '/data/oradata/yunqu/onlinelog/redo03.log'
ORA-15001: diskgroup "DATA" does not exist or is not mounted
ORA-15374: invalid cluster configuration
报错是由于redo03.log联机重做日志组3存有+DATA ASM磁盘组信息,而当前环境为单实例,所以无法打开
目标库:
15:25:03 SYS@yunqu>select group#,sequence#,status,archived from v$log;
GROUP# SEQUENCE# STATUS ARCHIV
---------- ---------- -------------------------------- ------
1 1 CURRENT NO
2 0 UNUSED YES
3 1 INACTIVE NO
4 2 CURRENT NO
#清除未归档的INACTIVE重做日志组,不会丢失任何已提交事物,但清除后必须完全备份,从而确保可以执行完整恢复。
15:35:14 SYS@yunqu>alter database clear unarchived logfile group 3;
Database altered.
Elapsed: 00:00:00.40
15:36:26 SYS@yunqu>select group#,sequence#,status,archived from v$log;
GROUP# SEQUENCE# STATUS ARCHIV
---------- ---------- -------------------------------- ------
1 1 CURRENT NO
2 0 UNUSED YES
3 0 UNUSED YES
4 2 CURRENT NO
Elapsed: 00:00:00.00
再次尝试打开
RMAN> alter database open resetlogs upgrade;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 04/03/2018 15:37:01
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
RMAN>exit
退出,以升级模式重启库
oracle@12cDG:/home/oracle>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Tue Apr 3 15:37:10 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
15:37:11 SYS@yunqu>shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
15:38:34 SYS@yunqu>startup upgrade;
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 8620224 bytes
Variable Size 503318336 bytes
Database Buffers 738197504 bytes
Redo Buffers 8155136 bytes
Database mounted.
Database opened.
注意:12C升级的方法与之前版本的不同,直接到SQLPLUS执行catupgrd.sql会报错跳出,无法执行,需执行如下命令
oracle@12cDG:/home/oracle>echo $ORACLE_SID
yunqu
oracle@12cDG:/home/oracle>cd cd $ORACLE_HOME/rdbms/admin
-bash: cd: cd: No such file or directory
oracle@12cDG:/home/oracle>cd $ORACLE_HOME/rdbms/admin
oracle@12cDG:/u01/oracle/12.2.0/rdbms/admin>$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql
...............输出省略
查看告警日志,一直报归档路径错误
Errors in file /u01/oracle/diag/rdbms/yunqu/yunqu/trace/yunqu_arc2_23452.trc:
ORA-16014: log 4 sequence# 2 not archived, no available destinations
ORA-00312: online log 4 thread 2: '/data/oradata/yunqu/onlinelog/redo04.log'
2018-04-03T15:44:47.406648+08:00
ARCH: Archival error occurred on a closed thread. Archiver continuing
2018-04-03T15:44:47.406803+08:00
ORACLE Instance yunqu - Archival Error. Archiver continuing.
2018-04-03T15:48:56.194922+08:00
新开窗口查看参数文件中的归档路径
15:47:50 SYS@yunqu>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination +DATA/yunqu/arch
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 2
15:47:54 SYS@yunqu>exit
发现参数文件中归档路径忘记更改....中断升级脚本运行,关库,重新更改参数文件,重新已UGRADE模式起库
15:51:47 SYS@yunqu>shutdown abort;
ORACLE instance shut down.
15:51:55 SYS@yunqu>startup mount pfile='/u01/oracle/12.2.0/dbs/inityunqu.ora';
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 8620224 bytes
Variable Size 503318336 bytes
Database Buffers 738197504 bytes
Redo Buffers 8155136 bytes
Database mounted.
15:53:57 SYS@yunqu>
15:53:59 SYS@yunqu>archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/yunqu_arch
Oldest online log sequence 1
Next log sequence to archive 1
Current log sequence 2
15:54:10 SYS@yunqu>alter database open upgrade;
Database altered.
重新运行升级脚本,观察告警日志
-n 参数表示开并行
oracle@12cDG:/data/yunqu_arch>$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql
Can't open perl script "catctl.pl": (null)
oracle@12cDG:/data/yunqu_arch>cd $ORACLE_HOME/rdbms/admin
oracle@12cDG:/u01/oracle/12.2.0/rdbms/admin>$ORACLE_HOME/perl/bin/perl catctl.pl -n 4 catupgrd.sql
Argument list for [catctl.pl]
Run in c = 0
Do not run in C = 0
Input Directory d = 0
Echo OFF e = 1
Simulate E = 0
Forced cleanup F = 0
Log Id i = 0
Child Process I = 0
Log Dir l = 0
Priority List Name L = 0
Upgrade Mode active M = 0
SQL Process Count n = 4
SQL PDB Process Count N = 0
Open Mode Normal o = 0
Start Phase p = 0
End Phase P = 0
Reverse Order r = 0
AutoUpgrade Resume R = 0
Script s = 0
Serial Run S = 0
RO User Tablespaces T = 0
Display Phases y = 0
Debug catcon.pm z = 0
Debug catctl.pl Z = 0
catctl.pl VERSION: [12.2.0.1.0]
STATUS: [production]
BUILD: [RDBMS_12.2.0.1.0_LINUX.X64_170125]
/u01/oracle/12.2.0/rdbms/admin/orahome = [/u01/oracle/12.2.0]
/u01/oracle/12.2.0/bin/orabasehome = [/u01/oracle/12.2.0]
catctlGetOrabase = [/u01/oracle/12.2.0]
......中间省略输出.........
********** End PDB Application Upgrade *********
Serial Phase #:108 [yunqu] Files:1 Time: 1s
******************* Migration ******************
Serial Phase #:109 [yunqu] Files:1 Time: 60s
Serial Phase #:110 [yunqu] Files:1 Time: 0s
Serial Phase #:111 [yunqu] Files:1 Time: 76s
***************** Post Upgrade *****************
Serial Phase #:112 [yunqu] Files:1 Time: 212s
**************** Summary report ****************
Serial Phase #:113 [yunqu] Files:1 Time: 1s
Serial Phase #:114 [yunqu] Files:1 Time: 0s
Serial Phase #:115 [yunqu] Files:1 Time: 21s
------------------------------------------------------
Phases [0-115] End Time:[2018_04_03 16:55:59]
------------------------------------------------------
Grand Total Time: 3601s
LOG FILES: (/u01/oracle/12.2.0/cfgtoollogs/yunqu/upgrade20180403155607/catupgrd*.log)
Upgrade Summary Report Located in:
/u01/oracle/12.2.0/cfgtoollogs/yunqu/upgrade20180403155607/upg_summary.log
Grand Total Upgrade Time: [0d:1h:0m:1s]
终于搞脚本跑完了,花了一个多小时...
3.8、NON-CDB转为PDB插入到CDB中
注意CDB是当前软件中创建的CDB数据库,而非自身就存在的….所以我们在11G升级到12C NON-CDB后,若想使用PDB功能,需要DBCA建库,建一个CDB数据库,再将NON-CDB转为PDB插入到CDB中即可
升级完数据库,重新以正常状态起库
oracle@12cDG:/u01/oracle/12.2.0/rdbms/admin>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Tue Apr 3 17:06:07 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to an idle instance.
17:06:08 > startup
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 8620224 bytes
Variable Size 503318336 bytes
Database Buffers 738197504 bytes
Redo Buffers 8155136 bytes
Database mounted.
Database opened.
查看数据文件的位置
17:17:28 SYS@yunqu>select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSTEM_FNO-1
/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSAUX_FNO-2
/data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS1_FNO-3
/data/oradata/yunqu/datafile/data_D-YUNQU_TS-USERS_FNO-4
/data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS2_FNO-5
Elapsed: 00:00:00.06
17:17:28 SYS@yunqu>select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/data/oradata/yunqu/YUNQU/datafile/o1_mf_temp_fd6cxv02_.tmp
查看数据库为Non-CDB数据库
17:18:18 SYS@yunqu>select name ,cdb from v$database;
NAME CDB
------------------ ------
YUNQU NO
Elapsed: 00:00:00.01
使用dbms_pdb包进行迁移,dbms_pdb是12c新增加的,为了方便迁移用的。可以用desc dbms_pdb查看下具体参数
查看到告警日志
WARNING: Heavy swapping observed on system in last 5 mins.
Heavy swapping can lead to timeouts, poor performance, and instance eviction.
Errors in file /u01/oracle/diag/rdbms/yunqu/yunqu/trace/yunqu_dbrm_13599.trc (incident=16113):
ORA-00700: soft internal error, arguments: [kskvmstatact: excessive swapping observed], [], [], [], [], [], [], [], [], [], [], []
Incident details in: /u01/oracle/diag/rdbms/yunqu/yunqu/incident/incdir_16113/yunqu_dbrm_13599_i16113.trc
2018-04-03T17:27:15.742690+08:00
Dumping diagnostic data in directory=[cdmp_20180403172715], requested by (instance=1, osid=13599 (DBRM)), summary=[incident=16113].
查看到mos 文章MOS 2225765.1,说该 告警信息和 ORA-700 错误在 12c 是正常的,不需要有任何处理,但也说出未来版本会增强解决,也给出了一定的步骤
将Non-CDB数据库迁移到CDB数据库,得先将Non-CDB数据库设置为只读数据库,再进行进一步操作
17:20:06 SYS@yunqu>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
17:43:46 SYS@yunqu>startup mount;
ORACLE instance started.
Total System Global Area 1258291200 bytes
Fixed Size 8620224 bytes
Variable Size 503318336 bytes
Database Buffers 738197504 bytes
Redo Buffers 8155136 bytes
17:44:07 SYS@yunqu>alter database open read only;
Database altered.
Elapsed: 00:00:01.78
17:44:27 SYS@yunqu>exec dbms_pdb.describe(PDB_DESCR_FILE=>'/u01/oradata/yunqupdb.xml');
PL/SQL procedure successfully completed.
Elapsed: 00:00:01.46
17:45:33 SYS@yunqu>host ls -l /u01/oradata/yunqupdb.xml
-rw-r--r-- 1 oracle oinstall 7502 Apr 3 17:45 /u01/oradata/yunqupdb.xml
17:46:11 SYS@yunqu>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
在CDB中执行PLUG,就可以将这个Non-CDB插入CDB中,指定COPY参数,将文件复制到CDB的相应目录下,如果已经复制到特定目录,则可以指定NOCOPY选项,就无需再复制一遍
进入到CDB数据库中
oracle@12cDG:/home/oracle>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Tue Apr 3 18:10:24 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
18:10:24 > show con_name;
CON_NAME
------------------------------
CDB$ROOT
18:10:34 SYS@orcl>select name,open_mode,cdb from v$database;
NAME OPEN_MODE CDB
------------------ ---------------------------------------- ------
ORCL READ WRITE YES
Elapsed: 00:00:00.16
查看CDB数据文件存放路径,
18:17:31 SYS@orcl>select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/data/oradata/ORCL/datafile/o1_mf_system_fd3xchg2_.dbf
/data/oradata/ORCL/datafile/o1_mf_sysaux_fd3xf744_.dbf
/data/oradata/ORCL/datafile/o1_mf_undotbs1_fd3xgbhj_.dbf
/data/oradata/ORCL/datafile/o1_mf_system_fd3xj8d4_.dbf
/data/oradata/ORCL/datafile/o1_mf_sysaux_fd3xj8cw_.dbf
/data/oradata/ORCL/datafile/o1_mf_users_fd3xgcpv_.dbf
/data/oradata/ORCL/datafile/o1_mf_undotbs1_fd3xj8d9_.dbf
创建数据文件存放路径,便于管理
oracle@12cDG:/data/oradata/ORCL>mkdir -p /data/oradata/ORCL/yunqupdb/datafile
oracle@12cDG:/home/oracle>echo $ORACLE_SID
orcl
oracle@12cDG:/home/oracle>sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Tue Apr 3 18:10:24 2018
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
创建名为CNDBA的PDB数据库
SQL>CREATE PLUGGABLE DATABASE cndba USING '/u01/oradata/yunqupdb.xml'
COPY
FILE_NAME_CONVERT = ('/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSTEM_FNO-1','/data/oradata/ORCL/yunqupdb/datafile/system01.dbf',
'/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSAUX_FNO-2','/data/oradata/ORCL/yunqupdb/datafile/sysaux.dbf',
'/data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS1_FNO-3','/data/oradata/ORCL/yunqupdb/datafile/undotbs01.dbf',
'/data/oradata/yunqu/datafile/data_D-YUNQU_TS-USERS_FNO-4','/data/oradata/ORCL/yunqupdb/datafile/user.dbf',
'/data/oradata/yunqu/datafile/data_D-YUNQU_TS-UNDOTBS2_FNO-5','/data/oradata/ORCL/yunqupdb/datafile/undotbs02.dbf',
'/data/oradata/yunqu/YUNQU/datafile/o1_mf_temp_fd6cxv02_.tmp',
'/data/oradata/ORCL/yunqupdb/datafile/temp.dbf');
ERROR at line 1:
ORA-65169: error encountered while attempting to copy file
/data/oradata/yunqu/datafile/data_D-YUNQU_TS-SYSAUX_FNO-2
ORA-19502: write error on file
"/data/oradata/ORCL/yunqupdb/datafile/sysaux.dbf", block number 133888 (block
size=8192)
ORA-27072: File I/O error
Additional information: 4
Additional information: 133888
Additional information: 524288
查看告警日志,发现空间不足,测试空间不足,放弃convert,直接NOCPOY,就不移动位置了
Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_p000_10938.trc:
ORA-27072: File I/O error
Linux-x86_64 Error: 28: No space left on device
Additional information: 4
Additional information: 34432
Additional information: 4294967295
2018-04-03T18:28:39.736534+08:00
Errors in file /u01/oracle/diag/rdbms/orcl/orcl/trace/orcl_p001_10940.trc:
ORA-27072: File I/O error
Additional information: 4
Additional information: 133888
Additional information: 524288
18:29:18 SYS@orcl>CREATE PLUGGABLE DATABASE cndba USING '/u01/oradata/yunqupdb.xml' NOCOPY;
CREATE PLUGGABLE DATABASE cndba USING '/u01/oradata/yunqupdb.xml' NOCOPY
*
ERROR at line 1:
ORA-27038: created file already exists
ORA-01119: error in creating database file
'/data/oradata/yunqu/YUNQU/datafile/o1_mf_temp_fd6cxv02_.tmp'
找到对应目录,删除改文件 rm -rf /data/oradata/yunqu/YUNQU/datafile/o1_mf_temp_fd6cxv02_.tmp
Elapsed: 00:00:01.01
18:34:02 SYS@orcl>CREATE PLUGGABLE DATABASE cndba USING '/u01/oradata/yunqupdb.xml' NOCOPY;
Pluggable database created.
Elapsed: 00:00:14.78
切换到PDB并执行脚本
18:35:36 SYS@orcl>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
5 CNDBA MOUNTED
18:37:30 SYS@orcl>alter session set container=CNDBA;
Session altered.
Elapsed: 00:00:00.08
--执行脚本:
18:38:00 SYS@orcl> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
…..刷屏…..此处忽略
脚本执行完,查看状态
08:37:28 SYS@orcl>show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
5 CNDBA MIGRATE YES
08:37:32 SYS@orcl>
状态是升级模式,权限受限,重起PDB
08:48:51 SYS@orcl>alter session set container=cndba;
Session altered.
Elapsed: 00:00:00.04
08:49:05 SYS@orcl>shutdown immediate;
Pluggable Database closed.
08:49:11 SYS@orcl>startup
Pluggable Database opened
08:50:50 > show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 ORCLPDB READ WRITE NO
5 CNDBA READ WRITE NO
08:50:52 SYS@orcl>
配置下监听
listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orclpdb)
(SID_NAME = orcl)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = CNDBA)
(SID_NAME = orcl)
)
)
TNSNAMES.ORA配置:
CNDBA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.41.176.117)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CNDBA)
)
)
ORCLPDB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.41.176.117)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orclpdb)
)
)
ORCL12C =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.41.176.117)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
CNDBA的PDB中切换用户验证数据:
08:57:22 MARVIN@cndba>select count(*) from marvin partition (p1);
COUNT(*)
----------
340000
Elapsed: 00:00:00.36
08:57:25 MARVIN@cndba>select count(*) from marvin partition (p2);
COUNT(*)
----------
250000
Elapsed: 00:00:00.03
08:57:34 MARVIN@cndba>select count(*) from marvinn;
COUNT(*)
----------
1000000
Elapsed: 00:00:00.52
对比之前数据,数据正确......
至此,RAC11G - SIngle12C NonCDB- PDB -CDB RMAN以及恢复完整完成….
版权声明:本文为博主原创文章,未经博主允许不得转载。



