• day14_oracle前14天抽查


    SQL> shutdown immediate

    SQL> startup mount

     

    查看归档模式

    SQL> archive log list

     

    设置为归档模式

    SQL> alter database archivelog;

    SQL> alter database open;

     

    查看归档进程

    [oracle@sq ~]$ ps -ef |grep arc

     

    查看归档路径

    SQL> show parameter DB_RECOVERY_FILE_DEST

     

    SQL> alter system switch logfile;

    (切换日志时会产生归档文件,进入归档路径下查看)

     

    --------------------------------------------

    更改归档日志目录

    SQL> alter system set log_archive_dest_1='location=/home/oracle/archivelog01' scope=both;

     

    SQL> alter system set log_archive_dest_2='location=/home/oracle/archivelog02' scope=both;

     

    系统cpu ,i/o 资源充足情况下,增加归档进程提高性能.

    查看参数 (一共有10个进程,看情况自行增加)

    SQL> show parameter archive

     

    --------------------------------------------

    归档路径中 日志格式为dbf,改变格式

    SQL> alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;

     

    %s: 日志序列号:

     

                    %S: 日志序列号(带有前导)

     

                    %t: 重做线程编号.

     

                    %T: 重做线程编号(带有前导)

     

                    %a: 活动ID

     

                    %d: 数据库ID

     

                    %r RESETLOGSID.

     

     

    SQL> startup force

    (查看归档路径变为arc后缀)

     

    ==============================================

    完全数据库脱机冷备份

     

    拷贝出控制文件,数据文件,日志文件

    [oracle@sq ~]$ mkdir db_bak

     

     

    SQL> select 'cp '||member||' /home/oracle/db_bak' from v$logfile t

      2  union all

      3  select 'cp '||file_name||' /home/oracle/db_bak' from dba_data_files

      4  union all

      5  select 'cp '||name||' /home/oracle/db_bak' from v$controlfile;

    (生成拷贝命令,把生成的命令都执行一边)

     

    ==================================================

    部分数据库联机备份

    备份表空间

    (查看表空间)

    SQL> select TABLESPACE_NAME from dba_tablespaces;

     

    1.SQL>  alter tablespace users begin backup;

     

    [oracle@sq ~]$ cp /u01/app/oracle/oradata/orcl/users01.dbf /home/oracle/db_bak1

    2.备份完毕后结束

    SQL> alter tablespace users end backup;

     

    3.

    [oracle@sq orcl]$ rm -rf users01.dbf 

     

    4.SQL> startup force;

    ORA-01110: data file 4: '/u01/app/oracle/oradata/orcl/users01.dbf'

     

    5.把备份的文件拷贝回来

    [oracle@sq db_bak1]$ cp users01.dbf /u01/app/oracle/oradata/orcl/users01.dbf

     

    6.离线文件

    SQL> alter database datafile 4 offline;

     

    7.恢复文件

    SQL> recover datafile 4;

    SQL> alter database datafile 4 online;

     

    8.SQL> alter database open;

     

    查看状态

    SQL> select FILE_NAME,FILE_ID,STATUS from dba_data_files

     

    查看备份

    SQL> select * from v$backup;

    =====================================================

    全库联机备份

     

    1.整库声明备份

    SQL> alter database begin backup;

    SQL> select * from v$backup;

    结果所有文件 都是备份状态

     

    2.把数据文件拷贝出来

    [oracle@sq ~]$ mkdir db_bak2

    [oracle@sq orcl]$ cp *.dbf /home/oracle/db_bak2/

     

    3.控制文件也可能损害,如何把控制文件也备份出来呢

    SQL> oradebug setmypid;

    SQL> alter database backup controlfile to trace;

     

    SQL> oradebug tracefile_name;

    /u01/app/oracle/admin/orcl/udump/orcl_ora_11743.trc

     

    里面有创建控制文件命令

    CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS  ARCHIVELOG

        MAXLOGFILES 16

        MAXLOGMEMBERS 3

        MAXDATAFILES 100

        MAXINSTANCES 8

        MAXLOGHISTORY 292

    LOGFILE

      GROUP 1 '/oracle/app/oradata/TEST/redo01.log'  SIZE 50M,

      GROUP 2 '/oracle/app/oradata/TEST/redo02.log'  SIZE 50M,

      GROUP 3 '/oracle/app/oradata/TEST/redo03.log'  SIZE 50M

    -- STANDBY LOGFILE

    DATAFILE

      '/oracle/app/oradata/TEST/system01.dbf',

      '/oracle/app/oradata/TEST/undotbs01.dbf',

      '/oracle/app/oradata/TEST/sysaux01.dbf',

      '/oracle/app/oradata/TEST/users01.dbf'

    CHARACTER SET AL32UTF8

    ;

     

     

    (reuse是建表空间时重新使用已存在的文件,如未指定reuse,那么如果要建的文件已存在,则会报错。

     

    noresetlogs 恢复的时候,把原来redo里的信息不更新,即新的数据库的SCN号和原来的SCN号是连续的,这个一般用于完全恢复

    resetlogs就是会把redo里原来的信息会重置,相当于一个新的数据库的建立)

     

    4.删除

    [oracle@sq orcl]$ rm -rf 控制文件

     

    5.SQL> startup force;

    ORA-00205: error in identifying control file, check alert log for more info

     

    6.执行上面的创建控制文件命令

    7.

    SQL> alter database open;(报错)

     

    8.SQL> recover database;

    SQL> alter database open;(成功)

    ========================================

    ==========================================

    备份日志文件的高可靠(日志镜像)

    SQL> show parameter archive(查看备份日志通道)

     

    [oracle@sq ~]$ mkdir archivelog1

    [oracle@sq ~]$ mkdir archivelog2

     

    SQL> alter system set log_archive_dest_1='location=/home/oracle/archivelog1';

     

    SQL> alter system set log_archive_dest_2='location=/home/oracle/archivelog2';

     

     

    SQL> show parameter archive

    SQL> alter system switch logfile;(切换日志)

     

    进入 archivelog1 archivelog2目录会看到 2个一样的文件

     

    [oracle@sq archivelog1]$ ps -ef |grep ora_(两个归档进程)

    oracle   19962     1  0 06:28 ?        00:00:00 ora_arc0_orcl

    oracle   19964     1  0 06:28 ?        00:00:00 ora_arc1_orcl

     

     

    SQL> show parameter archive (两个进程)

    log_archive_max_processes            integer     2

     

    SQL> alter system set log_archive_max_processes=3;(改变进程数)

     

     

    [oracle@sq archivelog1]$ ps -ef |grep ora_(结果3)

     

     

    SQL> alter system set log_archive_dest_2='';(清除通道)

    ===========================

     

     





  • 相关阅读:
    【转载】Git和Repo扫盲——如何取得Android源代码 .
    【转载】玩转C链表
    【转载】彩色 LCD 接口
    【转载】LCD DBI接口与DPI接口
    【原创】Display interface types supported
    【转载】交叉编译的基本概念
    【转载】谈谈Linux内核驱动的coding style
    深层神经网络
    Renju 方案(draft)
    Mathematica练习
  • 原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/4ad5baeec3a2a531f655a37bff1f128b.html
Copyright © 2020-2023  润新知