数据迁移系列-oracle故障02-数据库迁移实现01(全备环节)
环境描述:
原有双节点RAC集群由于数据库故障,导致不能启动,经综合评估,备份软件有10天前的备份,经过分析和用户的沟通,最终用户选择了,
1.由备份软件恢复数据库到一台单机,恢复成功后,备份软件对新的单机做定期备份。单机采用IP为dbscan IP这样对应用基本没有影响。
2.单机运行2个周,确保数据正常的情况下,将原有RAC集群清理,重新搭建RAC环境。
3.将单机数据库生产数据数据迁移至新的RAC环境。备份软件对新的RAC环境设置定期备份策略。
本次文章,中间环节忽略,只做第3个步骤的数据库迁移。
环境:
单机生产库: 172.19.4.15/24 root/WWW.root123
RAC目标库: root/Huawei@123
#public ip ent1
172.19.4.11 rac01
172.19.4.12 rac02
#priv ip ent2
10.10.10.1 rac01prv
10.10.10.2 rac02prv
#vip ip
172.19.4.13 rac01vip
172.19.4.14 rac02vip
#scan ip
172.19.4.15 racscan
注意:由于环境有IP冲突的问题,有些步骤是按非常规处理。
迁移步骤:
2024-09-15晚上
1.对RAC02数据库服务器更改root密码
2.备份现有单机数据库racdb全备(几小时)
2024-09-16早上
1.传输文件到rac节点1(速率较低,不影响业务,等待即可)
2.对数据库服务器执行第二次增量备份
3.关闭数据库,此时已经影响业务。(因为假期,可停机时间足以满足整体迁移,所以此步停业务迁移)
4.对RAC环境做调整,清空原有数据库信息。
5.执行异机恢复,使用归档做二次追加推到最新时间点
6.做集群后续调整
7.开启集群服务
8.应用测试数据库,检查数据情况
--创建数据库全备
$mkdir -p /oracle/app/oracle/bak240915/racdb
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name RACDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
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
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/oracle/product/11.2.0/db_1/dbs/snapcf_racdb.f'; # default
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> show all;
RMAN configuration parameters for database with db_unique_name RACDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/oracle/app/oracle/product/11.2.0/db_1/dbs/snapcf_racdb.f'; # default
RMAN>
[oracle@racdb:/home/oracle]$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 15 00:36:57 2024
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, OLAP, Data Mining and Real Application Testing options
SQL> select name,open_mode from v$database;
NAME OPEN_MODE
--------- --------------------
RACDB READ WRITE
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /oracle/app/oracle/oradata/archive
Oldest online log sequence 448
Next log sequence to archive 452
Current log sequence 452
SQL>
[root@racdb ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 90G 20G 66G 24% /
tmpfs 64G 300K 64G 1% /dev/shm
/dev/sda1 1008M 62M 896M 7% /boot
/dev/mapper/datavg-oradatalv 1007G 255G 702G 27% /oracle/app/oracle/oradata
--备份数据库
rman target /
crosscheck archivelog all;
crosscheck backup;
delete expired archivelog all;
delete expired backup;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
--备份脚本
run
{
allocate channel d1 type disk;
sql 'alter system archive log current';
backup format '/bak/racdb/racdbfull_%U' database include current controlfile plus archivelog ;
release channel d1;
}
--查看备份进度
SELECT SID, SERIAL#, OPNAME,
TO_CHAR(START_TIME, 'YYYY-MM-DD HH24:MI:SS') START_TIME,
SOFAR, TOTALWORK,
CEIL(ELAPSED_SECONDS/60) ELAPSED_MI,
ROUND(SOFAR/TOTALWORK*100,2) "%COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%'
AND SOFAR <> TOTALWORK
AND TOTALWORK <> 0
ORDER BY START_TIME ASC;
---------
[oracle@racdb:/bak]$rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Sep 15 01:39:57 2024
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: RACDB (DBID=983004276)
RMAN> run
2> {
3> allocate channel d1 type disk;
4> sql 'alter system archive log current';
5> backup format '/bak/racdb/racdbfull_%U' database include current controlfile plus archivelog ;
6> release channel d1;
7> }
using target database control file instead of recovery catalog
allocated channel: d1
channel d1: SID=6607 device type=DISK
sql statement: alter system archive log current
Starting backup at 2024-09-15 01:40:06
current log archived
skipping archived logs of thread 1 from sequence 370 to 457; already backed up
channel d1: starting archived log backup set
channel d1: specifying archived log(s) in backup set
input archived log thread=1 sequence=458 RECID=461 STAMP=1179711606
input archived log thread=1 sequence=459 RECID=462 STAMP=1179711606
channel d1: starting piece 1 at 2024-09-15 01:40:06
channel d1: finished piece 1 at 2024-09-15 01:40:07
piece handle=/bak/racdb/racdbfull_3o351u3m_1_1 tag=TAG20240915T014006 comment=NONE
channel d1: backup set complete, elapsed time: 00:00:01
Finished backup at 2024-09-15 01:40:07
Starting backup at 2024-09-15 01:40:07
channel d1: starting full datafile backup set
channel d1: specifying datafile(s) in backup set
input datafile file number=00002 name=/oracle/app/oracle/oradata/df2_sysaux.263.985387525
input datafile file number=00006 name=/oracle/app/oracle/oradata/df6_ts_zsj_d01.dbf
input datafile file number=00007 name=/oracle/app/oracle/oradata/df7_dev_odi_user01.dbf
input datafile file number=00013 name=/oracle/app/oracle/oradata/df2_sysaux02
input datafile file number=00010 name=/oracle/app/oracle/oradata/df10_dev_odi_user02.dbf
input datafile file number=00004 name=/oracle/app/oracle/oradata/df4_undotbs2.266.985387551
input datafile file number=00001 name=/oracle/app/oracle/oradata/df1_system.262.985387513
input datafile file number=00003 name=/oracle/app/oracle/oradata/df3_undotbs1.264.985387537
input datafile file number=00012 name=/oracle/app/oracle/oradata/df12_ts_zsj_d02.dbf
input datafile file number=00008 name=/oracle/app/oracle/oradata/df8_combanc.dbf
input datafile file number=00009 name=/oracle/app/oracle/oradata/df9_uum.dbf
input datafile file number=00011 name=/oracle/app/oracle/oradata/df11_dev1_odi_user.281.1101743941
input datafile file number=00005 name=/oracle/app/oracle/oradata/df5_users.267.985387561
channel d1: starting piece 1 at 2024-09-15 01:40:08
channel d1: finished piece 1 at 2024-09-15 03:09:23
piece handle=/bak/racdb/racdbfull_3p351u3o_1_1 tag=TAG20240915T014007 comment=NONE
channel d1: backup set complete, elapsed time: 01:29:15
channel d1: starting full datafile backup set
channel d1: specifying datafile(s) in backup set
including current control file in backup set
channel d1: starting piece 1 at 2024-09-15 03:09:24
channel d1: finished piece 1 at 2024-09-15 03:09:27
piece handle=/bak/racdb/racdbfull_3q3523b3_1_1 tag=TAG20240915T014007 comment=NONE
channel d1: backup set complete, elapsed time: 00:00:03
Finished backup at 2024-09-15 03:09:27
Starting backup at 2024-09-15 03:09:27
current log archived
channel d1: starting archived log backup set
channel d1: specifying archived log(s) in backup set
input archived log thread=1 sequence=460 RECID=463 STAMP=1179712673
input archived log thread=1 sequence=461 RECID=464 STAMP=1179712805
input archived log thread=1 sequence=462 RECID=465 STAMP=1179714465
input archived log thread=1 sequence=463 RECID=466 STAMP=1179716218
input archived log thread=1 sequence=464 RECID=467 STAMP=1179716227
input archived log thread=1 sequence=465 RECID=468 STAMP=1179716428
input archived log thread=1 sequence=466 RECID=469 STAMP=1179716497
input archived log thread=1 sequence=467 RECID=470 STAMP=1179716548
input archived log thread=1 sequence=468 RECID=471 STAMP=1179716967
channel d1: starting piece 1 at 2024-09-15 03:09:28
channel d1: finished piece 1 at 2024-09-15 03:10:33
piece handle=/bak/racdb/racdbfull_3r3523b8_1_1 tag=TAG20240915T030928 comment=NONE
channel d1: backup set complete, elapsed time: 00:01:05
Finished backup at 2024-09-15 03:10:33
Starting Control File and SPFILE Autobackup at 2024-09-15 03:10:33
piece handle=/oracle/app/oracle/product/11.2.0/db_1/dbs/c-983004276-20240915-00 comment=NONE
Finished Control File and SPFILE Autobackup at 2024-09-15 03:10:34
released channel: d1
----------------------
--备份参数文件
SQL> create pfile='/bak/racdb/single.pfile' from spfile;
[oracle@racdb:/bak/racdb]$ls /bak/racdb/
c-983004276-20240915-00 racdbfull_3o351u3m_1_1 racdbfull_3p351u3o_1_1 racdbfull_3q3523b3_1_1 racdbfull_3r3523b8_1_1 single.pfile
--查看RAC数据库节点1
[root@rac01 ~]# fdisk -l|grep /dev/sd
Disk /dev/sda: 214.7 GB, 214748364800 bytes
/dev/sda1 * 1 26 204800 83 Linux
/dev/sda2 26 17754 142400512 83 Linux
/dev/sda3 17754 26109 67108864 82 Linux swap / Solaris
Disk /dev/sdb: 10.7 GB, 10737418240 bytes
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
Disk /dev/sde: 10.7 GB, 10737418240 bytes
Disk /dev/sdf: 10.7 GB, 10737418240 bytes
Disk /dev/sdd: 10.7 GB, 10737418240 bytes
Disk /dev/sdg: 10.7 GB, 10737418240 bytes
Disk /dev/sdi: 1649.3 GB, 1649267441664 bytes
Disk /dev/sdh: 1099.5 GB, 1099511627776 bytes
关机增加一块硬盘用于存放备份文件(这里主要是因为虚拟化环境,相对比较容易方便,物理机环境相对麻烦)
[root@rac01 ~]# init 0
[root@rac01 ~]# fdisk -l |grep /dev/sd
Disk /dev/sdb: 161.1 GB, 161061273600 bytes
Disk /dev/sde: 10.7 GB, 10737418240 bytes
Disk /dev/sdg: 10.7 GB, 10737418240 bytes
Disk /dev/sdh: 10.7 GB, 10737418240 bytes
Disk /dev/sdj: 1649.3 GB, 1649267441664 bytes
Disk /dev/sdc: 10.7 GB, 10737418240 bytes
Disk /dev/sdf: 10.7 GB, 10737418240 bytes
Disk /dev/sda: 214.7 GB, 214748364800 bytes
/dev/sda1 * 1 26 204800 83 Linux
/dev/sda2 26 17754 142400512 83 Linux
/dev/sda3 17754 26109 67108864 82 Linux swap / Solaris
Disk /dev/sdi: 1099.5 GB, 1099511627776 bytes
Disk /dev/sdd: 10.7 GB, 10737418240 bytes
对磁盘分区,格式化,挂载目录
[root@rac01 ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xb98050a5.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): p
Disk /dev/sdb: 161.1 GB, 161061273600 bytes
255 heads, 63 sectors/track, 19581 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb98050a5
Device Boot Start End Blocks Id System
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19581, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-19581, default 19581):
Using default value 19581
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac01 ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
9830400 inodes, 39321087 blocks
1966054 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=4294967296
1200 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
You have mail in /var/spool/mail/root
#mkdir -p /bak/
mount /dev/sdb1 /bak
chown -R oracle:oinstall /bak
su - oracle
cd /bak
mkdir racdb
cd racdb
传输文件到rac其中一个节点
$scp -r 172.19.4.15:/bak/racdb/* .
RAC服务器2个节点
[root@rac01 ~]# /u01/app/11.2.0.4/grid/bin/crsctl start crs
CRS-4123: Oracle High Availability Services has been started.
[root@rac01 ~]# su - grid
[grid@rac01 ~]$ crsclt status res -t
[grid@rac01 ~]$ crsctl check crs
[grid@rac01 ~]$ asmcmd lsdg
State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 4096 4194304 1048576 0 0 0 0 N ARCHIVE/
MOUNTED EXTERN N 512 4096 4194304 1572864 1369756 0 1369756 0 N DATA/
MOUNTED HIGH N 512 4096 4194304 61440 60044 20480 13188 0 Y GRID/
由于RAC之前有DB已经坏了,但是能进入mount看一下目前参数文件的配置,这样后续调整的就比较少了。
[grid@rac01 ~]$
SQL> create pfile='/home/oracle/pfile.racdb' from spfile;
File created.
SQL> shutdown immediate;
[oracle@rac01 ~]$ cat /home/oracle/pfile.racdb
racdb2.__db_cache_size=73819750400
racdb1.__db_cache_size=73819750400
racdb2.__java_pool_size=536870912
racdb1.__java_pool_size=536870912
racdb2.__large_pool_size=1073741824
racdb1.__large_pool_size=1073741824
racdb1.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
racdb2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
racdb2.__pga_aggregate_target=22011707392
racdb1.__pga_aggregate_target=22011707392
racdb2.__sga_target=82678120448
racdb1.__sga_target=82678120448
racdb2.__shared_io_pool_size=0
racdb1.__shared_io_pool_size=0
racdb2.__shared_pool_size=6710886400
racdb1.__shared_pool_size=6710886400
racdb2.__streams_pool_size=0
racdb1.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/racdb/adump'
*.audit_trail='db'
*.cluster_database=true
*.compatible='11.2.0.4.0'
*.control_files='+DATA/racdb/controlfile/current.258.985387513'
*.db_block_size=8192
*.db_create_file_dest='+DATA'
*.db_domain=''
*.db_name='racdb'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=racdbXDB)'
racdb1.instance_number=1
racdb2.instance_number=2
*.log_archive_dest_1='location=+archive/'
*.open_cursors=300
*.pga_aggregate_target=21989687296
*.processes=2000
*.remote_listener='racscan:1521'
*.remote_login_passwordfile='exclusive'
*.sessions=2205
*.sga_target=82463162368
racdb2.thread=2
racdb1.thread=1
racdb2.undo_tablespace='UNDOTBS2'
racdb1.undo_tablespace='UNDOTBS1'
-------------------
[oracle@rac01 racdb]$ vi single.pfile
*.audit_file_dest='/u01/app/oracle/admin/racdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='+DATA','+ARCHIVE'
*.db_block_size=8192
*.db_domain=''
*.db_name='racdb'
*.diagnostic_dest='/u01/app/oracle'
*.open_cursors=3000
*.pga_aggregate_target=21989687296
*.processes=5000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=2205
*.sga_target=82463162368
[oracle@rac01 racdb]$ vncserver
使用vnc 客户端连接rac01运行dbca删除原有的故障数据库
[oracle@rac01 racdb]$ dbca
节点1创建*.audit_file_dest *.diagnostic_dest 指定的目录
[oracle@rac01:/backup/racdb]$mkdir -p /u01/app/oracle/admin/racdb/adump
ssh rac02
[oracle@rac02:/backup/racdb]$mkdir -p /u01/app/oracle/admin/racdb/adump
exit
[oracle@fgerp61:/backup/fgerpdb]$sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Oct 19 05:24:22 2022
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup pfile='/bak/racdb/single.pfile' nomount;
[oracle@rac01 racdb]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Sun Sep 15 10:44:55 2024
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: RACDB (not mounted)
恢复控制文件
RMAN> restore controlfile from '/bak/racdb/c-983004276-20240915-00';
Starting restore at 15-SEP-24
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=4709 device type=DISK
channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
output file name=+DATA/racdb/controlfile/current.270.1179744369
output file name=+ARCHIVE/racdb/controlfile/current.5319.1179744369
Finished restore at 15-SEP-24
RMAN> exit
--根据恢复信息修改参数文件中的控制文件参数
[oracle@rac01 racdb]$ vi single.pfile
*.audit_file_dest='/u01/app/oracle/admin/racdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='+DATA/racdb/controlfile/current.270.1179744369','+ARCHIVE/racdb/controlfile/current.5319.1179744369'
*.db_block_size=8192
*.db_domain=''
*.db_name='racdb'
*.diagnostic_dest='/u01/app/oracle'
*.open_cursors=3000
*.pga_aggregate_target=21989687296
*.processes=5000
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=2205
*.sga_target=82463162368
----------------------------
[oracle@rac01 racdb]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 15 10:51:56 2024
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> alter database mount;
Database altered.
--创建spfile文件
SQL> create spfile='+DATA' from pfile='/bak/racdb/single.pfile';
File created.
SQL>
--查看新创建的spfile文件
su - grid
asmcmd
cd data/racdb/parameterfile/
ls
+data/racdb/parameterfile/spfile.280.1179745045
[oracle@rac01 ~]$ cd cd $ORACLE_HOME/dbs^C
[oracle@rac01 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac01 dbs]$ pwd
/u01/app/oracle/product/11.2.0.4/db_1/dbs
[oracle@rac01 dbs]$ ls
hc_racdb1.dat init.ora snapcf_racdb1.f
[oracle@rac01 dbs]$ vi initracdb1.ora
spfile="+data/racdb/parameterfile/spfile.280.1179745045"
节点2执行类似操作
[oracle@rac01 dbs]$ ssh rac02
Last login: Fri Aug 30 10:01:59 2024 from rac01
[oracle@rac02 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac02 dbs]$ vi initracdb2.ora
spfile="+data/racdb/parameterfile/spfile.280.1179745045"
[oracle@rac02 dbs]$ exit
logout
Connection to rac02 closed.
You have mail in /var/spool/mail/oracle
[oracle@rac01 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 15 11:05:06 2024
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> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 8.2309E+10 bytes
Fixed Size 2262168 bytes
Variable Size 6442453864 bytes
Database Buffers 7.5699E+10 bytes
Redo Buffers 165494784 bytes
Database mounted.
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/racdb/parameterfile/spfi
le.280.1179745045
SQL>
--密码文件创建
[oracle@rac01 dbs]$ cd $ORACLE_HOME/dbs
[oracle@rac01 dbs]$ orapwd file=orapwracdb1 password=oracle
[oracle@rac01 dbs]$ ls
hc_racdb1.dat init.ora initracdb1.ora orapwracdb1 snapcf_racdb1.f
[oracle@rac01 dbs]$
[oracle@rac01 dbs]$ ssh rac02
cd $ORACLE_HOME/dbs
orapwd file=orapwracdb2 password=oracleLast login: Sun Sep 15 11:03:30 2024 from rac01
cd $ORACLE_HOME/dbs
orapwd file=orapwracdb2 password=oracle[oracle@rac02 ~]$ cd $ORACLE_HOME/dbs
[oracle@rac02 dbs]$ orapwd file=orapwracdb2 password=oracle
[oracle@rac02 dbs]$ ls
hc_racdb2.dat init.ora initracdb2.ora orapwracdb2
[oracle@rac02 dbs]$
--恢复数据文件
rman target /
run {
set newname for datafile '/oracle/app/oracle/oradata/df2_sysaux.263.985387525' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df6_ts_zsj_d01.dbf' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df7_dev_odi_user01.dbf' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df2_sysaux02' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df10_dev_odi_user02.dbf' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df4_undotbs2.266.985387551' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df1_system.262.985387513' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df3_undotbs1.264.985387537' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df12_ts_zsj_d02.dbf' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df8_combanc.dbf' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df9_uum.dbf' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df11_dev1_odi_user.281.1101743941' to '+data';
set newname for datafile '/oracle/app/oracle/oradata/df5_users.267.985387561' to '+data';
restore DATABASE;
switch datafile all;
}
---------------前面的工作完,先暂停,等生产环境停机继续追增量恢复。上述工作可以任何时间做,不涉及停机,下面工作是等数据库可以停机的时候做。
远端单机备份归档日志
--备份归档日志
[oracle@racdb:/home/oracle]$ rman target /
Recovery Manager: Release 11.2.0.4.0 - Production on Wed Oct 19 07:00:55 2022
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: FGERPDB (DBID=3402649552)
RMAN> run {
2> allocate channel d1 type disk;
3> sql 'alter system archive log current';
4> backup
5> tag db_arch
6> format '/bak/racdb/racdb_arch_%s_%p_%t'
7> (archivelog all);
8> release channel d1;
9> }
RMAN> exit
Recovery Manager complete.
--备份完成要停止数据库,此时源端单机生产数据库应彻底停机
[oracle@racdb:/home/oracle]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Oct 19 07:01:19 2022
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, OLAP, Data Mining and Real Application Testing options
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> quit
将备份文件传到目标RAC节点1
[oracle@racdb:/bak/racdb]$scp -r *db_arch* 172.19.4.11:/bak/racdb/
The authenticity of host '172.19.4.11 (172.19.4.11)' can't be established.
RSA key fingerprint is dd:39:ce:59:bf:96:52:b7:41:61:f2:b3:b0:c9:e0:23.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.19.4.11' (RSA) to the list of known hosts.
oracle@172.19.4.11's password:
racdb_arch_125_1_1179747924 100% 181MB 181.3MB/s 00:01
[oracle@racdb:/bak/racdb]$
目标节点1操作:
删除过期备份
RMAN> crosscheck backup;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3i351qhg_1_1 RECID=127 STAMP=1179707952
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3j351qjs_1_1 RECID=128 STAMP=1179708028
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3l351sak_1_1 RECID=129 STAMP=1179709780
crosschecked backup piece: found to be 'EXPIRED'
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3n351u13_1_1 RECID=130 STAMP=1179711523
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3o351u3m_1_1 RECID=131 STAMP=1179711606
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3p351u3o_1_1 RECID=132 STAMP=1179711608
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3q3523b3_1_1 RECID=133 STAMP=1179716964
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3r3523b8_1_1 RECID=134 STAMP=1179716968
Crosschecked 8 objects
RMAN> delete expired backup;
using channel ORA_DISK_1
List of Backup Pieces
BP Key BS Key Pc# Cp# Status Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
127 112 1 1 EXPIRED DISK /oracle/app/oracle/bak240915/racdb/racdbfull_3i351qhg_1_1
128 113 1 1 EXPIRED DISK /oracle/app/oracle/bak240915/racdb/racdbfull_3j351qjs_1_1
129 114 1 1 EXPIRED DISK /oracle/app/oracle/bak240915/racdb/racdbfull_3l351sak_1_1
130 115 1 1 EXPIRED DISK /oracle/app/oracle/bak240915/racdb/racdbfull_3n351u13_1_1
Do you really want to delete the above objects (enter YES or NO)? yes
deleted backup piece
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3i351qhg_1_1 RECID=127 STAMP=1179707952
deleted backup piece
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3j351qjs_1_1 RECID=128 STAMP=1179708028
deleted backup piece
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3l351sak_1_1 RECID=129 STAMP=1179709780
deleted backup piece
backup piece handle=/oracle/app/oracle/bak240915/racdb/racdbfull_3n351u13_1_1 RECID=130 STAMP=1179711523
Deleted 4 EXPIRED objects
RMAN> crosscheck backup;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3o351u3m_1_1 RECID=131 STAMP=1179711606
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3p351u3o_1_1 RECID=132 STAMP=1179711608
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3q3523b3_1_1 RECID=133 STAMP=1179716964
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3r3523b8_1_1 RECID=134 STAMP=1179716968
Crosschecked 4 objects
注册目录,准备恢复归档
RMAN> catalog start with '/bak/racdb/';
searching for all files that match the pattern /bak/racdb/
List of Files Unknown to the Database
=====================================
File Name: /bak/racdb/single.pfile
File Name: /bak/racdb/single.pfile.bak
File Name: /bak/racdb/c-983004276-20240915-00
File Name: /bak/racdb/racdb_arch_125_1_1179747924
Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /bak/racdb/c-983004276-20240915-00
File Name: /bak/racdb/racdb_arch_125_1_1179747924
List of Files Which Where Not Cataloged
=======================================
File Name: /bak/racdb/single.pfile
RMAN-07517: Reason: The file header is corrupted
File Name: /bak/racdb/single.pfile.bak
RMAN-07517: Reason: The file header is corrupted
RMAN> crosscheck backup;
using channel ORA_DISK_1
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3o351u3m_1_1 RECID=131 STAMP=1179711606
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3p351u3o_1_1 RECID=132 STAMP=1179711608
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3q3523b3_1_1 RECID=133 STAMP=1179716964
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdbfull_3r3523b8_1_1 RECID=134 STAMP=1179716968
crosschecked backup piece: found to be 'AVAILABLE'
backup piece handle=/bak/racdb/racdb_arch_125_1_1179747924 RECID=135 STAMP=1179748909
Crosschecked 5 objects
--查看最新scn
--恢复如果有问题,则用第二个脚本,但需要Listbackup查看当前备份中最新的SCN
RMAN> list backup; --471
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
120 181.27M DISK 00:00:00 15-SEP-24
BP Key: 135 Status: AVAILABLE Compressed: NO Tag: DB_ARCH
Piece Name: /bak/racdb/racdb_arch_125_1_1179747924
List of Archived Logs in backup set 120
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 469 18886731271 15-SEP-24 18888744250 15-SEP-24
1 470 18888744250 15-SEP-24 18888775898 15-SEP-24
1 471 18888775898 15-SEP-24 18888775907 15-SEP-24
RMAN>
run {
set archivelog destination to '/backup/racdb';
restore archivelog until sequence 471 thread 1;
}
ou have mail in /var/spool/mail/oracle
[oracle@rac01 dbs]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Sep 15 12:21:21 2024
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> !ls /bak/racdb/archive
1_370_1178396014.dbf 1_385_1178396014.dbf 1_400_1178396014.dbf 1_415_1178396014.dbf 1_430_1178396014.dbf 1_445_1178396014.dbf 1_460_1178396014.dbf
1_371_1178396014.dbf 1_386_1178396014.dbf 1_401_1178396014.dbf 1_416_1178396014.dbf 1_431_1178396014.dbf 1_446_1178396014.dbf 1_461_1178396014.dbf
1_372_1178396014.dbf 1_387_1178396014.dbf 1_402_1178396014.dbf 1_417_1178396014.dbf 1_432_1178396014.dbf 1_447_1178396014.dbf 1_462_1178396014.dbf
1_373_1178396014.dbf 1_388_1178396014.dbf 1_403_1178396014.dbf 1_418_1178396014.dbf 1_433_1178396014.dbf 1_448_1178396014.dbf 1_463_1178396014.dbf
1_374_1178396014.dbf 1_389_1178396014.dbf 1_404_1178396014.dbf 1_419_1178396014.dbf 1_434_1178396014.dbf 1_449_1178396014.dbf 1_464_1178396014.dbf
1_375_1178396014.dbf 1_390_1178396014.dbf 1_405_1178396014.dbf 1_420_1178396014.dbf 1_435_1178396014.dbf 1_450_1178396014.dbf 1_465_1178396014.dbf
1_376_1178396014.dbf 1_391_1178396014.dbf 1_406_1178396014.dbf 1_421_1178396014.dbf 1_436_1178396014.dbf 1_451_1178396014.dbf 1_466_1178396014.dbf
1_377_1178396014.dbf 1_392_1178396014.dbf 1_407_1178396014.dbf 1_422_1178396014.dbf 1_437_1178396014.dbf 1_452_1178396014.dbf 1_467_1178396014.dbf
1_378_1178396014.dbf 1_393_1178396014.dbf 1_408_1178396014.dbf 1_423_1178396014.dbf 1_438_1178396014.dbf 1_453_1178396014.dbf 1_468_1178396014.dbf
1_379_1178396014.dbf 1_394_1178396014.dbf 1_409_1178396014.dbf 1_424_1178396014.dbf 1_439_1178396014.dbf 1_454_1178396014.dbf 1_469_1178396014.dbf
1_380_1178396014.dbf 1_395_1178396014.dbf 1_410_1178396014.dbf 1_425_1178396014.dbf 1_440_1178396014.dbf 1_455_1178396014.dbf 1_470_1178396014.dbf
1_381_1178396014.dbf 1_396_1178396014.dbf 1_411_1178396014.dbf 1_426_1178396014.dbf 1_441_1178396014.dbf 1_456_1178396014.dbf 1_471_1178396014.dbf
1_382_1178396014.dbf 1_397_1178396014.dbf 1_412_1178396014.dbf 1_427_1178396014.dbf 1_442_1178396014.dbf 1_457_1178396014.dbf 2_133394_985387508.dbf
1_383_1178396014.dbf 1_398_1178396014.dbf 1_413_1178396014.dbf 1_428_1178396014.dbf 1_443_1178396014.dbf 1_458_1178396014.dbf 2_133395_985387508.dbf
1_384_1178396014.dbf 1_399_1178396014.dbf 1_414_1178396014.dbf 1_429_1178396014.dbf 1_444_1178396014.dbf 1_459_1178396014.dbf thread_2_seq_133395.2952.1175357867
SQL> set logsource '/bak/racdb/archive';
SQL> recover database using backup controlfile
ORA-00279: change 18886132619 generated at 09/15/2024 01:40:08 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_460_1178396014.dbf
ORA-00280: change 18886132619 for thread 1 is in sequence #460
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
AUTO
ORA-00279: change 18886165361 generated at 09/15/2024 01:57:53 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_461_1178396014.dbf
ORA-00280: change 18886165361 for thread 1 is in sequence #461
ORA-00278: log file '/bak/racdb/archive/1_460_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886169916 generated at 09/15/2024 02:00:05 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_462_1178396014.dbf
ORA-00280: change 18886169916 for thread 1 is in sequence #462
ORA-00278: log file '/bak/racdb/archive/1_461_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886187800 generated at 09/15/2024 02:27:45 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_463_1178396014.dbf
ORA-00280: change 18886187800 for thread 1 is in sequence #463
ORA-00278: log file '/bak/racdb/archive/1_462_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886537979 generated at 09/15/2024 02:56:57 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_464_1178396014.dbf
ORA-00280: change 18886537979 for thread 1 is in sequence #464
ORA-00278: log file '/bak/racdb/archive/1_463_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886545885 generated at 09/15/2024 02:57:06 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_465_1178396014.dbf
ORA-00280: change 18886545885 for thread 1 is in sequence #465
ORA-00278: log file '/bak/racdb/archive/1_464_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886596556 generated at 09/15/2024 03:00:27 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_466_1178396014.dbf
ORA-00280: change 18886596556 for thread 1 is in sequence #466
ORA-00278: log file '/bak/racdb/archive/1_465_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886623587 generated at 09/15/2024 03:01:36 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_467_1178396014.dbf
ORA-00280: change 18886623587 for thread 1 is in sequence #467
ORA-00278: log file '/bak/racdb/archive/1_466_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886643306 generated at 09/15/2024 03:02:28 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_468_1178396014.dbf
ORA-00280: change 18886643306 for thread 1 is in sequence #468
ORA-00278: log file '/bak/racdb/archive/1_467_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18886731271 generated at 09/15/2024 03:09:27 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_469_1178396014.dbf
ORA-00280: change 18886731271 for thread 1 is in sequence #469
ORA-00278: log file '/bak/racdb/archive/1_468_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18888744250 generated at 09/15/2024 06:00:14 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_470_1178396014.dbf
ORA-00280: change 18888744250 for thread 1 is in sequence #470
ORA-00278: log file '/bak/racdb/archive/1_469_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18888775898 generated at 09/15/2024 11:45:24 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_471_1178396014.dbf
ORA-00280: change 18888775898 for thread 1 is in sequence #471
ORA-00278: log file '/bak/racdb/archive/1_470_1178396014.dbf' no longer needed
for this recovery
ORA-00279: change 18888775907 generated at 09/15/2024 11:45:24 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_472_1178396014.dbf
ORA-00280: change 18888775907 for thread 1 is in sequence #472
ORA-00278: log file '/bak/racdb/archive/1_471_1178396014.dbf' no longer needed
for this recovery
ORA-00308: cannot open archived log '/bak/racdb/archive/1_472_1178396014.dbf'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
SQL> recover database using backup controlfile until cancel;
ORA-00279: change 18888775907 generated at 09/15/2024 11:45:24 needed for
thread 1
ORA-00289: suggestion : /bak/racdb/archive/1_472_1178396014.dbf
ORA-00280: change 18888775907 for thread 1 is in sequence #472
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SQL>
有需要汇报模板的可以到一下网址,免费下载哦。
https://download.csdn.net/download/king01299/89756465
oracle数据库单机-RAC的数据库迁移 完整过程文档
https://download.csdn.net/download/king01299/89756674
还请大家多好评,收藏,评论,关注,一键三连哦!!!