数据恢复服务,Oracle 10g RAC数据库恢复到单机环境

2024年 5月 7日 72.3k 0

【行业新闻】5月2日,Oracle Database 23ai正式发布!在过去四年中,Oracle数据库开发部门一直在努力研发Oracle 数据库的下一个长期支持版本,重点是AI和开发人员的工作效率。鉴于此版本数据库中对AI的关注,Oracle Database 23c更名为Oracle Database 23ai。Oracle Database 23ai 专注于三个关键领域:AI for Data、数据开发和数据关键任务。大家可通过以下两篇文章进一步了解。

Oracle Database 23ai 正式发布

新的里程碑:Oracle Database 23ai将AI引入企业数据和应用程序

数据恢复服务,Oracle 10g RAC数据库恢复到单机环境-1

1前言

五一假期结束后,客户发现有个业务表数据错乱了,想直接恢复到节前。接到这种数据恢复服务需求,我们第一步就是检查生产环境有没有备份。这个库有做定时备份,因此可以直接从备份中进行恢复。这个数据库备份配置可以参考以下文章。

【必备技能】Windows/Linux环境挂载NFS远程目录备份数据库

2恢复参数文件

(1)在oracle用户操作,手动创建pfile参数文件。

    cd $ORACLE_HOME/dbs 即/u01/oracle/10g/dbs
    vi initorcl.ora
    *.sga_target=6144m
    *.pga_aggregate_target=2048m
    *.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
    *.audit_trail='db'
    *.compatible='10.2.0.3.0'
    *.control_file_record_keep_time=30
    *.control_files='/u01/app/oracle/oradata/orcl/controlfile/control.ctl'
    *.db_block_size=8192
    *.db_create_file_dest='/u01/app/oracle/oradata/orcl'
    *.db_domain=''
    *.db_name='orcl'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
    *.log_archive_dest_1='LOCATION=/u01/app/oracle/oradata/orcl'
    *.log_archive_format='%t_%s_%r.dbf'
    *.processes=600
    *.remote_login_passwordfile='exclusive'
    *.undo_tablespace='UNDOTBS1'

    (2)创建参数文件后,手动将数据库启动到nomount状态

      export ORACLE_SI=orcl
      sqlplus as sysdba
      startup nomount

      (3)创建相应的目录并授权

        mkdir -p u01/app/oracle/admin/orcl/adump
        mkdir -p u01/app/oracle/oradata/orcl/controlfile
        cd u01/app/
        chown -R oracle:oinstall oracle/

        3控制文件恢复

        (1)由于源库是通过nfs挂载备份盘进行备份,因此,我们直接把这块备份盘也以nfs方式挂载到恢复环境。

          # showmount -e 192.168.6.40
          Export list for 192.168.6.40:
          /oa 192.168.6.0/24


          # mount -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,nolock,proto=tcp,actimeo=0,vers=3,timeo=600 192.168.6.40:/oa /newstart


          # df -h
          文件系统 容量 已用 可用 已用% 挂载点
          /dev/mapper/VolGroup00-LogVol00
          1.3T 900G 275G 77%
          /dev/sda1 99M 13M 81M 14% boot
          tmpfs 9.8G 0 9.8G 0% dev/shm
          192.168.6.40:/oa      2.0T  533G  1.4T  28% /newstart

          (2)在挂载目录下找到CTRL开头的备份文件,并且是备份文件日期是近期的。

            rman target /
            restore controlfile from '/newstart/ORCL/ORCL_CONT_1520764057_20240506_27041.ctl';

            (3)恢复过程出现RMAN-06172错误。检查备份文件的权限,发现权限不对,并授权775权限。

              RMAN> restore controlfile from '/newstart/ORCL/ORCL_CONT_1520764057_20240506_27041.ctl';
              Starting restore at 06-MAY-24
              using channel ORA_DISK_1


              RMAN-00571: ===========================================================
              RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
              RMAN-00571: ===========================================================
              RMAN-03002: failure of restore command at 05/06/2024 22:11:22
              RMAN-06172: no autobackup found or specified handle is not a valid copy or piece

              (4)调整备份目录的权限后,成功恢复出控制文件,并加载数据库。

                RMAN> restore controlfile from '/newstart/ORCL/ORCL_CONT_1520764057_20240506_27041.ctl';
                Starting restore at 06-MAY-24
                using target database control file instead of recovery catalog
                allocated channel: ORA_DISK_1
                channel ORA_DISK_1: sid=655 devtype=DISK
                channel ORA_DISK_1: restoring control file
                channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
                output filename=/u01/app/oracle/oradata/orcl/controlfile/control.ctl
                Finished restore at 06-MAY-24




                RMAN> alter database mount;

                4数据文件恢复(1)由于源库是RAC集群,数据文件存放在ASM共享磁盘组,因此需要进行数据文件路径转换。即修改控制文件里的数据文件路径。

                  RMAN> report schema;
                  RMAN-06139: WARNING: control file is not current for REPORT SCHEMA
                  Report of database schema


                  List of Permanent Datafiles
                  ===========================
                  File Size(MB) Tablespace RB segs Datafile Name
                  ---- -------- -------------------- ------- ------------------------
                  1 0 SYSTEM *** +DATA/orcl/datafile/system.265.997395529
                  2 0 DATA2 *** +DATA/orcl/datafile/ncoa2_02
                  3 0 SYSAUX *** +DATA/orcl/datafile/sysaux.305.997402961
                  省略部分数据文件


                  将对应的数据文件路径调整为新的目录
                  set newname for datafile 1 to '/u01/app/oracle/oradata/orcl/system.265.dbf';
                  set newname for datafile 2 to '/u01/app/oracle/oradata/orcl/ncoa2_02';
                  set newname for datafile 3 to '/u01/app/oracle/oradata/orcl/sysaux.305.dbf';
                  省略部分数据文件

                  (2)恢复数据文件前,须跟业务部门明确需要恢复的具体时间点。然后利用rman工具,更改数据文件存放路径并restore数据文件到新的路径。以下是恢复脚本。

                    如果挂载路径与备份路径不一致,需要先注册备份文件到控制文件中
                    catalog start with '/oradata'
                    恢复脚本信息:
                    RUN {
                    ALLOCATE CHANNEL ch00 TYPE disk;
                    ALLOCATE CHANNEL ch01 TYPE disk;
                    ALLOCATE CHANNEL ch02 TYPE disk;
                    ALLOCATE CHANNEL ch03 TYPE disk;
                    set until time "to_date('2024-04-29 15:55:00','yyyy-mm-dd hh24:mi:ss')";
                    set newname for datafile 1 to '/u01/app/oracle/oradata/orcl/system.265.dbf';
                    set newname for datafile 2 to '/u01/app/oracle/oradata/orcl/ncoa2_02';
                    set newname for datafile 3   to '/u01/app/oracle/oradata/orcl/sysaux.305.dbf';
                    省略部分数据文件
                    restore database;
                    switch datafile 1;
                    switch datafile 2;
                    switch datafile 3;
                    switch datafile 4;
                    switch datafile 5;
                    switch datafile 6;
                    switch datafile 7;
                    switch datafile 8;
                    switch datafile 9;
                    switch datafile 10;
                    switch datafile 11;
                    switch datafile 12;
                    switch datafile 13;
                    switch datafile 14;
                    switch datafile 15;
                    switch datafile 16;
                    switch datafile 17;
                    switch datafile 18;
                    switch datafile 19;
                    switch datafile 20;
                    switch datafile 21;
                    switch datafile 22;
                    switch datafile 23;
                    switch datafile 24;
                    switch datafile 25;
                    recover database;
                    RELEASE CHANNEL ch00;
                    RELEASE CHANNEL ch01;
                    RELEASE CHANNEL ch02;
                    RELEASE CHANNEL ch03;
                    }

                    (3)恢复和还原数据文件后,打开数据库。最后配合业务部门进行数据准确性验证。

                      打开数据库
                      alter database open resetlogs;

                      近期热门文章:

                      👉【TDSQL】手动调整备份节点或冷备节点👉【TDSQL】TCPMSS最大数据分段大小值不合理导致JAVA程序连接数据库异常案例👉教你快速上手TiDB DM数据迁移工具并实现MySQL数据迁移同步👉TiDB 7.5 实验测试环境搭建及小插曲处理👉学好Oracle只需要看一本书就够了?

                      全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

                      相关文章

                      Oracle如何使用授予和撤销权限的语法和示例
                      Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
                      下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
                      社区版oceanbase安装
                      Oracle 导出CSV工具-sqluldr2
                      ETL数据集成丨快速将MySQL数据迁移至Doris数据库

                      发布评论