拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Oracle项目案例
  3. Oracle数据库迁移方案
  4. 正文

迁移方案3:Windows迁移至Linux-不完全恢复(方法3:重新载入备份位置方法+增量恢复(推荐))

2022年9月3日 1620点热度 0人点赞 0条评论

目录

  • 一、环境准备
    • 1、源库环境
    • 2、目标库环境
    • 3、迁移方法
    • 4、注意事项:
  • 二、Windows源库—Linux目标库的基础备份恢复
    • 1、Windows源库端数据备份
    • 2、传输数据文件到Linux
      • (1)目标端创建备份转移目录
      • (2)将本次备份数据传至/backup/rman/level0
    • 3、Linux端恢复0级备份
      • (1)安装新的数据库,并且数据库名称要和源库的一致
      • (2)启动数据库到nomount状态
      • (3)rman还原控制文件
      • (4)查看控制文件中记录源数据库中的数据文件号及位置
      • (5)清理控制文件记录的原来备份信息记录
      • (6)重新将备份片注册到控制文件记录中
      • (7)restore数据库0级备份
  • 三、Windows源库—Linux目标库的增量备份恢复1
    • 1、源端Windows做1级备份
    • 2、传输增量备份1数据文件到Linux
    • 3、Linux端恢复1级备份
      • (1)注册新的增量数据文件
      • (2)增量恢复,只应用增量备份即可
  • 四、Windows源库—Linux目标库的增量备份恢复n(停机窗口Windows最后一次1级备份)
    • 1、Windos端做最后停机处理(注意此处一定要停机才可以,否则无法正常恢复)
      • (1)由于Linux无法直接应用Windows平台下归档,所以需要在停机窗口干净关闭数据库,启动到mount状态
      • (2)由于Linux无法直接应用Windows平台下归档,所以需要在停机窗口干净关闭数据库,启动到mount状态
      • (3) 需要在mount下重新备份最新的控制文件,以便最后保证最后恢复的数据文件头以及控制文件SCN保持一致。
    • 2、传输文件到Linux
    • 3、Linux端恢复1级备份(最后一次)
      • (1)直接恢复最后一次增量
      • (2)由于新恢复的源端控制文件,清理控制文件中记录的原先备份片信息
      • (3)由于控制文件新恢复,所以原先restore的数据文件路径需要重新catalog注册到控制文件,然后switch
      • 注:swtich database to copy;
      • --如果出现报错,可能和incarnation有关。
      • (4) open read only,验证测试表
  • 五、处理redo日志
    • 1、关闭并打开数据库并重新启动到mount状态
    • 2、配置redolog
      • (1)查看控制文件中的redo位置
      • (2)将系统路径中的redo位置移动到mesorcl的位置。
      • (3)修改控制文件中的redo位置
    • 3、再次打开数据库
  • 六、创建临时文件(如果不存在临时文件)
    • 1、查看当前临时文件(可能有其他临时文件,删除重建即可)
    • 2、创建其他临时表空间,并设置为默认
    • 3、删除原来的临时表空间temp
    • 4、创建新的临时表空间temp,并设为默认
    • 5、删除temp2临时表空间
    • 6、重建其他临时文件
      • (1)删除其他临时表空间
      • (2)重建其他临时表空间
  • 七、清理归档日志
    • 1、清理日志(正常情况只进行此步骤即可)
    • 2、如果不清理,或报如下错误:
    • 3、查看归档信息
    • 4、操作(此种方式无法通过强制删除方式删除)
    • 5、问题处理
      • (1)清理控制文件中的归档信息
      • (2)使用catalog重新注册
  • 八、升级数据字典
      • 1、通过 startup upgrade 启动实例
    • 2、升级数据字典
    • 3、重启实例
  • 九、修改自动信息统计时间(原库如果没有进行优化,此处可以优化)
      • (1)将周一到周五的信息统计设置为中午11点30,周六-周日是早上7点50开始
      • (2)关于整个SQL Tuning advisor优化建议
  • 十、测试数据库
  • 十一、数据库日志文件在线调整(如果需要调整)
    • 1、查看日志文件信息
    • 2、添加日志组和文件
    • 3、查看当前的状态
    • 4、删除组1,2,3,再创建1,2,3组
  • 十、执行一遍rman备份

Windows—Linux—RMAN实现Windows平台迁移到Linux平台(方法3:重新载入备份位置方法+增量恢复(推荐))—不完全恢复,无法通过归档追到最新数据,通过增量恢复缩短停机时间

注意:Oracle使用RMAN从Windows迁移数据到Linux.

由于Windows与Linux同属于little endian平台,所以Windows平台RMAN数据库备份可以在Linux直接使用,但是Windows平台下的归档日志无法在Linux平台直接用于recover database。

但是我们可以使用增量备份解决增量问题,然后最后在源库停机下做最后备份,减少源库停机时间。

参考:https://blog.csdn.net/jycjyc/article/details/127154293

一、环境准备

1、源库环境

操作系统:Windows 2012 R2
字 符 集:AL32UTF8
数据库版本:11.2.0.4.0

2、目标库环境

操作系统:Redhat/Oracle/CentOS Linux 7.9
字 符 集:AL32UTF8
数据库版本:11.2.0.4.0

3、迁移方法

源库进行RMAN备份(全备+增量),新库进行RMAN还原(全备还原+增量恢复)

4、注意事项:

源库和目标库的字符集一定要一致,否则会出现乱码。目标库在dbca的时候,要根据源库的字符集设置。

二、Windows源库—Linux目标库的基础备份恢复

1、Windows源库端数据备份

RMAN> backup as compressed backupset incremental level 0 database format 'd:\rman\db0_%d_%T_%s_%p' tag 'full_level_0';
RMAN> backup current controlfile format 'F:\rman\ctl_level0.ctl' tag 'ctl_level0';
RMAN> backup spfile format 'F:\rman\spf_level0.spfile' tag 'spf_level0';

2、传输数据文件到Linux

(1)目标端创建备份转移目录

mkdir -p /backup/rman/level0
mkdir -p /backup/rman/level1-1
mkdir -p /backup/rman/level1-2
....                                #中间由几次增量,就需要创建几个目录
mkdir -p /backup/rman/level1-final

(2)将本次备份数据传至/backup/rman/level0

nfs/ftp/xftp等方式皆可。

3、Linux端恢复0级备份

(1)安装新的数据库,并且数据库名称要和源库的一致

我们此处使用mesorcl。

(2)启动数据库到nomount状态

startup nomount;

(3)rman还原控制文件

restore controlfile from '/backup/rman/level0/ctl_level0.ctl';
alter database mount;

(4)查看控制文件中记录源数据库中的数据文件号及位置

set line 300
col name for a60
select file#,name,status from v$datafile;

(5)清理控制文件记录的原来备份信息记录

crosscheck backup;
delete noprompt expired backup;

(6)重新将备份片注册到控制文件记录中

catalog start with '/backup/rman/level0';

(7)restore数据库0级备份

根据(5)中记录的控制文件对应的文件号,进行下述路径更改。

RMAN>
run{
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk; 
allocate channel d4 type disk;
set newname for datafile 1 to '/oracle/app/oracle/oradata/mesorcl/system01.dbf';
set newname for datafile 2 to '/oracle/app/oracle/oradata/mesorcl/sysaux01.dbf';
set newname for datafile 3 to '/oracle/app/oracle/oradata/mesorcl/undotbs01.dbf';
set newname for datafile 4 to '/oracle/app/oracle/oradata/mesorcl/users01.dbf';
set newname for datafile 5 to '/oracle/app/oracle/oradata/mesorcl/test01.dbf';
restore database;
switch datafile all;
release channel d1;
release channel d2;
release channel d3; 
release channel d4;
}

三、Windows源库—Linux目标库的增量备份恢复1

1、源端Windows做1级备份

RMAN> backup as compressed backupset incremental level 1 database format 'F:\rmanbak\incr_level0_%d_%T_%s_%p.dbf' tag 'incr_level_1';

2、传输增量备份1数据文件到Linux

nfs/ftp/xftp等方式皆可。

cp * /backup/rman/level1-1

3、Linux端恢复1级备份

(1)注册新的增量数据文件

RMAN> catalog start with '/backup/rman/level1-1';

(2)增量恢复,只应用增量备份即可

RMAN> run{
allocate channel d1 type disk; 
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
recover database;
release channel d1;
release channel d2;
release channel d3; 
release channel d4;
}

如果中途由多次增量备份,根据三步骤重复进行。

四、Windows源库—Linux目标库的增量备份恢复n(停机窗口Windows最后一次1级备份)

停机窗口前,可以根据需要,每天,每隔几小时定时重复执行上述三步骤,可以大幅度减少最后一次增量备份以及恢复的时间,缩短停机时间。

1、Windos端做最后停机处理(注意此处一定要停机才可以,否则无法正常恢复)

(1)由于Linux无法直接应用Windows平台下归档,所以需要在停机窗口干净关闭数据库,启动到mount状态

SQL> create table test as select * from dba_users;   # 创建测试表,以便最后验证数据是否完全恢复
RMAN> shutdown immediate;                            #使用正常关闭,让所有内存或redolog中有效的数据全部落到磁盘上,此时redolog中没有有效数据了。
RMAN> startup mount;

(2)由于Linux无法直接应用Windows平台下归档,所以需要在停机窗口干净关闭数据库,启动到mount状态

RMAN>run{
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk; 
allocate channel d4 type disk;
backup as compressed backupset incremental level 1 database format 'F:\rman\incr_level0_%d_%T_%s_%p.dbf' tag 'incr_level_1';
release channel d1;
release channel d2;
release channel d3; 
release channel d4;
}

(3) 需要在mount下重新备份最新的控制文件,以便最后保证最后恢复的数据文件头以及控制文件SCN保持一致。

RMAN> backup current controlfile format 'F:\rman\ctl_level1_final.ctl' tag 'ctl_bak_final';

2、传输文件到Linux

cp * /backup/rman/level1-final

3、Linux端恢复1级备份(最后一次)

(1)直接恢复最后一次增量

RMAN> catalog start with '/backup/rman/level1-final';
RMAN> run{
allocate channel d1 type disk; 
allocate channel d2 type disk;
allocate channel d3 type disk;
allocate channel d4 type disk;
recover database;
release channel d1;
release channel d2;
release channel d3; 
release channel d4;
}

# datafile应用完最后一次增量之后,重新恢复最新控制文件,保证数据文件与控制文件记录SCN保持一致。
# 这步是保证数据库能一致性打开的关键,如果不恢复mount后备份的控制文件,则无法打开数据库。

RMAN> shutdown immediate;
RMAN> startup nomount;
RMAN> restore controlfile from '/backup/rman/ctl_level1_final.ctl';
RMAN> alter database mount;

(2)由于新恢复的源端控制文件,清理控制文件中记录的原先备份片信息

RMAN> crosscheck backup;
RMAN> delete noprompt expired backup;

(3)由于控制文件新恢复,所以原先restore的数据文件路径需要重新catalog注册到控制文件,然后switch

RMAN> catalog start with '/oracle/app/oracle/oradata/mesorcl';
RMAN> switch database to copy;

注:swtich database to copy;

当数据库的数据文件实际存放位置与控制文件中定义的数据文件的路径不一致时,我们经常通过ALTER DATABASE RENAME FILE ...... to ...... 来改变控制文件定义的路径。 
如果数据文件比较多,人工去校验,容易出错,则可以使用switch database to copy。
switch database to copy所做的正是把数据库中所有的文件都做了上面的这个步骤的操作,相当于若干个ALTER DATABASE RENAME FILE, 其实就是重命名control file中的文件地址。

--如果出现报错,可能和incarnation有关。

RMAN> switch database to copy;

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of switch to copy command at 03/31/2023 10:54:10
RMAN-06571: datafile 1 does not have recoverable copy

--分析:这是incarnation的问题,重置后即可。

RMAN> list incarnation;
List of Database Incarnations
DB Key Inc Key  DB Name     DB ID         STATUS    Reset SCN       Reset Time
------- ------- -------- ---------------- ------- -------------- ----------------------
1         1      MESORCL 3048150118       PARENT     1            2013-10-09 18:23:38
2         2      MESORCL 3048150118       PARENT   897124         2023-02-02 09:20:40
3         3      MESORCL 3048150118       CURRENT  948244         2023-03-31 10:20:17

RMAN> reset database to incarnation 2;
database reset to incarnation 2
RMAN> list incarnation;

--重新进行switch copy

RMAN> switch database to copy;

(4) open read only,验证测试表

SQL> alter database open read only;
SQL> desc test;

如果此处可以read only,则说明可以正常打开数据库,我们可以进行下一步处理。

五、处理redo日志

1、关闭并打开数据库并重新启动到mount状态

SQL>shutdown immediate;
SQL> startup mount;
SQL>alter database open resetlogs;  (为了自动产生redolog文件并进行后续修改)
SQL>shutdown immediate;
SQL>startup mount;

2、配置redolog

(1)查看控制文件中的redo位置

SQL> set line 300
SQL> col member for a100
SQL>select * from v$logfile;

(2)将系统路径中的redo位置移动到mesorcl的位置。

mv /oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLREDO01.LOG /oracle/app/oracle/oradata/mesorcl/redo01.log
mv /oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLREDO02.LOG /oracle/app/oracle/oradata/mesorcl/redo02.log
mv /oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLREDO03.LOG /oracle/app/oracle/oradata/mesorcl/redo03.log

(3)修改控制文件中的redo位置

alter database rename file '/oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLREDO01.LOG' to '/oracle/app/oracle/oradata/mesorcl/redo01.log';
alter database rename file '/oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLREDO02.LOG' to '/oracle/app/oracle/oradata/mesorcl/redo02.log';
alter database rename file '/oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLREDO03.LOG' to '/oracle/app/oracle/oradata/mesorcl/redo03.log';

3、再次打开数据库

alter database open;

六、创建临时文件(如果不存在临时文件)

1、查看当前临时文件(可能有其他临时文件,删除重建即可)

SQL> select * from v$tempfile;
SQL> select * from dba_temp_files;
SQL> select file_name,file_id,tablespace_name,bytes,status from dba_temp_files; --会报错,可以忽略

2、创建其他临时表空间,并设置为默认

create temporary tablespace temp2 tempfile '/oracle/app/oracle/oradata/mesorcl/temp02.dbf' size 100m autoextend on;
alter database default temporary tablespace temp2;

3、删除原来的临时表空间temp

drop tablespace temp including contents and datafiles;
rm -rf /oracle/app/oracle/product/11.2.0/db_1/dbs/D:APPADMINISTRATORORADATAMESORCLTEMP01.DBF
rm -rf /oracle/app/oracle/oradata/mesorcl/temp01.dbf

4、创建新的临时表空间temp,并设为默认

create temporary tablespace temp tempfile '/oracle/app/oracle/oradata/mesorcl/temp01.dbf' size 100m autoextend on;
alter database default temporary tablespace temp;

5、删除temp2临时表空间

drop tablespace temp2 including contents and datafiles;

rm -rf /oracle/app/oracle/oradata/mesorcl/temp02.dbf

如果此时卡住,则退出SQL,重新执行删除操作即可,因为当前SQL可能在使用这个临时表空间。

6、重建其他临时文件

(1)删除其他临时表空间

drop tablespace MES_PRD_TEMP including contents and datafiles;

drop tablespace MES_MM_TEMP including contents and datafiles;

drop tablespace MES_TEMP  including contents and datafiles;

(2)重建其他临时表空间

create temporary tablespace MES_PRD_TEMP TEMPFILE '/oracle/app/oracle/oradata/mesorcl/MES_PRD_TEMP.dbf' size 1000M reuse autoextend on next 200M maxsize unlimited;
create temporary tablespace MES_MM_TEMP TEMPFILE '/oracle/app/oracle/oradata/mesorcl/MES_MM_TEMP.dbf' size 4000M autoextend on next 500M maxsize unlimited logging  extent management local autoallocate segment space management auto;

create temporary  tablespace MES_TEMP TEMPFILE '/oracle/app/oracle/oradata/mesorcl/MES_TEMP.dbf' size 4000M autoextend on next 500M maxsize unlimited logging  extent management local autoallocate segment space management auto;

七、清理归档日志

因控制文件中保留了原归档日志的目录信息,在进行crosscheck archivelog和备份时会报错,所以需要进行清理。

1、清理日志(正常情况只进行此步骤即可)

rman>delete archivelog all;

2、如果不清理,或报如下错误:

ORA-19633: control file record 58407 is out of sync with recovery catalog

3、查看归档信息

SQL> select FIRST_TIME,name,sequence#,status,thread# from v$archived_log

4、操作(此种方式无法通过强制删除方式删除)

RMAN> delete force archivelog sequence 71542;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=8 device type=DISK
specification does not match any archived log in the repository

catalog archivelog 'D:\APP\ADMINISTRATOR\ARCH\RBCHECKIN\ARC0000071542_0853518879.0001';
通过查询,可以发现,使用force,catalog 无法强制删除归档或者重新注册归档(归档文件已不存在)

5、问题处理

(1)清理控制文件中的归档信息

SQL>execute sys.dbms_backup_restore.resetCfileSection( 11);

(2)使用catalog重新注册

SQL> select name from v$archived_log;
no rows selected
RMAN> catalog start with '/oracle/archivlog/';

Removing entries in v$archived_log referencing a particluar DEST_ID (Doc ID 845361.1)
原理是清空控制文件中的归档日志信息,重新使用catalog进行注册
由于本次控制文件记录该日志是有效的,但实际文件不存在,通过crosscheck archive过程报错,因此无法常规手段进行处理;

八、升级数据字典

1、通过 startup upgrade 启动实例

--停库

SQL> shutdown immediate

--启动到upgrage模式

SQL> startup upgrade;

2、升级数据字典

大约5-10分钟,如果数据量大,可能得20分钟

SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql
...
Final Actions
. 00:00:00
Total Upgrade Time: 00:04:26

PL/SQL procedure successfully completed.

3、重启实例

--停库

SQL> shutdown immediate

--启动到正常模式

SQL> startup;

九、修改自动信息统计时间(原库如果没有进行优化,此处可以优化)

(1)将周一到周五的信息统计设置为中午11点30,周六-周日是早上7点50开始

SQL>select * from dba_autotask_client;
begin
dbms_scheduler.set_attribute
(
  name => 'MONDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=MON;byhour=11;byminute=30; bysecond=0'
);
end;
/

begin
dbms_scheduler.set_attribute
(
  name => 'TUESDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=TUE;byhour=11;byminute=30; bysecond=0'
);
end;
/

begin
dbms_scheduler.set_attribute
(
  name => 'WEDNESDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=WED;byhour=11;byminute=30; bysecond=0'
);
end;
/

begin
dbms_scheduler.set_attribute
(
  name => 'THURSDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=THU;byhour=11;byminute=30; bysecond=0'
);
end;
/

begin
dbms_scheduler.set_attribute
(
  name => 'FRIDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=FRI;byhour=11;byminute=30; bysecond=0'
);
end;
/
begin
dbms_scheduler.set_attribute
(
  name => 'SATURDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=SAT;byhour=7;byminute=50; bysecond=0'
);
end;
/

begin
dbms_scheduler.set_attribute
(
  name => 'SUNDAY_WINDOW',
  attribute => 'REPEAT_INTERVAL',
  value => 'freq=daily;byday=SUN;byhour=7;byminute=50; bysecond=0'
);
end;
/

(2)关于整个SQL Tuning advisor优化建议

SQL>select client_name,status,window_group from dba_autotask_client;
BEGIN
 dbms_auto_task_admin.disable(
 client_name => 'sql tuning advisor',
 operation => NULL,
 window_name => NULL);
END;
/

十、测试数据库

查询表数据、进行日志切换等操作。

对Linux数据库进行全量备份。

检查数据库db link、diretory等对环境有强依赖对象是否无效,如有必要,进行重建修正。

十一、数据库日志文件在线调整(如果需要调整)

1、查看日志文件信息

SQL> col member for a100
SQL> select a.group#,a.thread#,a.bytes,a.status,b.member from v$log a,v$logfile b where a.group#=b.group#;

2、添加日志组和文件

alter database add logfile group 4 '/oracle/app/oracle/oradata/mesorcl/redo04.log' size 200m; 
alter database add logfile group 5 '/oracle/app/oracle/oradata/mesorcl/redo05.log' size 200m;

3、查看当前的状态

SQL> select a.group#,a.thread#,a.bytes,a.status,b.member from v$log a,v$logfile b where a.group#=b.group#;

4、删除组1,2,3,再创建1,2,3组

--利用语句切换删除

SQL> alter system switch logfile;
SQL> alter system checkpoint;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
SQL> alter system switch logfile;
SQL> alter system checkpoint;
SQL> alter database drop logfile group 1;

--物理删除redo01.log,redo02.log,redo03.log

rm -rf /oracle/app/oracle/oradata/mesorcl/redo01.log
rm -rf /oracle/app/oracle/oradata/mesorcl/redo02.log
rm -rf /oracle/app/oracle/oradata/mesorcl/redo03.log

--重新添加

alter database add logfile group 1 '/oracle/app/oracle/oradata/mesorcl/redo01.log' size 200m; 
alter database add logfile group 2 '/oracle/app/oracle/oradata/mesorcl/redo02.log' size 200m; 
alter database add logfile group 3 '/oracle/app/oracle/oradata/mesorcl/redo03.log' size 200m;

十、执行一遍rman备份

脚本见:https://www.topunix.com/post-6082.html

SELECT VERSION_NO FROM PREPRESS_MES_VERSION_NO WHERE FACTORYID IS NULL GROUP BY VERSION_NO HAVING COUNT(1) > 1

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2024年4月19日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号